:root{
--bg:#F5F1E7;--surface:#FFFFFF;--surface-2:#FBF7EC;--ink:#241F19;--ink-soft:#4E4536;--line:#E4DAC7;
--accent:#96551F;--accent-strong:#6E3D14;--accent-soft:#F1E1CC;--accent-ink:#4A2A0F;
--success:#3F7D52;--success-soft:#DEEEE2;--success-ink:#1F4C2D;
--warning:#9C6414;--warning-soft:#F3E3C3;--warning-ink:#5C3B0C;
--critical:#A5372B;--critical-soft:#F6DEDA;--critical-ink:#6B2018;
--info:#3F5E7C;--info-soft:#DEE6EC;--info-ink:#233A4E;
--confirm:#6B4C8C;--confirm-soft:#E9E0F0;--confirm-ink:#3F2A5C;
--pending:#3F7D74;--pending-soft:#DCEDEA;--pending-ink:#1F4A44;
--schedule:#2C6E8E;--schedule-soft:#DCEBF0;--schedule-ink:#1A4457;
--shadow:0 1px 2px rgba(36,31,25,.06),0 6px 20px rgba(36,31,25,.05);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
--bg:#1E1A13;--surface:#28221A;--surface-2:#241E17;--ink:#EEE6D7;--ink-soft:#C7BCA6;--line:#43392A;
--accent:#DA9E5C;--accent-strong:#F0BE86;--accent-soft:#3A2C1A;--accent-ink:#F4D9B4;
--success:#6FBE87;--success-soft:#213228;--success-ink:#9BDBAC;
--warning:#E3AC55;--warning-soft:#392C17;--warning-ink:#F0C989;
--critical:#E27A6E;--critical-soft:#3B2320;--critical-ink:#F1AA9F;
--info:#8FB0CC;--info-soft:#212D38;--info-ink:#BFD7E8;
--confirm:#B99AD9;--confirm-soft:#322641;--confirm-ink:#D8C4EC;
--pending:#7FC2B8;--pending-soft:#1F3330;--pending-ink:#B7E4DC;
--schedule:#7FB8D6;--schedule-soft:#1E2E38;--schedule-ink:#B7DCEE;
--shadow:0 1px 2px rgba(0,0,0,.25),0 8px 24px rgba(0,0,0,.35);
}}
:root[data-theme="dark"]{
--bg:#1E1A13;--surface:#28221A;--surface-2:#241E17;--ink:#EEE6D7;--ink-soft:#C7BCA6;--line:#43392A;
--accent:#DA9E5C;--accent-strong:#F0BE86;--accent-soft:#3A2C1A;--accent-ink:#F4D9B4;
--success:#6FBE87;--success-soft:#213228;--success-ink:#9BDBAC;
--warning:#E3AC55;--warning-soft:#392C17;--warning-ink:#F0C989;
--critical:#E27A6E;--critical-soft:#3B2320;--critical-ink:#F1AA9F;
--info:#8FB0CC;--info-soft:#212D38;--info-ink:#BFD7E8;
--confirm:#B99AD9;--confirm-soft:#322641;--confirm-ink:#D8C4EC;
--pending:#7FC2B8;--pending-soft:#1F3330;--pending-ink:#B7E4DC;
--schedule:#7FB8D6;--schedule-soft:#1E2E38;--schedule-ink:#B7DCEE;
--shadow:0 1px 2px rgba(0,0,0,.25),0 8px 24px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Public Sans",system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}
.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}
.wrap{max-width:1280px;margin:0 auto;padding:28px 24px 64px}
header.top{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.brand h1{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:30px;margin:0;letter-spacing:-0.01em;text-wrap:balance}
.brand p{margin:2px 0 0;color:var(--ink-soft);font-size:13.5px}
.morning-card .card-head{gap:6px}
.morning-card .card-head h2{font-size:19px}
.morning-card .card-head .mo-date{font-size:12.5px;color:var(--ink-soft);font-weight:500}
.morning-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.mo-clear{margin:0;color:var(--ink-soft);font-size:14px}
.mo-row{display:flex;flex-direction:column;gap:8px;padding:11px 13px;border-radius:10px;background:var(--surface-2)}
.mo-row.mo-critical{background:var(--critical-soft)}
.mo-row.mo-warning{background:var(--warning-soft)}
.mo-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.mo-row.mo-critical .mo-label{color:var(--critical-ink)}
.mo-row.mo-warning .mo-label{color:var(--warning-ink)}
.mo-chips{display:flex;flex-wrap:wrap;gap:8px}
.mo-chip{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:12.5px;color:var(--ink);cursor:pointer}
.mo-chip:hover{border-color:var(--accent);color:var(--accent-strong)}
.mo-sub{color:var(--ink-soft);font-size:11px}
.mo-more{align-self:center;font-size:12px;color:var(--ink-soft)}
@keyframes mo-flash{0%,100%{background:transparent}50%{background:var(--accent-soft)}}
tr.mo-flash{animation:mo-flash 1s ease 2}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:24px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.stat .num{font-family:"Fraunces",Georgia,serif;font-size:26px;font-weight:600;color:var(--accent-strong)}
.stat .num.stat-critical{color:var(--critical-ink)}
.stat .label{font-size:12.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.stat-subnum{font-size:14px;font-weight:500;color:var(--ink-soft)}
.rpt-toggle{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:16px}
.rpt-toggle button{font-family:"Public Sans",sans-serif;font-size:13px;font-weight:600;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);cursor:pointer}
.rpt-toggle button:hover{border-color:var(--accent)}
.rpt-toggle button.active{background:var(--accent);border-color:var(--accent);color:#fff}
.rpt-panel{display:none}
.rpt-panel.active{display:block}
.rpt-panel .stats{margin-bottom:16px}
.rpt-chart{display:flex;align-items:flex-end;gap:12px;padding:22px 18px 18px;overflow-x:auto}
.rpt-bar-col{flex:1;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}
.rpt-bar-count{font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.rpt-bar-track{width:100%;max-width:52px;height:120px;background:var(--surface-2);border-radius:4px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line)}
.rpt-bar-fill{width:100%;background:var(--accent);border-radius:4px 4px 0 0;transition:height .3s ease;min-height:0}
.rpt-bar-label{font-size:10.5px;color:var(--ink-soft);text-align:center;white-space:nowrap}
nav.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}
nav.tabs button{flex-shrink:0;font-family:"Public Sans",sans-serif;font-size:14px;font-weight:600;background:none;border:none;padding:10px 16px;color:var(--ink-soft);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
nav.tabs button.active{color:var(--accent-strong);border-bottom-color:var(--accent)}
.panel{display:none}
.panel.active{display:block}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.card-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.card-head h2{font-family:"Fraunces",Georgia,serif;font-size:18px;margin:0;font-weight:600}
.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
thead th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
tbody td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--surface-2)}
.cust{font-weight:600}
.ref{color:var(--ink-soft);font-size:12px}
.desc{max-width:280px}
.supplier{color:var(--ink-soft);font-size:12px;margin-top:4px}
.notes{color:var(--ink-soft);font-size:12px;margin-top:4px;max-width:300px}
.num{text-align:right}
.col-money{text-align:right;white-space:nowrap}
.subnote{color:var(--ink-soft);font-size:11px}
.margin-pos{color:var(--success-ink)}
.margin-neg{color:var(--critical-ink)}
.overdue-text{color:var(--critical-ink);font-weight:600}
.gantt{padding:18px;display:flex;flex-direction:column;gap:6px}
.gantt-row{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center;min-height:36px}
.gantt-row.gantt-axis{min-height:22px;margin-bottom:6px}
.gantt-label{font-size:12px;line-height:1.35}
.gantt-track{position:relative;height:22px;background:var(--surface-2);border-radius:6px}
.gantt-axis .gantt-track{background:none;height:18px}
.gantt-tick{position:absolute;top:0;bottom:-1000px;width:1px;background:var(--line);z-index:0}
.gantt-tick-label{position:absolute;top:0;font-size:10.5px;color:var(--ink-soft);white-space:nowrap;transform:translateX(3px)}
.gantt-bar{position:absolute;top:0;height:100%;border-radius:6px;display:flex;align-items:center;padding:0 8px;font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-transform:uppercase;letter-spacing:.03em;z-index:1}
.gantt-bar.overdue{outline:2px solid var(--critical);outline-offset:1px}
.gantt-marker{position:absolute;top:50%;width:11px;height:11px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid var(--surface);z-index:1}
.gantt-today-line{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--accent-strong);opacity:.55;z-index:0}
.gantt-legend{display:flex;gap:14px;flex-wrap:wrap;padding:0 18px 14px;font-size:11.5px;color:var(--ink-soft);align-items:center}
.gantt-legend span.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.ink-soft{color:var(--ink-soft)}
.pill{display:inline-block;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;border:1px solid transparent;font-family:"Public Sans",sans-serif}
.pill-estimate-sent{background:var(--info-soft);color:var(--info-ink)}
.pill-confirmed{background:var(--confirm-soft);color:var(--confirm-ink)}
.pill-confirmed-pending-choice{background:var(--pending-soft);color:var(--pending-ink)}
.pill-in-production{background:var(--warning-soft);color:var(--warning-ink)}
.pill-ready-to-deliver{background:var(--accent-soft);color:var(--accent-ink)}
.pill-scheduled-delivery{background:var(--schedule-soft);color:var(--schedule-ink)}
.pill-delivered{background:var(--success-soft);color:var(--success-ink)}
.sd-fields{display:flex;gap:4px;margin-top:6px}
.sd-fields input{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);padding:3px 4px;min-width:0;width:0;flex:1}
.pill-unpaid{background:var(--critical-soft);color:var(--critical-ink)}
.pill-deposit-received{background:var(--warning-soft);color:var(--warning-ink)}
.pill-balance-due{background:var(--warning-soft);color:var(--warning-ink)}
.pill-paid{background:var(--success-soft);color:var(--success-ink)}
.status-pill{display:inline-block;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-top:3px}
.status-pill-scheduled{background:var(--confirm-soft);color:var(--confirm-ink)}
tr.labor-row-scheduled{background:var(--surface-2)}
tr.labor-row-scheduled:hover{background:var(--surface-2)}
.btn-complete-labor{color:var(--success-ink);font-weight:600}
.empty-state{padding:32px 18px;text-align:center;color:var(--ink-soft);font-size:13.5px}
footer.foot{margin-top:28px;color:var(--ink-soft);font-size:12px;text-align:center}
@media (max-width:640px){.wrap{padding:18px 14px 48px}.brand h1{font-size:24px}}

