:root{--bg:#EBEFE8;--panel:#FFFFFF;--ink:#16302A;--muted:#5A6D64;--line:#D2DBD3;--leaf:#1F5C43;--leaf2:#2E7A58;--leafbg:#E1EEE6;--gold:#B9821F;--goldbg:#F7EDD8;--warn:#94510F;--warnbg:#FBEDDB;--bad:#A3241C;--badbg:#FBE5E2;--ok:#23704A;--okbg:#E0F0E6;--scr:#F7F9F6;--dev:#252B2D;--bump:#D69E27;--neu:#EEF1EE}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0E1613;--panel:#16201C;--ink:#E2EBE5;--muted:#93A69C;--line:#2A3832;--leaf:#5DB98E;--leaf2:#4FA87F;--leafbg:#17302A;--gold:#E0AE4E;--goldbg:#33291A;--warn:#F0B26A;--warnbg:#36271A;--bad:#F08A80;--badbg:#3A1D1A;--ok:#6CCB97;--okbg:#173026;--scr:#111A16;--dev:#060908;--bump:#B9861E;--neu:#1E2a25}}
:root[data-theme="dark"]{--bg:#0E1613;--panel:#16201C;--ink:#E2EBE5;--muted:#93A69C;--line:#2A3832;--leaf:#5DB98E;--leaf2:#4FA87F;--leafbg:#17302A;--gold:#E0AE4E;--goldbg:#33291A;--warn:#F0B26A;--warnbg:#36271A;--bad:#F08A80;--badbg:#3A1D1A;--ok:#6CCB97;--okbg:#173026;--scr:#111A16;--dev:#060908;--bump:#B9861E;--neu:#1E2a25}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Figtree,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3{font-family:"Bricolage Grotesque",Figtree,system-ui,sans-serif;margin:0;letter-spacing:-.01em}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--leaf2);outline-offset:2px}
.top{max-width:1240px;margin:0 auto;padding:18px 20px 4px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:38px;height:38px;border-radius:10px;background:var(--leaf);display:grid;place-items:center}
.top h1{font-size:26px;font-weight:700;line-height:1.1}
.top p{margin:2px 0 0;color:var(--muted);font-size:14px}
.tools{display:flex;gap:8px}
.wrap{max-width:1240px;margin:0 auto;padding:16px 20px 40px;display:grid;grid-template-columns:392px minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:980px){.wrap{grid-template-columns:minmax(0,1fr)}}
.devcol{position:sticky;top:12px}
@media (max-width:980px){.devcol{position:static}}
.device{position:relative;isolation:isolate;width:360px;max-width:100%;margin:8px auto 0;background:var(--dev);border-radius:40px;padding:26px 12px 26px;box-shadow:0 20px 40px rgba(10,30,20,.25)}
.bump{position:absolute;width:64px;height:64px;background:var(--bump);border-radius:24px;z-index:-1}
.bump.tl{left:-6px;top:-6px}.bump.tr{right:-6px;top:-6px}.bump.bl{left:-6px;bottom:-6px}.bump.br{right:-6px;bottom:-6px}
.scanwin{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:70px;height:8px;border-radius:4px;background:#5a1712;box-shadow:inset 0 0 4px #e5372b}
.devlabel{position:absolute;bottom:7px;left:0;right:0;text-align:center;color:#8d968f;font-size:10px;letter-spacing:.04em}
.screen{background:var(--scr);border-radius:24px;height:640px;overflow:auto;overscroll-behavior:contain}
.sbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;padding:7px 16px;font-size:12px;font-weight:600;background:var(--scr);color:var(--muted)}
.sbar .sig{color:var(--warn)}.sbar .sig.on{color:var(--ok)}
.sh{padding:6px 16px 10px;border-bottom:1px solid var(--line)}
.sh h3{font-size:19px}
.sh p{margin:3px 0 0;color:var(--muted);font-size:13px}
.row{display:flex;gap:8px;align-items:center;justify-content:space-between}
.row.wrap{flex-wrap:wrap;justify-content:flex-start}
.pad{padding:14px 16px 20px;display:flex;flex-direction:column;gap:12px}
.steps{display:flex;gap:4px;margin:2px 0 8px}
.steps span{flex:1;font-size:10.5px;font-weight:600;color:var(--muted);padding-top:5px;border-top:3px solid var(--line)}
.steps span.done{border-color:var(--leaf2);color:var(--leaf2)}
.steps span.on{border-color:var(--gold);color:var(--ink)}
.btn{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:9px 14px;font-weight:600;cursor:pointer}
.btn:hover{border-color:var(--leaf2)}
.btn.pri{background:var(--leaf);border-color:var(--leaf);color:#fff}
:root[data-theme="dark"] .btn.pri{color:#06130d}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.pri{color:#06130d}}
.btn.big{width:100%;padding:13px 14px;font-size:15.5px;border-radius:12px}
.btn.sm{padding:6px 10px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.lnk{background:none;border:0;color:var(--leaf2);font-weight:600;cursor:pointer;padding:4px 0;font-size:13.5px;text-decoration:underline;text-underline-offset:3px}
.links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.chip{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.chip.ok{background:var(--okbg);color:var(--ok)}.chip.warn{background:var(--warnbg);color:var(--warn)}.chip.bad{background:var(--badbg);color:var(--bad)}.chip.neu{background:var(--neu);color:var(--muted)}.chip.ai{background:var(--goldbg);color:var(--gold)}
.check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.check li{display:flex;gap:10px;align-items:flex-start}
.check b{display:block;font-size:14px}.check small,.calib small{color:var(--muted);font-size:12.5px;display:block}
.tick{width:22px;height:22px;border-radius:50%;background:var(--okbg);color:var(--ok);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.calib{border:1px dashed var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.okline{background:var(--okbg);color:var(--ok);border-radius:10px;padding:9px 12px;font-size:13.5px;font-weight:500}
.alert{border-radius:12px;padding:11px 12px;font-size:13.5px}
.alert b{display:block;margin-bottom:2px}
.alert.warn{background:var(--warnbg);color:var(--warn)}.alert.bad{background:var(--badbg);color:var(--bad)}.alert.neu{background:var(--neu);color:var(--ink)}
.alert .row{margin-top:8px;justify-content:flex-start}
.mini3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.mini3>div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px}
.mini3 b{display:block;font-size:16px;font-variant-numeric:tabular-nums}
.mini3 small{color:var(--muted);font-size:11.5px}
.nextT{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:10px 12px}
.nextT small{display:block;color:var(--muted);font-size:12px}.nextT b{display:block;font-size:17px}.nextT span{font-size:13px;color:var(--muted)}
.hint{margin:-4px 0 0;color:var(--muted);font-size:12.5px}
.center{text-align:center}.muted{color:var(--muted)}.small{font-size:13px}
.tview{background:#D9D2C1;border-radius:12px;padding:10px}
.tview.cam{background:#1d2220;position:relative}
.tview.cam::after{content:"";position:absolute;inset:16px;border:2px solid rgba(255,255,255,.7);border-radius:8px;pointer-events:none}
.tview svg{display:block;width:100%;height:auto}
.laser{animation:sweep 1s ease-in-out infinite alternate}
@keyframes sweep{from{transform:translateY(0)}to{transform:translateY(152px)}}
.flist{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.f{display:grid;grid-template-columns:92px 1fr auto;gap:8px;align-items:center;padding:7px 12px;border-top:1px solid var(--line)}
.f:first-child{border-top:0}
.f small{color:var(--muted);font-size:12px}.f b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.typed{margin:-4px 0 0;font-size:12.5px;color:var(--ok);font-weight:600}
.crop{margin:8px 0 2px}.crop svg{width:170px;height:auto;display:block}
.bt{font-size:12.5px;color:var(--ok);font-weight:600}
.scale{background:#10201a;color:#7CF0B0;border-radius:12px;padding:12px 14px}
.scale small{color:#8fb9a3;font-size:12px}
.scale div{display:flex;align-items:baseline;gap:8px}
.scale span{font-size:42px;font-weight:700;font-variant-numeric:tabular-nums;font-family:"Bricolage Grotesque",Figtree,sans-serif}
.scale em{font-style:normal;color:#8fb9a3}
.scale.locked{box-shadow:inset 0 0 0 2px #39b876}
.scale.sm span{font-size:28px}
.photo{border-radius:12px;overflow:hidden;position:relative;background:#2b2f2d}
.photo svg{display:block;width:100%;height:auto}
.photo.empty{height:170px;display:grid;place-items:center;color:#c8cfca;font-size:13px;border:2px dashed #59615c;background:#1f2422}
.stamp{position:absolute;left:8px;bottom:6px;color:#fff;font-size:10.5px;background:rgba(0,0,0,.45);padding:1px 6px;border-radius:4px}
.ai{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:10px 12px}
.ai.bad{border-left-color:var(--bad)}.ai.warnb{border-left-color:var(--warn)}
.aih{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ai p{margin:4px 0 6px;font-size:13.5px}
.ai details{font-size:13px;margin-bottom:6px}
.ai summary{cursor:pointer;color:var(--gold);font-weight:600}
.ai details p{color:var(--muted)}
.voice{border:1px dashed var(--line);border-radius:10px;padding:10px 12px}
.voice p{margin:0}.te{font-size:15px;font-weight:600}
.label{display:flex;gap:12px;align-items:center;background:#fff;color:#111;border-radius:10px;padding:12px;border:1px solid #cfcfc8}
.label .lq svg{width:86px;height:86px;display:block}
.label small{font-size:11px;color:#555;display:block}.label b{font-size:17px;display:block}.label span{display:block;font-size:12.5px}
.sigbox{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.sigbox small{display:block;color:var(--muted);font-size:12px}
.sigbox code{font-size:13.5px;word-break:break-all;color:var(--ink)}
.note{width:360px;max-width:100%;margin:16px auto 0;font-size:13.5px;color:var(--muted);border-left:3px solid var(--gold);padding:2px 0 2px 12px}
.note b{color:var(--ink)}
.side{display:flex;flex-direction:column;gap:18px;min-width:0}
.conn{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-radius:16px;padding:16px 18px;background:var(--warnbg);color:var(--warn)}
.conn.on{background:var(--okbg);color:var(--ok)}
.conn h2{font-size:22px}
.conn p{margin:2px 0 0;font-size:14px}
.blk{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.blk h2{font-size:17px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.blk h2 small{font-family:Figtree,sans-serif;font-weight:500;color:var(--muted);font-size:13px}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-weight:600;color:var(--muted);font-size:12.5px;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
td.n,th.n{text-align:right}
tr.new td{background:var(--leafbg)}
.empty{color:var(--muted);font-size:14px;padding:6px 0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stats div{border-top:3px solid var(--leaf2);padding-top:6px}
.stats b{font-family:"Bricolage Grotesque",Figtree,sans-serif;font-size:26px;display:block;line-height:1.1;font-variant-numeric:tabular-nums}
.stats small{color:var(--muted);font-size:12.5px}
.chain{display:flex;gap:6px;align-items:center;overflow-x:auto;padding-bottom:4px}
.link{border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:12px;flex:none;background:var(--scr)}
.link b{display:block;font-size:12.5px}
.link code{font-size:11.5px;color:var(--muted)}
.arrow{color:var(--muted);flex:none}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:760px){.two{grid-template-columns:1fr}}
.ex{display:flex;flex-direction:column;gap:8px}
.exi{border-radius:10px;padding:9px 12px;font-size:13.5px}
.exi b{display:block}
.exi.warn{background:var(--warnbg);color:var(--warn)}.exi.bad{background:var(--badbg);color:var(--bad)}.exi.info{background:var(--neu);color:var(--ink)}
.matchsum{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px;font-size:14px}
.matchsum b{font-size:20px;font-family:"Bricolage Grotesque",Figtree,sans-serif}
.ins{margin:0;padding-left:18px;font-size:14px;display:flex;flex-direction:column;gap:6px}
.p{margin:0;font-size:14px;color:var(--muted)}
.store{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:640px){.store{grid-template-columns:1fr}}
.sc{border:1px solid var(--line);border-top:3px solid var(--leaf2);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.sc.off{border-top-color:var(--line);opacity:.65}
.sc b{font-size:14.5px}.sc small{color:var(--muted);font-size:12px;margin-bottom:4px}
.sc em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.how{margin-top:10px;font-size:13.5px}.how summary{cursor:pointer;font-weight:600;color:var(--leaf2)}
.how td{white-space:normal;word-break:break-all;font-size:12.5px;padding:4px 8px}
.where{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13.5px}
.where small{display:block;color:var(--muted);font-size:12px;margin-bottom:2px}
.where .w{color:var(--muted)}.where .w.ok{color:var(--ok);font-weight:600}
.roles{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px 14px}
.viewas{margin:0 0 6px;font-size:12.5px;color:var(--muted);font-weight:600}
.tabs{display:flex;gap:4px;background:var(--neu);padding:4px;border-radius:12px;overflow-x:auto}
.tab{flex:1;border:0;background:none;padding:8px 10px;border-radius:9px;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap;color:var(--muted)}
.tab.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.vbody{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.vbody .blk{border-radius:12px}
.vhead h2{font-size:20px}.vhead .p{margin-top:2px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.kpi{border:1px solid var(--line);border-left:4px solid var(--leaf2);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.kpi.warn{border-left-color:var(--warn)}.kpi.ok{border-left-color:var(--ok)}
.kpi small{color:var(--muted);font-size:12.5px}.kpi b{font-family:"Bricolage Grotesque",Figtree,sans-serif;font-size:22px;line-height:1.2;font-variant-numeric:tabular-nums}.kpi span{font-size:12.5px;color:var(--muted)}
.quiet{background:var(--neu);border:0}.quiet b{display:block;margin-bottom:2px}
.truck{background:var(--leafbg);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column}
.truck span{font-size:13.5px;color:var(--muted)}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:760px){.three{grid-template-columns:1fr}}
.three .blk h2{font-size:15px}
.headline{font-size:15px;font-weight:500}
.bar{margin-bottom:10px}.barl{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:4px}
.track{position:relative;height:12px;background:var(--neu);border-radius:6px}
.fill{height:100%;background:var(--leaf2);border-radius:6px;min-width:3px}
.mark{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--gold)}
.scale-note{margin:0;padding:10px 14px;border-radius:10px;background:var(--goldbg);color:var(--ink);font-size:14px}
.next{display:block;margin-top:6px;color:var(--leaf2);font-weight:600}
.stages{max-width:1240px;margin:0 auto;padding:8px 20px 0}
.stin{display:flex;align-items:center;gap:6px;overflow-x:auto;padding-bottom:4px}
.stg{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 14px 7px 8px;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap}
.stg em{font-style:normal;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--neu);font-size:12px}
.stg.on{background:var(--leaf);border-color:var(--leaf);color:#fff}.stg.on em{background:rgba(255,255,255,.25)}
.stg:disabled{opacity:.6;cursor:default}.stg small{font-size:11px;color:var(--muted);font-weight:600}
.sarr{color:var(--muted)}
body[data-stage="ship"] #buyView{display:none}
body:not([data-stage="ship"]) #ship{display:none}
.shipwrap{max-width:1240px;margin:0 auto;padding:16px 20px 40px;display:flex;flex-direction:column;gap:14px}
.shiphead{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.shiphead h2{font-size:24px}
.filt{display:flex;gap:6px;flex-wrap:wrap}
.fchip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 12px;font-size:13.5px;font-weight:600;cursor:pointer}
.fchip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.shiphint{margin:0;color:var(--leaf2);font-weight:600;font-size:14.5px}
.kpis.six{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.shipgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:980px){.shipgrid{grid-template-columns:minmax(0,1fr)}}
tr.clk{cursor:pointer}tr.clk:hover td{background:var(--neu)}tr.sel td{background:var(--leafbg)}
.gm{display:inline-block;font-size:11.5px;font-weight:600;background:var(--neu);border-radius:5px;padding:1px 5px;margin-right:3px}
.detail{position:sticky;top:12px}@media (max-width:980px){.detail{position:static}}
.dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.dhead h2{font-size:20px;margin:0}
.tl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.tl small{display:block;color:var(--muted);font-size:12px}.tl b{font-size:16px}
h3.sub{font-size:15px;margin:16px 0 6px}
tr.tot td{font-weight:700;border-top:2px solid var(--line)}
.docs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.balelist{max-height:260px;overflow:auto}
.lstep{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:10px}
.lstep.cur{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}.lstep.ok{border-color:var(--ok)}.lstep.off{opacity:.55}
.lh{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}.lh span{font-size:13px;color:var(--muted)}
.lstep .track{margin-bottom:4px}
.modal{position:fixed;inset:0;background:rgba(8,16,12,.55);display:grid;place-items:center;padding:16px;z-index:20}
.modal[hidden]{display:none}
.mcard{background:#fff;color:#141414;border-radius:14px;max-width:640px;width:100%;max-height:90vh;overflow:auto;padding:20px}
.mcard .p{color:#555}.mcard th{color:#555}.mcard td,.mcard th{border-color:#ddd}
.mtop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.mtop small{color:#666}
.ngrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;margin-bottom:12px}.ngrid small{display:block;color:#666;font-size:12px}
.sigs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.sigs div{border-top:1px solid #999;padding-top:4px;font-size:12px;color:#555}
@media print{body>*:not(#modal){display:none!important}.modal{position:static;background:none;padding:0}.mcard{max-height:none;box-shadow:none}.mtop .docs{display:none}}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;max-width:90vw}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media (prefers-reduced-motion:reduce){.laser{animation:none}#toast{transition:none}}
