:root{
 --ground:#f6f1e7;--card:#fffdf8;--sub:#f9f4e9;--rail:#14342a;--rail-hi:#1d4a3b;--ink:#1c2b24;--ink2:#4a5548;--muted:#5d6b60;
 --gold:#8a6d2f;--gold-d:#6e5525;--gold-l:#c9a961;--cream:#f3ede0;--cream2:#d8cfba;--sage:#9fb8a9;--wheat:#efe7d5;
 --b1:#e7ddc8;--b2:#f0e8d6;--strong:#c9bda0;--field:#ddd2b8;
 --ok:#1d5c33;--ok-bg:#e4f0e4;--ok-dot:#5cb570;--warn:#9a6a12;--warn-bg:#faf3e2;--warn-dot:#e0a53c;--no:#a8493a;--no-bg:#f5efe9;--no-dot:#cf8a7c;--alert:#c8532f;--info:#2f6a7a;--info-bg:#dceef2;
 --serif:'Playfair Display',Georgia,'Times New Roman',serif;--ui:'Jost','Avenir Next','Segoe UI',system-ui,sans-serif;
 --shadow:0 1px 2px rgba(20,52,42,.04),0 8px 24px rgba(20,52,42,.05);--r:18px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--ui);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:var(--gold);text-decoration:none}a:hover{color:var(--gold-d)}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--rail);margin:0}
em{font-style:italic;color:var(--gold)}
.ic{flex-shrink:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}
.wheat{position:absolute;right:-30px;bottom:-40px;opacity:.09;pointer-events:none}