/* ---- interactive-board additions (forms, editing, save status) ---- */
#save-status{font-size:13px;color:var(--ink-soft);display:flex;align-items:center;gap:8px;white-space:nowrap}
#save-status .dot{width:7px;height:7px;border-radius:50%;background:var(--success);display:inline-block}
#save-status.saving .dot{background:var(--warning)}
#save-status.error .dot{background:var(--critical)}
.banner{background:var(--warning-soft);color:var(--warning-ink);border:1px solid var(--warning);border-radius:10px;padding:10px 14px;margin-bottom:18px;font-size:13.5px}
.banner a{color:inherit;font-weight:600}
.setup-card{max-width:640px;margin:60px auto;padding:28px 26px}
.setup-card h2{margin-top:0}
.setup-card ol{padding-left:20px;line-height:1.7}
.setup-card code{background:var(--surface-2);padding:1px 6px;border-radius:5px;font-family:"IBM Plex Mono",monospace;font-size:12.5px}
.editable{cursor:pointer;border-bottom:1px dashed var(--line)}
.editable:hover{background:var(--accent-soft)}
select.stage-select.pill,select.pay-select.pill{cursor:pointer;appearance:none;-webkit-appearance:none;padding-right:22px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 8px) 55%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;opacity:.95}
select.stage-select.pill:hover,select.pay-select.pill:hover{opacity:1}
button.btn-ghost{background:none;border:1px solid var(--line);color:var(--ink-soft);border-radius:8px;padding:5px 10px;font-size:12.5px;cursor:pointer;font-family:"Public Sans",sans-serif}
button.btn-ghost:hover{border-color:var(--accent);color:var(--accent-strong)}
.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:"Public Sans",sans-serif}
.btn-primary:hover{background:var(--accent-strong)}
.btn-primary:disabled{opacity:.5;cursor:default}
form.inline-form{display:grid;gap:10px;padding:16px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}
form.inline-form.grid-4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
form.inline-form.grid-6{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-soft)}
input,select,textarea{font-family:"Public Sans",sans-serif;font-size:13.5px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
textarea{resize:vertical;min-height:38px}
.form-actions{display:flex;gap:8px;align-items:end}
.section-note{padding:12px 18px;font-size:12.5px;color:var(--ink-soft);border-bottom:1px solid var(--line);background:var(--surface-2)}

/* ---- production tracking, order log, scheduled tasks ---- */
td.col-actions{white-space:nowrap;display:flex;gap:6px;flex-wrap:wrap;border-bottom:none}
/* Pin the Edit/Details buttons to the right edge of the Orders table's
   horizontal scroll, so they're always reachable without scrolling all
   the way over — the stage pill can get long and push everything else
   off the visible width. */
#panel-orders td.col-actions,#panel-orders th.col-actions{position:sticky;right:0;background:var(--surface);box-shadow:-6px 0 8px -6px rgba(0,0,0,.18)}
#panel-orders tbody tr:hover td.col-actions{background:var(--surface-2)}
tr.order-detail-row td{padding:0;background:var(--surface-2)}
tr.emp-detail-row td{padding:0;background:var(--surface-2)}
.emp-detail{padding:16px 18px}
.emp-detail h3{font-family:"Fraunces",Georgia,serif;font-size:15px;margin:0 0 8px;font-weight:600}
tr.inv-detail-row td{padding:0;background:var(--surface-2)}
.inv-detail{padding:16px 18px}
.inv-detail h3{font-family:"Fraunces",Georgia,serif;font-size:15px;margin:16px 0 8px;font-weight:600}
.inv-detail>.detail-costs>div>h3:first-child{margin-top:0}
.mo-chip-inline[data-jump]{cursor:pointer;color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}
.mo-chip-inline[data-jump]:hover{color:var(--accent)}
.order-detail{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:18px}
.detail-col{padding:0 16px}
.detail-col:first-child{border-right:1px solid var(--line)}
.detail-col h3{font-family:"Fraunces",Georgia,serif;font-size:15px;margin:0 0 8px;font-weight:600}
.detail-hint{font-size:11.5px;color:var(--ink-soft);margin:0 0 12px}
.item-block{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.item-label{font-weight:600;font-size:13.5px}
.item-head .btn-ghost{margin-left:auto;font-size:11.5px;padding:3px 8px}
.btn-link{background:none;border:none;padding:0;color:var(--accent-strong);font-size:11.5px;font-weight:600;cursor:pointer;font-family:"Public Sans",sans-serif;text-decoration:underline;text-underline-offset:2px}
.btn-link:hover{color:var(--accent)}

/* -- per-item progress: status line, step-number track, jump dropdown -- */
.prod-tracker{display:flex;flex-direction:column;gap:8px}
.prod-status{font-size:11.5px;font-weight:600;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;padding:3px 10px;align-self:flex-start}
.step-track{display:flex;gap:4px;flex-wrap:wrap}
.step-seg{width:24px;height:24px;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);font-size:11px;font-weight:700;font-family:"IBM Plex Mono",monospace;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.step-seg:hover{border-color:var(--accent)}
.step-seg-done{background:var(--success-soft);color:var(--success-ink);border-color:transparent}
.step-seg-current{outline:2px solid var(--accent);outline-offset:1px}
.step-jump-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
select.step-jump{font-size:12px;padding:5px 8px;max-width:220px}
.step-seg-custom{border-style:dashed}

/* -- "which steps apply" checklist, opened on demand, off by default -- */
.step-customize{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-top:2px}
.step-customize .detail-hint{margin-bottom:8px}
.step-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 10px;margin-bottom:10px}
.step-check{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:12px;color:var(--ink);cursor:pointer}
.step-check input{margin:0}
.custom-step-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.custom-step-pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px dashed var(--line);border-radius:999px;padding:3px 6px 3px 10px;font-size:11.5px;color:var(--ink)}
.custom-step-pill button{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:13px;line-height:1;padding:2px 4px}
.custom-step-pill button:hover{color:var(--critical-ink)}
form.inline-form-tight{display:flex;gap:8px;margin-bottom:10px}
form.inline-form-tight input{flex:1;font-size:12.5px;padding:6px 8px}
form.inline-form-tight button{font-size:11.5px;padding:5px 10px;white-space:nowrap}

