/* Large, single-line type. Reflow controls, never shrink text to fit. */
:root { font-size:18px; --muted:#65616a; }
body { white-space:nowrap; }
button,input,select { white-space:nowrap; }
.workspace,.side-column,.page-head>div,.topline>div,.context-cell,.attr,
.product-empty>div,.batch-card-top h2,.record-product,.choice>span { min-width:0; }
.shell { grid-template-columns:260px minmax(0,1fr); }
.sidebar { width:260px; padding-inline:17px; }
.brand { gap:10px; padding-inline:0; }
.brand strong { font-size:20px; letter-spacing:0; }
.brand small { font-size:14px; letter-spacing:.3px; }
.brandmark { flex:none; }
.nav-button { font-size:20px; min-height:56px; }
.nav-label,.sidebar-bottom { font-size:15px; color:#706a73; }
.sidebar-bottom strong { font-size:16px; }
.topline,.status { font-size:16px; }
.status { flex:none; }
.preview-tag { font-size:14px; }
.page-head h1 { font-size:34px; letter-spacing:-.5px; }
.page-head .subtitle { font-size:18px; max-width:100%; color:#68616b; }
.eyebrow,.step { font-size:15px; }
h2,.section-top h2 { font-size:24px; }
h3,.list-head h3 { font-size:21px; }
.button,.head-actions .button,.section-top .button,.manual .button,
.quantity-title .button,.box-title .button,.record-line>.button,
.cutoff-actions .button,.edit-secondary .button,.export-secondary .button,
.modal-actions .button,.download-feedback .button { font-size:18px; min-height:48px; }
.context { gap:22px; padding:19px 22px; }
.context-cell label,.context-right span { font-size:16px; color:#79633f; }
.context-button { font-size:23px; white-space:nowrap; max-width:100%; overflow-x:auto; }
.context-right strong { font-size:32px; }
.identify-tools { flex-wrap:wrap; }
.identify-tools .scan-button { font-size:19px; width:100%; min-height:54px; }
.identify-tools .manual { flex-basis:100%; }
.manual input { font-size:19px; height:54px; }
.manual .button { min-height:54px; padding-inline:18px; }
.product-empty { gap:10px; }
.product-empty strong { font-size:21px; color:#51464e; }
.product-empty span { font-size:17px; max-width:100%; color:#746771; }
.product-name { font-size:27px; max-width:100%; overflow-wrap:normal; }
.product-style { font-size:17px; color:#716773; letter-spacing:0; }
.product-eyebrow,.product-eyebrow .button { font-size:16px; }
.attr label { font-size:16px; color:#746975; }
.attr strong { font-size:21px; overflow-wrap:normal; }
.origin-select { font-size:19px; padding:8px 6px; }
.attributes { grid-template-columns:1.1fr .7fr 1.2fr; gap:14px; }
.quantity-title label { font-size:21px; }
.batch-quantity { height:90px; }
.batch-quantity input { font-size:50px; }
.batch-quantity input::placeholder { font-size:28px; }
.batch-quantity span { font-size:20px; }
.draft-info { font-size:17px; color:#796354; min-height:42px; padding-block:9px; }
.submit { font-size:21px; min-height:60px; height:auto; padding:15px 12px; }
.saved-notice,.saved-notice button { font-size:18px; }
.saved-notice button { min-height:46px; }
.box-summary b { font-size:48px; }
.box-summary span,.box-summary .record-count { font-size:17px; color:#706371; }
.row-content strong { font-size:20px; overflow-wrap:normal; }
.row-content small { font-size:17px; color:#716572; }
.row-count b { font-size:32px; }
.row-count small { font-size:17px; color:#756776; }
.row-count button { font-size:17px; min-height:48px; min-width:96px; }
.box-footer { font-size:17px; color:#756776; gap:16px; }
.next-box { font-size:18px; min-height:60px; gap:6px; }
.stat label,.stat strong small { font-size:17px; color:#716572; }
.stat strong { font-size:38px; }
.batch-meta,.batch-numbers span,.badge { font-size:17px; }
.badge { flex:none; }
.batch-meta,.batch-numbers span { color:#726775; }
.batch-numbers { gap:36px; }
.batch-numbers strong { font-size:36px; }
.batch-actions { gap:10px; }
.cutoff-actions { flex-wrap:wrap; }
.cutoff-actions .button { flex:1; }
.cutoff-banner strong { font-size:20px; }
.cutoff-banner span,.cutoff-stamp,.cutoff-stamp small { font-size:17px; }
.cutoff-stamp { color:#716571; }
.cutoff-confirm-total strong { font-size:46px; }
.cutoff-confirm-total span { font-size:18px; }
.toolbar select,.toolbar input[type=date],.search input { font-size:18px; min-height:52px; }
.search { min-width:250px; }
.list-head { align-items:flex-start; flex-wrap:wrap; }
.list-head span { font-size:17px; color:#736875; }
.record-line { grid-template-columns:94px minmax(0,1fr) 110px 65px 62px; gap:14px; }
.record-date,.record-date strong,.record-batch,.record-batch b { font-size:17px; }
.record-date,.record-batch { color:#716571; }
.record-product strong { font-size:20px; overflow-wrap:normal; }
.record-product small { font-size:17px; color:#716571; }
.record-qty { font-size:29px; }
.modal { max-width:620px; }
.modal-head h2 { font-size:26px; min-width:0; overflow-x:auto; }
.close { width:42px; height:42px; }
.close svg { width:20px; height:20px; }
.modal-desc,.helper,.export-warning,.export-summary,.download-feedback { font-size:17px; color:#6e6270; }
.export-warning { color:#80541d; }
.field label { font-size:18px; color:#726573; }
.field input,.field select { font-size:20px; height:54px; min-height:54px; }
.edit-count input { font-size:42px; height:84px; }
.advanced-fields summary { font-size:18px; }
.existing-boxes button { font-size:18px; min-height:48px; }
.choice strong { font-size:20px; overflow-wrap:normal; }
.choice small { font-size:17px; color:#736775; }
.choice { min-height:76px; }
.history-item { font-size:18px; }
.history-item small { font-size:16px; color:#716571; }
.export-table { font-size:17px; }
.export-table td { max-width:none; }
.empty { font-size:18px; color:#756975; }
.footer-note { font-size:16px; color:#776c79; }
.footer-note strong { color:#655868; }
#toast { font-size:18px; width:max-content; overflow-x:auto; white-space:nowrap; }
#toast.show { pointer-events:auto; }
/* Long content remains complete: swipe the individual line to read it. */
.page-head .subtitle,.product-name,.product-style,.product-empty strong,
.product-empty span,.attr strong,.draft-info,.row-content strong,.row-content small,
.record-product strong,.record-product small,.record-batch,.batch-meta,
.batch-card-top h2,.modal-desc,.helper,.choice strong,.choice small,
.history-item,.export-warning,.export-summary,.footer-note,.empty,
.cutoff-banner span,.cutoff-stamp small,.advanced-fields summary {
 white-space:nowrap; overflow-x:auto; overflow-wrap:normal; max-width:100%;
 -webkit-overflow-scrolling:touch; scrollbar-width:thin;
}
@media(max-width:1250px) {
 .entry-grid,.batch-grid { grid-template-columns:minmax(0,1fr); }
 .page-head { flex-direction:column; align-items:stretch; gap:16px; }
 .head-actions { flex-direction:row; flex-wrap:wrap; }
 .record-line { grid-template-columns:86px minmax(0,1fr) 58px 62px; gap:12px; }
 .record-batch { grid-column:2; grid-row:2; margin-top:0; }
 .record-date { grid-row:1 / span 2; }
 .record-product { grid-column:2; grid-row:1; }
 .record-qty { grid-column:3; grid-row:1 / span 2; }
 .record-line>.button { grid-column:4; grid-row:1 / span 2; }
}
@media(max-width:760px) {
 .shell { display:block; }
 .sidebar { display:none; }
 .workspace { padding:20px 16px 120px; }
 .topline { align-items:flex-start; flex-direction:column; gap:12px; }
 .topline>.desktop-date { display:none; }
 .mobile-appname { display:flex; align-items:center; font-size:20px; gap:9px; letter-spacing:0; }
 .mobile-appname img { width:36px; height:36px; }
 .status { font-size:16px; }
 .status svg { display:block; width:18px; height:18px; }
 .page-head h1 { font-size:32px; }
 .page-head .subtitle { font-size:18px; max-width:100%; }
 .head-actions { flex-direction:row; gap:10px; }
 .head-actions .button { flex:1; font-size:18px; min-height:50px; padding-inline:12px; }
 .context { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:17px 12px; padding:18px; }
 .context-sep { display:none; }
 .context-button { font-size:22px; gap:6px; }
 .context-cell label { font-size:16px; }
 .context .context-right { grid-column:1/-1; flex-direction:row; align-items:baseline; justify-content:flex-end; width:100%; margin:0; gap:8px; padding-top:12px; border-top:1px solid #e5d8bc; }
 .context-right strong { font-size:32px; }
 .context-right span { font-size:16px; }
 .card-pad { padding:22px 18px; }
 .section-top h2,h2 { font-size:24px; }
 .section-top .button,.quantity-title .button,.box-title .button { font-size:18px; min-height:48px; }
 .identify-tools { flex-wrap:wrap; gap:10px; }
 .identify-tools .scan-button { width:100%; font-size:20px; min-height:54px; gap:10px; }
 .identify-tools .scan-button svg { width:23px; height:23px; }
 .identify-tools .manual { flex-basis:100%; gap:8px; }
 .manual input { font-size:19px; height:54px; padding-inline:12px; }
 .manual .button { font-size:18px; min-height:54px; padding-inline:16px; }
 .product-empty strong { font-size:21px; }
 .product-empty span { font-size:17px; }
 .product-name { font-size:26px; }
 .product-style,.product-eyebrow,.product-eyebrow .button { font-size:17px; }
 .attributes { grid-template-columns:minmax(0,1fr); gap:14px; margin-top:22px; }
 .attr { display:grid; grid-template-columns:54px minmax(0,1fr); gap:12px; align-items:center; }
 .attr label { font-size:17px; margin:0; }
 .attr strong { font-size:21px; }
 .origin-select { font-size:20px; min-height:44px; margin-top:0; width:100%; }
 .quantity-title label { font-size:21px; }
 .batch-quantity { height:88px; }
 .batch-quantity input { font-size:48px; }
 .batch-quantity input::placeholder { font-size:28px; }
 .batch-quantity span { font-size:20px; }
 .draft-info { font-size:17px; }
 .submit { font-size:21px; min-height:60px; }
 .saved-notice,.saved-notice button { font-size:18px; }
 .saved-notice { padding:12px; }
 .saved-notice>span { font-size:17px; }
 .saved-notice>div { margin-left:0; gap:24px; }
 .box-head { padding:22px 18px; }
 .box-title { flex-wrap:wrap; gap:4px 12px; }
 .box-summary { flex-wrap:wrap; gap:8px; }
 .box-summary b { font-size:46px; }
 .box-summary .record-count { margin-left:0; flex-basis:100%; font-size:17px; margin-top:5px; }
 .box-list { padding-inline:18px; }
 .box-row { flex-direction:column; gap:12px; }
 .row-content { width:100%; flex:auto; }
 .row-content strong { font-size:21px; }
 .row-content small { font-size:18px; }
 .row-count { width:100%; display:flex; align-items:center; gap:6px; text-align:left; }
 .row-count b { font-size:32px; }
 .row-count small { font-size:18px; margin:0; }
 .row-count button { font-size:18px; margin:0 0 0 auto; min-height:48px; }
 .box-footer { font-size:18px; flex-direction:column; align-items:stretch; padding:16px 18px; gap:12px; }
 .box-footer>span { overflow-x:auto; }
 .next-box { font-size:18px; min-height:62px; }
 .stats { gap:10px; }
 .stat { padding:18px 12px; }
 .stat label,.stat strong small { font-size:16px; }
 .stat strong { font-size:34px; }
 .batch-card { padding:22px 18px; }
 .batch-card-top { gap:12px; }
 .batch-meta,.batch-numbers span,.badge { font-size:17px; }
 .batch-numbers { justify-content:space-between; gap:16px; }
 .batch-actions { flex-wrap:wrap; }
 .cutoff-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
 .cutoff-actions .button { font-size:18px; min-height:50px; }
 .cutoff-banner { flex-direction:column; align-items:stretch; padding:18px; }
 .cutoff-banner>div { min-width:0; }
 .cutoff-banner .button { font-size:18px; min-height:50px; }
 .cutoff-banner span,.cutoff-stamp,.cutoff-stamp small { font-size:17px; }
 .toolbar select,.toolbar input[type=date],.search input { font-size:18px; min-height:52px; }
 .toolbar select,.toolbar input[type=date],.search { flex-basis:100%; width:100%; min-width:0; }
 .record-line { grid-template-columns:minmax(0,1fr) 76px; gap:12px 16px; padding-block:22px; }
 .record-product { grid-column:1/-1; grid-row:1; }
 .record-product strong { font-size:21px; }
 .record-product small { font-size:17px; }
 .record-date { grid-column:1; grid-row:2; }
 .record-date,.record-date strong { font-size:17px; }
 .record-date strong { display:inline; margin-right:12px; }
 .record-batch { grid-column:1; grid-row:3; margin:0; font-size:17px; }
 .record-batch b { display:inline; font-size:17px; margin-right:10px; }
 .record-qty { grid-column:2; grid-row:2; font-size:30px; }
 .record-line>.button { grid-column:2; grid-row:3; font-size:18px; min-height:48px; }
 .list-head h3 { font-size:21px; }
 .list-head span { font-size:17px; }
 /* Paint one solid bar through the iPhone home-indicator safe area. */
 .bottomnav { position:fixed; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); bottom:0; left:0; right:0; background:#fafafa; border-top:1px solid #dedee5; -webkit-backdrop-filter:none; backdrop-filter:none; padding:10px 13px max(10px,env(safe-area-inset-bottom)); z-index:10; }
 .bottomnav button { display:flex; flex-direction:column; background:transparent; color:#756b78; font-size:17px; font-weight:650; min-height:62px; gap:7px; padding:5px 0; }
 .bottomnav button.active { color:var(--blue); }
 .bottomnav svg { width:25px; height:25px; }
 .modal-backdrop { padding:14px; }
 .modal { padding:24px 18px; max-height:90dvh; border-radius:22px; }
 .modal-head h2 { font-size:25px; }
 .modal-desc,.helper,.export-summary,.export-warning,.download-feedback { font-size:17px; }
 .field label { font-size:18px; }
 .field input,.field select { font-size:20px; min-height:54px; }
 .edit-count input { font-size:42px; }
 .choice { padding:16px 12px; gap:10px; }
 .choice strong { font-size:20px; }
 .choice small { font-size:17px; }
 .export-secondary { flex-direction:column; }
 .export-secondary .button,.modal-actions .button,.edit-secondary .button { font-size:18px; min-height:50px; }
 .modal-actions { flex-wrap:wrap; }
 .modal-actions .button { flex:1; }
 .footer-note { font-size:16px; }
 #toast { bottom:108px; font-size:18px; }
}
@media(max-width:480px) {
 .formgrid { grid-template-columns:minmax(0,1fr); }
 .stats { grid-template-columns:minmax(0,1fr); }
 .stat { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; }
 .stat strong { margin:0; }
 .stat label { font-size:18px; }
 .cutoff-confirm-total { flex-direction:column; align-items:flex-start; gap:8px; }
}

/* Camera assistance and input context remain in the same single-line type scale. */
.capture-tools { display:grid; grid-template-columns:1fr 1fr; gap:10px; width:100%; }
.capture-tools .photo-label { min-height:54px; font-size:19px; background:#f7f2e9; color:#88502c; border-color:#e8dcc8; }
.identify-tools .manual { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.code-label { grid-column:1/-1; font-size:18px; font-weight:650; color:#726573; margin-top:8px; }
.quantity-area,.field,#lookup-form { scroll-margin-block:20px 130px; }
.quantity-context { padding:10px 12px; margin:0 0 10px; border-radius:12px; border:1px solid #eadfc8; background:#fcf9f4; line-height:1.4; }
.quantity-context strong,.quantity-context span { display:block; white-space:nowrap; overflow-x:auto; max-width:100%; }
.quantity-context strong { font-size:20px; color:#463237; }
.quantity-context span { font-size:17px; color:#79634d; }
.origin-reader { margin-top:14px; padding-top:14px; border-top:1px solid #ece5df; }
.origin-reader .photo-label { font-size:18px; min-height:50px; }
.ocr-help,.ocr-status { font-size:17px; line-height:1.7; color:#776758; margin:8px 0; white-space:nowrap; overflow-x:auto; max-width:100%; }
.ocr-status:empty { display:none; }
.label-preview { display:block; width:100%; height:190px; object-fit:contain; background:#f6f4f1; border:1px solid #e7dfd6; border-radius:12px; margin-top:16px; }
.label-preview[hidden],.ocr-review[hidden],.ocr-source[hidden] { display:none; }
.ocr-review { display:grid; gap:14px; margin-top:16px; }
.ocr-review .button { width:100%; }
.ocr-source { margin-top:16px; font-size:17px; color:#776758; }
.ocr-source summary { cursor:pointer; padding-block:12px; }
.ocr-source pre { white-space:pre; overflow:auto; max-height:180px; font:16px/1.7 ui-monospace,monospace; background:#f7f5f2; padding:12px; border-radius:10px; }
.modal-backdrop { align-items:flex-start; -webkit-backdrop-filter:none; backdrop-filter:none; }
.modal { overscroll-behavior:contain; scroll-padding-block:18px; max-height:min(90dvh,var(--modal-available-height,90dvh)); }
.modal-head { scroll-margin-top:16px; }
@media(max-width:760px) {
 .capture-tools .photo-label { font-size:20px; }
 .quantity-context { padding:10px 12px; }
 .quantity-context strong { font-size:20px; }
 .quantity-context span { font-size:17px; }
}
