/* Match the user's established scrap-weighing palette and direct touch controls. */
:root{--ink:#123d50;--muted:#617780;--green:#087963;--pale:#e4f3ed;--line:#dce6e8;--bg:#f2f6f7;--red:#b23e31;color:var(--ink);background:var(--bg)}
body{font-size:15px;line-height:1.5;color:var(--ink)}
.shell{display:block;min-height:100vh}
.sidebar{position:static;inset:auto;width:100%;padding:20px max(24px,calc((100vw - 1120px)/2));display:flex;flex-direction:row;flex-wrap:wrap;gap:12px 24px;background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.brand{color:var(--ink);font-size:17px;gap:12px;flex:1 1 auto}
.brand img{width:44px;height:44px;padding:0;border-radius:0;background:transparent;object-fit:contain}
.brand small{color:var(--muted);font-size:12px;letter-spacing:0;margin-top:3px}
.env{border:0;padding:7px 10px;align-self:center;background:var(--bg);border-radius:7px;gap:8px;color:var(--muted);font-size:12px}
.env span{color:var(--green);font-size:12px;letter-spacing:0}
.sidebar nav{flex:0 0 100%;flex-direction:row;gap:6px;overflow-x:auto;flex-wrap:nowrap;padding:5px 0;scrollbar-width:thin}
.sidebar nav button{background:transparent;color:var(--muted);font-size:14px;padding:10px 14px;border-radius:9px;white-space:nowrap;min-height:44px}
.sidebar nav button.active,.sidebar nav button:hover{background:var(--pale);color:var(--green)}
.legacy-link{color:var(--muted);padding:0;font-size:12px;text-decoration:none}
.legacy-link:hover{text-decoration:underline;color:var(--green)}
.side-foot{display:none}
.workspace{width:100%;margin:0}
.top{min-height:54px;padding:10px max(24px,calc((100vw - 1120px)/2));background:var(--bg);border:0;font-size:12px}
main{max-width:1176px;margin:0 auto;padding:20px 28px 72px}
h1{font-size:27px;line-height:1.3;letter-spacing:-.5px;margin-bottom:8px}
h2{font-size:18px;margin-bottom:14px}h3{font-size:16px}
.page-heading{align-items:center;margin-bottom:22px;gap:16px}
.page-heading p{font-size:13px;max-width:70ch}.page-heading .buttons{margin:0}
.eyebrow{display:none}
button{min-height:46px;border-radius:10px;padding:11px 17px;color:var(--ink);border-color:#c5d5d9;font-weight:600}
button:hover{border-color:#86b7ac;background:#f4faf7}
button.primary{background:var(--green);border-color:var(--green);min-height:50px;color:#fff}
button.primary:hover{background:#075c4d}
button.small{min-height:36px}.buttons{gap:10px;margin-top:16px}
:focus-visible{outline:3px solid #239cca;outline-offset:3px}
input,select,textarea{border-color:#c3d2d7;border-radius:9px;min-height:48px;padding:11px 12px;color:var(--ink);font-size:16px}
input[type=checkbox],input[type=radio]{min-height:20px;accent-color:var(--green)}
label{font-size:14px;color:var(--ink)}
.panel{padding:22px;border-radius:14px;border-color:var(--line);box-shadow:none;margin-bottom:18px}
.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}
.metric{padding:18px 20px;border-radius:12px;border-color:var(--line)}
.metric strong{color:var(--ink);font-size:32px;font-weight:650;margin:8px 0 0;font-variant-numeric:tabular-nums}
.metric span{font-size:13px}
.order-card{border-radius:12px;padding:18px 20px;border-color:var(--line)}
.order-card h3{font-size:17px;margin:6px 0 8px}.id{font-family:inherit;letter-spacing:0;color:var(--muted)}
.prod-sub,.prod-meta{color:var(--muted);font-size:13px}.prod-banner{background:#eaf4f0;border-left:3px solid var(--green);border-radius:0 8px 8px 0;padding:12px 16px;font-size:13px;margin-bottom:18px}
.field-editor{background:#fff;border-color:#bfd5d0;padding:22px;border-radius:12px}
.field-editor h4{font-size:15px}.field-reading{border-top:1px solid var(--line);padding-top:14px}
.badge{font-size:12px;background:#edf3f5;color:#506873;border-radius:6px;padding:5px 9px}
.badge.green{background:var(--pale);color:#075c4d}.badge.red{background:#fff0ed;color:var(--red)}
.empty{padding:30px 20px;border-color:#c5d5d9;color:var(--muted);text-align:left;font-size:14px}
.first-use summary{font-weight:600;cursor:pointer;font-size:15px}.first-use[open] summary{margin-bottom:20px}
.learned-options{gap:8px}.learned-choice button{min-height:44px;background:#f2faf6;border-color:#bcdacf;color:#075c4d;font-size:13px}
.learned-choice small{font-size:11px;color:var(--muted)}
th{font-size:12px;color:var(--muted);background:#f6f9fa}td{font-size:13px}td small{display:block;margin-top:5px}th,td{padding:12px;border-color:var(--line)}
.login{margin:32px auto}.login .panel{padding:26px}.login form>label{margin-bottom:18px}
#toast{background:var(--ink);border-radius:10px}
@media(max-width:700px){
 .sidebar{width:100%;padding:16px 16px 12px;gap:12px}.brand{font-size:16px;flex:1 1 220px}.brand img{width:38px;height:38px}.brand small{font-size:11px}
 .env{position:static;display:flex;right:auto;top:auto;padding:4px 7px;font-size:10px}.env span{display:inline;font-size:10px}
 .sidebar nav{flex-wrap:nowrap;margin:0 -2px}.sidebar nav button{padding:9px 12px;font-size:13px;flex-shrink:0}.legacy-link{font-size:11px}
 .top{padding:10px 16px;align-items:center;min-height:50px}.top #account{max-width:140px}
 main{padding:18px 16px 60px}.page-heading{flex-wrap:wrap;gap:12px}.page-heading h1{font-size:24px}.page-heading .buttons{width:100%}
 .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:16px}.metric strong{font-size:29px}
 .panel{padding:18px}.order-card{padding:16px}.field-editor{padding:16px}.form-grid{gap:16px}
 .buttons button{min-height:48px}.buttons a{min-height:44px;display:inline-flex;align-items:center}.page-heading>a{font-size:13px}
 .prod-output-row,.prod-dimension-row,.field-reading{grid-template-columns:1fr}.learned-choice{width:100%}.learned-choice button{width:100%}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.top{display:none!important}.workspace{width:100%;margin:0}main{padding:0}.panel{break-inside:avoid}}

.q-item{border:1px solid var(--line);border-left:3px solid var(--green);border-radius:10px;padding:18px;margin:16px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:#fff}.q-item>p,.q-item>strong,.q-item>button{grid-column:1/-1}.q-item input,.q-item textarea,.q-item select{width:100%}#q-editor dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:8px}#q-editor dd{margin:0;overflow-wrap:anywhere}#q-editor details{margin:14px 0;padding:12px 0;border-top:1px solid var(--line)}
@media(max-width:700px){.q-item{grid-template-columns:1fr;padding:14px}#q-editor dl{grid-template-columns:1fr}#q-editor dd{margin-bottom:8px}}

/* Material handovers use full touch targets; long identifiers never squeeze labels. */
.material-balance{min-width:560px}.material-balance th,.material-balance td{white-space:nowrap}
@media(max-width:600px){.material-actions{display:grid;grid-template-columns:1fr 1fr}.material-actions button{width:100%;min-height:52px;white-space:normal;word-break:normal}.prod-batch{overflow-wrap:anywhere}}
.output-counts{min-width:650px}.output-counts th,.output-counts td{white-space:nowrap}
/* Reconciliation cards must not grow a mobile grid to the table's intrinsic width. */
.cards>.panel{min-width:0;overflow-wrap:anywhere}.panel .table-wrap{max-width:100%}.output-counts{width:100%}

@media(max-width:600px){#app .cards .output-counts{min-width:0;display:block}#app .cards .output-counts thead{display:none}#app .cards .output-counts tbody{display:block}#app .cards .output-counts tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#app .cards .output-counts td{display:block;white-space:normal;border:0;background:#f1f6f5;padding:10px;border-radius:8px;font-size:18px;font-weight:650}#app .cards .output-counts td::before{content:attr(data-label);display:block;font-size:11px;font-weight:400;color:var(--muted);margin-bottom:4px}}
.pickup-choice{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--line)}.pickup-choice span{overflow-wrap:anywhere;flex:1;min-width:150px}
@media(max-width:700px){.pickup-choice{display:block}.pickup-choice button{width:100%;min-height:48px;margin-top:10px}.buttons button{white-space:normal;overflow-wrap:anywhere}.order-card{min-width:0}.order-card>div{min-width:0;overflow-wrap:anywhere}}

.terminal-actions{flex-wrap:wrap}.terminal-actions>button{flex:1 1 210px;min-height:48px;min-width:180px;text-align:left}.terminal-actions>p{flex-basis:100%}
@media(max-width:700px){.buttons{flex-wrap:wrap}.buttons>button{flex:1 1 140px;min-width:120px;min-height:44px}.terminal-actions{display:grid;grid-template-columns:1fr}.terminal-actions>button{width:100%;min-width:0;padding:16px;text-align:left}.terminal-actions>p{grid-column:1/-1}.order-card{flex-direction:column;align-items:stretch}.order-card>.buttons{width:100%}}
/* Batch references and part numbers can be long; keep the form header inside the viewport. */
.page-heading>div{min-width:0;max-width:100%;overflow-wrap:anywhere}
.form-grid>label{min-width:0}.form-grid input,.form-grid select,.form-grid textarea{min-width:0;max-width:100%}
