/* All user-facing routes share these shrink/wrap constraints. */
html,body{max-width:100%;overflow-x:clip;}
body{overflow-wrap:anywhere;}
main,.settings-panel{width:100%;max-width:900px;min-width:0;}
main>*,.settings-panel>*,.home-page,.home-intro,.secondary-tools-region,.secondary-tools,.device-list,.settings-list,.status-list,.shipment-list,.usage-list,.prediction-list{min-width:0;max-width:100%;}
.device-list{align-items:start;}
button,input,select,textarea{max-width:100%;font:inherit;}
button{overflow-wrap:anywhere;}
.inspection-actions .unavailable{min-height:44px;white-space:normal;overflow-wrap:anywhere;}
.secondary-tool{min-width:0;white-space:normal;overflow-wrap:anywhere;}
.secondary-tool b,.secondary-tool small,.secondary-tool i,.summary span{overflow-wrap:anywhere;word-break:keep-all;}
.device-head,.status-row,.shipment-list article,.setting-row{min-width:0;}
.device-title,.status-row>div:first-child,.shipment-list article>div,.setting-row div{min-width:0;overflow-wrap:anywhere;}
.device-title b,.device-title span,.status-row b,.status-row small,.shipment-list b,.shipment-list small,.setting-row b,.setting-row small,.visit-action-main b,.visit-action-main p,.visit-review-list span,.notice-list p{overflow-wrap:anywhere;}
.device-head .type,.device-head .status,.inventory-card>header .type,.visit-state{flex-shrink:0;}
.device-head .device-title{flex:1 1 auto;}
.visit-plan,.visit-action-list,.inventory-field-grid,.usage-tools{min-width:0;}
.visit-plan>*,.visit-action-list>*,.inventory-field-grid>*,.usage-tools>*{min-width:0;}
.summary{min-width:0;}
.summary-card{min-width:0;}
.floor-select,.period,.visit-toolbar,.search,.profile{min-width:0;}
.floor-select select,.period select,.visit-toolbar select,.search input,.profile-info{min-width:0;}
.toast{max-width:calc(100vw - 32px);white-space:normal;text-align:center;overflow-wrap:anywhere;}
dialog{width:min(calc(100% - 32px),560px);max-height:calc(100dvh - 32px);overflow:auto;}
@media(max-width:699px){
  main,.settings-panel{max-width:100%;padding:12px 12px 64px;}
  main>header,.settings-panel>header{margin:0 -12px;padding:8px 12px;}
  .search,.visit-toolbar,header{flex-wrap:wrap;}
  header{gap:10px;align-items:flex-start;}
  header>div:first-child{min-width:0;}
  header h1{font-size:clamp(23px,7vw,28px);line-height:1.2;}
  .profile{margin-left:auto;max-width:100%;flex-wrap:wrap;justify-content:flex-end;}
  .profile-info{display:none;}
  .profile-logout{min-height:44px;}
  .home-page{grid-template-columns:1fr;gap:24px;min-height:0;padding-top:32px;}
  .home-choice-intro{max-width:none;}
  .home-choice-intro h2{font-size:clamp(30px,9vw,40px);}
  .home-choice-grid{grid-template-columns:1fr;gap:12px;}
  .home-choice-card{min-height:124px;padding:20px;}
  .home-choice-icon{flex-basis:36px;width:36px;height:36px;font-size:18px;}
  .home-choice-content h3{font-size:19px;}
  .month-progress{grid-template-columns:1fr;}
  .progress-counts{border-top:1px solid var(--line);}
  .progress-counts>span:first-child{border-left:0;}
  .secondary-tools,.device-list,.visit-action-list{grid-template-columns:1fr;}
  .summary{grid-template-columns:repeat(3,minmax(0,1fr));}
  .summary-card:nth-child(4){grid-column:1/-1;border-top:1px solid var(--line);}
  .search{display:flex;gap:8px;}
  .search input{flex:1 1 100%;}
  .search button{flex:1 1 auto;white-space:normal;}
  .filters,.tabs{flex-wrap:wrap;overflow:visible;}
  .filters button,.tabs button{flex:1 1 calc(50% - 7px);white-space:normal;}
  .type-filters button{flex:1 1 calc(50% - 7px);}
  .floor-select{flex-wrap:wrap;gap:5px;padding:10px 12px;}
  .floor-select select{flex:1 1 100%;width:100%;}
  .period label,.visit-toolbar label{flex:1 1 100%;flex-wrap:wrap;}
  .period select,.visit-toolbar select{flex:1 1 100%;width:100%;}
  .read-only-note{width:100%;}
  .device-head{align-items:flex-start;padding:14px;gap:8px;}
  .device-head .status{max-width:42%;text-align:right;overflow-wrap:anywhere;}
  .details{padding:12px;}
  .inspection-section{padding:12px;}
  .toner-level{min-height:44px;}
  .color.toner-fields{grid-template-columns:repeat(2,minmax(0,1fr));}
  .mono.toner-fields{max-width:none;}
  .field-reading{grid-template-columns:1fr;}
  .field-reading .registered-supplies,.field-reading .note{grid-column:auto;}
  .inspection-actions{display:grid;grid-template-columns:1fr;}
  .inspection-actions .unavailable{width:100%;}
  .inspection-actions .save,.inspection-actions .reinspect{width:100%;grid-row:1;}
  .registered-supply-row{align-items:flex-start;}
  .usage-tools,.inventory-field-grid{grid-template-columns:1fr;}
  .visit-plan{grid-template-columns:1fr;}
  .visit-review-list li{align-items:flex-start;flex-wrap:wrap;}
  .inventory-card>header{flex-wrap:wrap;}
  .inventory-card>header>div{min-width:0;flex:1 1 160px;}
  .visit-state{margin-left:0;}
  .inventory-card>header button{margin-left:auto;}
  .shipment-list article{grid-template-columns:1fr;align-items:start;gap:6px;}
  .shipment-list article>span{justify-self:start;}
  .status-row{flex-direction:column;gap:10px;}
  .status-result{width:100%;min-width:0;justify-items:start;text-align:left;}
  .status-measurement{text-align:left;}
  .usage-types{flex-wrap:wrap;}
  .usage-types button{flex:1 1 calc(50% - 8px);}
  .usage-row button{grid-template-columns:34px minmax(0,1fr);}
  .usage-row button strong{grid-column:2;}
  .usage-counters{grid-template-columns:34px minmax(0,1fr);}
  .usage-month-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .prediction-row.unknown{grid-template-columns:1fr;gap:6px;}
  .workflow-stage{min-height:44px;}
  button,.steps button,input,select,textarea{min-height:44px;}
  #closeSettings,#closeNotice,#closeStatus,#closeShipment,#closeUsage,#closePrediction,#closeVehicle,#openShipment,#openSupplyNeeded,#printShipment{min-height:44px;}
  input[type="radio"]{min-height:18px;}
  dialog{width:min(calc(100% - 24px),560px);max-height:calc(100dvh - 24px);}
  dialog form{padding:16px;}
}
@media(min-width:700px){
  .workflow-guide{grid-template-columns:repeat(4,minmax(0,1fr));}
  .device-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:767px){html,body{max-width:100%;overflow-x:hidden}.month-groups,.device-list,.visit-plan,.visit-action-list,.field-reading{grid-template-columns:1fr}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}}
