
:root{
 --bg:#0d1014; --panel:#151a20; --panel2:#1b2129; --line:#2b323c;
 --text:#f6f7f9; --muted:#929aa6; --orange:#ff6a00; --orange2:#ff9633;
 --good:#43c17a; --warn:#f4b942; --bad:#f05c63; --blue:#48a8ff;
}
*{box-sizing:border-box} html{background:var(--bg)} body{margin:0;background:var(--bg);color:var(--text);font-family:Poppins,Inter,system-ui,-apple-system,Segoe UI,sans-serif}
a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.sidebar{background:#0a0d11;border-right:1px solid var(--line);padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 20px}.fox{width:48px;height:48px;border:1px solid #5f452e;background:linear-gradient(145deg,#19120d,#0f1114);border-radius:14px;display:grid;place-items:center;font-size:28px;box-shadow:inset 0 0 24px rgba(255,106,0,.12)}
.wordmark{font-weight:900;font-size:20px;letter-spacing:.02em}.wordmark b{color:var(--orange)}.tag{font-size:9px;color:var(--muted);letter-spacing:.12em;margin-top:3px}
.navgroup{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#646d79;margin:18px 10px 7px}.nav a{display:flex;gap:10px;align-items:center;padding:10px 11px;border-radius:9px;color:#c6ccd4;margin:2px 0}.nav a:hover,.nav a.active{background:#1b2027;color:#fff}.nav a.active{border-left:3px solid var(--orange)}
main{padding:26px 28px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{font-size:28px;margin:0}.small{color:var(--muted);font-size:13px}.kitsu{background:linear-gradient(90deg,rgba(255,106,0,.12),rgba(255,106,0,.02));border:1px solid rgba(255,106,0,.25);border-radius:14px;padding:13px 16px;display:flex;gap:12px;align-items:center;max-width:560px}
.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(5,minmax(130px,1fr))}.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:14px;padding:16px}.kpi .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.kpi .value{font-size:28px;font-weight:850;margin:5px 0}.accent{color:var(--orange)}
.two{grid-template-columns:1.2fr .8fr;margin-top:14px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title h2{font-size:17px;margin:0}
table{width:100%;border-collapse:collapse}th{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px;border-bottom:1px solid var(--line)}td{padding:11px 10px;border-bottom:1px solid #252c34;font-size:13px}tr:hover td{background:#171d24}
.badge{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:750}.ok{background:rgba(67,193,122,.12);color:#64db94}.warning{background:rgba(244,185,66,.12);color:#ffd16c}.danger{background:rgba(240,92,99,.12);color:#ff858b}.info{background:rgba(72,168,255,.12);color:#79bcff}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.search,.select,.number{background:#11161c;border:1px solid var(--line);color:#fff;padding:9px 11px;border-radius:9px}.search{min-width:280px}.number{width:76px}.btn{background:var(--orange);border:0;color:#fff;padding:9px 12px;border-radius:8px;font-weight:750;cursor:pointer}.btn.secondary{background:#252c35}.btn:hover{filter:brightness(1.08)}
.list{display:flex;flex-direction:column;gap:8px}.listitem{padding:11px;border:1px solid var(--line);background:#12171d;border-radius:10px}.listitem strong{display:block;margin-bottom:3px}.muted{color:var(--muted)}
.product-name{font-weight:700}.sku{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--orange2);font-size:11px}
.coverage{height:7px;background:#252b33;border-radius:999px;overflow:hidden;margin-top:9px}.coverage span{display:block;height:100%;background:var(--orange)}
.recipe-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}.recipe-card h3{margin:0 0 4px}.recipe-card .colour{color:var(--orange2);font-weight:750}.recipe-card code{font-size:10px;color:#b7bec8;word-break:break-all}
.footer-note{margin-top:20px;color:#69727e;font-size:11px}
@media(max-width:1050px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.kpis{grid-template-columns:repeat(2,1fr)}.two,.recipe-grid{grid-template-columns:1fr}}

/* PLA Forge v0.2 - Build Plate Planner */
.planner-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.8fr);gap:14px;align-items:start}
.sticky-panel{position:sticky;top:18px}
.form-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:9px;margin-bottom:12px}
.form-field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}
.form-field input,.form-field select{width:100%;background:#11161c;border:1px solid var(--line);color:#fff;padding:10px;border-radius:9px}
.current-plate{display:flex;flex-direction:column;gap:8px;min-height:160px}
.plate-line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px;background:#10151b;border:1px solid var(--line);border-radius:10px}
.plate-line code{display:block;color:#777f8a;font-size:9px;margin-top:4px;word-break:break-all}
.plate-line-right{display:flex;gap:8px;align-items:center;white-space:nowrap}
.iconbtn{border:1px solid var(--line);background:#242b33;color:#fff;border-radius:7px;padding:5px 9px;cursor:pointer}.iconbtn:hover{background:#323b46}
.empty-state{padding:24px;text-align:center;color:var(--muted);border:1px dashed #303944;border-radius:10px}
.plate-summary{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:11px;margin-top:12px}
.plate-buttons{display:flex;gap:8px;margin-top:10px}.plate-buttons .btn{flex:1}
.extra-part{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.extra-grid{display:grid;grid-template-columns:1fr 1fr 85px auto;gap:7px}
.saved-plates{display:flex;flex-direction:column;gap:10px}
.saved-plate{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:13px}
.saved-plate-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.saved-plate-items{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.saved-plate-items span{font-size:10px;color:#b9c0c8;background:#20262e;border-radius:999px;padding:4px 7px}
.plate-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.btn.ghost{background:transparent;border:1px solid var(--line);color:#cdd2d9}
.completion-panel:empty{display:none}.completion-box{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.completion-line{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid #242b33}.completion-line label{display:flex;gap:6px;align-items:center}
.dimrow{opacity:.55}.kpis.four{grid-template-columns:repeat(4,minmax(130px,1fr))}
@media(max-width:1100px){.planner-layout{grid-template-columns:1fr}.sticky-panel{position:relative;top:auto}.form-row{grid-template-columns:1fr}.extra-grid{grid-template-columns:1fr}.kpis.four{grid-template-columns:repeat(2,1fr)}}

.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.settings-form .wide{grid-column:1/-1}
.settings-form input,.settings-form select{width:100%;background:#11161c;border:1px solid var(--line);color:#fff;padding:10px;border-radius:9px}
@media(max-width:900px){.settings-grid,.settings-form{grid-template-columns:1fr}}

/* v0.2.2 form controls */
input, select, textarea{
  appearance:none;
  -webkit-appearance:none;
  background:#10151b !important;
  color:#f6f7f9 !important;
  border:1px solid #303944 !important;
  border-radius:10px !important;
  padding:10px 12px !important;
  outline:none;
  box-shadow:none !important;
}
input::placeholder, textarea::placeholder{color:#68717d}
input:focus, select:focus, textarea:focus{
  border-color:#ff6a00 !important;
  box-shadow:0 0 0 3px rgba(255,106,0,.12) !important;
}
select{
  background-image:
    linear-gradient(45deg,transparent 50%,#aeb6c0 50%),
    linear-gradient(135deg,#aeb6c0 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  padding-right:34px !important;
}
option{background:#151a20;color:#f6f7f9}
.settings-message{min-height:28px;display:flex;align-items:center;margin-top:10px}
.printer-help{padding:12px 14px;border-radius:10px;background:rgba(255,106,0,.08);border:1px solid rgba(255,106,0,.2);margin-bottom:14px}

/* v0.2.3 inline extra-stock controls */
.addextra{white-space:nowrap;border-color:rgba(255,106,0,.35)!important;color:#ff9633!important}
.addextra:hover{background:rgba(255,106,0,.12)!important}

/* v0.2.4 inline exact-part picker */
.exact-row td{background:#101419!important;padding:0 12px 12px!important}
.exact-part-panel{
 display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) 110px auto;
 gap:10px;align-items:center;padding:12px;border:1px solid rgba(255,106,0,.22);
 border-radius:10px;background:rgba(255,106,0,.045)
}
.exactpart{white-space:nowrap}
@media(max-width:1000px){.exact-part-panel{grid-template-columns:1fr}}

/* v0.2.7 colour demand / Kitsu print queue */
.colour-demand-section{overflow:hidden}
.colour-demand-grid{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
 gap:10px;
 margin-top:12px
}
.colour-demand-card{
 appearance:none;
 text-align:left;
 cursor:pointer;
 background:linear-gradient(180deg,#171d24,#11161c);
 border:1px solid #303944;
 border-radius:12px;
 padding:14px;
 color:var(--text);
 transition:.15s ease;
}
.colour-demand-card:hover{
 transform:translateY(-1px);
 border-color:rgba(255,106,0,.55);
 background:linear-gradient(180deg,#1d2229,#15191f)
}
.colour-demand-card.selected{
 border-color:var(--orange);
 box-shadow:0 0 0 2px rgba(255,106,0,.11);
}
.colour-demand-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.colour-demand-top strong{font-size:14px}
.colour-demand-top span{font-size:10px;background:#242b33;border-radius:999px;padding:4px 7px;color:#cbd1d8}
.colour-demand-number{font-size:25px;font-weight:850;margin:12px 0 2px;color:var(--orange)}
.colour-demand-action{font-size:11px;color:var(--orange2);margin-top:11px;font-weight:750}

/* v0.2.8 granular print completion */
.completion-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.completion-item{background:#11161c;border:1px solid var(--line);border-radius:11px;padding:12px;margin:10px 0}
.completion-item-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.completion-planned{font-size:12px;color:var(--muted)}
.completion-controls{display:flex;align-items:flex-end;gap:10px;margin-top:12px;flex-wrap:wrap}
.completion-controls label{display:flex;flex-direction:column;gap:5px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.part-problem-panel{margin-top:12px;padding:11px;border-radius:9px;border:1px solid rgba(255,106,0,.22);background:rgba(255,106,0,.04)}
.part-failure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.part-failure-row{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#171d24;padding:8px 9px;border-radius:8px}
.part-failure-row span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#c4cad2;word-break:break-all}
.completion-summary-note{padding:11px;border-radius:9px;background:#191c20;border:1px solid #303640;margin:12px 0}

/* v0.3.0 Assembly */
.assembly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:11px;margin-top:12px}
.assembly-card{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:13px}
.assembly-card.ready{border-color:rgba(56,190,112,.35)}
.assembly-card.not-ready{opacity:.68}
.assembly-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.assembly-parts{margin:12px 0;display:flex;flex-direction:column;gap:5px}
.assembly-part{display:flex;justify-content:space-between;gap:10px;background:#171d24;border-radius:7px;padding:7px 8px;font-size:10px}
.assembly-part span{color:#aeb6c0}
.assembly-actions{display:flex;justify-content:flex-end;align-items:flex-end;gap:8px;border-top:1px solid #252c34;padding-top:10px}
.assembly-actions label{display:flex;align-items:center;gap:7px}
.assembly-actions .number{width:65px}
button:disabled,input:disabled{opacity:.4;cursor:not-allowed}

/* v0.3.1 The Bench layout */
.bench-main{min-width:0;width:100%;max-width:none!important}
.bench-topbar{width:100%}
.bench-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.bench-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 210px;gap:10px;margin:14px 0}
.bench-toolbar .search,.bench-toolbar .select{width:100%}
.bench-queue,.bench-history{width:100%;box-sizing:border-box}
.bench-history{margin-top:14px}
.assembly-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.assembly-card{min-width:0}
.assembly-part span{min-width:0;overflow-wrap:anywhere}
@media(max-width:1250px){.assembly-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:850px){
 .bench-kpis,.assembly-grid{grid-template-columns:1fr!important}
 .bench-toolbar{grid-template-columns:1fr}
}

/* v0.3.2 Bench Ready / Awaiting */
.ready-section{border-color:rgba(67,193,122,.22)}
.awaiting-section{margin-top:14px;border-color:rgba(244,185,66,.18)}
.awaiting-note{border-top:1px solid #252c34;padding-top:10px;margin-top:10px;color:var(--muted)}
.assembly-part.missing{border:1px solid rgba(244,185,66,.18);background:rgba(244,185,66,.045)}
.assembly-part.missing strong{color:var(--warn)}
.bench-empty{grid-column:1/-1;padding:26px;text-align:center;color:var(--muted);border:1px dashed #303944;border-radius:10px}

/* v0.4.0 Box Production */
.box-card{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:13px}
.box-card.low{border-color:rgba(244,185,66,.28)}
.box-card.urgent{border-color:rgba(255,106,0,.58);box-shadow:inset 0 0 0 1px rgba(255,106,0,.08)}
.box-stock-number{font-size:28px;font-weight:850;margin-top:14px}.box-stock-number span{font-size:13px;color:var(--muted);font-weight:600}
.box-progress{height:5px;background:#252c34;border-radius:10px;margin:10px 0 13px;overflow:hidden}.box-progress span{display:block;height:100%;background:var(--orange)}
.box-actions{border-top:1px solid #252c34;margin-top:12px;padding-top:11px;display:flex;gap:9px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.box-actions label{display:flex;gap:6px;align-items:center}.box-actions .number{width:65px}

.availability-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 210px;gap:10px;margin:14px 0}
.availability-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.availability-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px 180px 130px;gap:12px;align-items:center;background:#11161c;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.availability-row label{display:flex;flex-direction:column;gap:4px}
@media(max-width:900px){.availability-row{grid-template-columns:1fr 1fr}.availability-toolbar{grid-template-columns:1fr}}

/* v0.4.2 Product Availability inside Settings */
.settings-availability{width:100%}
.settings-availability-kpis{margin-top:12px}
.settings-availability .nested-kpi{background:#11161c}
.settings-availability .availability-toolbar{margin-top:14px}
.settings-availability .availability-row{
  grid-template-columns:minmax(230px,1fr) 150px 180px 130px;
}
@media(max-width:900px){
  .settings-availability .availability-row{grid-template-columns:1fr 1fr}
}

/* v0.4.3 Pals on-sale priority */
.on-sale-row td:first-child{border-left:2px solid var(--orange)}

/* v0.5.0 Insert Production */
.insert-card{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:13px;min-width:0}
.insert-card.low{border-color:rgba(244,185,66,.28)}
.insert-card.urgent{border-color:rgba(240,92,99,.45)}
.insert-stock-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}
.insert-stock-grid>div{background:#171d24;border-radius:8px;padding:8px}
.insert-stock-grid span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.insert-stock-grid strong{display:block;font-size:20px;margin-top:3px}
.insert-pipeline{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0 13px}
.insert-pipeline div{font-size:9px;color:#66707b;background:#151a20;border:1px solid #292f37;border-radius:7px;padding:6px;text-align:center}
.insert-pipeline div span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#232a32;margin-right:3px}
.insert-pipeline .active{color:#ffd16c;border-color:rgba(244,185,66,.25)}
.insert-pipeline .complete{color:#64db94;border-color:rgba(67,193,122,.25)}
.insert-actions{display:flex;flex-direction:column;gap:8px}
.insert-action-block{border-top:1px solid #252c34;padding-top:10px}
.insert-action-block>strong{font-size:11px}
.insert-action-row{display:flex;gap:7px;align-items:center;margin-top:8px;flex-wrap:wrap}
.insert-action-row .number{width:68px}
.insert-action-row .btn{white-space:nowrap}
@media(max-width:850px){.insert-stock-grid{grid-template-columns:1fr}.insert-pipeline{grid-template-columns:1fr}}

/* PLA Forge v0.5.1 Insert Production deployment hotfix */

/* v0.5.2 split Insert Production workstations */
.insert-workstations{
 display:grid;
 grid-template-columns:minmax(0,1fr) minmax(0,1fr);
 gap:14px;
 align-items:start;
}
.insert-workstation{min-width:0}
.print-workstation{border-color:rgba(255,106,0,.22)}
.cut-workstation{border-color:rgba(244,185,66,.22)}
.insert-column-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.insert-job-card{
 background:#11161c;
 border:1px solid var(--line);
 border-radius:11px;
 padding:12px;
 min-width:0;
}
.print-job{border-left:3px solid var(--orange)}
.cut-job{border-left:3px solid #c69a31}
.insert-job-stats{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:6px;
 margin:12px 0;
}
.insert-job-stats>div{
 background:#171d24;
 border-radius:7px;
 padding:8px;
}
.insert-job-stats span{
 display:block;
 font-size:8px;
 text-transform:uppercase;
 letter-spacing:.05em;
 color:var(--muted);
}
.insert-job-stats strong{
 display:block;
 font-size:18px;
 margin-top:3px;
}
.insert-file-name{
 font-size:9px;
 color:var(--muted);
 margin:8px 0;
}
.compact-label{
 display:flex;
 flex-direction:column;
 gap:4px;
 font-size:9px;
 text-transform:uppercase;
 color:var(--muted);
}
.cut-score-hero{
 display:flex;
 align-items:center;
 gap:12px;
 padding:15px 0;
}
.cut-score-number{
 width:52px;
 height:52px;
 border-radius:12px;
 display:grid;
 place-items:center;
 font-size:24px;
 font-weight:850;
 background:rgba(244,185,66,.08);
 border:1px solid rgba(244,185,66,.2);
 color:#ffd16c;
}
@media(max-width:1050px){
 .insert-workstations{grid-template-columns:1fr}
}

/* v0.6.0 Consumables */
.consumable-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.consumable-card{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:13px}
.consumable-card.low{border-color:rgba(240,92,99,.45)}
.consumable-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.consumable-stock{font-size:32px;font-weight:850;margin-top:15px}
.consumable-meter{height:5px;border-radius:99px;background:#252c34;overflow:hidden;margin:10px 0 13px}
.consumable-meter span{display:block;height:100%;background:var(--orange)}
.consumable-settings{display:flex;flex-direction:column;gap:8px;border-top:1px solid #252c34;padding-top:10px}
.consumable-settings label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:9px;text-transform:uppercase;color:var(--muted)}
.consumable-settings .number{width:75px}
.consumable-adjust{display:flex;gap:6px;margin-top:8px}
@media(max-width:1250px){.consumable-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.consumable-grid{grid-template-columns:1fr}}
.packing-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.packing-card{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:14px}.packing-checks{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.packing-checks span{background:#171d24;border:1px solid #252c34;border-radius:7px;padding:6px 8px;font-size:9px;color:var(--muted)}.packing-steps{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;margin:12px 0}.packing-steps div{min-height:66px;background:#151a20;border:1px solid #292f37;border-radius:8px;padding:7px;color:#68727d;font-size:9px}.packing-steps b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#252c34;margin-bottom:6px}.packing-steps span{display:block}.packing-steps .active{border-color:var(--orange);color:#fff}.packing-steps .active b{background:var(--orange);color:#fff}.packing-steps .done{border-color:rgba(67,193,122,.28);color:#64db94}.packing-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:1100px){.packing-steps{grid-template-columns:repeat(4,1fr)}}
/* v0.6.2 barcode label + printer role */
.printer-role-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:12px}
.printer-role-row label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em}
.printer-role-row select,.printer-role-row input{background:#10151b;color:#fff;border:1px solid var(--line);border-radius:8px;padding:10px}
@media(max-width:800px){.printer-role-row{grid-template-columns:1fr}}

/* v0.6.3 Assembly gate for Packing Station */
.packing-two-sections{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
.packing-section{min-width:0}
.ready-section{border-color:rgba(67,193,122,.22)}
.awaiting-section{border-color:rgba(244,185,66,.22)}
.stock-good{color:#64db94!important;border-color:rgba(67,193,122,.25)!important}
.stock-bad{color:#ff858a!important;border-color:rgba(240,92,99,.3)!important}
.packing-blockers{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #252c34}
.packing-blockers span{font-size:9px;color:#ffd16c;background:rgba(244,185,66,.07);border:1px solid rgba(244,185,66,.18);padding:6px 8px;border-radius:7px}
.awaiting-pack-card{opacity:.9}
@media(max-width:1150px){.packing-two-sections{grid-template-columns:1fr}}

/* v0.6.4 Batch Packing */
.batch-pack-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#171d24;border:1px solid #292f37;border-radius:9px;padding:10px 12px;margin:12px 0}
.batch-qty{display:flex;align-items:center;gap:6px}.batch-qty .number{width:64px;text-align:center;font-size:16px;font-weight:800}
.packing-steps em{display:block;margin-top:6px;font-style:normal;font-weight:800;color:var(--orange);font-size:10px}
.destination-label{display:flex;flex-direction:column;gap:4px;font-size:9px;text-transform:uppercase;color:var(--muted)}.destination-label select{background:#10151b;color:#fff;border:1px solid var(--line);border-radius:8px;padding:9px}.batch-pack-bar{gap:14px;flex-wrap:wrap}.dispatch-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.delivery-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.delivery-card{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;background:#11161c;border:1px solid var(--line);border-radius:10px;padding:11px}.received-delivery{border-color:rgba(67,193,122,.22)}@media(max-width:900px){.dispatch-columns{grid-template-columns:1fr}}
/* v0.7.1 Dispatch allocation */
.dispatch-choice-card{grid-template-columns:minmax(0,1fr) auto minmax(300px,auto)}
.dispatch-choice{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:900px){.dispatch-choice-card{grid-template-columns:1fr auto}.dispatch-choice{grid-column:1/-1;justify-content:flex-start}}

/* v0.7.3 Packing Awaiting = Production Planner packaging blockers only */
.awaiting-pack-card .packing-blockers{margin-top:10px}

/* v0.7.4 Grouped dispatch allocation */
.dispatch-pal-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.dispatch-pal-card{background:#11161c;border:1px solid var(--line);border-radius:12px;padding:14px}
.dispatch-pal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.dispatch-ready-total{text-align:right}.dispatch-ready-total span{display:block;font-size:9px;text-transform:uppercase;color:var(--muted)}.dispatch-ready-total strong{font-size:30px;color:var(--orange)}
.dispatch-location-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}
.dispatch-location-card{background:#171d24;border:1px solid #292f37;border-radius:10px;padding:11px}
.dispatch-location-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}
.dispatch-stock-line{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:10px;color:var(--muted)}
.dispatch-stock-line strong{color:#fff}.dispatch-stock-line.need-line{border-top:1px solid #292f37;margin-top:4px;padding-top:8px}.dispatch-stock-line.need-line strong{color:var(--orange)}
.dispatch-qty-label{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #292f37;margin-top:8px;padding-top:9px;font-size:9px;text-transform:uppercase;color:var(--muted)}
.dispatch-qty-label .number{width:80px;font-size:17px;font-weight:800;text-align:center}
.dispatch-allocation-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #252c34;margin-top:12px;padding-top:11px}
.dispatch-allocation-summary{font-size:10px;color:var(--muted)}
.danger-text{color:#ff858a}
@media(max-width:850px){.dispatch-location-grid{grid-template-columns:1fr}.dispatch-allocation-footer{align-items:stretch;flex-direction:column}}

/* v0.7.5 Bench remaining production need */
.assembly-demand-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}
.assembly-demand-strip span{background:#171d24;border:1px solid #252c34;border-radius:7px;padding:7px 8px;font-size:9px;color:var(--muted)}
.assembly-demand-strip strong{display:block;color:#fff;font-size:14px;margin-top:2px}
.assembly-demand-strip strong.accent{color:var(--orange)}
@media(max-width:750px){.assembly-demand-strip{grid-template-columns:1fr}}

/* v0.7.6 Insert Inventory */
#insertInventory td:nth-child(n+2){text-align:center}
#insertInventory td:nth-child(3){font-weight:800;color:#64db94}
#insertInventory td:nth-child(5){font-weight:800;color:var(--orange)}

/* v0.7.7 Insert Inventory simplified */
#insertInventory td:nth-child(2){text-align:center;font-weight:800;color:#64db94}

/* v0.8.0 clean reset */
.danger-zone-card{border-color:rgba(240,92,99,.35)}
.reset-data-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:10px}
.btn.danger{background:#8f2d32;border-color:#b9474d;color:#fff}
@media(max-width:800px){.reset-data-row{align-items:stretch;flex-direction:column}}

/* v0.8.3 Cornwall delivery quality check */
.qc-delivery-card{display:block}
.delivery-main{margin-bottom:12px}
.delivery-qc{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.delivery-qc label{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#171d24;border:1px solid #292f37;border-radius:9px;padding:10px;font-size:9px;text-transform:uppercase;color:var(--muted)}
.delivery-qc label .number{width:90px;font-size:17px;font-weight:800;text-align:center}
.delivery-qc-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #252c34;margin-top:12px;padding-top:10px}
.qc-summary{line-height:1.35}
@media(max-width:750px){.delivery-qc{grid-template-columns:1fr}.delivery-qc-footer{align-items:stretch;flex-direction:column}}

/* v0.8.4 damage routing */
.damage-breakdown{margin-top:12px;padding:11px;background:#151a20;border:1px solid rgba(240,92,99,.25);border-radius:10px}
.damage-breakdown-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.damage-issue-list{display:flex;flex-direction:column;gap:7px}
.damage-issue-row{display:grid;grid-template-columns:minmax(180px,1fr) 90px auto;gap:7px;align-items:center}
.damage-issue-row select{background:#10151b;color:#fff;border:1px solid var(--line);border-radius:8px;padding:9px}
.damage-rework-section{border-color:rgba(240,92,99,.24)}
.damage-rework-card{border-left:3px solid #d9535b}
.damage-route-title{font-weight:800;margin:10px 0;color:#ffd16c}
.damage-production-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.damage-production-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,1fr) auto;gap:10px;align-items:center;background:#11161c;border:1px solid var(--line);border-radius:9px;padding:10px}
@media(max-width:700px){.damage-issue-row,.damage-production-row{grid-template-columns:1fr}}

/* v0.8.6 per-item damage classification */
.damaged-items-list{display:flex;flex-direction:column;gap:10px}
.damaged-item-card{background:#11161c;border:1px solid #303740;border-radius:10px;padding:11px}
.damaged-item-card.writeoff-item{border-color:rgba(240,92,99,.45)}
.damaged-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.damage-toggle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.damage-toggle{display:flex;align-items:center;gap:8px;background:#171d24;border:1px solid #303740;border-radius:8px;padding:9px;cursor:pointer;font-size:10px}
.damage-toggle input{accent-color:var(--orange)}
.damage-toggle.selected{border-color:var(--orange);background:rgba(255,106,0,.07);color:#fff}
.damage-toggle.writeoff-toggle.selected{border-color:#d9535b;background:rgba(217,83,91,.08)}
.damage-toggle:has(input:disabled){opacity:.45;cursor:not-allowed}
@media(max-width:950px){.damage-toggle-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.damage-toggle-grid{grid-template-columns:1fr}}

/* v0.8.7 Rework Centre */
.rework-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.rework-card{background:#11161c;border:1px solid var(--line);border-radius:11px;padding:13px}
.rework-card.ready{border-color:rgba(67,193,122,.3)}
.rework-card.waiting{border-color:rgba(244,185,66,.25)}
.rework-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.rework-issue,.rework-route{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #252c34;margin-top:9px;font-size:10px}
.rework-issue span,.rework-route span{color:var(--muted)}
.rework-issue strong,.rework-route strong{text-align:right}
.rework-route strong{color:var(--orange)}
.rework-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #252c34;margin-top:10px;padding-top:10px}
@media(max-width:900px){.rework-list{grid-template-columns:1fr}}

/* v0.8.8 split rework routes */
.cornwall-spares-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.cornwall-spare-card{background:#11161c;border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:9px}
.cornwall-spare-card label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px;text-transform:uppercase;color:var(--muted)}
.cornwall-spare-card select{background:#10151b;color:#fff;border:1px solid var(--line);border-radius:8px;padding:9px}
.spare-add-row{display:flex;gap:7px}.spare-add-row .number{width:90px}
.rework-card.in-dispatch{border-color:rgba(76,151,255,.3)}
.dispatch-locked-route{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.dispatch-locked-route>div{background:#171d24;border:1px solid #292f37;border-radius:8px;padding:10px}
.dispatch-locked-route span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;margin-bottom:4px}
.rework-dispatch-card{border-color:rgba(76,151,255,.35)}
@media(max-width:800px){.cornwall-spares-grid,.dispatch-locked-route{grid-template-columns:1fr}}

/* v0.8.9 Cornwall spare stock controls */
.cornwall-current-stock{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#171d24;border:1px solid #292f37;border-radius:9px;padding:10px}
.cornwall-current-stock span{font-size:9px;text-transform:uppercase;color:var(--muted)}
.cornwall-current-stock strong{font-size:22px;color:#fff}

/* v0.8.10 Rework layout + Cornwall factory alerts */
.grid.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cornwall-factory-alert{margin:12px 0;background:#11161c;border:1px solid #2b333d;border-radius:10px;padding:11px}
.factory-alert-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.factory-alert-items{display:flex;flex-direction:column;gap:6px;margin-top:9px}
.factory-alert-items>div{display:flex;justify-content:space-between;gap:12px;background:rgba(240,92,99,.06);border:1px solid rgba(240,92,99,.18);border-radius:7px;padding:7px 9px}
.factory-alert-items strong{color:#ff858a}
.factory-alert-ok{display:flex;align-items:center;gap:9px}
.cornwall-current-stock.low-stock{border-color:rgba(240,92,99,.45);background:rgba(240,92,99,.06)}
.cornwall-current-stock.low-stock strong{color:#ff858a}
.low-spare-row td{background:rgba(240,92,99,.025)}
.factory-spare-row{border-color:rgba(240,92,99,.25)}
@media(max-width:900px){.grid.kpis.three{grid-template-columns:1fr}}

/* v0.8.11 Cornwall insert replenishment flow */
.factory-spare-row .badge.info{white-space:nowrap}
.rework-dispatch-card .dispatch-ready-total span{white-space:nowrap}

/* v0.8.12 Cornwall insert target stock */
.low-spare-row td:nth-child(2) strong{color:#ff858a}

/* v0.8.15 Build Plate checklist */
.checklist-search-row{margin:10px 0 12px}
.checklist-search-row .search{width:100%}
.plate-checklist-scroll{overflow:auto;max-height:330px;border:1px solid var(--line);border-radius:9px}
.plate-checklist-scroll table{margin:0;min-width:1050px}
.plate-checklist-scroll thead th{position:sticky;top:0;z-index:2;background:#171d24}
.plate-checklist-scroll tbody>tr:not(.exact-row){height:56px}

/* v0.8.16 Bench assembled inventory */
.assembled-inventory-search{margin:10px 0 12px}
.assembled-inventory-search .search{width:100%}
#assembledInventory td:nth-child(2){font-size:16px;text-align:center}

/* v0.8.17 Insert Inventory search */
.insert-inventory-search{margin:10px 0 12px}
.insert-inventory-search .search{width:100%}

/* v0.9.0 New Pal Setup */
.newpal-step{margin-top:14px}
.newpal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0}
.newpal-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.newpal-grid .wide{grid-column:span 2}
.newpal-check{display:flex;align-items:center;gap:8px;background:#171d24;border:1px solid var(--line);border-radius:9px;padding:10px;margin-top:18px}
.newpal-step textarea{width:100%;resize:vertical;background:#10151b;color:#fff;border:1px solid var(--line);border-radius:8px;padding:10px}
.newpal-recipes{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.newpal-recipe-row{display:grid;grid-template-columns:1fr 1.2fr 1fr 1.5fr 100px 100px auto;gap:8px;align-items:end;background:#11161c;border:1px solid var(--line);border-radius:10px;padding:10px}
.newpal-recipe-row .form-field{margin:0}
.newpal-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.newpal-review-grid>div{background:#171d24;border:1px solid var(--line);border-radius:8px;padding:10px}
.newpal-review-grid span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;margin-bottom:4px}
.newpal-errors{display:flex;flex-direction:column;gap:5px;background:rgba(240,92,99,.07);border:1px solid rgba(240,92,99,.25);padding:10px;border-radius:9px;color:#ff858a}
.newpal-create-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:12px}
@media(max-width:1200px){.newpal-grid{grid-template-columns:repeat(2,1fr)}.newpal-recipe-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.newpal-grid,.newpal-grid.three,.newpal-review-grid,.newpal-recipe-row{grid-template-columns:1fr}.newpal-grid .wide{grid-column:auto}.newpal-create-footer{align-items:stretch;flex-direction:column}}

/* v0.9.2 Cloud database migration */
.cloud-migration-card{border-color:rgba(78,154,255,.25)}
.cloud-api-row{margin-top:10px}
.cloud-api-row input{width:100%}
.cloud-count-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}
.cloud-count-grid>div,.cloud-result-grid>div{background:#11161c;border:1px solid var(--line);border-radius:9px;padding:11px}
.cloud-count-grid span,.cloud-result-grid span{display:block;font-size:9px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.cloud-count-grid strong,.cloud-result-grid strong{font-size:20px}
.cloud-warning{display:flex;gap:8px;align-items:flex-start;background:rgba(244,185,66,.06);border:1px solid rgba(244,185,66,.22);border-radius:9px;padding:10px;margin:10px 0}
.cloud-warning strong{white-space:nowrap;color:#ffd16c}
.cloud-migration-summary{min-height:38px;margin:10px 0}
.cloud-success-head{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.cloud-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:9px}
.cloud-error{color:#ff858a}
.cloud-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:11px}
@media(max-width:800px){.cloud-count-grid,.cloud-result-grid{grid-template-columns:1fr 1fr}.cloud-warning{flex-direction:column}.cloud-actions{flex-direction:column}}

/* v0.9.3 Cloud authentication */
.cloud-auth-card{border-color:rgba(255,106,0,.22)}
.cloud-login-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:8px;align-items:end;margin:10px 0}
.cloud-login-row .form-field{margin:0}
@media(max-width:700px){.cloud-login-row{grid-template-columns:1fr}.cloud-login-row .btn{width:100%}}

/* v0.9.4 Cloud Core */
.cloud-core-card{border-color:rgba(67,193,122,.25)}
.cloud-core-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.cloud-core-grid>div{background:#11161c;border:1px solid var(--line);border-radius:9px;padding:10px}
.cloud-core-grid span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;margin-bottom:4px}
.cloud-core-grid strong{font-size:20px}
@media(max-width:800px){.cloud-core-grid{grid-template-columns:1fr 1fr}}

/* v0.9.5 Login-first Forge */
.forge-login-body{min-height:100vh;margin:0;background:#0b0f13;color:#f5f6f7;display:grid;place-items:center;font-family:inherit}
.forge-login-shell{width:min(440px,calc(100% - 32px))}
.forge-login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px}
.forge-login-brand h1{font-size:24px;margin:0;letter-spacing:-.5px}.forge-login-brand h1 span{color:#ff6900}
.forge-login-brand>div:last-child>div{font-size:8px;letter-spacing:2px;color:var(--muted)}
.forge-login-logo{font-size:34px;background:#17110d;border:1px solid #553019;border-radius:12px;padding:7px}
.forge-login-card{background:linear-gradient(180deg,#1a2028,#14191f);border:1px solid #303844;border-radius:16px;padding:22px;box-shadow:0 20px 70px rgba(0,0,0,.32)}
.forge-login-card h2{font-size:28px;margin:18px 0 4px}.forge-login-card p{color:var(--muted);margin:0 0 18px}
.forge-login-card label{display:block;color:#aab2bd;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin:12px 0}
.forge-login-card input{display:block;width:100%;margin-top:6px;padding:13px;background:#0e141a;border:1px solid #36404c;color:#fff;border-radius:9px;font-size:15px;box-sizing:border-box}
.forge-login-btn{width:100%;margin-top:14px;padding:13px}.login-kitsu{width:auto;justify-content:flex-start}
.forge-login-foot{text-align:center;margin-top:12px}.forge-user-card{margin:auto 12px 12px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#11161c;display:flex;justify-content:space-between;align-items:center;gap:8px}
.forge-user-card strong{display:block;font-size:12px}.forge-user-card .small{text-transform:capitalize}
.employee-role-help{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.employee-role-help>div{background:#11161c;border:1px solid var(--line);border-radius:9px;padding:10px}
.employee-role-help strong,.employee-role-help span{display:block}.employee-role-help span{color:var(--muted);font-size:10px;margin-top:4px}
.employee-list{display:flex;flex-direction:column;gap:7px}
.employee-row{display:grid;grid-template-columns:minmax(200px,1fr) 150px 100px 140px;gap:8px;align-items:center;background:#11161c;border:1px solid var(--line);border-radius:9px;padding:9px}
.employee-row select{width:100%}
@media(max-width:800px){.employee-role-help{grid-template-columns:1fr 1fr}.employee-row{grid-template-columns:1fr}.forge-user-card{display:none}}

/* v0.9.6c — Mobile-first Forge improvements */
@media (max-width: 780px){

  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .app{
    display:block;
    width:100%;
    min-height:100vh;
  }

  .sidebar{
    position:static !important;
    width:100% !important;
    min-height:auto !important;
    height:auto !important;
    border-right:0 !important;
    border-bottom:1px solid var(--line);
    padding:10px 12px !important;
    display:flex !important;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
  }

  .sidebar .brand{
    width:100%;
    margin-bottom:4px;
  }

  .sidebar .navgroup{
    display:none !important;
  }

  .sidebar a{
    width:auto !important;
    padding:9px 11px !important;
    margin:0 !important;
    border:1px solid var(--line);
    border-radius:9px;
    background:#11161c;
    font-size:12px;
  }

  .forge-user-card{
    display:flex !important;
    width:100%;
    margin:5px 0 0 !important;
    order:99;
  }

  main,
  .bench-main{
    margin-left:0 !important;
    width:100% !important;
    max-width:100% !important;
    padding:14px !important;
    box-sizing:border-box;
  }

  .topbar{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    align-items:start !important;
    margin-bottom:14px !important;
  }

  .pageTitle h1,
  h1{
    font-size:34px !important;
    line-height:1.05 !important;
    margin:0 0 4px !important;
  }

  .pageTitle .small{
    font-size:14px !important;
    line-height:1.4 !important;
  }

  .kitsu{
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box;
    justify-content:flex-start !important;
    padding:12px 14px !important;
    border-radius:14px !important;
  }

  .kitsu strong{
    font-size:18px !important;
  }

  .kitsu .small{
    font-size:13px !important;
    line-height:1.35 !important;
  }

  .grid,
  .kpis,
  .kpis.four,
  .newpal-grid,
  .cloud-core-grid,
  .cloud-count-grid,
  .cloud-result-grid{
    grid-template-columns:1fr !important;
  }

  .card{
    border-radius:14px !important;
    padding:16px !important;
  }

  .kpi{
    min-height:auto !important;
  }

  .kpi .value{
    font-size:32px !important;
  }

  .section-title{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
  }

  .section-title .badge,
  .section-title .btn{
    align-self:flex-start;
  }

  .dispatch-pal-list,
  .availability-list,
  .employee-list{
    width:100%;
  }

  .dispatch-pal-card,
  .damage-card,
  .rework-card,
  .packing-card,
  .availability-row,
  .employee-row,
  .damage-production-row{
    grid-template-columns:1fr !important;
    width:100% !important;
    box-sizing:border-box;
  }

  input,
  select,
  textarea,
  .number{
    min-height:48px !important;
    font-size:16px !important;
  }

  button,
  .btn,
  .iconbtn{
    min-height:48px;
    font-size:15px !important;
    touch-action:manipulation;
  }

  .btn{
    padding:11px 14px !important;
  }

  .cloud-actions,
  .newpal-create-footer{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .cloud-actions .btn,
  .newpal-create-footer .btn{
    width:100% !important;
  }

  table{
    width:100%;
    min-width:0 !important;
  }

  table thead{
    display:none;
  }

  table,
  tbody,
  tr,
  td{
    display:block;
    width:100%;
    box-sizing:border-box;
  }

  tr{
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:10px;
    overflow:hidden;
    background:#171d24;
  }

  td{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:10px 12px !important;
    border-bottom:1px solid var(--line);
  }

  td:last-child{
    border-bottom:0;
  }

  td input,
  td select{
    max-width:150px;
  }

  .small{
    font-size:12px !important;
  }

  .sku{
    font-size:11px !important;
  }

  .footer-note{
    text-align:center;
    padding-bottom:28px;
  }

  /* Retail Staff: focus screen on receipt check */
  body.forge-role-retail-staff .pageTitle h1{
    font-size:30px !important;
  }

  body.forge-role-retail-staff .kitsu{
    display:none !important;
  }

  body.forge-role-retail-staff .kpis{
    grid-template-columns:1fr !important;
  }

  body.forge-role-retail-staff #awaitingDeliveryKpi{
    font-size:38px !important;
  }

  body.forge-role-retail-staff .card{
    padding:15px !important;
  }

  body.forge-role-retail-staff .delivery-item,
  body.forge-role-retail-staff .delivery-check-card,
  body.forge-role-retail-staff .damage-item-card{
    border-radius:14px !important;
  }

  /* Rework mobile */
  body.forge-role-retail-staff .rework-card,
  body.forge-role-retail-staff .damage-card{
    padding:14px !important;
  }

  body.forge-role-retail-staff .rework-card .btn,
  body.forge-role-retail-staff .damage-card .btn{
    width:100% !important;
  }

  /* Login refinement */
  .forge-login-shell{
    width:calc(100% - 24px) !important;
    max-width:440px;
  }

  .forge-login-card{
    padding:18px !important;
  }

  .forge-login-card h2{
    font-size:34px !important;
  }

  .forge-login-brand{
    transform:scale(.92);
  }
}

@media (max-width: 430px){
  main,
  .bench-main{
    padding:10px !important;
  }

  .card{
    padding:13px !important;
  }

  .sidebar{
    padding:8px !important;
  }

  .sidebar a{
    font-size:11px !important;
    padding:8px 9px !important;
  }

  .pageTitle h1,
  h1{
    font-size:30px !important;
  }

  .kpi .label{
    font-size:10px !important;
  }
}

/* =========================================================
   v0.9.7 — Site-wide mobile responsive pass
   ========================================================= */

:root{
  --mobile-gap:12px;
}

/* Prevent unexpected horizontal overflow site-wide */
html,body{
  max-width:100%;
  overflow-x:hidden;
}
img,svg,canvas,video{
  max-width:100%;
  height:auto;
}
*{
  box-sizing:border-box;
}

/* Generic responsive helpers */
.table-wrap,
.scroll-x,
[class*="table-wrap"],
[class*="scroll"]{
  max-width:100%;
}

@media (max-width: 980px){

  /* Main shell */
  .app{
    display:block !important;
    width:100% !important;
  }

  .sidebar{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    padding:10px !important;
    border-right:0 !important;
    border-bottom:1px solid var(--line) !important;
    z-index:20;
  }

  .sidebar .brand{
    margin:0 0 8px !important;
  }

  .sidebar .navgroup{
    display:none !important;
  }

  .sidebar > a,
  .sidebar nav a,
  .sidebar .nav a{
    display:inline-flex !important;
    width:auto !important;
    margin:3px !important;
    padding:9px 11px !important;
    border:1px solid var(--line) !important;
    border-radius:9px !important;
    background:#11161c !important;
    white-space:nowrap;
  }

  .forge-user-card{
    width:100% !important;
    margin:8px 0 0 !important;
  }

  main,
  .main,
  .bench-main,
  .content,
  .page-content{
    margin-left:0 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    padding:14px !important;
  }

  /* Page headers */
  .topbar,
  .page-header,
  .header-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    align-items:start !important;
  }

  .pageTitle,
  .page-title{
    min-width:0 !important;
  }

  .pageTitle h1,
  .page-title h1,
  h1{
    font-size:34px !important;
    line-height:1.06 !important;
    overflow-wrap:anywhere;
  }

  h2{
    font-size:24px !important;
    line-height:1.12 !important;
  }

  h3{
    font-size:18px !important;
  }

  .kitsu{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    padding:12px 14px !important;
    justify-content:flex-start !important;
  }

  /* Grid systems */
  .grid,
  .kpis,
  .kpis.four,
  .kpis.three,
  .cards,
  .cards-grid,
  .dashboard-grid,
  .split,
  .two-col,
  .three-col,
  .four-col,
  .newpal-grid,
  .cloud-core-grid,
  .cloud-count-grid,
  .cloud-result-grid,
  .employee-role-help,
  .insert-grid,
  .rework-grid,
  .packing-grid,
  .dispatch-grid,
  .buildplate-grid,
  .bench-grid,
  .production-grid{
    grid-template-columns:1fr !important;
  }

  .card,
  .panel,
  [class*="card"],
  [class*="panel"]{
    max-width:100%;
  }

  /* Controls */
  input,
  select,
  textarea,
  button,
  .btn,
  .number{
    font-size:16px !important;
  }

  input,
  select,
  textarea,
  .number{
    min-height:46px !important;
    width:100%;
    max-width:100%;
  }

  button,
  .btn,
  .iconbtn{
    min-height:46px !important;
    touch-action:manipulation;
  }

  .section-title{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:9px !important;
  }

  .section-title > *{
    max-width:100%;
  }

  .section-title .btn,
  .section-title .badge{
    align-self:flex-start !important;
  }

  /* Search / filters */
  .search-row,
  .filters,
  .filter-row,
  .toolbar,
  .actions-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .search-row > *,
  .filters > *,
  .filter-row > *,
  .toolbar > *,
  .actions-row > *{
    width:100% !important;
  }

  /* Tables -> card rows */
  table{
    width:100% !important;
    min-width:0 !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
  }

  thead{
    display:none !important;
  }

  table,
  tbody,
  tr,
  td{
    display:block !important;
    width:100% !important;
  }

  tr{
    background:#171d24;
    border:1px solid var(--line);
    border-radius:12px;
    margin-bottom:10px;
    overflow:hidden;
  }

  td{
    display:flex !important;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    padding:10px 12px !important;
    border-bottom:1px solid var(--line) !important;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }

  td:last-child{
    border-bottom:0 !important;
  }

  td > *{
    max-width:100%;
  }

  td input,
  td select,
  td .number{
    width:min(160px,50vw) !important;
    flex:0 0 auto;
  }

  /* Horizontal chunks */
  .listitem,
  .availability-row,
  .employee-row,
  .damage-production-row,
  .dispatch-pal-card,
  .packing-card,
  .rework-card,
  .damage-card,
  .buildplate-card,
  .plate-card,
  .recipe-card,
  .inventory-row{
    grid-template-columns:1fr !important;
    min-width:0 !important;
  }

  .employee-row{
    gap:9px !important;
  }

  .employee-row select,
  .employee-row .btn{
    width:100% !important;
  }

  /* Modals/dialogs */
  .modal,
  .dialog,
  .popup,
  [role="dialog"]{
    width:calc(100% - 24px) !important;
    max-width:560px !important;
    max-height:90vh !important;
    overflow:auto !important;
  }

  /* Build Plates */
  #plateChecklist,
  #currentPlateItems,
  #platesList,
  #colourDemandCards{
    max-width:100% !important;
  }

  .colour-demand-card,
  .plate-check-row,
  .plate-item-row{
    width:100% !important;
  }

  .plate-check-row,
  .plate-item-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:7px !important;
  }

  /* Printed Parts / Bench / Inserts */
  #partsInventory,
  #assembledInventory,
  #insertInventory,
  #insertQueue{
    max-width:100% !important;
  }

  /* Packing station */
  .packing-step-row,
  .packing-batch-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  /* Dispatch */
  .dispatch-location-grid,
  .dispatch-allocation-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  /* Rework */
  .rework-stock-grid,
  .rework-action-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  /* New Pal */
  .newpal-recipe-row,
  .newpal-dimensions,
  .newpal-characteristics{
    grid-template-columns:1fr !important;
  }

  .newpal-create-footer{
    position:static !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  .newpal-create-footer .btn{
    width:100% !important;
  }

  /* Settings / Data Health */
  .cloud-login-row{
    grid-template-columns:1fr !important;
  }

  .cloud-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .cloud-actions .btn{
    width:100% !important;
  }

  /* Footer */
  .footer-note{
    padding:18px 0 30px !important;
    text-align:center !important;
  }
}

@media (max-width: 620px){

  main,
  .main,
  .bench-main,
  .content,
  .page-content{
    padding:10px !important;
  }

  .sidebar{
    padding:8px !important;
  }

  .sidebar > a,
  .sidebar nav a,
  .sidebar .nav a{
    font-size:11px !important;
    padding:8px 9px !important;
  }

  .pageTitle h1,
  .page-title h1,
  h1{
    font-size:30px !important;
  }

  h2{
    font-size:22px !important;
  }

  .card,
  .panel,
  [class*="card"],
  [class*="panel"]{
    border-radius:12px !important;
  }

  .kpi .value{
    font-size:30px !important;
  }

  .kpi .label{
    font-size:10px !important;
  }

  .btn{
    width:100% !important;
  }

  .section-title .btn{
    width:100% !important;
  }

  td{
    flex-direction:column !important;
    align-items:stretch !important;
  }

  td input,
  td select,
  td .number{
    width:100% !important;
  }

  code{
    white-space:pre-wrap !important;
    overflow-wrap:anywhere !important;
  }

  /* Login */
  .forge-login-shell{
    width:calc(100% - 20px) !important;
  }

  .forge-login-card{
    padding:16px !important;
  }

  .forge-login-brand{
    transform:scale(.88);
    transform-origin:center;
  }
}

/* v0.9.7a — Role-aware navigation */
.sidebar a[aria-hidden="true"]{
  display:none !important;
}
.sidebar .navgroup{
  transition:none;
}
.sidebar a.role-active-tab{
  border-color:rgba(255,105,0,.65) !important;
  background:rgba(255,105,0,.10) !important;
  color:#fff !important;
}
@media(max-width:980px){
  .sidebar{
    align-content:flex-start;
  }
  .sidebar .brand{
    flex:1 0 100%;
  }
  .sidebar a[aria-hidden="false"]{
    display:inline-flex !important;
  }
  .sidebar .forge-user-card{
    flex:1 0 100%;
  }
  body.forge-role-packing .sidebar a,
  body.forge-role-retail-staff .sidebar a{
    flex:1 1 auto;
    justify-content:center;
  }
}

/* v0.9.7b — prevent role navigation flash during page navigation */
body:not(.forge-auth-ready) .sidebar a,
body:not(.forge-auth-ready) .sidebar .navgroup,
body:not(.forge-auth-ready) .sidebar .forge-user-card{
  visibility:hidden !important;
  pointer-events:none !important;
}
body.forge-auth-ready .sidebar a,
body.forge-auth-ready .sidebar .navgroup,
body.forge-auth-ready .sidebar .forge-user-card{
  visibility:visible;
}

/* v0.9.9.1 Cloud Sync status */
.forge-cloud-sync{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  margin-left:auto;
}
.forge-cloud-sync .btn{
  min-height:34px;
  padding:7px 10px;
}
@media(max-width:980px){
  .forge-cloud-sync{
    width:100%;
    justify-content:flex-start;
    margin:0;
  }
  .forge-cloud-sync .btn{
    width:auto !important;
  }
}

/* v0.9.9.2 — Live sync */
#forgeCloudSyncBadge{
  position:relative;
}
#forgeCloudSyncBadge.ok::before{
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  margin-right:6px;
  vertical-align:1px;
}

/* v0.9.9.3 — Printed Parts Cloud */
body.forge-page-parts .forge-cloud-sync{
  margin-bottom:8px;
}

/* v0.9.9.4 — Bench Cloud */
body.forge-page-assembly .forge-cloud-sync{
  margin-bottom:8px;
}
body.forge-page-assembly .assembleBtn:disabled{
  opacity:.65;
  cursor:wait;
}

/* v0.9.9.5 — iPhone safe-area + Bench consistency */
@supports (padding-top: env(safe-area-inset-top)){
  @media (max-width: 980px){
    body{
      padding-top:env(safe-area-inset-top);
      padding-left:env(safe-area-inset-left);
      padding-right:env(safe-area-inset-right);
      padding-bottom:env(safe-area-inset-bottom);
    }
    .sidebar{
      padding-top:calc(8px + env(safe-area-inset-top)) !important;
    }
  }
}

@media (max-width: 980px){
  .topbar{
    padding-top:6px !important;
  }

  .kitsu{
    min-height:72px !important;
    align-items:center !important;
    overflow:hidden;
  }

  .kitsu > *{
    min-width:0;
  }

  .kitsu strong,
  .kitsu .small{
    overflow-wrap:anywhere;
  }

  body.forge-page-assembly .kitsu{
    margin-top:4px !important;
  }

  body.forge-page-assembly .forge-cloud-sync{
    margin-top:2px !important;
  }
}

@media (max-width: 620px){
  body.forge-page-assembly .topbar{
    gap:8px !important;
  }

  body.forge-page-assembly .kitsu{
    padding:10px 12px !important;
    min-height:64px !important;
  }

  body.forge-page-assembly .kitsu img,
  body.forge-page-assembly .kitsu .fox,
  body.forge-page-assembly .kitsu .emoji{
    flex:0 0 auto;
  }

  body.forge-page-assembly .pageTitle h1{
    margin-top:0 !important;
  }
}

/* v0.10.0 — Cloud-only migrated workflows */
.cloud-required-error{
  border-color:rgba(255,95,95,.45) !important;
  margin-bottom:16px;
}
.cloud-required-error h2{
  margin-top:0;
}
@media (max-width:980px){
  body{
    padding-top:0 !important;
  }
  main,.main,.bench-main,.content,.page-content{
    padding-top:calc(14px + env(safe-area-inset-top, 0px)) !important;
  }
  .sidebar{
    padding-top:10px !important;
  }
  .kitsu{
    margin-top:0 !important;
  }
}
@media (max-width:620px){
  main,.main,.bench-main,.content,.page-content{
    padding-top:calc(10px + env(safe-area-inset-top, 0px)) !important;
  }
}

/* =========================================================
   v0.10.2 — Page-specific mobile layout: Build Plates + Pals
   ========================================================= */
@media (max-width: 780px){

  /* BUILD PLATES — checklist cards */
  body.forge-page-plates #checklist,
  body.forge-page-plates #checklist tbody{
    display:block !important;
    width:100% !important;
  }

  body.forge-page-plates #checklist .build-check-card{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:0 !important;
    padding:0 !important;
    margin:0 0 14px !important;
    border:1px solid var(--line) !important;
    border-radius:14px !important;
    overflow:hidden;
    background:#151b22 !important;
  }

  body.forge-page-plates #checklist .build-check-card td{
    display:block !important;
    width:auto !important;
    border:0 !important;
    border-bottom:1px solid var(--line) !important;
    padding:11px 12px !important;
    min-width:0;
  }

  body.forge-page-plates #checklist .build-check-card td::before{
    content:attr(data-label);
    display:block;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.09em;
    margin-bottom:4px;
  }

  body.forge-page-plates #checklist .build-pal,
  body.forge-page-plates #checklist .build-group{
    grid-column:1 / -1;
  }

  body.forge-page-plates #checklist .build-pal{
    padding:14px !important;
    background:#11171d;
  }

  body.forge-page-plates #checklist .build-pal strong{
    font-size:18px;
  }

  body.forge-page-plates #checklist .build-group{
    font-weight:700;
  }

  body.forge-page-plates #checklist .build-remaining strong{
    color:var(--accent);
    font-size:20px;
  }

  body.forge-page-plates #checklist .build-qty{
    grid-column:1 / -1;
  }

  body.forge-page-plates #checklist .build-qty input{
    width:100% !important;
    max-width:none !important;
  }

  body.forge-page-plates #checklist .build-action{
    grid-column:1 / -1;
    padding:7px 12px !important;
    border-bottom:0 !important;
  }

  body.forge-page-plates #checklist .build-action .btn{
    width:100% !important;
    min-height:48px !important;
  }

  body.forge-page-plates #checklist .build-action-add .btn{
    background:var(--accent) !important;
    color:#fff !important;
  }

  body.forge-page-plates #checklist .exact-row{
    display:none;
    width:100% !important;
    margin:-8px 0 14px !important;
    border:1px solid rgba(255,105,0,.42) !important;
    border-radius:14px !important;
    background:#1a1512 !important;
  }

  body.forge-page-plates #checklist .exact-row td{
    display:block !important;
    width:100% !important;
    padding:12px !important;
  }

  body.forge-page-plates .exact-part-panel{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  body.forge-page-plates .exact-part-panel select,
  body.forge-page-plates .exact-part-panel input,
  body.forge-page-plates .exact-part-panel .btn{
    width:100% !important;
    max-width:none !important;
  }

  /* Keep Current Plate after checklist; don't let it squeeze beside it. */
  body.forge-page-plates .buildplate-grid,
  body.forge-page-plates .grid{
    grid-template-columns:1fr !important;
  }

  /* PALS — preserve desktop meaning with explicit stock labels */
  body.forge-page-pals #rows,
  body.forge-page-pals #rows tbody{
    display:block !important;
    width:100% !important;
  }

  body.forge-page-pals #rows .pal-inventory-card{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:0 !important;
    margin-bottom:14px !important;
    border:1px solid var(--line) !important;
    border-radius:14px !important;
    overflow:hidden;
    background:#171d24 !important;
  }

  body.forge-page-pals #rows .pal-inventory-card td{
    display:block !important;
    width:auto !important;
    padding:11px 12px !important;
    border:0 !important;
    border-bottom:1px solid var(--line) !important;
    min-width:0;
  }

  body.forge-page-pals #rows .pal-inventory-card td::before{
    content:attr(data-label);
    display:block;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.09em;
    margin-bottom:5px;
  }

  body.forge-page-pals #rows .pal-product{
    grid-column:1 / -1;
    padding:15px !important;
    background:#11171d;
  }

  body.forge-page-pals #rows .pal-product .product-name{
    font-size:19px;
    font-weight:800;
  }

  body.forge-page-pals #rows .stock-cell strong,
  body.forge-page-pals #rows .need-cell strong{
    font-size:22px;
  }

  body.forge-page-pals #rows .need-cell{
    grid-column:1 / -1;
  }

  body.forge-page-pals #rows .target-cell input{
    width:100% !important;
    max-width:none !important;
  }

  body.forge-page-pals .forge-cloud-sync{
    margin:0 0 10px !important;
  }
}

@media (max-width: 430px){
  body.forge-page-plates #checklist .build-check-card,
  body.forge-page-pals #rows .pal-inventory-card{
    grid-template-columns:1fr 1fr !important;
  }

  body.forge-page-pals #rows .pal-inventory-card td,
  body.forge-page-plates #checklist .build-check-card td{
    padding:10px !important;
  }
}

/* =========================================================
   v0.10.3 — Dedicated mobile grouped Build Plate checklist
   ========================================================= */
.mobile-build-checklist{display:none}

@media(max-width:780px){
  body.forge-page-plates .desktop-build-checklist{
    display:none !important;
  }

  body.forge-page-plates .mobile-build-checklist{
    display:block !important;
    margin-top:14px;
  }

  body.forge-page-plates .mobile-recipe-card{
    background:#11171d;
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    margin-bottom:14px;
  }

  body.forge-page-plates .mobile-recipe-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:flex-start;
    padding:14px;
    border-bottom:1px solid var(--line);
  }

  body.forge-page-plates .mobile-recipe-head strong{
    font-size:19px;
    line-height:1.15;
  }

  body.forge-page-plates .mobile-recipe-group{
    display:grid;
    gap:4px;
    padding:14px;
    border-bottom:1px solid var(--line);
  }

  body.forge-page-plates .mobile-recipe-group > strong{
    font-size:17px;
    line-height:1.3;
  }

  body.forge-page-plates .mobile-label{
    display:block;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.09em;
    margin-bottom:5px;
  }

  body.forge-page-plates .mobile-recipe-stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-bottom:1px solid var(--line);
  }

  body.forge-page-plates .mobile-recipe-stats > div{
    padding:12px 14px;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }

  body.forge-page-plates .mobile-recipe-stats > div:nth-child(2n){
    border-right:0;
  }

  body.forge-page-plates .mobile-recipe-stats > div:nth-last-child(-n+2){
    border-bottom:0;
  }

  body.forge-page-plates .mobile-recipe-stats span{
    display:block;
    color:var(--muted);
    font-size:11px;
    margin-bottom:3px;
  }

  body.forge-page-plates .mobile-recipe-stats strong{
    font-size:22px;
  }

  body.forge-page-plates .mobile-required-action{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding:14px;
    background:rgba(255,105,0,.045);
    border-bottom:1px solid var(--line);
  }

  body.forge-page-plates .mobile-required-action input{
    width:100% !important;
    max-width:none !important;
  }

  body.forge-page-plates .mobile-required-action .btn{
    width:100% !important;
    min-height:52px !important;
    background:var(--accent) !important;
    color:#fff !important;
    font-weight:800;
  }

  body.forge-page-plates .mobile-secondary-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    padding:12px 14px;
  }

  body.forge-page-plates .mobile-secondary-actions .btn{
    width:100% !important;
  }

  body.forge-page-plates .mobile-exact-panel{
    margin:0 14px 14px;
    padding:14px;
    display:grid;
    gap:10px;
    border:1px solid rgba(255,105,0,.42);
    border-radius:12px;
    background:#1a1512;
  }

  body.forge-page-plates .mobile-exact-panel[hidden]{
    display:none !important;
  }

  body.forge-page-plates .mobile-exact-title{
    display:grid;
    gap:4px;
  }

  body.forge-page-plates .mobile-exact-panel select,
  body.forge-page-plates .mobile-exact-panel input,
  body.forge-page-plates .mobile-exact-panel .btn{
    width:100% !important;
    max-width:none !important;
  }

  body.forge-page-plates .mobile-recipe-card.dimrow{
    opacity:.58;
  }
}

/* v0.10.4 — Current Plate below colour queue */
.planner-layout-single{
  grid-template-columns:1fr !important;
}
.current-plate-under-colours{
  position:static !important;
}
.current-plate-under-colours .current-plate{
  min-height:90px;
}

/* Mobile: compact colour-demand buttons — 4 across */
@media(max-width:780px){
  body.forge-page-plates .colour-demand-section{
    padding:12px !important;
  }

  body.forge-page-plates .colour-demand-section .section-title{
    gap:6px !important;
    margin-bottom:8px !important;
  }

  body.forge-page-plates .colour-demand-section .section-title h2{
    font-size:19px !important;
  }

  body.forge-page-plates .colour-demand-section .section-title .small{
    font-size:11px !important;
    line-height:1.25 !important;
  }

  body.forge-page-plates .colour-demand-section .section-title > .badge{
    display:none !important;
  }

  body.forge-page-plates .colour-demand-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:6px !important;
    margin-top:8px !important;
  }

  body.forge-page-plates .colour-demand-card,
  body.forge-page-plates #colourDemandCards .colour-demand-card{
    width:auto !important;
    min-width:0 !important;
    min-height:86px !important;
    padding:7px !important;
    border-radius:9px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:space-between !important;
    overflow:hidden !important;
  }

  body.forge-page-plates .colour-demand-top{
    display:block !important;
    min-width:0 !important;
  }

  body.forge-page-plates .colour-demand-top strong{
    display:block !important;
    font-size:10px !important;
    line-height:1.1 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }

  body.forge-page-plates .colour-demand-top span{
    display:none !important;
  }

  body.forge-page-plates .colour-demand-number{
    font-size:16px !important;
    line-height:1 !important;
    margin:5px 0 2px !important;
  }

  body.forge-page-plates .colour-demand-card .small{
    font-size:8px !important;
    line-height:1.1 !important;
    white-space:normal !important;
  }

  body.forge-page-plates .colour-demand-action{
    font-size:8px !important;
    line-height:1.05 !important;
    margin-top:5px !important;
  }

  body.forge-page-plates .current-plate-under-colours{
    margin-top:10px !important;
  }
}

@media(max-width:390px){
  body.forge-page-plates .colour-demand-grid{
    gap:4px !important;
  }
  body.forge-page-plates .colour-demand-card,
  body.forge-page-plates #colourDemandCards .colour-demand-card{
    padding:6px !important;
    min-height:82px !important;
  }
  body.forge-page-plates .colour-demand-top strong{
    font-size:9px !important;
  }
}

/* =========================================================
   v0.10.5 — Compact desktop-style KPI rows on mobile
   ========================================================= */
@media (max-width: 780px){
  /* KPI strips should preserve the desktop idea: one horizontal row. */
  .grid.kpis,
  .kpis,
  .kpis.four,
  .grid.kpis.four,
  .kpis.three,
  .grid.kpis.three{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:6px !important;
    width:100% !important;
  }

  /* Three-card KPI sections still get a compact row without empty-width bloat. */
  .kpis.three,
  .grid.kpis.three{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .kpis > .kpi,
  .grid.kpis > .kpi,
  .kpis.four > .kpi,
  .grid.kpis.four > .kpi,
  .kpis.three > .kpi,
  .grid.kpis.three > .kpi{
    min-width:0 !important;
    min-height:92px !important;
    padding:9px !important;
    border-radius:10px !important;
    overflow:hidden !important;
  }

  .kpis .kpi .label,
  .grid.kpis .kpi .label{
    font-size:8px !important;
    line-height:1.1 !important;
    letter-spacing:.055em !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }

  .kpis .kpi .value,
  .grid.kpis .kpi .value{
    font-size:22px !important;
    line-height:1 !important;
    margin:7px 0 5px !important;
  }

  .kpis .kpi .small,
  .grid.kpis .kpi .small{
    font-size:8px !important;
    line-height:1.15 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
}

@media (max-width: 390px){
  .grid.kpis,
  .kpis,
  .kpis.four,
  .grid.kpis.four{
    gap:4px !important;
  }

  .kpis > .kpi,
  .grid.kpis > .kpi{
    padding:7px !important;
    min-height:88px !important;
  }

  .kpis .kpi .value,
  .grid.kpis .kpi .value{
    font-size:20px !important;
  }
}

/* v0.10.6 — Build Plate KPI jump navigation */
.build-kpi-nav .kpi-jump{
  appearance:none !important;
  -webkit-appearance:none !important;
  width:100%;
  text-align:left;
  color:inherit;
  font:inherit;
  cursor:pointer;
  display:block;
  min-height:0 !important;
}
.build-kpi-nav .kpi-jump:hover{
  border-color:rgba(255,106,0,.55);
  transform:translateY(-1px);
}
.build-kpi-nav .kpi-jump:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:2px;
}
.kpi-view{
  margin-top:8px;
  color:var(--orange);
  font-size:10px;
  font-weight:800;
  letter-spacing:.02em;
}
#printDemandSection,
#savedBuildPlatesSection{
  scroll-margin-top:16px;
}
.kpi-jump-highlight{
  animation:kpiJumpHighlight 1.2s ease-out;
}
@keyframes kpiJumpHighlight{
  0%{border-color:var(--orange);box-shadow:0 0 0 2px rgba(255,106,0,.18)}
  100%{box-shadow:none}
}
@media(max-width:780px){
  .build-kpi-nav .kpi-jump{
    padding:8px !important;
    min-height:104px !important;
  }
  .build-kpi-nav .kpi-jump .kpi-view{
    font-size:8px !important;
    margin-top:5px !important;
  }
}

/* v0.10.7 — Packing Station Cloud */
body.forge-page-packing-station .forge-cloud-sync{
  margin-bottom:10px;
}
body.forge-page-packing-station .barcodeApplied:disabled,
body.forge-page-packing-station .nextPackStep:disabled{
  opacity:.65;
  cursor:wait;
}

/* v0.10.8 — Insert Production Cloud */
body.forge-page-packaging .forge-cloud-sync{
  margin-bottom:10px;
}
body.forge-page-packaging .markPrinted:disabled,
body.forge-page-packaging .completeCut:disabled{
  opacity:.65;
  cursor:wait;
}

/* =========================================================
   v0.10.9 — D1 On Sale availability control
   ========================================================= */
.availability-toggle{
  appearance:none !important;
  -webkit-appearance:none !important;
  border:1px solid var(--line) !important;
  background:#151b22 !important;
  color:var(--muted) !important;
  min-height:34px !important;
  padding:7px 9px !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.03em !important;
  cursor:pointer;
  white-space:nowrap;
}
.availability-toggle .availability-dot{
  width:8px;
  height:8px;
  min-width:8px;
  border-radius:50%;
  background:#6f7883;
}
.availability-toggle.is-on-sale{
  border-color:rgba(67,193,122,.40) !important;
  background:rgba(67,193,122,.10) !important;
  color:#64db94 !important;
}
.availability-toggle.is-on-sale .availability-dot{
  background:#64db94;
}
.availability-toggle.is-off-sale{
  border-color:#343c46 !important;
  color:#a8b0ba !important;
}
.availability-toggle.saving,
.availability-toggle:disabled{
  opacity:.65;
  cursor:wait;
}

@media(max-width:780px){
  body.forge-page-pals .availability-cell{
    display:flex !important;
    flex-direction:column;
    align-items:flex-start;
  }
  body.forge-page-pals .availability-toggle{
    width:100% !important;
    min-height:42px !important;
  }
}

/* v0.10.9.2 — Authoritative Product Availability */
.availability-row .cloudToggleSale:disabled,
.availability-row .cloudReleaseDate:disabled{
  opacity:.62;
  cursor:wait;
}

/* v0.10.9.3 — Availability request feedback */
.availability-row .cloudToggleSale:disabled{
  min-width:140px;
}

/* v0.11.0 Availability API rebuild */

/* v0.11.1 — Consumables Cloud */
body.forge-page-consumables .forge-cloud-sync{
  margin-bottom:10px;
}
body.forge-page-consumables button:disabled,
body.forge-page-consumables input:disabled{
  opacity:.65;
  cursor:wait;
}

/* v0.11.2 — Consumables live sync */
body.forge-page-consumables .consumable-card{
  transition:border-color .2s ease, box-shadow .2s ease;
}

/* v0.12.0 — Dispatch Cloud */
body.forge-page-deliveries .forge-cloud-sync{
  margin-bottom:10px;
}
body.forge-page-deliveries button:disabled,
body.forge-page-deliveries input:disabled{
  opacity:.65;
}

/* v0.12.1 — Retail-safe Dispatch cloud */
body.forge-page-deliveries .cloud-required-error{
  display:none;
}

/* v0.12.2 — Rework Cloud */
body.forge-page-rework .forge-cloud-sync{
  margin-bottom:10px;
}
body.forge-page-rework button:disabled{
  opacity:.6;
  cursor:wait;
}

/* v0.12.3 — Retail Staff Rework navigation */
body.forge-role-retail-staff a[href="rework.html"]{
  display:inline-flex;
}

/* =========================================================
   v0.12.4 — Authentication fail-closed gate
   ========================================================= */

/* Protected pages are invisible until /auth/me succeeds. */
body.forge-protected:not(.forge-auth-ready) > *{
  visibility:hidden !important;
  pointer-events:none !important;
}

/* A static loading screen remains available even if page JS is slow.
   If JS completely fails, protected application content remains hidden. */
body.forge-protected:not(.forge-auth-ready)::before{
  content:"🦊  PLA FORGE";
  visibility:visible !important;
  position:fixed;
  z-index:2147483646;
  left:50%;
  top:44%;
  transform:translate(-50%,-50%);
  color:#fff;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:24px;
  font-weight:800;
  letter-spacing:.02em;
  white-space:nowrap;
}
body.forge-protected:not(.forge-auth-ready)::after{
  content:"Connecting to Forge…\A Checking secure session";
  white-space:pre;
  visibility:visible !important;
  position:fixed;
  z-index:2147483646;
  left:50%;
  top:51%;
  transform:translateX(-50%);
  color:#9aa3af;
  text-align:center;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  line-height:1.6;
}

.forge-startup-error{
  margin:18px;
  padding:18px;
  border:1px solid #71343a;
  border-radius:14px;
  background:#24171a;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

/* v0.13.0 — Filament Cloud */
.filament-stock-actions{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}
.filament-stock-actions .number{max-width:110px}
@media(max-width:700px){
  .filament-stock-actions{align-items:stretch}
  .filament-stock-actions .number,
  .filament-stock-actions .btn{width:100%;max-width:none}
}

/* v0.14.0 — Recipe Cloud Editor */
.recipe-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.recipe-editor-head{display:flex;justify-content:space-between;align-items:center;margin:16px 0 10px}
.recipe-edit-rows{display:grid;gap:10px}
.recipe-edit-row{
  display:grid;
  grid-template-columns:1fr 1.2fr 1.2fr 1.2fr 90px 110px 40px;
  gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)
}
.recipe-edit-row label{display:grid;gap:5px}
.recipe-edit-row label span{font-size:11px;color:var(--muted)}
.recipe-edit-row input{width:100%;box-sizing:border-box}
.recipe-editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.recipeSaveStatus{margin-top:8px}
@media(max-width:900px){
 .recipe-edit-row{grid-template-columns:1fr 1fr}
 .recipe-edit-row .recipe-small{min-width:0}
 .recipe-edit-row .recipeRemove{align-self:end}
}
@media(max-width:600px){
 .recipe-card-head{flex-direction:column}
 .recipe-edit-row{grid-template-columns:1fr}
 .recipe-editor-actions .btn{width:100%}
}

/* v0.14.4 Settings section */
.settings-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.settings-hub-link{display:flex;flex-direction:column;gap:7px;text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease}.settings-hub-link:hover{border-color:var(--accent);transform:translateY(-1px)}.settings-hub-link strong{font-size:18px}body[data-settings-section="general"] .nav a[href="settings.html"],body[data-settings-section="printers"] .nav a[href="settings-printers.html"],body[data-settings-section="availability"] .nav a[href="settings-availability.html"],body[data-settings-section="labels"] .nav a[href="settings-labels.html"],body[data-settings-section="employees"] .nav a[href="settings-employees.html"],body[data-settings-section="system"] .nav a[href="settings-system.html"]{background:rgba(255,102,0,.09);color:var(--accent)}@media(max-width:700px){.settings-hub-grid{grid-template-columns:1fr}}

/* v0.14.4 Settings section */
.settings-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.settings-hub-link{display:flex;flex-direction:column;gap:7px;text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease}
.settings-hub-link:hover{border-color:var(--accent);transform:translateY(-1px)}
.settings-hub-link strong{font-size:18px}
body[data-settings-section="general"] .nav a[href="settings.html"],
body[data-settings-section="printers"] .nav a[href="settings-printers.html"],
body[data-settings-section="availability"] .nav a[href="settings-availability.html"],
body[data-settings-section="labels"] .nav a[href="settings-labels.html"],
body[data-settings-section="employees"] .nav a[href="settings-employees.html"],
body[data-settings-section="system"] .nav a[href="settings-system.html"]{background:rgba(255,102,0,.09);color:var(--accent)}
@media(max-width:700px){.settings-hub-grid{grid-template-columns:1fr}}

/* v0.16.0 — Complete cloud Settings */
.label-setting-card+.label-setting-card{margin-top:14px}
.label-settings-grid{display:grid;grid-template-columns:1.4fr 1.2fr 120px 120px auto;gap:10px;align-items:end}
.label-settings-grid label,.employee-create-grid label{display:grid;gap:5px}
.label-settings-grid label span,.employee-create-grid label span{font-size:11px;color:var(--muted)}
.employee-create-card{margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}
.employee-create-card h3{margin:0 0 10px}
.employee-create-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr 180px auto;gap:10px;align-items:end}
@media(max-width:900px){
 .label-settings-grid,.employee-create-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .label-settings-grid,.employee-create-grid{grid-template-columns:1fr}
 .label-settings-grid .btn,.employee-create-grid .btn{width:100%}
}

.document-printer-grid{grid-template-columns:1.4fr 1.2fr 120px 130px auto}
@media(max-width:900px){.document-printer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.document-printer-grid{grid-template-columns:1fr}}

/* v0.16.2 — Mobile dropdown navigation */
.mobile-nav-toggle{display:none}
@media(max-width:980px){
  .sidebar{
    position:relative !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    padding:10px 12px !important;
    overflow:visible !important;
    z-index:50;
  }
  .sidebar .brand{
    margin:0 !important;
  }
  .mobile-nav-toggle{
    display:grid !important;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:10px;
    width:100%;
    margin-top:10px;
    min-height:46px;
    padding:9px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--panel2);
    color:var(--text);
    font:inherit;
    text-align:left;
    cursor:pointer;
  }
  .mobile-nav-toggle>span:first-child{font-weight:800;color:var(--accent);white-space:nowrap}
  .mobile-nav-current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
  .mobile-nav-chevron{font-size:20px;transition:transform .18s ease}
  .mobile-nav-toggle.open .mobile-nav-chevron{transform:rotate(180deg)}
  .sidebar .nav{
    display:none !important;
    position:absolute !important;
    left:12px;
    right:12px;
    top:100%;
    width:auto !important;
    max-height:min(70vh,620px);
    overflow-y:auto !important;
    padding:8px !important;
    margin-top:-2px !important;
    border:1px solid var(--line);
    border-radius:0 0 14px 14px;
    background:var(--panel);
    box-shadow:0 18px 38px rgba(0,0,0,.38);
    flex-direction:column !important;
    gap:2px !important;
  }
  .sidebar .nav.mobile-nav-open{display:flex !important}
  .sidebar .nav .navgroup{
    display:block !important;
    width:100% !important;
    margin:9px 0 3px !important;
    padding:5px 8px !important;
    font-size:10px !important;
  }
  .sidebar .nav a{
    display:block !important;
    width:100% !important;
    box-sizing:border-box;
    min-height:42px;
    padding:10px 11px !important;
    margin:0 !important;
    border-radius:9px !important;
    white-space:normal !important;
  }
  .sidebar .nav a.mobile-current-page{
    background:rgba(255,102,0,.11) !important;
    color:var(--accent) !important;
  }
}

/* v0.17.0 Operations Dashboard */
.ops-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
.ops-kpi{display:flex;flex-direction:column;min-height:112px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--panel);text-decoration:none;color:var(--text);transition:.15s ease}
.ops-kpi:hover{border-color:var(--accent);transform:translateY(-1px)}
.ops-kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ops-kpi strong{font-size:34px;line-height:1;margin:13px 0 7px}
.ops-kpi small{color:var(--muted);line-height:1.25}
.dashboard-primary-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:14px}
.dashboard-secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.pal-demand-list{display:grid;gap:7px}
.pal-demand-row{border:1px solid var(--line);border-radius:12px;background:var(--panel2);overflow:hidden}
.pal-demand-main{display:grid;grid-template-columns:34px minmax(180px,1fr) 80px 80px 100px 80px;gap:10px;align-items:center;padding:10px 12px}
.pal-demand-rank{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:rgba(255,102,0,.10);color:var(--accent);font-weight:800}
.pal-demand-name{display:flex;flex-direction:column;gap:3px}
.pal-demand-stat{display:flex;flex-direction:column;gap:2px;text-align:center}
.pal-demand-stat span{font-size:10px;color:var(--muted);text-transform:uppercase}
.pal-demand-stat strong{font-size:18px}
.pal-demand-remaining strong{color:var(--accent)}
.pal-demand-recipes{display:flex;gap:6px;flex-wrap:wrap;padding:7px 12px 9px 56px;border-top:1px solid var(--line)}
.pal-demand-recipes span{font-size:10px;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.04);color:var(--muted)}
.dashboard-colour-demand{display:grid;gap:7px}
.dashboard-colour-row{display:grid;grid-template-columns:1fr 65px 85px;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:11px;text-decoration:none;color:var(--text);background:var(--panel2)}
.dashboard-colour-row:hover{border-color:var(--accent)}
.dashboard-colour-row>div{display:flex;flex-direction:column;gap:2px}
.dashboard-colour-row>div:not(:first-child){text-align:right}
.dashboard-colour-row span{font-size:10px;color:var(--muted)}
.dashboard-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.dashboard-alert:last-child{border-bottom:0}
.dashboard-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dashboard-actions .btn{text-align:center;text-decoration:none}
.dashboard-health{margin-top:12px}
.dashboard-health-link{display:flex;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;text-decoration:none;color:var(--text);background:var(--panel2)}
.dashboard-health-link span{color:var(--muted);font-size:11px}
.dashboard-clear-state{display:flex;flex-direction:column;gap:5px;padding:22px;text-align:center;color:var(--muted)}
.dashboard-clear-state strong{color:var(--text)}
@media(max-width:1200px){.ops-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-primary-grid{grid-template-columns:1fr}.pal-demand-main{grid-template-columns:34px minmax(160px,1fr) 70px 70px 90px 75px}}
@media(max-width:760px){
 .ops-kpis{grid-template-columns:repeat(2,1fr)}
 .ops-kpi{min-height:95px;padding:12px}.ops-kpi strong{font-size:28px;margin:10px 0 5px}
 .dashboard-secondary-grid{grid-template-columns:1fr}
 .pal-demand-main{grid-template-columns:32px 1fr auto;gap:8px}
 .pal-demand-main .pal-demand-stat{display:none}
 .pal-demand-main .pal-demand-remaining{display:flex;min-width:72px}
 .pal-demand-main>div:last-child{display:none}
 .pal-demand-recipes{padding-left:12px}
 .dashboard-actions{grid-template-columns:1fr 1fr}
}

/* =========================================================
   v0.18.0 — Full Operations Dashboard
   ========================================================= */
.dashboard-section{margin-bottom:22px}
.dashboard-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 2px 10px}
.dashboard-section-heading h2{margin:2px 0 0;font-size:19px}
.dashboard-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--accent);font-weight:800}
.dashboard-mini-total{display:flex;align-items:baseline;gap:7px}
.dashboard-mini-total strong{font-size:25px;color:var(--accent)}
.dashboard-mini-total span{font-size:10px;color:var(--muted);max-width:100px}

.dashboard-production-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.72fr);gap:14px}
.dashboard-production-side{display:grid;gap:14px;align-content:start}

.dashboard-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dashboard-health-list{display:grid;gap:6px}
.health-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);text-decoration:none;color:var(--text)}
.health-row:hover{border-color:var(--accent)}
.health-row>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.health-row>div:first-child span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.health-value{font-size:18px;font-weight:800}
.health-row small{font-size:9px;color:var(--muted);white-space:nowrap}
.warning-text{color:#f6b94a}
.danger-text{color:#ff6b6b}

.active-printer-list{display:grid;gap:6px}
.active-printer-row{display:grid;grid-template-columns:10px minmax(120px,.7fr) minmax(0,1fr);gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.printer-state-dot{width:9px;height:9px;border-radius:50%;background:#68717e;box-shadow:0 0 0 3px rgba(104,113,126,.08)}
.printer-state-dot.running{background:#45cf80;box-shadow:0 0 0 3px rgba(69,207,128,.10)}
.active-printer-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.active-printer-name span{font-size:10px;color:var(--muted)}
.active-printer-job{display:flex;flex-direction:column;gap:2px;align-items:flex-end;text-align:right;min-width:0}
.active-printer-job a,.active-printer-job span{font-size:10px;color:var(--muted);text-decoration:none}
.active-printer-job a:hover{color:var(--accent)}

.urgent-colour{border-color:rgba(255,102,0,.45)!important;background:rgba(255,102,0,.05)!important}

.workflow-pipeline{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:center}
.workflow-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:112px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--panel);text-decoration:none;color:var(--text);text-align:center}
.workflow-stage:hover{border-color:var(--accent)}
.workflow-stage span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.workflow-stage strong{font-size:32px;margin:10px 0 5px}
.workflow-stage small{font-size:10px;color:var(--muted)}
.workflow-arrow{font-size:22px;color:var(--accent)}

.dashboard-alert-action-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:14px}
.dashboard-alert-list{display:grid}
.dashboard-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.dashboard-alert:last-child{border-bottom:0}
.dashboard-alert:hover strong{color:var(--accent)}
.dashboard-alert-arrow{color:var(--muted)}
.dashboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dashboard-actions .btn{text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center;min-height:42px}

.dashboard-activity-card{padding:0!important;overflow:hidden}
.dashboard-activity-list{display:grid}
.activity-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.activity-row:last-child{border-bottom:0}
.activity-row:hover{background:rgba(255,255,255,.025)}
.activity-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--panel2);font-size:17px;color:var(--accent)}
.activity-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.activity-copy span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-row time{font-size:10px;color:var(--muted);white-space:nowrap}

@media(max-width:1200px){
  .dashboard-production-grid{grid-template-columns:1fr}
  .dashboard-production-side{grid-template-columns:1fr 1fr}
  .dashboard-health-grid{grid-template-columns:1fr 1fr}
  .dashboard-health-grid>.card:last-child{grid-column:1 / -1}
}

@media(max-width:900px){
  .dashboard-production-side{grid-template-columns:1fr}
  .dashboard-alert-action-grid{grid-template-columns:1fr}
  .workflow-pipeline{grid-template-columns:1fr}
  .workflow-arrow{transform:rotate(90deg);justify-self:center}
}

@media(max-width:700px){
  .dashboard-section{margin-bottom:18px}
  .dashboard-section-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .dashboard-health-grid{grid-template-columns:1fr}
  .dashboard-health-grid>.card:last-child{grid-column:auto}
  .health-row{grid-template-columns:minmax(0,1fr) auto}
  .health-row small{display:none}
  .active-printer-row{grid-template-columns:10px minmax(0,1fr)}
  .active-printer-job{grid-column:2;text-align:left;align-items:flex-start}
  .dashboard-actions{grid-template-columns:1fr}
  .activity-row{grid-template-columns:38px minmax(0,1fr)}
  .activity-row time{grid-column:2}
}

/* v0.18.4 — Upcoming Releases */
.upcoming-release-card{padding:0!important;overflow:hidden}
.upcoming-release-list{display:grid}
.upcoming-release-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto 20px;gap:14px;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text);background:var(--panel)}
.upcoming-release-row:last-child{border-bottom:0}
.upcoming-release-row:hover{background:rgba(255,255,255,.025)}
.upcoming-release-row.next-release{background:rgba(255,102,0,.045)}
.release-date-block{display:flex;flex-direction:column;gap:2px}
.release-date-block strong{font-size:17px;color:var(--accent)}
.release-date-block span{font-size:10px;color:var(--muted)}
.release-pal{display:flex;flex-direction:column;gap:2px}
.release-status{justify-self:end}
.release-arrow{color:var(--muted)}
@media(max-width:700px){
  .upcoming-release-row{grid-template-columns:1fr auto;gap:8px 12px}
  .release-date-block{grid-column:1}
  .release-pal{grid-column:1;grid-row:2}
  .release-status{grid-column:2;grid-row:1}
  .release-arrow{grid-column:2;grid-row:2;justify-self:end}
}

/* v0.19.0 — Shopify Integration */
.shopify-hero{border-color:rgba(149,191,71,.28)}
.shopify-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.shopify-connected-banner{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid rgba(69,207,128,.28);border-radius:12px;background:rgba(69,207,128,.06)}
.shopify-connected-banner strong{color:#62d994}
.shopify-connected-banner span{color:var(--muted);font-size:11px}
.shopify-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}
.shopify-kpi{display:flex;flex-direction:column;min-height:110px}
.shopify-kpi>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.shopify-kpi strong{font-size:31px;margin:14px 0 6px}
.shopify-kpi small{color:var(--muted)}
.shopify-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.shopify-detail-list{display:grid;gap:8px}
.shopify-detail-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.shopify-detail-list>div:last-child{border-bottom:0}
.shopify-detail-list span{color:var(--muted);font-size:11px}
.shopify-list{display:grid;gap:7px}
.shopify-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.shopify-list-row>div{display:flex;flex-direction:column;gap:2px}
.shopify-list-row span,.shopify-list-row small{font-size:10px;color:var(--muted)}
.shopify-table-wrap{overflow-x:auto}
.shopify-table{width:100%;border-collapse:collapse;min-width:720px}
.shopify-table th,.shopify-table td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:left;font-size:11px}
.shopify-table th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.shopify-order-list{display:grid}
.shopify-order-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.shopify-order-row:last-child{border-bottom:0}
.shopify-order-main,.shopify-order-status{display:flex;flex-direction:column;gap:2px}
.shopify-order-main span,.shopify-order-status span,.shopify-order-row time{font-size:10px;color:var(--muted)}
.shopify-order-status{text-align:right}
.shopify-safety{margin-top:14px;border-color:rgba(255,102,0,.25)}
@media(max-width:900px){
  .shopify-kpi-grid{grid-template-columns:1fr 1fr}
  .shopify-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .shopify-kpi-grid{grid-template-columns:1fr 1fr}
  .shopify-order-row{grid-template-columns:1fr}
  .shopify-order-status{text-align:left}
}

/* v0.19.1 Shopify product selection */
.shopify-mapping-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 190px auto auto auto;gap:8px;align-items:center;margin:14px 0 10px}
.shopify-mapping-summary{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 10px;color:var(--muted);font-size:11px}
.shopify-mapping-summary strong{color:var(--text);font-size:14px}
.shopify-mapping-table select{min-width:220px}
.switch-mini{position:relative;display:inline-block;width:36px;height:20px}
.switch-mini input{opacity:0;width:0;height:0}
.switch-mini span{position:absolute;inset:0;border-radius:999px;background:#313944;border:1px solid var(--line);cursor:pointer}
.switch-mini span:after{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#aab2bd;transition:.15s}
.switch-mini input:checked+span{background:rgba(255,102,0,.25);border-color:var(--orange)}
.switch-mini input:checked+span:after{transform:translateX(16px);background:var(--orange)}
@media(max-width:1100px){.shopify-mapping-toolbar{grid-template-columns:1fr 1fr}.shopify-mapping-toolbar .btn{width:100%}}
@media(max-width:650px){.shopify-mapping-toolbar{grid-template-columns:1fr}.shopify-mapping-table select{min-width:180px}}

/* v0.20.0 Shopify-driven demand */
.shopify-demand-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.shopify-demand-summary>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.shopify-demand-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.shopify-demand-summary strong{font-size:22px}
.shopify-demand-list{display:grid;gap:7px}
.shopify-demand-row{display:grid;grid-template-columns:minmax(180px,1fr) 100px 90px 100px;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.shopify-demand-row>div:first-child{display:flex;flex-direction:column;gap:2px}
.shopify-demand-row>div:not(:first-child){display:flex;flex-direction:column;gap:2px;text-align:right}
.shopify-demand-row>div:not(:first-child) span{font-size:9px;color:var(--muted);text-transform:uppercase}
.shopify-demand-row small{grid-column:1/-1;color:var(--muted);font-size:9px;border-top:1px solid var(--line);padding-top:6px}
@media(max-width:700px){
 .shopify-demand-summary{grid-template-columns:1fr}
 .shopify-demand-row{grid-template-columns:1fr 1fr}
 .shopify-demand-row>div:not(:first-child){text-align:left}
 .shopify-demand-row small{grid-column:1/-1}
}

/* v0.20.1 — Shopify is the finished Pal stock source */
.pal-inventory-source{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:center;margin-bottom:12px}
.pal-inventory-source>div{display:flex;flex-direction:column;gap:3px}
.pal-inventory-source>div strong{font-size:12px}
.pal-inventory-source>div span{font-size:10px;color:var(--muted)}
.shopify-stock-cell strong{color:#63dc97}
.shopify-stock-cell small,.need-cell small{display:block;margin-top:3px;font-size:9px;color:var(--muted)}
.warning-text{color:#e6b94f!important;margin-top:4px}
@media(max-width:850px){.pal-inventory-source{grid-template-columns:1fr 1fr}.pal-inventory-source>.badge{justify-self:start}}
@media(max-width:560px){.pal-inventory-source{grid-template-columns:1fr}}

.shopify-location-help{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.shopify-location-help>div{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.shopify-location-help span,.shopify-location-map-info span{font-size:10px;color:var(--muted)}.shopify-location-mapping-list{display:grid;gap:7px}.shopify-location-map-row{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.shopify-location-map-info{display:flex;flex-direction:column;gap:2px}@media(max-width:700px){.shopify-location-help,.shopify-location-map-row{grid-template-columns:1fr}}

/* v0.20.3 — Stock Target Defaults & Overrides */
.stock-target-default-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.stock-target-default-grid label{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.stock-target-default-grid label>span{font-weight:700}
.stock-target-default-grid small{color:var(--muted)}
.target-control{display:flex;flex-direction:column;gap:4px;min-width:112px}
.target-input-row{display:flex;gap:5px;align-items:center}
.target-input-row .number{width:74px}
.target-reset-btn{width:30px;height:30px;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:8px;cursor:pointer}
.target-reset-btn:disabled{opacity:.25;cursor:default}
.target-mode{font-size:8px;letter-spacing:.06em;font-weight:700;color:var(--muted)}
.target-control.custom .target-mode{color:var(--orange)}
.target-control.custom .number{border-color:rgba(255,102,0,.55)}
@media(max-width:650px){.stock-target-default-grid{grid-template-columns:1fr}}

/* v0.21.0 — Shopify automatic dispatch sync */
.dispatch-shopify-banner{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:12px;border-color:rgba(69,207,128,.25)}
.dispatch-shopify-banner>div{display:flex;flex-direction:column;gap:3px}
.dispatch-shopify-banner span:not(.badge){font-size:10px;color:var(--muted)}
.success-text{color:#62d994!important}
@media(max-width:650px){.dispatch-shopify-banner{align-items:flex-start;flex-direction:column}}

.print-bridge-detail{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:10px;color:var(--muted)}

/* v0.22.1 — Insert Scanner */
.scanner-main{max-width:1600px}
.insert-scanner-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px;margin-bottom:14px}
.scanner-camera-card,.scanner-result-card{min-width:0}
.insert-scanner-camera{position:relative;overflow:hidden;min-height:420px;border:1px solid var(--line);border-radius:14px;background:#080c10;display:flex;align-items:center;justify-content:center}
.insert-scanner-camera video,.insert-scanner-camera canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:cover}
.scanner-camera-placeholder{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;color:var(--muted);padding:25px;z-index:0}
.scanner-camera-placeholder .scanner-icon{font-size:42px;color:var(--accent)}
.camera-live .scanner-camera-placeholder{display:none}
.scanner-target{pointer-events:none;position:absolute;left:9%;right:9%;top:34%;height:32%;border:2px solid rgba(255,108,0,.9);border-radius:12px;z-index:5;box-shadow:0 0 0 9999px rgba(0,0,0,.18)}
.scanner-target:before,.scanner-target:after,.scanner-target span:before,.scanner-target span:after{content:"";position:absolute;width:24px;height:24px;border-color:#fff}
.scanner-target:before{left:-3px;top:-3px;border-left:4px solid;border-top:4px solid;border-radius:7px 0 0 0}
.scanner-target:after{right:-3px;top:-3px;border-right:4px solid;border-top:4px solid;border-radius:0 7px 0 0}
.scanner-target span:before{left:-3px;bottom:-3px;border-left:4px solid;border-bottom:4px solid;border-radius:0 0 0 7px}
.scanner-target span:after{right:-3px;bottom:-3px;border-right:4px solid;border-bottom:4px solid;border-radius:0 0 7px 0}
.scanner-controls{display:flex;gap:8px;margin-top:10px}
.insert-scan-status{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:18px;min-height:120px}
.scan-status-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;background:rgba(255,255,255,.06)}
.scan-idle{border-color:var(--line)}
.scan-success{border-color:rgba(48,206,126,.55);background:rgba(48,206,126,.07)}
.scan-success .scan-status-icon{background:rgba(48,206,126,.16);color:#57de96}
.scan-warning{border-color:rgba(243,184,66,.55);background:rgba(243,184,66,.07)}
.scan-warning .scan-status-icon{background:rgba(243,184,66,.16);color:#f3c55b}
.scan-error{border-color:rgba(239,86,86,.55);background:rgba(239,86,86,.07)}
.scan-error .scan-status-icon{background:rgba(239,86,86,.16);color:#ff7777}
.scan-status-detail{margin-top:4px;color:var(--muted);line-height:1.35}
.scanner-pal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.scanner-pal-summary>div{border:1px solid var(--line);border-radius:12px;padding:14px;background:rgba(255,255,255,.015)}
.scanner-pal-summary span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:6px}
.scanner-pal-summary strong{font-size:22px}
.manual-scan-card{margin-top:12px}
.manual-scan-card label>span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}
.manual-scan-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.scan-recent-row{display:flex;justify-content:space-between;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line)}
.scan-recent-row:last-child{border-bottom:0}
.scan-recent-meta{text-align:right;display:flex;flex-direction:column;gap:3px}
.scan-recent-meta span{font-size:9px;color:var(--muted)}
@media(max-width:900px){
  .insert-scanner-grid{grid-template-columns:1fr}
  .insert-scanner-camera{min-height:360px}
}
@media(max-width:600px){
  .scanner-main{padding-left:12px!important;padding-right:12px!important}
  .insert-scanner-camera{min-height:310px}
  .scanner-pal-summary{grid-template-columns:1fr 1fr}
  .scanner-pal-summary>div:first-child{grid-column:1/-1}
  .manual-scan-row{grid-template-columns:1fr}
  .scanner-controls .btn{flex:1}
  .insert-scan-status{grid-template-columns:44px 1fr;padding:14px}
  .scan-status-icon{width:42px;height:42px;font-size:22px}
}

/* v0.22.5 — Raspberry Pi Insert Print integration */
.insert-queue-badges{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.insert-pi-action-row{align-items:end}
.insert-pi-action-row .printViaPi{min-width:125px}
@media(max-width:720px){
  .insert-pi-action-row{display:grid!important;grid-template-columns:1fr 1fr}
  .insert-pi-action-row .compact-label{grid-column:1/-1}
  .insert-pi-action-row .btn,.insert-pi-action-row a.btn{width:100%;justify-content:center}
}

/* v0.22.6 — Pipeline-aware Insert Demand */
.insert-demand-reason{
  margin-top:9px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
  background:rgba(255,255,255,.015);
}

.insert-failure-panel{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:end;justify-content:space-between;gap:14px;background:rgba(255,255,255,.018)}
.insert-failure-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.insert-history{margin-top:10px;border-top:1px solid var(--line);padding-top:9px}
.insert-history summary{cursor:pointer;color:var(--muted);font-weight:700}
.insert-history-list{display:grid;gap:7px;margin-top:8px}
.insert-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px}
.insert-history-row>div:first-child{display:flex;align-items:center;gap:8px}
.insert-history-empty{color:var(--muted);font-size:12px;padding:6px 0}
@media(max-width:760px){.insert-failure-panel{display:block}.insert-failure-actions{margin-top:10px}}

/* v0.23.0 — Insert print management modals */
.forge-modal{display:none;position:fixed;inset:0;z-index:9999}
.forge-modal.open{display:block}
.forge-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(3px)}
.forge-modal-panel{
  position:relative;
  width:min(620px,calc(100vw - 28px));
  margin:7vh auto 0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
  overflow:hidden
}
.forge-modal-head,.forge-modal-actions{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px
}
.forge-modal-head{border-bottom:1px solid var(--line)}
.forge-modal-head h2{margin:0}
.forge-modal-body{padding:18px;display:grid;gap:14px}
.forge-modal-body label>span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}
.forge-modal-body select,.forge-modal-body input{width:100%}
.forge-modal-actions{border-top:1px solid var(--line)}
.forge-modal-actions.split>div{display:flex;gap:8px}
.insert-modal-summary{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  padding-top:4px
}
.insert-modal-summary>div{
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  background:rgba(255,255,255,.015)
}
.insert-modal-summary span{
  display:block;
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:5px
}
.insert-modal-summary strong{font-size:15px}
@media(max-width:640px){
  .forge-modal-panel{margin-top:3vh}
  .forge-modal-actions.split{display:block}
  .forge-modal-actions.split>div{margin-top:8px;display:grid}
  .insert-modal-summary{grid-template-columns:1fr}
}

/* v0.23.3 — live Epson insert printer queue */
.live-printer-card{margin-bottom:16px}
.live-printer-list{display:grid;gap:8px;margin-top:12px}
.live-printer-row{
 display:grid;grid-template-columns:82px minmax(0,1fr) 190px;gap:14px;align-items:center;
 padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.018)
}
.live-printer-row.is-printing{border-color:rgba(72,194,130,.38);background:rgba(72,194,130,.055)}
.live-printer-state{font-size:9px;font-weight:800;letter-spacing:.08em;text-align:center;padding:6px 7px;border:1px solid var(--line);border-radius:999px}
.live-printer-row.is-printing .live-printer-state{color:#73dba3;border-color:rgba(72,194,130,.4)}
.live-printer-row.is-waiting .live-printer-state{color:var(--muted)}
.live-printer-info strong{font-size:14px}
.live-printer-status{font-size:11px;color:var(--muted);margin-top:4px}
.live-printer-cups{text-align:right;min-width:0}
.live-printer-cups span{display:block;font-size:8px;color:var(--muted);letter-spacing:.08em}
.live-printer-cups strong{display:block;font-size:11px;overflow-wrap:anywhere;margin-top:3px}
.live-printer-cups small{display:block;font-size:9px;color:var(--muted);margin-top:3px}
.live-printer-empty,.live-printer-error{padding:18px}
@media(max-width:720px){
 .live-printer-row{grid-template-columns:74px minmax(0,1fr)}
 .live-printer-cups{grid-column:2;text-align:left}
}


/* v0.23.8 — compact Dispatch */
.dispatch-pal-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.dispatch-compact-row{display:grid;grid-template-columns:minmax(210px,1.35fr) 68px minmax(150px,.8fr) minmax(150px,.8fr) minmax(210px,1fr);gap:9px;align-items:center;background:#11161c;border:1px solid var(--line);border-radius:10px;padding:9px 10px}
.dispatch-compact-row:hover{border-color:#38414c}
.dispatch-compact-product{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.dispatch-compact-product strong{font-size:14px}
.dispatch-compact-product .sku{font-size:10px}
.dispatch-compact-note{flex-basis:100%;font-size:10px;color:var(--muted);margin-top:-2px}
.dispatch-compact-qty{text-align:center;border-left:1px solid #252c34;border-right:1px solid #252c34;padding:1px 8px}
.dispatch-compact-qty span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.dispatch-compact-qty strong{display:block;font-size:21px;color:var(--orange);line-height:1.05}
.dispatch-compact-destination{display:grid;grid-template-columns:1fr 52px;gap:7px;align-items:center;background:#171d24;border:1px solid #292f37;border-radius:8px;padding:7px 8px;margin:0}
.dispatch-compact-destination>span{display:flex;flex-direction:column;line-height:1.1}
.dispatch-compact-destination strong{font-size:12px}
.dispatch-compact-destination small{font-size:9px;color:var(--muted);margin-top:3px}
.dispatch-compact-destination input{width:52px!important;min-width:52px!important;padding:7px 5px;text-align:center}
.dispatch-compact-action{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.dispatch-compact-action .dispatch-allocation-summary{font-size:9px;color:var(--muted);text-align:right;line-height:1.25;flex:1;min-width:0}
.dispatch-compact-action .btn{padding:8px 12px;white-space:nowrap}
.dispatch-route-pill{justify-self:end;background:#171d24;border:1px solid #292f37;border-radius:999px;padding:7px 11px;font-size:10px;color:#d6dde6;white-space:nowrap}
.dispatch-compact-spare,.dispatch-compact-rework{grid-template-columns:minmax(240px,1fr) 68px minmax(170px,auto) auto}
.dispatch-compact-spare{border-color:rgba(54,130,202,.35)}
.dispatch-compact-rework{border-color:rgba(255,125,0,.28)}
.dispatch-compact-spare .btn,.dispatch-compact-rework .btn{padding:8px 12px}

/* Tighter Cornwall receipt cards without changing QC behaviour */
#awaitingDeliveries.delivery-list{gap:7px;margin-top:10px}
#awaitingDeliveries .delivery-card{padding:10px}
#awaitingDeliveries .delivery-main .small{font-size:10px}
#awaitingDeliveries .delivery-qc{gap:8px}

@media(max-width:1100px){
  .dispatch-compact-row{grid-template-columns:minmax(180px,1fr) 60px minmax(135px,.8fr) minmax(135px,.8fr);}
  .dispatch-compact-action{grid-column:1/-1;border-top:1px solid #252c34;padding-top:7px}
  .dispatch-compact-spare,.dispatch-compact-rework{grid-template-columns:minmax(220px,1fr) 60px 1fr auto}
  .dispatch-compact-spare .dispatch-compact-action,.dispatch-compact-rework .dispatch-compact-action{grid-column:auto;border:0;padding:0}
}
@media(max-width:760px){
  .dispatch-compact-row,.dispatch-compact-spare,.dispatch-compact-rework{grid-template-columns:1fr auto}
  .dispatch-compact-product{grid-column:1/2}
  .dispatch-compact-qty{grid-column:2/3;grid-row:1;border-right:0}
  .dispatch-compact-destination{grid-column:1/-1}
  .dispatch-route-pill{grid-column:1/2;justify-self:start}
  .dispatch-compact-row>.btn{grid-column:2/3}
  .dispatch-compact-action{grid-column:1/-1}
}


/* PLA Forge v0.24.0 — Reports */
.report-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.report-date-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.report-date-controls label{min-width:170px}
.report-hero-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px;margin:14px 0}
.report-location-card{min-width:0}
.report-location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.report-location-head h2{margin:2px 0 0}
.report-eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;color:var(--muted)}
.report-big-value{font-size:34px;font-weight:900;letter-spacing:-.03em;margin-top:14px}
.report-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:16px}
.report-stat-grid>div{padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.02)}
.report-stat-grid span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.report-stat-grid strong{display:block;margin-top:3px;font-size:17px}
.report-detail-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:14px;margin-bottom:14px}
.report-tabs{display:flex;gap:8px;margin-bottom:12px}
.report-product-list{display:flex;flex-direction:column}
.report-product-row{display:grid;grid-template-columns:32px minmax(0,1fr) 80px 90px;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--border)}
.report-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--panel2);font-weight:800}
.report-product-name{min-width:0}
.report-product-name strong,.report-product-name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.report-product-name span{font-size:11px;color:var(--muted)}
.report-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.report-note{margin-top:10px}
.report-warning{margin-top:14px;padding:12px;border-radius:12px;border:1px solid rgba(245,158,11,.45);background:rgba(245,158,11,.08)}
.report-success{margin-top:14px;padding:10px 12px;border-radius:12px;border:1px solid rgba(34,197,94,.35);background:rgba(34,197,94,.06)}
.report-payment-table{display:flex;flex-direction:column}
.report-payment-head,.report-payment-row{display:grid;grid-template-columns:1.2fr repeat(5,1fr);gap:10px;align-items:center;padding:10px 8px}
.report-payment-head{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}
.report-payment-row{border-bottom:1px solid var(--border)}
@media(max-width:1050px){.report-hero-grid{grid-template-columns:1fr 1fr}.report-total{grid-column:1/-1}.report-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.report-hero-grid{grid-template-columns:1fr}.report-total{grid-column:auto}.report-payment-table{overflow:auto}.report-payment-head,.report-payment-row{min-width:650px}.report-product-row{grid-template-columns:30px minmax(0,1fr) 65px}.report-product-row>span:last-child{display:none}.report-settings-grid{grid-template-columns:1fr}.report-date-controls{width:100%}.report-date-controls label{flex:1}}

.reportRangeBtn.active{border-color:var(--orange);background:var(--orange);color:#fff}
@media(max-width:900px){.report-date-controls .reportRangeBtn{flex:1 1 auto}}


/* =========================================================
   PLA FORGE v0.25.0 — BRAND REFRESH
   ========================================================= */
:root{
 --bg:#0b0f12; --panel:#14191f; --panel2:#1f2328; --line:#343b44;
 --text:#ffffff; --muted:#a8b0ba; --orange:#ff6a00; --orange2:#ff8c33;
}
body{letter-spacing:-.005em}
.sidebar{background:#090c10;border-right-color:#2a3037;padding:16px 12px}
.forge-brand-lockup{display:block;padding:0 2px 20px;margin:0 0 8px;border-bottom:1px solid #252b32}
.forge-brand-lockup img{display:block;width:100%;max-width:210px;height:auto;object-fit:contain;object-position:left center}
.navgroup{color:#737c88;font-weight:600;letter-spacing:.16em}
.nav a{font-weight:500;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s}
.nav a:hover{background:#151a20;border-color:#282f37}
.nav a.active{background:linear-gradient(90deg,rgba(255,106,0,.16),rgba(255,106,0,.045));border:1px solid rgba(255,106,0,.26);border-left:3px solid var(--orange);color:#fff}
main{background:radial-gradient(circle at 82% -8%,rgba(255,106,0,.045),transparent 25%),var(--bg)}
.topbar{padding-bottom:16px;border-bottom:1px solid #242a31}
.topbar h1{font-weight:700;letter-spacing:-.025em}
.kitsu{border-color:rgba(255,106,0,.38);background:linear-gradient(105deg,rgba(255,106,0,.12),rgba(255,140,51,.025));box-shadow:inset 0 1px rgba(255,255,255,.025)}
.kitsu-mark{width:38px;height:38px;object-fit:cover;object-position:left center;border-radius:9px}
.card,.ops-kpi{border-color:#303740;box-shadow:0 8px 24px rgba(0,0,0,.12),inset 0 1px rgba(255,255,255,.018)}
.btn{font-family:inherit;font-weight:650;letter-spacing:-.01em}
.btn:not(.secondary):not(.ghost){background:linear-gradient(180deg,#ff7a16,#ff6a00);box-shadow:0 4px 14px rgba(255,106,0,.14)}
.btn:not(.secondary):not(.ghost):hover{background:linear-gradient(180deg,#ff8c33,#ff7310)}
.badge{letter-spacing:.02em}
.dashboard-eyebrow{color:var(--orange);font-weight:650;letter-spacing:.11em}
.dashboard-section-heading h2,.section-title h2{font-weight:650;letter-spacing:-.02em}
.forge-footer{margin-top:28px;padding:18px 4px 6px;border-top:1px solid #252b32;display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:#9da6b1}
.forge-footer-brand{display:inline-flex;align-items:center;gap:7px;color:#fff}
.forge-footer-brand img{width:25px;height:25px;object-fit:cover;object-position:left center;border-radius:6px}
.forge-footer-brand strong{font-size:12px;letter-spacing:.04em}
.forge-footer b{color:var(--orange);font-weight:600}
.forge-footer small{margin-left:auto;color:#69727e}
@media(max-width:700px){
 .forge-brand-lockup img{max-width:165px}
 .kitsu-mark{width:32px;height:32px}
 .forge-footer{align-items:flex-start;flex-direction:column;gap:7px}
 .forge-footer small{margin-left:0}
}

#reportToday.active,.reportRangeBtn.active{
  border-color:var(--orange);
  background:var(--orange);
  color:#fff;
}
#reportToday.secondary{
  background:var(--panel2);
  color:var(--text);
  border-color:var(--line);
}

/* =========================================================
   v0.26.0 — Kitsu AI chat
   Existing top-right Kitsu card remains the launcher.
   ========================================================= */
.forge-kitsu-launcher{cursor:pointer;user-select:none;position:relative;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.forge-kitsu-launcher:hover{border-color:rgba(255,106,0,.72);box-shadow:0 8px 24px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.035);transform:translateY(-1px)}
.forge-kitsu-launcher:focus-visible{outline:2px solid var(--orange,#ff6a00);outline-offset:3px}
.forge-kitsu-launcher::after{content:'Ask me';font-size:10px;line-height:1;color:#ff8c33;border:1px solid rgba(255,106,0,.28);border-radius:999px;padding:4px 7px;margin-left:3px;white-space:nowrap}
.forge-kitsu-shade{position:fixed;inset:0;background:rgba(4,5,7,.52);backdrop-filter:blur(2px);z-index:9996;opacity:0;pointer-events:none;transition:opacity .2s ease}
.forge-kitsu-shade.open{opacity:1;pointer-events:auto}
.forge-kitsu-drawer{position:fixed;top:0;right:0;width:min(430px,100vw);height:100dvh;z-index:9997;background:#101215;border-left:1px solid rgba(255,106,0,.32);box-shadow:-24px 0 60px rgba(0,0,0,.45);display:flex;flex-direction:column;transform:translateX(104%);transition:transform .22s ease;color:var(--text,#f2f2f2)}
.forge-kitsu-drawer.open{transform:translateX(0)}
.forge-kitsu-head{display:flex;justify-content:space-between;align-items:center;padding:17px 18px;background:linear-gradient(105deg,rgba(255,106,0,.16),rgba(255,106,0,.025));border-bottom:1px solid rgba(255,106,0,.22)}
.forge-kitsu-identity{display:flex;gap:11px;align-items:center}.forge-kitsu-identity img{width:42px;height:42px;object-fit:cover;object-position:left center;border-radius:10px}.forge-kitsu-identity div{display:flex;flex-direction:column;gap:3px}.forge-kitsu-identity strong{font-size:18px}.forge-kitsu-identity span{font-size:11px;color:var(--muted,#97999f)}
.forge-kitsu-close{border:0;background:transparent;color:#e8e8e8;font-size:29px;line-height:1;cursor:pointer;padding:5px 8px;border-radius:9px}.forge-kitsu-close:hover{background:rgba(255,255,255,.06)}
.forge-kitsu-context{padding:9px 17px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;gap:7px;font-size:11px;color:var(--muted,#97999f)}.forge-kitsu-context strong{color:#d8d8da;font-weight:600}
.forge-kitsu-log{flex:1;overflow:auto;padding:17px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.forge-kitsu-message{display:flex;gap:8px;max-width:92%;align-items:flex-end}.forge-kitsu-user{align-self:flex-end;justify-content:flex-end}.forge-kitsu-assistant{align-self:flex-start}
.forge-kitsu-bubble{padding:11px 13px;border-radius:15px;font-size:13px;line-height:1.5;border:1px solid rgba(255,255,255,.07);background:#181b20}.forge-kitsu-user .forge-kitsu-bubble{background:linear-gradient(135deg,#ff6a00,#e95d00);color:white;border-color:rgba(255,135,55,.45);border-bottom-right-radius:5px}.forge-kitsu-assistant .forge-kitsu-bubble{border-bottom-left-radius:5px}
.forge-kitsu-message-mark{width:27px;height:27px;flex:0 0 27px;border-radius:8px;display:grid;place-items:center;background:rgba(255,106,0,.13);border:1px solid rgba(255,106,0,.25);color:#ff8c33;font-weight:800;font-size:13px}.forge-kitsu-message-mark[data-mood="concerned"]{color:#ffba66}.forge-kitsu-message-mark[data-mood="excited"]{font-size:16px}
.forge-kitsu-suggestions{display:flex;gap:7px;overflow-x:auto;padding:0 14px 10px}.forge-kitsu-suggestion{flex:0 0 auto;border:1px solid rgba(255,106,0,.26);background:#17191d;color:#cfcfd2;border-radius:999px;padding:7px 10px;font-size:11px;cursor:pointer}.forge-kitsu-suggestion:hover{border-color:#ff6a00;color:white}
.forge-kitsu-compose{display:flex;gap:9px;padding:12px 14px max(14px,env(safe-area-inset-bottom));background:#0d0f12;border-top:1px solid rgba(255,255,255,.08)}.forge-kitsu-compose textarea{flex:1;resize:none;min-height:45px;max-height:120px;background:#17191d;color:#f4f4f4;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px 11px;font:inherit;font-size:13px;outline:none}.forge-kitsu-compose textarea:focus{border-color:rgba(255,106,0,.7);box-shadow:0 0 0 3px rgba(255,106,0,.09)}.forge-kitsu-compose .btn{min-width:72px;border-radius:12px}.forge-kitsu-compose .btn:disabled{opacity:.55;cursor:wait}
body.forge-kitsu-open{overflow:hidden}
@media(max-width:700px){.forge-kitsu-drawer{width:100vw}.forge-kitsu-launcher::after{display:none}.forge-kitsu-head{padding-top:max(17px,env(safe-area-inset-top))}}

/* =========================================================
   v0.26.1 — Kitsu universal top-right position
   Keep the existing Kitsu launcher, but anchor it consistently
   at the upper-right of every authenticated Forge page.
   ========================================================= */
main{position:relative}

/* Kitsu should remain available for every signed-in role. */
body.forge-role-retail-staff .topbar .kitsu{
  display:flex !important;
}

@media (min-width:981px){
  main > .topbar{
    align-items:flex-start !important;
    min-height:76px;
    padding-right:330px;
  }

  main > .topbar > .kitsu{
    position:absolute !important;
    top:14px !important;
    right:18px !important;
    width:auto !important;
    max-width:310px !important;
    margin:0 !important;
    z-index:20;
    align-self:auto !important;
  }
}

/* Tablet: keep Kitsu on the right of the heading instead of dropping below it. */
@media (min-width:701px) and (max-width:980px){
  main > .topbar{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:12px !important;
    align-items:start !important;
  }

  main > .topbar > .kitsu{
    width:auto !important;
    max-width:300px !important;
    min-width:220px !important;
    margin:0 0 0 auto !important;
    align-self:start !important;
  }
}

/* Phones stay usable: Kitsu remains visible immediately beneath the heading. */
@media (max-width:700px){
  body.forge-role-retail-staff .topbar .kitsu{
    display:flex !important;
  }
}


/* v0.26.2 — Cornwall rework insert pipeline status */
#cornwallInsertInventory tr.pending-spare-row td{
  background:rgba(245,158,11,.075);
  border-top-color:rgba(245,158,11,.34);
  border-bottom-color:rgba(245,158,11,.34);
}
#cornwallInsertInventory tr.pending-spare-row td:first-child{
  border-left:1px solid rgba(245,158,11,.42);
  border-radius:8px 0 0 8px;
}
#cornwallInsertInventory tr.pending-spare-row td:last-child{
  border-right:1px solid rgba(245,158,11,.42);
  border-radius:0 8px 8px 0;
}

/* Forge Test Environment */
#forgeTestEnvironmentBanner{
  position:fixed;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  z-index:999999;
  display:flex;
  align-items:center;
  gap:12px;
  padding:9px 16px;
  border-radius:10px;
  background:#ffd43b;
  color:#181818;
  border:2px solid #181818;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
  font-size:12px;
  font-weight:800;
}

#forgeTestEnvironmentBanner strong{
  font-weight:950;
}

#forgeTestEnvironmentBanner span{
  opacity:.78;
}

@media(max-width:700px){
  #forgeTestEnvironmentBanner{
    width:calc(100% - 20px);
    justify-content:center;
    flex-wrap:wrap;
    gap:3px 10px;
    text-align:center;
  }
}
