  :root{
    --ink:#16212e; --ink-2:#41505f; --ink-3:#7b8794;
    --paper:#f2f4f6; --card:#ffffff; --line:#dde3e9;
    --accent:#0070c0; --ok:#00b050; --warn:#e8a200; --bad:#d83a2e;
    --mono:'Consolas','SF Mono','Cascadia Mono',monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--paper);color:var(--ink);min-height:100vh}
  .routestrip{height:6px;display:flex}
  .routestrip div{flex:1}
  main{max-width:1080px;margin:0 auto;padding:20px 20px 60px}
  .step{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:20px;overflow:hidden}
  .step-h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fafbfc}
  .stepno{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .step-h h2{font-size:15px;font-weight:600}
  .step-h .hint{margin-left:auto;font-size:12px;color:var(--ink-3)}
  .step-b{padding:18px}
  .drop{border:2px dashed #b9c4cf;border-radius:8px;padding:34px;text-align:center;cursor:pointer;transition:.15s;color:var(--ink-2)}
  .drop:hover,.drop.over{border-color:var(--accent);background:#f0f7fd}
  .drop b{color:var(--accent)}
  .drop .fname{font-family:var(--mono);font-size:13px;color:var(--ok);margin-top:8px;font-weight:600}
  table{width:100%;border-collapse:collapse;font-size:13px}
  th{background:#f4f6f8;text-align:left;padding:8px 10px;border-bottom:2px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-2)}
  td{padding:7px 10px;border-bottom:1px solid #edf0f3;vertical-align:middle}
  tr:last-child td{border-bottom:none}
  .sw{display:inline-block;width:30px;height:16px;border-radius:3px;border:1px solid rgba(0,0,0,.2);vertical-align:middle}
  select,input[type=date]{padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:#fff;color:var(--ink)}
  select:focus,input:focus{outline:2px solid #a8d2f0;border-color:var(--accent)}
  .mono{font-family:var(--mono);font-size:12.5px}
  .pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11.5px;font-weight:600}
  .pill.a{background:#e3f0fb;color:#0d5ea8}.pill.b{background:#fdeee0;color:#a85a0d}
  .pill.reg{background:#e6f5ec;color:#177a3e}.pill.spare{background:#f0eef8;color:#5b4ba8}
  .btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px 26px;font-size:15px;font-weight:600;cursor:pointer;transition:.15s}
  .btn:hover{background:#005a9c}
  .btn:disabled{background:#b9c4cf;cursor:not-allowed}
  .btn.ghost{background:#fff;color:var(--accent);border:1px solid var(--accent)}
  .btn.go{background:var(--ok)}
  .btn.go:hover{background:#00913f}
  .row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
  .stat{background:#fafbfc;border:1px solid var(--line);border-radius:8px;padding:10px 16px;text-align:center;min-width:110px}
  .stat b{display:block;font-size:22px}
  .stat span{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.4px}
  .note{font-size:12.5px;color:var(--ink-2);background:#fff8e8;border:1px solid #f0dfae;border-radius:6px;padding:8px 12px;margin-top:10px}
  .err{color:var(--bad);background:#fdeeed;border-color:#f2c4c0}
  .tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:0}
  .tab{padding:9px 18px;font-size:13px;font-weight:600;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent}
  .tab.on{color:var(--accent);border-bottom-color:var(--accent)}
  .scroll{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:8px}
  .hide{display:none}
