html,body,.app{--bg:#F3F5F9;--surface:#FFFFFF;--surface-2:#F8FAFC;--surface-3:#EEF1F6;--lane:#E9EDF3;--border:#E2E7EF;--border-2:#D7DEE8;--border-3:#CBD5E1;--text:#0F172A;--text-2:#334155;--muted:#5B6B82;--text-3:#64748B;--text-4:#94A3B8;--text-5:#475569;--rail:#070A12;--rail-2:#0F1522;--rail-3:#151D2E;--rail-border:#1E2A40;--rail-text:#AAB6C8;--avatar:#0E7490;--glow:#4FD8FF;--accent:#1B7FE6;--accent-2:#1467C8;--accent-3:#0F4F9E;--accent-soft:#DCEBFF;--accent-soft-2:#EAF3FF;--accent-light:#7CB8FF;--dispatched:#22B8E0;--btn:#0F172A;--btn-hover:#1E293B;--btn-text:#FFFFFF;--sh:15,23,42;--panel:rgba(255,255,255,.96);--amber:#F59E0B;--amber-2:#D97706;--amber-text:#92400E;--amber-soft:#FEF3C7;--amber-border:#FCD34D;--amber-bg:#FFFBEB;--amber-track:#FDE68A;--blue-2:#1D4ED8;--blue-text:#1E40AF;--blue-soft:#DBEAFE;--violet:#7C3AED;--violet-2:#6D28D9;--violet-text:#5B21B6;--violet-soft:#EDE9FE;--violet-light:#C4B5FD;--green:#059669;--green-2:#16A34A;--green-text:#065F46;--green-soft:#D1FAE5;--green-border:#6EE7B7;--green-bg:#ECFDF5;--red:#DC2626;--red-text:#991B1B;--red-soft:#FEE2E2;--red-border:#FCA5A5;--red-bg:#FEF2F2;--teal-text:#115E59;--teal-soft:#CCFBF1;--s1:#1B7FE6;--s2:#D97706;--s3:#7C3AED;--s4:#DB2777;--s1-light:#7CB8FF;--ramp1:#BFDBFE;--ramp2:#7CB8FF;--ramp3:#1B7FE6;--ramp4:#0F4F9E;--ramp5:#0B2E5E;--map-land:#E8EEF3;--map-block:#EEF2F6;--map-water:#CFE3EE;--map-grid:#D5DCE4;--map-casing:#C9D2DC;--map-road:#FFFFFF}html[data-theme=dark],.app[data-theme=dark]{--avatar:#1F63B8;--bg:#0A0E17;--surface:#111726;--surface-2:#161D2E;--surface-3:#1B2436;--lane:#0D1220;--border:#232D42;--border-2:#2C3850;--border-3:#3A4760;--text:#E8EDF5;--text-2:#C6CFDC;--muted:#93A1B5;--text-3:#8A98AC;--text-4:#5F6E85;--text-5:#B5C0CF;--accent:#2E8FF0;--accent-2:#5EB3FF;--accent-3:#8FCBFF;--accent-soft:#12325A;--accent-soft-2:#0F2744;--accent-light:#7CB8FF;--dispatched:#4FD8FF;--btn:#E8EDF5;--btn-hover:#FFFFFF;--btn-text:#0A0E17;--sh:0,0,0;--panel:rgba(17,23,38,.96);--amber:#F59E0B;--amber-2:#C97A00;--amber-text:#FBBF24;--amber-soft:#3A2A08;--amber-border:#92400E;--amber-bg:#1F1A0E;--amber-track:#4A3610;--blue-2:#2563EB;--blue-text:#93C5FD;--blue-soft:#172554;--violet:#9B6BF0;--violet-2:#7C3AED;--violet-text:#C4B5FD;--violet-soft:#2E1065;--violet-light:#6D28D9;--green:#10B981;--green-2:#22C55E;--green-text:#6EE7B7;--green-soft:#0B2E24;--green-border:#065F46;--green-bg:#0B1F1A;--red:#EF4444;--red-text:#FCA5A5;--red-soft:#3B1212;--red-border:#7F1D1D;--red-bg:#2A0F0F;--teal-text:#5EEAD4;--teal-soft:#0B2E2A;--s1:#2E8FF0;--s2:#C97A00;--s3:#9B6BF0;--s4:#E85A9A;--s1-light:#7CB8FF;--ramp1:#E0ECFF;--ramp2:#9CCBFF;--ramp3:#5EB3FF;--ramp4:#2E8FF0;--ramp5:#1B5FB8;--map-land:#111827;--map-block:#161F2F;--map-water:#0F2A3F;--map-grid:#1B2436;--map-casing:#2A3448;--map-road:#3A465C}.app{background:var(--bg);color:var(--text)}.tgl{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--rail-border);background:transparent;color:var(--rail-text);cursor:pointer;flex:none}.tgl:hover{color:#fff;border-color:var(--glow)}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent-2);text-decoration:none}a:hover{color:var(--accent-3)}h1,h2,h3{font-family:Chakra Petch,Inter,sans-serif;margin:0}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.ico{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ico-s{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nav{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-radius:10px;color:var(--rail-text);font-weight:500;font-size:14px}.nav:hover{color:#fff;background:var(--rail-2)}.nav.active{background:var(--rail-3);color:#fff;box-shadow:inset 3px 0 0 var(--glow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;font:600 14px Inter,system-ui,sans-serif;cursor:pointer;white-space:nowrap;color:var(--text);background:var(--surface)}.btn-primary{background:var(--btn);color:var(--btn-text)}.btn-primary:hover{background:var(--btn-hover);color:var(--btn-text)}.btn-ghost{border-color:var(--border-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-icon{width:40px;padding:0;border-color:var(--border-2);position:relative}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:18px;white-space:nowrap}.c-amber{background:var(--amber-soft);color:var(--amber-text)}.c-blue{background:var(--blue-soft);color:var(--blue-text)}.c-violet{background:var(--violet-soft);color:var(--violet-text)}.c-cyan{background:var(--teal-soft);color:var(--teal-text)}.c-green{background:var(--green-soft);color:var(--green-text)}.c-red{background:var(--red-soft);color:var(--red-text)}.c-slate{background:var(--border);color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.avatar{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font:700 12px Chakra Petch,sans-serif;color:#fff;background:var(--avatar);flex:none}.seg{display:flex;gap:3px;height:10px;border-radius:999px;overflow:hidden;background:var(--border)}.seg span{display:block;height:100%}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.tab{padding:10px 2px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 16px;display:flex;flex-direction:column;gap:2px;flex:1 1 140px;min-width:0}.tile .v{font:700 22px Chakra Petch,sans-serif;font-variant-numeric:tabular-nums;line-height:1.1}.filt{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--border-2);background:var(--surface);font:500 13px Inter,sans-serif;color:var(--text-2);cursor:pointer}.filt b{color:var(--text)}.segc{display:inline-flex;background:var(--surface-3);border-radius:10px;padding:3px;gap:3px}.segc button{height:32px;padding:0 12px;border-radius:8px;border:0;background:transparent;font:600 13px Inter,sans-serif;color:var(--muted);cursor:pointer}.segc button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(var(--sh),.08)}.search{display:flex;align-items:center;gap:10px;height:40px;border:1px solid var(--border-2);border-radius:10px;padding:0 12px;background:var(--surface);color:var(--muted)}.search input{border:0;outline:0;flex:1;min-width:0;font:400 14px Inter,system-ui,sans-serif;color:var(--text);background:transparent}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:12px;font-weight:600;color:var(--text-2)}.input{display:flex;align-items:center;gap:8px;height:42px;border:1px solid var(--border-2);border-radius:10px;padding:0 12px;font:400 14px Inter,system-ui,sans-serif;color:var(--text);background:var(--surface);width:100%}.input input,.input select,.input textarea{border:0;outline:0;flex:1;min-width:0;font:inherit;color:inherit;background:transparent;height:100%}.meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted)}.meta b{color:var(--text-2);font-weight:600}.row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:13px}.sw{width:38px;height:22px;border-radius:999px;background:var(--border-3);position:relative;flex:none;border:0;cursor:pointer}.sw:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface)}.sw.on{background:var(--accent-2)}.sw.on:after{left:19px}table{border-collapse:collapse;width:100%}th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface-2)}td{padding:11px 12px;border-bottom:1px solid var(--surface-3);vertical-align:middle;white-space:nowrap;font-variant-numeric:tabular-nums}tr:hover td{background:var(--surface-2)}.lane{background:var(--lane);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;flex:1 1 240px;min-width:0}.lane-h{display:flex;align-items:center;gap:8px;padding:2px 4px 6px;font-weight:700;font-size:13px}.lane-h .cnt{margin-left:auto;background:var(--surface);border-radius:999px;padding:0 8px;font-size:12px;color:var(--muted)}.unit{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:7px;background:var(--btn);color:var(--btn-text);font:700 12px Chakra Petch,sans-serif;letter-spacing:.04em}.mtab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 4px;font-size:11px;font-weight:600;color:var(--muted);position:relative}.mtab.on{color:var(--text)}.mtab .ico{width:22px;height:22px}.mhead{background:var(--rail);color:#fff;padding:22px 20px 16px;display:flex;flex-direction:column;gap:12px}.mbar{background:var(--surface);border-bottom:1px solid var(--border);padding:22px 16px 12px;display:flex;align-items:center;gap:10px}.mbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 16px;border-radius:14px;border:1px solid transparent;font:700 15px Inter,system-ui,sans-serif;cursor:pointer;white-space:nowrap;color:var(--text);background:var(--surface)}.mbtn-primary{background:var(--btn);color:var(--btn-text)}.mbtn-ghost{border-color:var(--border-2)}.tl{display:grid;grid-template-columns:44px 18px 1fr;gap:0 10px}.tl .t{font-size:12px;color:var(--muted);padding-top:2px;font-variant-numeric:tabular-nums}.tl .ln{display:flex;flex-direction:column;align-items:center}.tl .ln i{width:12px;height:12px;border-radius:50%;display:block;flex:none;margin-top:4px}.tl .ln b{flex:1;width:2px;background:var(--border);margin:4px 0}.tl .tx{padding-bottom:16px;font-size:14px}.staffbar{display:flex;align-items:center;gap:8px;padding:5px 28px;background:var(--rail);color:var(--glow);font:600 11px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase}.staffbar .r{margin-left:auto;color:var(--rail-text);letter-spacing:0;text-transform:none;font-weight:500}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap}.pill i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.kv{display:grid;grid-template-columns:132px 1fr;gap:7px 12px;font-size:13px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500;min-width:0}.bar{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden;display:flex}.bar span{display:block;height:100%;background:var(--accent)}.log{display:grid;grid-template-columns:62px 1fr;gap:6px 12px;font-size:12.5px;align-items:start}.log .t{color:var(--text-4);font-variant-numeric:tabular-nums;padding-top:1px}.step{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;font-size:13px;color:var(--text-2)}.step .n{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 12px Chakra Petch,sans-serif;background:var(--surface-3);color:var(--muted);flex:none}.step.done .n{background:var(--green-soft);color:var(--green-text)}.step.on{background:var(--accent-soft-2);color:var(--text);font-weight:600}.step.on .n{background:var(--accent);color:#fff}.drop{border:2px dashed var(--border-3);border-radius:14px;padding:18px;text-align:center;color:var(--muted);background:var(--surface-2);font-size:13px}.kbd{font:600 11px Inter,sans-serif;padding:1px 6px;border-radius:5px;border:1px solid var(--border-2);background:var(--surface-2);color:var(--text-2)}.hd{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.wrap td{white-space:normal}.tbl-sm th{padding:8px 10px}.tbl-sm td{padding:8px 10px;font-size:12.5px}.act{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--border-2);background:var(--surface);font:600 12px Inter,sans-serif;color:var(--text-2);cursor:pointer;white-space:nowrap}.act:hover{background:var(--surface-2);color:var(--text)}.act.danger{color:var(--red-text);border-color:var(--red-border)}.hbar{display:flex;align-items:flex-end;gap:6px;height:90px}.hbar div{flex:1;border-radius:4px 4px 0 0;background:var(--s1)}.sparkrow{display:flex;align-items:flex-end;gap:2px;height:22px;width:70px}.sparkrow i{flex:1;display:block;background:var(--accent-light);border-radius:1px}html,body{margin:0;background:var(--bg);color:var(--text)}#root,.app{min-height:100vh}a.nav,a.mtab{text-decoration:none}code{font:500 12px ui-monospace,SFMono-Regular,Menlo,monospace}.rail{flex:0 0 232px;background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;padding:16px 12px;gap:4px;min-width:0}.rail-top{display:flex;flex-direction:column;gap:4px}.rail-logo{display:block;padding:4px 6px 14px}.rail-logo img{width:196px;height:auto;display:block}.rail-nav{display:flex;flex-direction:column;gap:4px;flex:1}.rail-menu{display:none;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:9px;border:1px solid var(--rail-border);background:var(--rail-2);color:#fff;font:600 13px Inter,system-ui,sans-serif;cursor:pointer}.lp-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.lp-head{display:flex;align-items:center;gap:14px;padding:14px 28px;background:var(--surface);flex-wrap:wrap}.lp-tabs{display:flex;gap:22px;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto}.lp-body{padding:18px 28px 32px;display:flex;flex-direction:column;gap:16px;min-width:0}.lp-staff{padding:6px 28px;font-size:12px;background:var(--amber-soft);color:var(--amber-text);font-weight:600}.lanes{display:grid;grid-template-columns:repeat(5,minmax(196px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:4px}.lanes .lane{flex:none}@media (max-width:860px){.rail{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px 14px;gap:8px}.rail-top{flex-direction:row;align-items:center;gap:10px;flex:1 1 auto;min-width:0}.rail-top>div,.rail-top>a+div{flex:1 1 auto;min-width:0}.rail-logo{padding:0}.rail-logo img{width:118px}.rail-menu{display:inline-flex}.rail-nav{display:none;flex:1 1 100%}.rail.open .rail-nav{display:flex}.rail-gap,.rail-tag{display:none}.lp-head{padding:12px 16px}.lp-tabs{padding:0 16px;gap:18px}.lp-body{padding:14px 16px 28px}.lp-staff{padding:6px 16px}}table.compact th,table.compact td{padding:8px}table.compact td.wrap{white-space:normal}.crew{container-type:inline-size}.crew .crew-sub{display:none}@container (max-width:640px){.crew .c-wide{display:none}.crew .crew-sub{display:block}}.qr-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.qr-label{background:#fff;color:#000;border:1px dashed #9aa3b2;border-radius:10px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;break-inside:avoid;page-break-inside:avoid}.qr-co{font:600 11px Inter,system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#333}.qr-unit{font:700 18px Chakra Petch,Inter,system-ui,sans-serif}.qr-sub{font:400 11px Inter,system-ui,sans-serif;color:#444}.doc{background:#fff;color:#0f172a;border:1px solid var(--border);border-radius:12px;padding:28px;width:100%;max-width:1180px;font-size:12px;line-height:1.4;page:doc}.doc table{width:100%;border-collapse:collapse}.doc th,.doc td{padding:5px 6px;border-bottom:1px solid #E2E8F0;text-align:left;vertical-align:top}.doc th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#475569;font-weight:600}.doc .r{text-align:right;white-space:nowrap}@page doc{size:letter landscape;margin:.4in}@media print{@page{margin:.4in}.doc{border:0;border-radius:0;padding:0;max-width:none}.doc tr{break-inside:avoid}.rail,.lp-head,.lp-tabs,.lp-staff,.no-print{display:none!important}.app,.lp-main,.lp-body{background:#fff!important;padding:0!important}.qr-sheet{grid-template-columns:repeat(3,2.3in);gap:.15in}.qr-label{width:2.3in;border-color:#bbb}}