@media(min-width:560px) and (max-width:767px){.workflow-guide{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary-tool{grid-template-columns:1fr}.secondary-tool i{grid-column:1;grid-row:auto;margin-top:6px}}
@media(max-width:559px){.workflow-guide{grid-template-columns:1fr}.secondary-tools{grid-template-columns:1fr;border:0;gap:8px}.secondary-tool{border:1px solid var(--line);border-radius:var(--radius-panel)}}
@media(max-width:480px){header{align-items:flex-start;gap:8px}header h1{font-size:24px}.summary{grid-template-columns:repeat(2,1fr)}.summary-card:nth-child(4){grid-column:auto}.secondary-tool{grid-template-columns:1fr}.secondary-tool i{grid-column:1;grid-row:auto;margin-top:6px}.progress-counts{grid-template-columns:1fr}.progress-counts>span{border-left:0;border-top:1px solid var(--line)}.progress-counts>span:first-child{border-top:0}}
@media(max-width:430px){.search,.visit-toolbar{flex-direction:column}.search button,.visit-toolbar>*{width:100%}.registered-supply-row{display:grid;grid-template-columns:minmax(0,1fr) 92px}}
@media(max-width:390px){main,.settings-panel{padding-inline:10px}main>header,.settings-panel>header{margin-inline:-10px;padding-inline:10px}.workflow-stage{padding:10px 12px}}
@media(max-width:360px){.progress-counts{display:grid;grid-template-columns:1fr}.progress-counts>span{grid-column:auto!important;border-top:1px solid var(--line)}.profile-info{display:none}}
@media(max-width:320px){main,.settings-panel{padding-inline:8px}.login-card{padding:22px 16px}.dialog-actions{grid-template-columns:1fr}}
@media(min-width:768px){main{max-width:1180px}.home-page{display:block}.month-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-action-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1023px){.monthly-inspection-hub{display:block;margin-top:12px}.monthly-inspection-rail{position:static;display:flex;overflow-x:auto;max-width:100%;margin-bottom:12px;padding:6px;overscroll-behavior-x:contain}.monthly-inspection-rail button{flex:0 0 auto;width:auto;white-space:nowrap}.monthly-summary-row{grid-template-columns:1fr;gap:10px}.monthly-readings{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:2px}.monthly-reading{flex:0 0 auto}.inspection-detail{display:none}.inspection-workspace{display:block}.inspection-master-list{grid-template-columns:1fr}.device-list{grid-template-columns:1fr}}
@media(min-width:1024px){
  main{max-width:1280px;padding-inline:16px}.workflow-guide{grid-template-columns:repeat(4,minmax(0,1fr))}.month-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary-tools{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inspection-workspace{display:grid;grid-template-columns:minmax(280px,35fr) minmax(0,65fr);grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:16px;align-items:start}
  .inspection-master{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1)}
  .inspection-master-list{display:block;padding:0}
  .inspection-master-list .floor-title{margin:0;padding:10px 12px;background:var(--surface-2);font-size:13px}
  .inspection-master-item{display:flex;align-items:center;gap:8px;width:100%;min-height:58px;margin:0;padding:10px 12px;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--surface-1);color:var(--text)}
  .inspection-master-item:hover{background:var(--surface-3)}.inspection-master-item.selected{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}
  .inspection-master-item b{min-width:0;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:keep-all}.inspection-master-item small{color:var(--text-muted)}
  .master-status{color:var(--status-pending);font-size:12px;font-weight:700;font-style:normal;white-space:nowrap}.master-status.inspected{color:var(--status-inspected)}.master-status.unavailable{color:var(--status-unavailable)}
  .inspection-detail{padding-right:4px}
  .inspection-detail .device{margin:0}.inspection-detail .device-head{cursor:default}.inspection-detail .details{display:block}
}
@media(min-width:1440px){main,.settings-panel{max-width:1440px}}

/* Scrollbar contract: only the Dongguk inspection master owns an inner vertical rail. */
html{scrollbar-width:thin;scrollbar-color:#5f8878 #0d0f0f}html::-webkit-scrollbar{width:12px;height:12px;background:#0d0f0f}html::-webkit-scrollbar-track{background:#0d0f0f}html::-webkit-scrollbar-thumb{min-height:40px;border:3px solid #0d0f0f;border-radius:999px;background:#5f8878}html::-webkit-scrollbar-thumb:hover{background:#79b59d}.inspection-master{max-height:min(62dvh,720px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#63d6a1 #121515}.inspection-master::-webkit-scrollbar{width:10px;background:#121515}.inspection-master::-webkit-scrollbar-track{background:#121515}.inspection-master::-webkit-scrollbar-thumb{min-height:40px;border:2px solid #121515;border-radius:999px;background:#63d6a1}.inspection-master::-webkit-scrollbar-thumb:hover{background:#8be4b8}.inspection-detail{overflow:visible}