/* -- compact per-item progress bars shown right on the order row -- */
.prod-summary{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.mini-prog{display:flex;align-items:center;gap:7px;font-size:11px}
.mini-prog-label{color:var(--ink-soft);white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.mini-prog-track{flex:1;min-width:36px;max-width:80px;height:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.mini-prog-fill{display:block;height:100%;background:var(--accent);border-radius:999px}
.mini-prog-fill.mini-prog-complete{background:var(--success)}
.mini-prog-pct{color:var(--ink-soft);font-family:"IBM Plex Mono",monospace;white-space:nowrap}
.mini-prog-empty{color:var(--ink-soft);font-style:italic}

.order-detail form.inline-form{background:transparent;border:none;padding:10px 0}
.log-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.log-row{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px;align-items:baseline}
.log-row:last-child{border-bottom:none}
.log-ts{color:var(--ink-soft);font-size:11px;white-space:nowrap;flex-shrink:0}
.log-msg{color:var(--ink)}
.log-note .log-msg{font-weight:500}
.log-tag{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-strong);background:var(--accent-soft);border-radius:5px;padding:1px 5px;margin-left:4px}
.log-tag-voided{color:var(--critical-ink);background:var(--critical-soft)}
.log-row.log-voided{opacity:.6}
.log-row.log-voided .log-msg{text-decoration:line-through;text-decoration-color:var(--ink-soft)}
.log-row .btn-void-log{margin-left:auto;flex-shrink:0;font-size:11px;padding:2px 9px}
.task-list{display:flex;flex-direction:column;gap:2px}
.task-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.task-row:last-child{border-bottom:none}
.task-check{display:flex;flex-direction:row;align-items:center;gap:8px;flex:1;cursor:pointer}
.task-check input{margin:0}
.task-date{font-size:11.5px;color:var(--ink-soft);white-space:nowrap}
.task-row.task-done .task-check span{text-decoration:line-through;color:var(--ink-soft)}
.task-row.task-muted{opacity:.75}

/* -- labor + materials breakdown, full width under the two detail columns -- */
.detail-full{grid-column:1/-1;padding:16px 16px 4px;margin-top:8px;border-top:1px solid var(--line)}
.detail-costs{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cost-col h3{font-family:"Fraunces",Georgia,serif;font-size:15px;margin:0 0 8px;font-weight:600}
table.detail-mini{font-size:12.5px}
table.detail-mini th,table.detail-mini td{padding:6px 10px}
tr.detail-mini-total td{font-weight:700;border-top:1px solid var(--line);border-bottom:none}
form.quick-log{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin-top:10px;padding:10px;background:var(--surface-2);border-radius:8px}
form.quick-log input,form.quick-log select{font-size:12px;padding:5px 7px;min-width:0}
form.quick-log button{grid-column:1/-1;font-size:11.5px;padding:6px 10px}

/* -- order specifics: fabric style / wood color, each with an N/A toggle -- */
.detail-specs{border-top:none;border-bottom:1px solid var(--line);margin-top:0;padding:14px 16px 18px}
.spec-row{display:flex;gap:20px;flex-wrap:wrap}
.spec-field{display:flex;flex-direction:column;gap:4px;min-width:220px;flex:1}
.spec-field label{font-size:11.5px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.spec-input-row{display:flex;gap:6px;align-items:flex-start}
.spec-input-row .combo{flex:1}
.btn-na-toggle{font-size:11px;padding:5px 10px;white-space:nowrap}
.btn-na-toggle.btn-na-active{background:var(--ink-soft);color:var(--surface);border-color:var(--ink-soft)}

/* -- materials grouped per item, inside "Materials on this order" -- */
.material-item-group{margin-bottom:14px}
.material-item-group h4{font-size:12px;font-weight:700;margin:0 0 4px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em}
.detail-mini-grand-total{text-align:right;font-size:13px;font-weight:700;padding:6px 10px 0}

/* -- simplified item list (production step tracker hidden for now) -- */
.item-block-simple{padding:8px 12px}
.item-block-simple .item-head{margin-bottom:0}
.item-block-simple .item-spec-note{margin-top:4px}

.item-spec-note{font-size:12px;color:var(--ink-soft);margin-bottom:4px}

@media (max-width:760px){.order-detail{grid-template-columns:1fr}.detail-col:first-child{border-right:none;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}.detail-costs{grid-template-columns:1fr;gap:16px}}

/* -- combo: searchable "pick from list, or add new" field -- */
/* wraps a <label>caption</label> + combo as siblings (not caption-inside-label,
   like plain inputs use) — a combo has more than one focusable control inside
   it (the toggle button, the add-new button), and a <label> auto-forwards any
   click within it to the first one, which re-opens the dropdown right after a
   selection; keeping the combo out of the <label> avoids that, while this
   wrapper reproduces the same flex-column caption+control layout. */
.field-combo{display:flex;flex-direction:column;gap:4px}
.combo{position:relative;display:inline-block;width:100%}
.combo-toggle{width:100%;text-align:left;font-family:"Public Sans",sans-serif;font-size:13.5px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}
.combo-placeholder{color:var(--ink-soft)}
.combo-disabled .combo-toggle{background:var(--surface-2);color:var(--ink-soft);font-style:italic;cursor:not-allowed}
.combo-panel{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:220px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:8px;max-height:260px;display:flex;flex-direction:column;gap:6px}
.combo-panel[hidden]{display:none}
.combo-search{width:100%;font-size:12.5px;padding:6px 8px}
.combo-options{overflow-y:auto;max-height:170px;display:flex;flex-direction:column}
.combo-option{padding:6px 8px;font-size:13px;border-radius:6px;cursor:pointer}
.combo-option:hover{background:var(--surface-2)}
.combo-empty{padding:6px 8px;font-size:12px;color:var(--ink-soft)}
.combo-add-new{align-self:flex-start;background:none;border:none;padding:4px 8px;color:var(--accent-strong);font-size:12px;font-weight:600;cursor:pointer;font-family:"Public Sans",sans-serif}

/* -- item stock hint + inline "order this item" form on each item block -- */
.item-stock-hint{font-size:12px;color:var(--ink-soft);margin-bottom:4px}
.item-stock-hint .btn-link{margin-left:4px}

/* -- multi-item checkboxes on Log Hours (an entry can tag more than one item) -- */
.item-check-list{display:flex;flex-wrap:wrap;gap:4px 14px;padding:4px 0}
.item-check-list-inline{grid-column:1/-1;padding-top:2px}
.item-check-row{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink-soft);cursor:pointer}

/* -- purchase orders tab -- */
.po-alloc-toggle{padding:0 18px 10px}
#po-alloc-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:0 18px 14px}
.po-group{margin-bottom:18px}
.po-group:last-child{margin-bottom:0}
.po-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 8px;flex-wrap:wrap}
.po-group-head h4{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}
.form-po-group-status{display:flex;gap:6px;align-items:center}
.form-po-group-status select{font-size:12px;padding:5px 7px}
.form-po-group-status button{font-size:11.5px;padding:5px 9px}
.pill-po-ordered{background:var(--info-soft);color:var(--info-ink)}
.pill-po-in-transit{background:var(--warning-soft);color:var(--warning-ink)}
.pill-po-arrived{background:var(--success-soft);color:var(--success-ink)}
select.po-status-select{border:none;font-weight:600;cursor:pointer}

/* -- items & inventory tab -- */
.inv-search{max-width:280px}
