:root{--display:"Chakra Petch","Bahnschrift","DIN Alternate",sans-serif;--body:"Saira","Segoe UI",system-ui,sans-serif;--mono:"Share Tech Mono","Consolas",ui-monospace,monospace;--sidebar-w:280px;--cyan:#3f6f93;--green:#5d8a4a;--amber:#bf842a;--red:#bb4a3a;--violet:#6f5b9a;--orange:#c2702f;--steel:#4a6885;--c-overview:#3a647f;--c-manifest:#566641;--c-pickup:#456079;--c-dropoff:#8f5d33;--done-wash:rgba(93,138,74,.16);--done-ink:#5f7355}:root,:root[data-theme=light]{--paper:#ddd9cf;--paper2:#e7e3d8;--card:#eeeae0;--card2:#e4e0d5;--ink:#1c1f24;--ink-dim:#4c525b;--ink-faint:#7a818b;--rule:#c2bdaf;--rule-soft:#d2cdbf;--side:#1b2026;--side2:#222932;--side-line:#323b45;--side-ink:#c9d2da;--side-dim:#8492a0;--side-faint:#5e6b78;--th-bg:#d8d3c5}:root[data-theme=dark]{--paper:#0f1216;--paper2:#161b21;--card:#1a2027;--card2:#141a20;--ink:#dfe6ec;--ink-dim:#9aa6b1;--ink-faint:#6b7782;--rule:#2c343d;--rule-soft:#222a32;--side:#0c0f13;--side2:#161b21;--side-line:#2a323b;--side-ink:#c9d2da;--side-dim:#8492a0;--side-faint:#5e6b78;--th-bg:#232b34;--c-overview:#34566c;--c-manifest:#48553a;--c-pickup:#3c5066;--c-dropoff:#7a4f2d;--done-wash:rgba(93,138,74,.2);--done-ink:#8aa178}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}button{font-family:var(--display);cursor:pointer}input{font-family:var(--body)}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;background:var(--side);border-right:1px solid var(--side-line);color:var(--side-ink);overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--side-line)}.brand .logo{width:30px;height:30px;flex:0 0 auto;color:var(--cyan);border:1px solid var(--side-line);display:flex;align-items:center;justify-content:center;background:#10141a}.brand .logo svg{width:19px;height:19px}.brand-txt{font-family:var(--display);font-size:14px;letter-spacing:1.5px;color:#e7ecf1}.brand-txt b{color:var(--amber);font-weight:700}.nav-x{display:none;margin-left:auto;background:transparent;border:0;color:var(--side-dim);font-size:16px}.side-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--side-line)}.ic{width:32px;height:32px;background:var(--side2);border:1px solid var(--side-line);color:var(--side-ink);font-family:var(--display);font-size:15px;display:flex;align-items:center;justify-content:center}.ic:hover{border-color:var(--cyan);color:#fff}.side-foot .local{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:1px;color:var(--side-faint);display:flex;align-items:center;gap:5px}.side-foot .dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block}.side-foot .dot.warn{background:var(--amber)}.menu-wrap{position:relative}.menu{position:absolute;left:0;bottom:calc(100% + 8px);min-width:200px;z-index:60;padding:5px;background:var(--side2);border:1px solid var(--side-line);box-shadow:0 12px 30px #00000080}.menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:0;color:var(--side-ink);font-family:var(--body);font-size:13px;padding:8px 10px;text-transform:none}.menu button:hover{background:#3f6f9338}.menu .mi{width:16px;text-align:center;color:var(--cyan)}.menu .sep{height:1px;background:var(--side-line);margin:5px 4px}.menu button.danger{color:#d98a7d}.menu button.danger:hover{background:#bb4a3a33}.fleet{padding:12px}.fleet-hd{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;padding:2px 0 8px;text-align:left}.fleet-hd .caret{color:var(--side-dim);font-size:11px;transition:transform .15s}.fleet.collapsed .fleet-hd{padding-bottom:2px}.fleet.collapsed .caret{transform:rotate(-90deg)}.fleet-title{font-family:var(--display);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--side-dim)}.fleet-count{font-family:var(--mono);font-size:10px;color:var(--side-faint);border:1px solid var(--side-line);padding:0 5px;line-height:15px}.fleet-tgt{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--amber)}.fleet-hd:hover .fleet-title{color:var(--side-ink)}.fitseg{display:flex;border:1px solid var(--side-line);margin-bottom:10px}.fitseg-b{flex:1;background:transparent;border:0;color:var(--side-dim);font-family:var(--display);font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;padding:6px 2px}.fitseg-b+.fitseg-b{border-left:1px solid var(--side-line)}.fitseg-b.on{background:var(--cyan);color:#fff}.ships{display:flex;flex-direction:column;gap:3px}.ships-empty{color:var(--side-faint);font-size:12px;padding:8px 2px}.shipc{border:1px solid var(--side-line);background:var(--side2)}.shipc.best{border-color:var(--green)}.shipc.dim{opacity:.5}.shipc.open{opacity:1;border-color:var(--cyan)}.shipc-row{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;color:var(--side-ink);padding:6px 8px;text-align:left;font-family:var(--body)}.sfit{width:16px;height:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:11px;border:1px solid var(--side-line);color:var(--side-faint)}.sfit.ok{color:var(--green);border-color:var(--green)}.sfit.bad{color:var(--red);border-color:transparent}.shipc.best .sfit{background:var(--green);color:#fff;border-color:var(--green)}.sname{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scap{font-family:var(--mono);font-size:12px;color:var(--amber)}.scap .gridmark{color:var(--green);font-style:normal;margin-left:3px}.shipc-edit{padding:7px 8px;border-top:1px solid var(--side-line);background:#171c22}.se-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--side-dim);text-transform:uppercase;letter-spacing:1px}.se-row .field{flex:1}.shipc-edit .field input{background:#10141a;border:1px solid var(--side-line);color:#e7ecf1}.se-grid{font-family:var(--mono);font-size:11px;color:var(--green);margin-top:6px}.se-act{display:flex;gap:6px;margin-top:8px}.add-ship{display:flex;gap:5px;margin-top:10px;align-items:center}.add-ship .field{flex:1}.add-ship .field input{background:#10141a;border:1px solid var(--side-line);color:#e7ecf1;font-size:12px}.add-cap{width:54px;background:#10141a;border:1px solid var(--side-line);color:#e7ecf1;font-family:var(--mono);font-size:12px;padding:5px 6px;text-align:right}.main{min-width:0;padding:16px 18px 60px;background:linear-gradient(var(--rule-soft) 1px,transparent 1px) 0 0 / 100% 28px,var(--paper)}.nav-toggle{display:none;position:fixed;top:10px;left:10px;z-index:130;background:var(--side2);border:1px solid var(--side-line);color:var(--side-ink);width:36px;height:36px;font-size:16px}.sb-collapse{margin-left:auto;background:transparent;border:0;color:var(--side-dim);font-size:16px;line-height:1;padding:0 2px;cursor:pointer}.sb-collapse:hover{color:#fff}.sb-expand{display:none;position:fixed;top:10px;left:10px;z-index:130;background:var(--side2);border:1px solid var(--side-line);color:var(--side-ink);width:34px;height:34px;font-size:15px}.sb-expand:hover{border-color:var(--cyan);color:#fff}.app.sb-collapsed{grid-template-columns:0 1fr}.app.sb-collapsed .sidebar{transform:translate(-100%);transition:transform .2s}.app.sb-collapsed .sb-expand{display:block}.app.sb-collapsed .main{padding-top:54px}.run-strip{padding:10px 14px;border-bottom:1px solid var(--side-line)}.run-name-disp{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.4px;color:#e7ecf1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.run-strip .run-stat{display:flex;gap:14px;margin-top:5px;font-family:var(--mono);font-size:12px;color:var(--side-dim)}.run-strip .run-stat b{color:var(--side-ink);font-size:13px}.run-strip .run-stat .warn,.run-strip .run-stat .warn b{color:var(--amber)}.zone{margin-bottom:18px;border:1px solid var(--rule);background:var(--card)}.zone-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;background:var(--accent);color:#fff}.zone-head.collapse-head{cursor:pointer}.zone-title{font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#fff;margin:0}.zone-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.zone-head .caret{margin-left:auto;font-size:13px;opacity:.85}.zone-head.collapsed .caret{transform:rotate(-90deg)}.zone-body{padding:14px}.btn{background:var(--paper2);border:1px solid var(--rule);color:var(--ink);padding:6px 12px;font-size:11px;letter-spacing:1px;text-transform:uppercase;transition:.1s}.btn:hover{border-color:var(--cyan);color:var(--cyan)}.btn.accent{background:var(--cyan);border-color:var(--cyan);color:#fff}.btn.accent:hover{filter:brightness(1.08);color:#fff}.btn.ghost{background:transparent}.btn.sm{padding:4px 9px;font-size:10.5px}.btn.xs{padding:3px 7px;font-size:10px}.btn.danger{color:var(--red);border-color:transparent}.btn.danger:hover{border-color:var(--red)}.zone-head .btn.ghost{border-color:#ffffff73;color:#fff}.zone-head .btn.ghost:hover{background:#ffffff26}.ov-stats{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin-bottom:14px}.ov-stats .stat{background:var(--paper2);border:1px solid var(--rule);border-top:2px solid var(--steel);padding:7px 14px;min-width:84px}.ov-stats .stat .v{font-family:var(--mono);font-size:22px;color:var(--ink);line-height:1.05;font-weight:600}.ov-stats .stat .k{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim)}.ov-stats .s-cargo{border-top-color:var(--cyan)}.ov-stats .s-cargo .v{color:var(--cyan)}.ov-sizes{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}.ov-sizes .sz{font-family:var(--mono);font-size:12px;color:var(--ink-dim);border:1px solid var(--rule);padding:3px 7px;background:var(--paper2)}.ov-sizes .sz b{color:var(--ink)}.ov-sizes .sz.warn{color:var(--red);border-color:var(--red)}.ov-sizes .copy{margin-left:4px}.mp-empty{color:var(--ink-faint);font-size:13px;padding:8px 2px}.mtbl{width:100%;border-collapse:collapse;font-size:13px}.mtbl thead th{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim);text-align:left;padding:6px 8px;border-bottom:1px solid var(--rule);white-space:nowrap;background:var(--th-bg)}.mtbl th.mt-num,.mtbl th.mt-sz{text-align:right}.mtbl td{padding:4px 8px;border-bottom:1px solid rgba(0,0,0,.14);vertical-align:middle}.mtbl tr.mrow{background:var(--mc);color:var(--mfg)}.mtbl tr.mrow:hover{filter:brightness(1.06)}.mt-id{width:30px;text-align:center;font-family:var(--display);font-weight:700;font-size:13px}.mt-num{text-align:right;font-family:var(--mono);white-space:nowrap}.mt-num.strong{font-weight:700}.mt-sz{text-align:right;font-family:var(--mono);width:38px}.mt-rt{font-family:var(--mono);white-space:nowrap}.mt-left{font-size:11px;margin-left:3px;font-weight:700}.mname-in,.mship-in{width:100%;min-width:80px;background:transparent;border:1px solid transparent;color:var(--mfg);font-size:13px;padding:3px 6px}.mname-in::placeholder,.mship-in::placeholder{color:var(--mfg);opacity:.55}.mname-in:hover,.mship-in:hover{border-color:color-mix(in srgb,var(--mfg) 35%,transparent)}.mname-in:focus,.mship-in:focus{outline:none;border-color:var(--mfg);background:color-mix(in srgb,var(--mc) 78%,#000)}.mt-ship{min-width:130px}.badge{font-family:var(--display);font-size:11px;letter-spacing:.5px;padding:1px 6px;display:inline-block}.badge.ok{color:#fff;background:var(--green)}.badge.bad{color:#fff;background:var(--red)}.badge.warn{color:#fff;background:var(--amber)}.mt-fit .dot.none{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.4}.mtbl tr.mrow .badge{border:1px solid rgba(0,0,0,.25)}.intro-note{display:none}.mission{margin-bottom:10px;border:1px solid var(--rule);background:var(--paper2)}.mission .panel{padding:10px 12px;border:0;background:transparent}.sec-top{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.sec-name{background:transparent;border:0;border-bottom:1px solid var(--rule);color:var(--ink);font-family:var(--display);font-size:15px;font-weight:600;padding:2px;min-width:140px}.sec-name:focus{outline:none;border-bottom-color:var(--cyan)}.sec-sub{font-family:var(--mono);font-size:12px;color:var(--ink-dim)}.sec-del{margin-left:auto;background:transparent;border:1px solid var(--rule);color:var(--ink-faint);width:26px;height:26px;font-size:13px}.sec-del:hover{border-color:var(--red);color:var(--red)}.limit-label{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-faint);margin:2px 0 6px}.limit-label .ll-hint{display:none}.toggles{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:4px}.toggle{position:relative;border:1px solid var(--rule);background:var(--card);color:var(--ink-faint);min-width:42px;text-align:center;padding:4px 6px 3px;cursor:pointer;opacity:.7;user-select:none}.toggle .num{font-family:var(--display);font-size:15px;font-weight:700;display:block;line-height:1;color:var(--ink-dim)}.toggle .lbl,.toggle .tg-state,.toggle .tg-check{display:none}.toggle:hover{border-color:var(--cyan)}.toggle.on{border-color:var(--cyan);background:var(--cyan);opacity:1}.toggle.on .num{color:#fff}.tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}.tbl thead th{font-family:var(--mono);font-size:10px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-dim);text-align:left;padding:5px 8px;border-bottom:1px solid var(--rule);font-weight:400;background:var(--th-bg)}.tbl tbody td{padding:2px 7px;border-bottom:1px solid var(--rule-soft);vertical-align:middle}.tbl th.th-scu{text-align:right}.tbl th.th-crates{text-align:center}.tbl th.szcol{width:40px;text-align:center;color:var(--amber);font-size:13px;background:#c08a2e14}.tbl td.szcell{width:40px;text-align:center;font-family:var(--mono);font-size:14px;color:var(--ink);background:#c08a2e0d}.item-row.colored td.szcell{background:transparent}.tbl td.szcell:empty{color:transparent}.leftover-mark{color:var(--red);font-size:11px;font-family:var(--mono)}.tbl-scroll{overflow-x:auto;flex:0 1 auto;min-width:0}.trip-body{display:flex;gap:12px;align-items:stretch}.ref-rail{flex:0 0 196px;align-self:stretch;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:10px;background:var(--paper2);border:1px solid var(--rule);border-top:2px solid var(--steel);margin-top:8px}.ref-grp{display:flex;flex-direction:column;gap:3px}.ref-h{font-family:var(--mono);font-size:9.5px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:2px}.ref-tip{font-family:var(--mono);font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-faint);opacity:.85;margin-bottom:-2px}.ref-chip{text-align:left;background:var(--card);border:1px solid var(--rule);color:var(--ink);font-family:var(--body);font-size:12px;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;letter-spacing:0}.ref-chip:hover{border-color:var(--cyan);color:var(--cyan);background:var(--card2)}@media(max-width:760px){.trip-body{flex-direction:column;align-items:stretch}.ref-rail{flex-basis:auto;width:100%;flex-direction:row;flex-wrap:wrap}.ref-grp{flex-direction:row;flex-wrap:wrap;align-items:center}}.tbl th{position:relative}.tbl th.rcol{padding-right:14px}.col-resizer{position:absolute;top:0;right:-7px;width:16px;height:100%;cursor:col-resize;z-index:3;touch-action:none;background:transparent;border:0;padding:0;appearance:none;display:flex;align-items:center;justify-content:center}.col-resizer:before{content:"";width:2px;height:55%;background:var(--rule);transition:.1s}.col-resizer:hover:before,.col-resizer:active:before{background:var(--cyan);width:3px;height:85%}.field input.scu{-moz-appearance:textfield}.field input.scu::-webkit-outer-spin-button,.field input.scu::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tbl th.sortable{cursor:pointer;user-select:none}.tbl th.sortable:hover{color:var(--cyan)}.tbl th .arrow{color:var(--cyan);font-size:10px}.tbl th.drag-col,.tbl td.drag-cell{width:22px;text-align:center;padding:0 2px}.grip{cursor:grab;color:var(--ink-faint);font-size:14px;line-height:1;user-select:none;display:inline-block;touch-action:none}.grip:hover{color:var(--cyan)}.grip:active{cursor:grabbing}tr.item-row.dragging{opacity:.45}.m-col,.m-cell{width:30px;text-align:center;padding:0 2px}.m-num{width:28px;text-align:center;font-family:var(--display);font-weight:700;font-size:13px;background:transparent;border:1px solid transparent;padding:2px 0;color:inherit;-moz-appearance:textfield}.m-num::-webkit-outer-spin-button,.m-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.item-row.colored{background:var(--rowbg)}.item-row.colored td{color:var(--rowfg)}.item-row.colored:hover{filter:brightness(1.06)}.field{position:relative;display:block;width:100%}.field input{display:block;width:100%;min-width:0;background:transparent;border:1px solid transparent;color:var(--ink);font-size:13px;padding:3px 7px}.field input.has-add{padding-right:26px}.field input::placeholder{color:var(--ink-faint)}.field input:hover{border-color:var(--rule)}.field input:focus{outline:none;border-color:var(--cyan);background:var(--card2)}.field input.scu{text-align:right;font-family:var(--mono);font-size:14px;color:var(--amber);max-width:84px}.item-row.colored .field input{color:var(--rowfg)}.item-row.colored .field input::placeholder{color:var(--rowfg);opacity:.55}.item-row.colored .field input:hover{border-color:color-mix(in srgb,var(--rowfg) 35%,transparent)}.item-row.colored .field input:focus{border-color:var(--rowfg);background:color-mix(in srgb,var(--rowbg) 78%,#000)}.item-row.colored .field input.scu,.item-row.colored .szcell,.item-row.colored .ncount{color:var(--rowfg)}.item-row.colored .leftover-mark{color:var(--rowfg);font-weight:700}.item-row.colored .grip{color:var(--rowfg);opacity:.55}.item-row.colored .row-del{color:var(--rowfg);border-color:color-mix(in srgb,var(--rowfg) 40%,transparent)}.item-row.colored .row-del:hover{border-color:var(--rowfg);background:color-mix(in srgb,var(--rowfg) 14%,transparent)}.item-row.colored .donebox{accent-color:var(--rowfg)}.addbtn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:19px;height:19px;border:1px solid currentColor;background:#0000002e;color:inherit;font-size:14px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.addbtn:hover{background:currentColor;color:var(--rowbg,#fff)}.addbtn[hidden]{display:none}.ncount{font-family:var(--mono);font-size:14px;color:var(--ink);text-align:center}.row-del{background:transparent;border:1px solid var(--rule);color:var(--ink-faint);width:22px;height:22px;line-height:1;font-size:12px;display:inline-flex;align-items:center;justify-content:center}.row-del:hover{border-color:var(--red);color:var(--red)}.empty-row td{color:var(--ink-faint);text-align:center;padding:12px;font-style:italic}.add-row-wrap{margin-top:8px}.done-col,.done-cell{width:24px;text-align:center}.donebox{width:14px;height:14px;cursor:pointer;accent-color:var(--cyan)}.item-row.done.colored{background:var(--done-wash)}.item-row.done.colored td,.item-row.done.colored .field input,.item-row.done.colored .szcell,.item-row.done.colored .ncount{color:var(--done-ink)}.item-row.done .field input[data-f=commodity]{text-decoration:line-through}.tbl td:last-child,.tbl th:last-child{text-align:center;padding:0 2px}.routes-zone{border:0;background:transparent;margin-bottom:18px}.routes{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.route-col{min-width:0;border:1px solid var(--rule);background:var(--card)}.route-head{display:flex;align-items:baseline;gap:10px;padding:8px 14px;background:var(--accent);color:#fff}.route-head .zone-title{color:#fff}.route-sub{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#ffffffbf}.route-divider{display:none}.card-list{display:flex;flex-direction:column;gap:0;padding:0}.empty-cards{color:var(--ink-faint);font-size:13px;padding:12px}.gcard{background:var(--card);border-bottom:1px solid var(--rule);padding:9px 12px 9px 11px;box-shadow:inset 3px 0 0 var(--accent)}.gcard.done{background:var(--done-wash)}.gcard.done .gname,.gcard.done .gscu{color:var(--done-ink)}.ghead{display:flex;align-items:center;gap:8px}.cgrip{cursor:grab;color:var(--ink-faint);font-size:13px;line-height:1;user-select:none;touch-action:none;flex:0 0 auto}.cgrip:hover{color:var(--accent)}.cgrip:active{cursor:grabbing}.gcard.dragging{opacity:.5;background:var(--paper2)}.cardbox{width:15px;height:15px;cursor:pointer;accent-color:var(--accent);flex:0 0 auto}.gname{flex:1;font-family:var(--display);font-size:13.5px;font-weight:600;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:8px}.gcard.done .gname{text-decoration:line-through}.gscu{font-family:var(--mono);font-size:12px;color:var(--amber)}.gpills{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0 0 22px}.pill{font-family:var(--mono);font-size:11px;padding:1px 6px;background:var(--paper2);border:1px solid var(--rule);color:var(--ink-dim)}.pill .mult{color:var(--ink-faint)}.pill.leftover{border-color:var(--red);color:var(--red)}.gmeta{display:none}.gitems{margin:6px 0 0 22px;display:flex;flex-direction:column;gap:1px}.giline{display:flex;align-items:center;gap:6px;font-size:12px}.giline.gi-done{color:var(--done-ink)}.giline.gi-done .gi-name{text-decoration:line-through;color:var(--done-ink)}.giline.gi-done .gi-scu{color:var(--done-ink)}.mchip{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:16px;padding:0 4px;font-family:var(--display);font-weight:700;font-size:10px;flex:0 0 auto}.gi-name{color:var(--ink)}.gi-scu{font-family:var(--mono);font-size:11.5px;color:var(--amber)}.gi-other{color:var(--ink-faint);font-size:11px}.modal-backdrop{position:fixed;inset:0;background:#14161a8c;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{width:min(540px,100%);max-height:86vh;overflow:auto;background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--cyan);box-shadow:0 20px 50px #0006}.modal.wide{width:min(1040px,96vw);max-height:92vh}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;border-bottom:1px solid var(--rule);background:var(--paper2)}.modal-head h3{margin:0;font-family:var(--display);font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink)}.modal-x{background:transparent;border:1px solid var(--rule);color:var(--ink-faint);width:26px;height:26px;font-size:13px}.modal-x:hover{border-color:var(--red);color:var(--red)}.modal-body{padding:16px}.modal-body .help{margin:0;padding-left:18px;font-size:13.5px;color:var(--ink-dim);line-height:1.6}.modal-body .help li{margin-bottom:7px}.modal-body .help b{color:var(--ink)}.modal-body .muted{margin:12px 0 0;font-size:12.5px;color:var(--ink-faint)}.modal-label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.modal-input{width:100%;background:#fff;border:1px solid var(--rule);color:var(--ink);font-family:var(--display);font-size:15px;padding:9px 11px}.modal-input:focus{outline:none;border-color:var(--cyan)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.ge-scu{font-size:12.5px;color:var(--ink-dim);margin-top:6px}.ge-max{max-width:130px}.ge-grid{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px}.ge-cell{display:flex;flex-direction:column;align-items:center;gap:3px}.ge-size{font-family:var(--display);font-weight:700;font-size:13px;color:var(--amber)}.ge-num{width:50px;text-align:center;background:#fff;border:1px solid var(--rule);color:var(--ink);font-family:var(--mono);font-size:14px;padding:5px 4px;-moz-appearance:textfield}.ge-num::-webkit-outer-spin-button,.ge-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ge-num:focus{outline:none;border-color:var(--cyan)}.ge-total{margin-top:14px;font-size:13px;color:var(--ink-dim)}.ge-total b{color:var(--ink)}.ge-total.over b,.ge-warn{color:var(--red)}.nav-backdrop{display:none}@media(max-width:900px){.app,.app.sb-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;width:var(--sidebar-w);z-index:120;transform:translate(-100%);transition:transform .2s}.app.nav-open .sidebar{transform:none}.app.sb-collapsed .sidebar{transform:translate(-100%)}.app.nav-open.sb-collapsed .sidebar{transform:none}.nav-x{display:block}.sb-collapse{display:none}.nav-toggle{display:block}.sb-expand,.app.sb-collapsed .sb-expand{display:none}.app.nav-open .nav-backdrop{display:block;position:fixed;inset:0;z-index:110;background:#00000073;border:0}.routes{grid-template-columns:1fr}.main{padding:54px 12px 50px}}.imp-exbtn{background:transparent;border:0;color:var(--cyan);font-family:var(--mono);font-size:12px;padding:0 0 10px;cursor:pointer;text-transform:none}.imp-example{border:1px solid var(--rule);background:var(--paper2);padding:12px 14px;margin:0 0 14px}.imp-example p{margin:0 0 8px;font-size:13px;color:var(--ink-dim);line-height:1.55}.imp-example b{color:var(--ink)}.imp-mock{width:100%;max-width:420px;height:auto;display:block;margin:6px 0;border:1px solid var(--rule)}.imp-ex-note{font-size:12px;color:var(--ink-faint);margin:6px 0 0}.imp-drop{border:2px dashed var(--rule);background:var(--paper2);padding:30px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.imp-drop-i{font-size:32px;color:var(--cyan);line-height:1}.imp-drop-t{font-family:var(--display);font-size:16px;color:var(--ink)}.imp-drop-s{font-size:12.5px;color:var(--ink-dim);max-width:440px;line-height:1.5}.imp-pick{margin-top:8px;cursor:pointer}.imp-working{padding:30px 6px}.imp-bar{height:9px;background:var(--paper2);border:1px solid var(--rule);overflow:hidden}.imp-bar span{display:block;height:100%;background:var(--cyan);transition:width .15s}.imp-sub{font-family:var(--mono);font-size:12px;color:var(--ink-dim);margin-top:8px;text-align:center}.imp-err{color:var(--red);font-size:13px}.imp-meta{display:flex;gap:16px;align-items:center;margin-bottom:12px;font-size:13px;color:var(--ink-dim);flex-wrap:wrap}.imp-meta b{color:var(--ink)}.imp-box{color:var(--amber);font-family:var(--mono);font-size:12px}.imp-reward{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-dim)}.imp-reward input{width:96px;background:var(--card);border:1px solid var(--rule);color:var(--ink);font-family:var(--mono);font-size:13px;padding:4px 6px;text-align:right}.imp-rerun{margin-left:auto}.imp-review{display:grid;grid-template-columns:1fr 270px;gap:16px;align-items:start}.imp-main{min-width:0}.imp-tbl{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}.imp-tbl th{font-family:var(--mono);font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-dim);text-align:left;padding:5px 6px;border-bottom:1px solid var(--rule);background:var(--th-bg)}.imp-tbl th.n,.imp-tbl td.n{text-align:right;width:72px}.imp-tbl th.x,.imp-tbl td.x{width:26px}.imp-tbl td{padding:3px 6px;border-bottom:1px solid var(--rule-soft)}.imp-tbl input{width:100%;min-width:120px;background:var(--card);border:1px solid var(--rule);color:var(--ink);font-size:13px;padding:5px 7px}.imp-tbl td.n input{min-width:0}.imp-tbl input.scu{font-family:var(--mono);text-align:right}.imp-tbl input.novel{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,var(--card))}.imp-tbl input:focus{outline:none;border-color:var(--cyan)}.imp-del{background:transparent;border:1px solid var(--rule);color:var(--ink-faint);width:22px;height:22px;font-size:12px;line-height:1}.imp-del:hover{border-color:var(--red);color:var(--red)}.imp-addrow{margin-top:10px}.imp-rawtoggle{display:block;background:transparent;border:0;color:var(--cyan);font-family:var(--mono);font-size:11px;padding:10px 0 0;cursor:pointer;text-transform:none}.imp-raw{max-height:180px;overflow:auto;background:var(--paper2);border:1px solid var(--rule);padding:8px;font-family:var(--mono);font-size:11px;color:var(--ink-dim);white-space:pre-wrap;margin:4px 0 0}.imp-side{border:1px solid var(--amber);background:color-mix(in srgb,var(--amber) 8%,var(--card));padding:11px}.imp-side-h{font-family:var(--display);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:7px;margin-bottom:4px}.imp-side-n{font-family:var(--mono);font-size:11px;background:var(--amber);color:#fff;padding:0 6px;line-height:16px}.imp-side-s{font-size:11.5px;color:var(--ink-dim);margin:0 0 10px;line-height:1.45}.sugg{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--rule-soft)}.sugg-kind{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--ink-faint)}.sugg-in{background:var(--card);border:1px solid var(--rule);color:var(--ink);font-size:12.5px;padding:5px 7px}.sugg-in:focus{outline:none;border-color:var(--cyan)}.imp-applyall{width:100%;margin-top:10px}.imp-crophint{font-size:13px;color:var(--ink-dim);margin:0 0 10px}.cropwrap{position:relative;display:inline-block;max-width:100%;line-height:0;border:1px solid var(--rule);user-select:none;touch-action:none}.cropimg{max-width:100%;max-height:62vh;display:block}.cropshade{position:absolute;background:#080c109e;pointer-events:none}.cropsel{position:absolute;border:1.5px solid var(--cyan);cursor:move;box-shadow:0 0 0 9999px #0000}.cropsel .ch{position:absolute;width:15px;height:15px;background:var(--cyan);border:2px solid #fff;border-radius:2px}.cropsel .ch.nw{left:-8px;top:-8px;cursor:nwse-resize}.cropsel .ch.ne{right:-8px;top:-8px;cursor:nesw-resize}.cropsel .ch.sw{left:-8px;bottom:-8px;cursor:nesw-resize}.cropsel .ch.se{right:-8px;bottom:-8px;cursor:nwse-resize}@media(max-width:760px){.imp-review{grid-template-columns:1fr}}.cur{font-family:var(--mono);opacity:.7;margin-right:1px}.mt-rew{text-align:right;white-space:nowrap}.mtbl th.mt-rew{text-align:right}.mrew-in{width:78px;background:transparent;border:1px solid transparent;color:inherit;font-family:var(--mono);font-size:12px;text-align:right;padding:2px 4px}.mrew-in:hover{border-color:color-mix(in srgb,var(--mfg) 35%,transparent)}.mrew-in:focus{outline:none;border-color:var(--mfg);background:color-mix(in srgb,var(--mc) 78%,#000)}.mtbl tfoot .mfoot td{border-top:2px solid var(--rule);padding:6px 8px;font-family:var(--mono);color:var(--ink-dim);background:var(--th-bg)}.mtbl tfoot .mfoot td.strong{color:var(--ink);font-weight:700}.mtbl th.mt-grip,.mtbl td.mt-grip{width:22px;text-align:center;padding:0 2px}.mgrip{cursor:grab;color:var(--mfg,var(--ink-faint));opacity:.55;font-size:13px;line-height:1;user-select:none;touch-action:none}.mgrip:hover{opacity:1}.mgrip:active{cursor:grabbing}.mtbl tr.mrow.dragging{opacity:.5}.mtbl th.mt-x,.mtbl td.mt-x{width:24px;text-align:center;padding:0 2px}.mdel{background:transparent;border:1px solid color-mix(in srgb,var(--mfg) 40%,transparent);color:var(--mfg);width:20px;height:20px;font-size:11px;line-height:1;opacity:.7}.mdel:hover{opacity:1;border-color:#fff;color:#fff;background:#0003}.mt-add{margin-top:10px}.m-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.m-pct{display:flex;align-items:center;gap:8px;margin-left:auto;border:1px solid var(--rule);background:var(--paper2);padding:4px 10px}.m-pct-l{font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim)}.m-pct-range{width:140px;accent-color:var(--cyan);cursor:pointer}.m-pct-v{font-family:var(--mono);font-size:13px;color:var(--ink);min-width:34px;text-align:right}.m-pct-reset{background:transparent;border:0;color:var(--cyan);font-size:14px;line-height:1;padding:0 2px;cursor:pointer}.mtbl .mt-tgt,.mtbl th.mt-tgt{color:var(--cyan)}.mtbl tr.mrow .mt-tgt{color:var(--mfg);font-weight:700}.m-pct-note{margin-top:8px;font-size:12.5px;color:var(--ink-dim);border-left:3px solid var(--cyan);background:var(--paper2);padding:7px 11px}.m-pct-note b{color:var(--ink)}.route-opt{margin-left:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.3px;color:#fff;background:#00000038;padding:2px 8px;white-space:nowrap}.gcard.opt-dim{opacity:.4;filter:grayscale(.5)}.gcard.on-route{box-shadow:inset 3px 0 0 var(--accent),0 0 0 1px var(--green)}.gcard.opt-best{box-shadow:inset 3px 0 0 var(--accent),0 0 0 2px var(--green);background:color-mix(in srgb,var(--green) 9%,var(--card))}.opt-star{color:var(--green);margin-right:4px}.opt-deliver{font-family:var(--mono);font-size:11.5px;color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border:1px solid color-mix(in srgb,var(--green) 35%,var(--rule));padding:3px 8px;margin:6px 0 0 22px;display:inline-block}.opt-deliver b{color:var(--ink)}.cd-msg{font-size:13.5px;color:var(--ink);line-height:1.55;margin:0 0 12px}.cd-skip{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-dim);cursor:pointer}.cd-skip input{width:15px;height:15px;accent-color:var(--cyan);cursor:pointer}.btn.accent.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.accent.danger:hover{filter:brightness(1.08);color:#fff}