/* shell */
.shell{display:flex;min-height:100vh}
.rail{width:248px;flex:0 0 248px;background:var(--rail);color:var(--cream2);display:flex;flex-direction:column;padding:26px 12px 16px;position:sticky;top:0;height:100vh;overflow:hidden}
.brand{padding:0 14px 20px;margin-bottom:12px;border-bottom:1px solid rgba(243,237,224,.15);position:relative}
.wordmark{display:block;font-family:var(--serif);font-style:italic;font-weight:600;font-size:27px;line-height:1.05;color:var(--cream)}
.wordmark:hover{color:#fff}
.wordmark small{display:block;font-family:var(--ui);font-style:normal;font-weight:600;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);margin-top:7px}
.wordmark.sm{font-size:21px}.wordmark.sm small{font-size:9px;margin-top:3px;letter-spacing:.26em}
.wordmark.lg{font-size:34px;color:var(--rail)}.wordmark.lg small{color:var(--gold)}
.live{display:flex;align-items:center;gap:7px;margin-top:13px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--sage)}
.live i{width:7px;height:7px;border-radius:50%;background:#7fc98f;box-shadow:0 0 0 4px rgba(127,201,143,.18)}
.nav{display:flex;flex-direction:column;gap:1px;position:relative;overflow-y:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav-h{padding:18px 14px 6px;font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}
.nav-i{position:relative;display:flex;align-items:center;gap:12px;min-height:42px;padding:0 14px;border-radius:10px;font-size:14.5px;color:var(--cream2)}
.nav-i span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-i:hover{background:rgba(243,237,224,.08);color:var(--cream)}
.nav-i.on{background:rgba(243,237,224,.13);color:#fffdf8;font-weight:600}
.nav-i.on::before{content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--gold-l)}
.bdg{margin-left:auto;font-size:11.5px;font-weight:600;border-radius:99px;padding:1px 8px;background:var(--alert);color:#fff}
.rail-foot{margin-top:auto;position:relative;display:flex;flex-direction:column;gap:12px;padding-top:12px}
.rooms{display:block;margin:0 4px;padding:12px 10px 10px;border-radius:14px;background:rgba(243,237,224,.07);border:1px solid rgba(243,237,224,.12);color:var(--cream2)}
.rooms:hover{background:rgba(243,237,224,.11);color:var(--cream2)}
.rooms-h{font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);padding:0 6px 8px}
.rooms-g{display:flex}.rooms-g>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}
.rooms-g i{width:7px;height:7px;border-radius:50%;background:var(--ok-dot)}.rooms-g i.warn{background:var(--warn-dot)}.rooms-g i.na{background:rgba(243,237,224,.3)}
.rooms-g b{font-size:13px;color:#fffdf8;font-variant-numeric:tabular-nums}.rooms-g span{font-size:10px;letter-spacing:.1em;color:var(--sage)}
.who{display:flex;align-items:center;gap:10px;padding:12px 14px 0;border-top:1px solid rgba(243,237,224,.15)}
.who b{display:block;font-size:13.5px;color:var(--cream)}.who span{font-size:12px;color:var(--sage)}
.av{width:36px;height:36px;border-radius:10px;background:var(--wheat);color:var(--rail);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;flex-shrink:0}
.out{margin-left:auto;color:var(--sage);display:flex;padding:8px}.out:hover{color:var(--cream)}
.main-wrap{flex:1;min-width:0;display:flex;flex-direction:column}
.main{flex:1;padding:30px 36px 60px;max-width:1500px;width:100%;display:flex;flex-direction:column;gap:20px}
.mtop,.tabbar,.drawer{display:none}

/* page header */
.page-h{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.page-h h1{font-size:36px;line-height:1.08;letter-spacing:-.01em}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.back{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;margin-bottom:10px;color:var(--muted)}
.acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lab{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.big-num{font-family:var(--serif);font-weight:600;line-height:1;color:var(--rail);font-variant-numeric:lining-nums tabular-nums}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 20px;border-radius:99px;border:1px solid var(--rail);background:var(--rail);color:var(--cream);font-weight:600;font-size:14.5px;white-space:nowrap;box-shadow:0 6px 16px rgba(20,52,42,.18);transition:background .12s}
.btn:hover{background:var(--rail-hi);color:var(--cream)}
.btn.ghost{background:var(--card);color:var(--ink2);border-color:var(--strong);box-shadow:none}
.btn.ghost:hover{background:#efe7d5;color:var(--ink2)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#fffdf8;box-shadow:0 6px 16px rgba(138,109,47,.25)}
.btn.cream{background:var(--cream);border-color:var(--cream);color:var(--rail);box-shadow:none}
.btn.ghostd{background:transparent;border-color:rgba(243,237,224,.3);color:var(--cream);box-shadow:none}
.btn.danger{background:transparent;border-color:#dcc0b7;color:var(--no);box-shadow:none}
.btn.danger:hover{background:var(--no-bg)}
.btn.big{min-height:56px;padding:0 28px;font-size:16.5px}
.btn.sm{min-height:36px;padding:0 14px;font-size:13.5px;box-shadow:none}
.btn.full{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}
.icon-btn{width:44px;height:44px;border-radius:99px;border:1px solid var(--b1);background:var(--card);color:var(--ink2);display:inline-flex;align-items:center;justify-content:center}
.link{font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px}

/* cards */
.card{background:var(--card);border:1px solid var(--b1);border-radius:var(--r);padding:22px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow);min-width:0}
.card.flush{padding:0;gap:0;overflow:hidden}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card-h h2{font-size:20px}
.dark{background:var(--rail);color:var(--cream);border-radius:var(--r);padding:24px 26px;display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden;box-shadow:0 14px 34px rgba(20,52,42,.22);min-width:0}
.dark h2,.dark h1{color:var(--cream)}.dark>*{position:relative}.dark>.wheat{position:absolute}
.dark .eyebrow{color:var(--gold-l)}.dark .muted{color:var(--cream2)}
.dtile{padding:14px;border-radius:14px;background:rgba(243,237,224,.07);border:1px solid rgba(243,237,224,.12);display:flex;flex-direction:column;gap:6px}
.dtile span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.row{display:flex;gap:20px;align-items:flex-start}.row>.grow{flex:1;min-width:0}
.side{width:380px;flex-shrink:0}
.kpi{display:flex;flex-direction:column;gap:10px;padding:18px 22px}
.kpi .big-num{font-size:30px}

/* tags / status */
.tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.t-ok{background:var(--ok-bg);color:var(--ok)}.t-warn{background:var(--warn-bg);color:var(--warn)}.t-no{background:var(--no-bg);color:var(--no)}.t-info{background:var(--info-bg);color:var(--info)}.t-gold{background:#f5eeda;color:var(--gold)}.t-mut{background:var(--wheat);color:var(--ink2)}
.t-boul{background:#f4e7d6;color:#7a4a1f}.t-emb{background:#e8eee6;color:#4f5f4f}.t-paf{background:#dceef2;color:#2f6a7a}.t-fin{background:#f6e6ee;color:#8a4a6a}
.st{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;white-space:nowrap}
.st i{width:8px;height:8px;border-radius:50%}
.st-ok{color:var(--ok)}.st-ok i{background:var(--ok-dot)}.st-warn{color:var(--warn)}.st-warn i{background:var(--warn-dot)}.st-no{color:var(--no)}.st-no i{background:var(--no-dot)}.st-alert{color:var(--alert)}.st-alert i{background:var(--alert)}
.dlc{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.code{font-weight:600;letter-spacing:.03em;color:var(--rail);font-variant-numeric:tabular-nums}

/* banners */
.banner{display:flex;align-items:center;gap:10px;border-radius:12px;padding:12px 16px;font-size:14.5px;font-weight:500;border:1px solid}
.b-ok{background:var(--ok-bg);border-color:#bcd8bf;color:var(--ok)}.b-no{background:var(--no-bg);border-color:#dcc0b7;color:var(--no)}.b-warn{background:var(--warn-bg);border-color:#ecdcb4;color:var(--warn)}.b-info{background:var(--info-bg);border-color:#b9dbe2;color:var(--info)}

/* tables */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;padding:12px 14px;font-size:10.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;border-bottom:1px solid var(--b1);white-space:nowrap;background:var(--card)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--b2);font-size:14px;vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:#faf5ea}
.tbl .r{text-align:right}.tbl .c{text-align:center}
.tbl .pri{font-weight:600;font-size:14.5px;color:var(--ink)}.tbl .sec{display:block;font-size:12px;color:var(--muted);letter-spacing:.04em}
.sbar{display:flex;flex-direction:column;gap:6px;min-width:140px}
.sbar-top{display:flex;justify-content:space-between;gap:8px;font-size:13.5px}.sbar-top b{font-variant-numeric:tabular-nums}.sbar-top span{color:var(--muted);font-size:12px}
.sbar-track{position:relative;height:6px;background:var(--wheat);border-radius:6px}
.sbar-fill{height:6px;border-radius:6px;background:var(--rail)}.k-alert{background:var(--alert)}.k-warn{background:var(--warn-dot)}
.sbar-min{position:absolute;top:-3px;width:2px;height:12px;background:var(--ink);border-radius:2px}
.cov{font-family:var(--serif);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.cov.alert{color:var(--no)}.cov.warn{color:var(--warn)}
.spark{display:block;overflow:visible}

/* forms */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.field input,.field select,.field textarea,.inp{border:1.5px solid var(--field);border-radius:10px;padding:0 13px;min-height:46px;background:#fff;font-size:15.5px;width:100%;outline:none;transition:border-color .12s,box-shadow .12s}
.field textarea{padding:10px 13px;min-height:84px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus,.inp:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(138,109,47,.13)}
.field small{font-size:12px;color:var(--muted)}
.form-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid .span2{grid-column:1/-1}
.fg3{grid-template-columns:repeat(3,minmax(0,1fr))}.fg4{grid-template-columns:repeat(4,minmax(0,1fr))}
.inp.num{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.inp.big{min-height:54px;font-size:19px;font-weight:600}
.yn{display:flex;gap:8px}
.yn label{position:relative}
.yn input{position:absolute;opacity:0;pointer-events:none}
.yn span{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:70px;padding:0 16px;border-radius:99px;border:1.5px solid var(--strong);font-weight:600;color:var(--ink2);background:transparent}
.yn input:checked+span{background:var(--rail);border-color:var(--rail);color:var(--cream)}
.yn input.no:checked+span{background:var(--no);border-color:var(--no)}
.yn input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--b2)}
.check-row>span{font-size:15.5px}
.seg{display:inline-flex;gap:2px;background:var(--wheat);border-radius:99px;padding:4px;flex-wrap:wrap}
.seg a,.seg button{min-height:38px;padding:0 16px;border-radius:99px;font-size:13.5px;font-weight:500;color:var(--muted);display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;white-space:nowrap}
.seg .on{background:var(--card);color:var(--rail);font-weight:600;box-shadow:0 1px 3px rgba(20,52,42,.1)}
.seg small{color:var(--muted);font-weight:500}
.srch{display:flex;align-items:center;gap:9px;height:44px;padding:0 18px;background:var(--card);border:1px solid var(--b1);border-radius:99px;color:var(--muted);min-width:240px}
.srch input{border:0;outline:0;background:transparent;flex:1;min-width:0;font-size:14.5px;color:var(--ink)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted)}

/* lists */
.li{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--b2);color:var(--ink)}
.li:last-child{border-bottom:0}
a.li:hover{color:var(--ink);background:linear-gradient(90deg,transparent,#faf5ea 20%,#faf5ea 80%,transparent)}
.li .ico{width:40px;height:40px;border-radius:12px;background:var(--wheat);color:var(--rail);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.li .txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.li .txt b{font-weight:600;font-size:14.5px}.li .txt span{font-size:13px;color:var(--muted)}
.li .amt{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.tl-row{display:flex;gap:14px}
.tl-dot{display:flex;flex-direction:column;align-items:center;width:12px;flex-shrink:0}
.tl-dot i{width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0}
.tl-dot s{flex:1;width:1px;background:var(--b1);text-decoration:none}
.tl-body{flex:1;display:flex;justify-content:space-between;gap:10px;padding-bottom:12px;min-width:0}
.empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;text-align:center;color:var(--muted)}
.empty p{margin:0;max-width:46ch}

/* ring */
.ring{position:relative;flex-shrink:0}.ring svg{transform:rotate(-90deg)}
.ring-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ring-in small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}

/* hero chart */
.hero-chart{width:100%;height:150px}
.hero-chart svg{width:100%;height:100%}

/* freshness */
.fresh{position:relative;height:130px;margin:6px 10px 0}
.fresh-track{position:absolute;left:0;right:0;top:82px;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--alert),var(--warn-dot) 45%,var(--ok-dot));opacity:.85}
.fresh-lbl{position:absolute;top:96px;transform:translateX(-50%);font-size:11px;color:var(--muted)}
.fresh-pin{position:absolute;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}
.fresh-pin a{background:var(--card);border:1px solid var(--b1);border-radius:10px;padding:5px 10px;white-space:nowrap;box-shadow:0 4px 12px rgba(20,52,42,.08);text-align:center;color:var(--ink)}
.fresh-pin a b{display:block;font-size:12.5px}.fresh-pin a span{font-size:10.5px;color:var(--muted)}
.fresh-pin s{width:1px;background:var(--strong);text-decoration:none}
.fresh-dot{position:absolute;top:78px;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid}

/* trace flow */
.flow{position:relative;overflow-x:auto;padding-top:30px}
.flow-cols{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:26px;position:relative;z-index:1;min-width:640px}
.flow-col{position:relative}.flow-col>.lab{top:-30px!important;white-space:nowrap}
.flow-col{display:flex;flex-direction:column;gap:12px;justify-content:center}
.flow-col>.lab{position:absolute;top:0}
.fnode{display:block;border-radius:14px;padding:10px 13px;background:var(--card);border:1px solid var(--b1);box-shadow:0 4px 14px rgba(20,52,42,.06);color:var(--ink)}
.fnode:hover{border-color:var(--gold);color:var(--ink)}
.fnode.hl{background:var(--rail);border-color:var(--rail);color:var(--cream);box-shadow:0 10px 24px rgba(20,52,42,.25)}
.fnode small{display:block;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.fnode.hl small{color:var(--gold-l)}
.fnode b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fnode span{display:block;font-size:12px;color:var(--muted)}.fnode.hl span{color:var(--cream2)}
.flow svg.links{position:absolute;inset:0;pointer-events:none;z-index:0}

/* scale */
.scale-num{font-family:var(--serif);font-size:96px;font-weight:600;line-height:.9;color:var(--cream);font-variant-numeric:lining-nums tabular-nums}
.meter{position:relative;height:14px;border-radius:14px;background:rgba(243,237,224,.12)}
.meter i{position:absolute;left:0;top:0;bottom:0;border-radius:14px;background:var(--gold-l)}
.meter.light{background:var(--wheat)}.meter.light i{background:var(--rail)}

/* keypad */
.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.keypad button{height:62px;border-radius:14px;border:1px solid var(--b1);background:var(--card);font-family:var(--serif);font-size:28px;font-weight:600;color:var(--rail);box-shadow:0 2px 0 var(--b1);display:flex;align-items:center;justify-content:center}
.keypad button:active{transform:translateY(1px);box-shadow:none}
.count-display{display:flex;align-items:baseline;justify-content:space-between;padding:12px 18px;border-radius:14px;background:var(--card);border:2px solid var(--gold);box-shadow:0 0 0 4px rgba(138,109,47,.12)}
.count-display input{border:0;outline:0;background:transparent;font-family:var(--serif);font-size:54px;font-weight:600;color:var(--rail);width:100%;min-width:0;padding:0}
.count-line{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:14px;background:var(--card);border:1px solid var(--b1);cursor:pointer}
.count-line.on{background:#f5eeda;border:2px solid var(--gold)}
.count-line .v{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--rail);min-width:60px;text-align:right}

/* zones */
.zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.zone{display:flex;align-items:center;gap:10px;padding:10px 14px;min-height:64px;border-radius:14px;border:1px solid var(--b1);background:var(--card);color:var(--ink)}
.zone.on{border:2px solid var(--gold);background:#f5eeda}
.zone b{display:block;font-size:14px}.zone span{font-size:12px;color:var(--muted)}

/* steps */
.steps{display:flex;align-items:center;background:var(--card);border:1px solid var(--b1);border-radius:16px;padding:14px 20px;gap:0;overflow-x:auto}
.step{display:flex;align-items:center;gap:10px;white-space:nowrap}
.step i{width:32px;height:32px;border-radius:50%;border:2px solid var(--strong);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:14px;color:var(--muted)}
.step.done i{background:var(--rail);border-color:var(--rail);color:#fff}.step.on i{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 0 5px rgba(138,109,47,.16)}
.step.on b{font-weight:700}.step b{font-weight:500;font-size:15px}
.step-line{flex:1;height:2px;background:var(--b1);margin:0 14px;min-width:24px}.step-line.done{background:var(--rail)}

/* auth */
body.bare{min-height:100vh}
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--rail);position:relative;overflow:hidden}
.auth .wheat{opacity:.12;width:520px;height:520px;right:-80px;bottom:-120px}
.auth-card{position:relative;background:var(--card);border-radius:22px;padding:34px 32px;width:100%;max-width:430px;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.auth-card h1{font-size:30px}.auth-card p{margin:0}

/* lines editor */
.lines{display:flex;flex-direction:column;gap:12px}
.line{background:var(--card);border:1px solid var(--b1);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.line-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.line-g{display:grid;gap:12px;grid-template-columns:2fr 1fr 1.3fr 1.2fr 1fr}
.x-btn{width:40px;height:40px;border-radius:99px;border:1px solid var(--b1);background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}

/* print / labels */
.labels{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.label{border:1.5px dashed var(--strong);border-radius:10px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:4px;break-inside:avoid}
.label .n{font-weight:700;font-size:15px}.label .c{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--rail)}
.label svg.bc{width:100%;height:46px}
@media print{
 @page{margin:.5in}
 body{background:#fff}.rail,.mtop,.tabbar,.acts,.no-print,.banner,.back{display:none!important}
 .main{padding:0}.card,.dark{box-shadow:none;border:1px solid #ccc}.dark{background:#fff;color:#000}.dark *{color:#000!important}
 .labels{grid-template-columns:repeat(3,1fr)}.label{border:1px solid #999}
}

/* scan dialog */
.scan-dlg{border:0;border-radius:22px;padding:0;width:min(520px,94vw);background:var(--card);box-shadow:0 30px 60px rgba(0,0,0,.3)}
.scan-dlg::backdrop{background:rgba(20,52,42,.6)}
.scan-box{padding:18px;display:flex;flex-direction:column;gap:12px}
.scan-h{display:flex;justify-content:space-between;align-items:center}
.scan-dlg video{width:100%;border-radius:14px;background:#0e2418;aspect-ratio:4/3;object-fit:cover}
.scan-f{display:flex;gap:8px}.scan-f input{flex:1;min-height:46px;border:1.5px solid var(--field);border-radius:10px;padding:0 13px;font-size:16px}
.scan-note{margin:0;font-size:13px;color:var(--muted)}
.mbtn{width:44px;height:44px;border-radius:14px;border:1px solid var(--b1);background:var(--card);color:var(--rail);display:inline-flex;align-items:center;justify-content:center}

/* responsive: tablet */
@media (max-width:1180px){
 .rail{width:220px;flex-basis:220px}.main{padding:24px 24px 60px}
 .row{flex-direction:column}.side{width:100%}
 .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
 .line-g{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* responsive: phone */
@media (max-width:820px){
 body{font-size:15.5px;padding-bottom:86px}
 .rail{display:none}
 .mtop{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--rail);position:sticky;top:0;z-index:30}
 .mtop .wordmark{color:var(--cream)}
 .mtop-r{display:flex;gap:8px}.mtop .mbtn{background:rgba(243,237,224,.12);border:0;color:var(--cream)}
 .main{padding:18px 16px 30px;gap:14px}
 .page-h h1{font-size:27px}.page-h{align-items:flex-start}.acts{width:100%}.acts .btn{flex:1}
 .card{padding:16px 18px;border-radius:18px}.dark{padding:20px}
 .g2,.g3,.g4,.form-grid,.fg3,.fg4,.line-g{grid-template-columns:1fr}
 .g4.keep,.g3.keep{grid-template-columns:repeat(2,minmax(0,1fr))}
 .srch{min-width:0;width:100%}
 .toolbar{flex-direction:column;align-items:stretch}.seg{overflow-x:auto;flex-wrap:nowrap}
 .hide-m{display:none!important}
 .tbl.stack thead{display:none}.tbl.stack tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 16px;border-bottom:1px solid var(--b2)}
 .tbl.stack td{border:0;padding:0}.tbl.stack td.full{grid-column:1/-1}
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;height:78px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--b1);box-shadow:0 -6px 20px rgba(20,52,42,.06);align-items:flex-start}
 .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);font-size:11px;font-weight:500;min-height:48px;justify-content:center}
 .tab.on{color:var(--rail);font-weight:700}
 .tab-scan{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:transparent;margin-top:-28px}
 .tab-scan span{width:60px;height:60px;border-radius:50%;background:var(--gold);color:#fffdf8;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(138,109,47,.4);border:4px solid var(--card)}
 .tab-scan b{font-size:11px;color:var(--gold)}
 .drawer:not([hidden]){display:block;position:fixed;inset:0;z-index:60}
 .drawer-bg{position:absolute;inset:0;background:rgba(20,52,42,.5)}
 .drawer-p{position:absolute;top:0;right:0;bottom:0;width:min(320px,86vw);background:var(--rail);padding:18px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
 .drawer-h{display:flex;justify-content:space-between;align-items:center;padding:0 8px 14px;border-bottom:1px solid rgba(243,237,224,.15);margin-bottom:8px}
 .drawer-h .mbtn{background:rgba(243,237,224,.12);border:0;color:var(--cream)}
 .drawer .nav-i.on::before{display:none}
 .scale-num{font-size:72px}
 .hero-chart{height:100px}
 .mtop .wordmark.sm{font-size:18px;white-space:nowrap}
 .mtop .wordmark.sm small{font-size:8.5px}
 .flow-cols{grid-template-columns:1fr;min-width:0;gap:18px}.flow svg.links{display:none}.flow{padding-top:0}.flow-col>.lab{position:static}
 .steps{padding:12px}.step b{display:none}.step.on b{display:inline}
 .labels{grid-template-columns:1fr 1fr}
 .fresh{display:none}.fresh-list{display:flex!important}
}
.fresh-list{display:none;flex-direction:column}

/* site switcher */
.site-sw{display:flex;align-items:center;gap:8px;margin-top:14px;padding:0 12px;min-height:40px;border-radius:12px;background:rgba(243,237,224,.1);border:1px solid rgba(243,237,224,.18);color:var(--gold-l)}
.site-sw select{flex:1;min-width:0;border:0;background:transparent;color:var(--cream);font-weight:600;font-size:14px;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;padding:8px 0}
.site-sw select option{color:#1c2b24}
.site-sw.m-sw{margin:0;max-width:170px;min-height:44px}
.site-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;background:var(--wheat);color:var(--rail);font-size:12px;font-weight:600;white-space:nowrap}

/* ===== mobile fixes v1.1 ===== */
.code{white-space:nowrap}
.back,.link{min-height:44px;display:inline-flex;align-items:center}
.date-in{font-variant-numeric:tabular-nums}
.cta-m{display:block}
@media (max-width:820px){
 /* top bar fits 320–430 px */
 .mtop{gap:10px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top))}
 .mtop .wordmark.sm{font-size:22px;flex-shrink:0}
 .mtop-r{flex:1;min-width:0;justify-content:flex-end}
 .site-sw.m-sw{flex:1;min-width:0;max-width:220px}
 /* no iOS zoom on focus */
 input,select,textarea,.inp,.field input,.field select,.field textarea,.srch input,.scan-f input{font-size:16px!important}
 .inp.big,.count-display input{font-size:20px!important}
 .count-display input{font-size:48px!important}
 /* bigger taps */
 .btn.sm{min-height:44px}
 .seg a,.seg button{min-height:44px}
 .legend{gap:10px 14px;font-size:12.5px}
 .legend .st{font-size:12.5px}
 /* stacked tables: labelled cards */
 .tbl.stack tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;align-items:start}
 .tbl.stack td{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left!important}
 .tbl.stack td:first-child,.tbl.stack td.full{grid-column:1/-1}
 .tbl.stack td[data-label]::before{content:attr(data-label);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
 .tbl.stack td:first-child::before{display:none}
 .tbl.stack td.r>*,.tbl.stack td .num{text-align:left}
 .tbl.stack td:empty{display:none}
 .tbl.stack .inp{width:100%!important}
 .tbl.stack .sbar{min-width:0}
 /* steps */
 .steps{overflow:hidden}.step-line{min-width:10px;margin:0 8px}.step.on b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
 /* receiving lines compact */
 .line{padding:14px}
 .line-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .line-g>.field:first-child{grid-column:1/-1}
 .line-g>.field:last-child{grid-column:1/-1}
 .cta-m{position:sticky;bottom:88px;z-index:20;padding-top:8px}
 .cta-m .btn{box-shadow:0 10px 24px rgba(20,52,42,.3)}
 /* lot map: hide empty columns */
 .flow-col.empty-m{display:none}
 .flow-col>.lab{margin-bottom:-4px}
}
.mv-form [data-for]{display:none}
.mv-form [data-for].show{display:flex}
@media (max-width:820px){
 .legend a{min-height:40px;display:inline-flex;align-items:center}
 main a.code,.card b>a{display:inline-flex;align-items:center;min-height:40px}
}
@media (max-width:820px){ .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.toolbar>*{max-width:100%} }
@media (max-width:820px){ .tbl.stack td>.tag,.tbl.stack td>.st,.tbl.stack td>.dlc{align-self:flex-start} }

/* ===== mobile fixes v1.2 ===== */
.form-grid .span-2{grid-column:span 2}
.qty-u{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.g2.keep{grid-template-columns:repeat(2,minmax(0,1fr))}
.scan-f .btn{flex-shrink:0;padding:0 16px}.scan-f input{min-width:0}
.scan-h b{font-family:var(--serif);font-size:19px;color:var(--rail)}
@media (max-width:820px){
 .row{align-items:stretch}.row>*{max-width:100%;min-width:0}
 .form-grid>*,.form-grid .span-2,.form-grid .span2{grid-column:1/-1!important}
 .flow-cols{grid-template-columns:1fr!important;min-width:0!important}
 .flow{overflow:visible}
 .fnode b{white-space:normal}
 .hero-chart+.toolbar{flex-direction:row!important;align-items:center}
 .page-h .srch{order:2}
 body{padding-bottom:100px}
 .scan-dlg{width:calc(100vw - 24px)}
 .scan-f{flex-wrap:wrap}.scan-f input{flex:1 1 180px}.scan-f .btn{flex:1 1 100%}
}
/* v1.3 undo + offline banners */
.undo-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.undo-bar .btn{margin-left:auto}
.undo-bar [data-countdown]{font-variant-numeric:tabular-nums}
.offline-bar{position:sticky;top:0;z-index:30}
.offline-bar[hidden]{display:none!important}
@media (max-width:760px){.undo-bar{font-size:14px}.undo-bar .btn{width:100%;margin-left:0}.offline-bar{top:56px}}
