:root{--bg:#0f1115;--panel:#171a21;--line:#262b36;--text:#e6e8ee;--muted:#8b93a7;--accent:#7c9cff;--green:#3fb27f;--amber:#e0a43a;--red:#e5604f;--grey:#6b7385;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1{margin:0;font-size:20px}h2{margin:0 0 12px;font-size:16px}code{color:var(--muted);font:12px ui-monospace,monospace}a{color:var(--accent)}button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#0b0d12;font-weight:600}button.danger{color:var(--red);border-color:color-mix(in srgb, var(--red) 40%, transparent)}button.small{padding:3px 8px;font-size:12px}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;width:100%;padding:6px 8px}textarea{font-family:ui-monospace,monospace}.splash,.login{max-width:420px;margin:18vh auto;padding:0 16px}.login h1{margin-bottom:8px}.login button{margin:16px 0 8px}.shell{grid-template-columns:200px 1fr;min-height:100vh;display:grid}.nav{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:12px;padding:16px 12px;display:flex}.nav .brand{letter-spacing:.02em;padding:0 8px;font-weight:700}.nav ul{flex-direction:column;flex:1;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav a{color:var(--text);border-radius:6px;padding:6px 8px;text-decoration:none;display:block}.nav a[aria-current=page]{background:var(--line)}.nav a.soon{color:var(--muted)}.nav .signout{align-self:flex-start}.content{padding:20px 28px;overflow-x:auto}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.sub{color:var(--muted);margin:2px 0 0;font-size:12px}.empty{color:var(--muted);padding:24px 0}.alert{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent);border-radius:6px;padding:8px 12px}.ok{color:var(--green)}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:6px 10px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.label{font-family:ui-monospace,monospace;font-weight:600}tr.row-red{background:color-mix(in srgb, var(--red) 6%, transparent)}.badge{white-space:nowrap;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.badge.tone-green{color:var(--green);background:color-mix(in srgb, var(--green) 15%, transparent)}.badge.tone-amber{color:var(--amber);background:color-mix(in srgb, var(--amber) 15%, transparent)}.badge.tone-red{color:var(--red);background:color-mix(in srgb, var(--red) 15%, transparent)}.badge.tone-grey{color:var(--grey);background:color-mix(in srgb, var(--grey) 18%, transparent)}.error-class{font-family:ui-monospace,monospace}.meter-cell{min-width:120px}.meter-line{align-items:center;gap:6px;display:flex}.meter{background:var(--line);border-radius:3px;width:72px;height:6px;overflow:hidden}.meter-fill{background:var(--green);height:100%}.meter.tone-amber .meter-fill{background:var(--amber)}.meter.tone-red .meter-fill{background:var(--red)}.meter-pct{font-variant-numeric:tabular-nums;text-align:right;min-width:34px;font-size:12px}.actions{flex-wrap:wrap;gap:4px;display:flex}.backdrop{z-index:10;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(520px,92vw);padding:20px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.field{flex-direction:column;gap:4px;margin:10px 0;display:flex}.field span{color:var(--muted);font-size:12px}.steps{padding-left:18px}.steps li{margin:6px 0}.chip{text-align:center;border-radius:4px;min-width:64px;padding:2px 8px;font-size:12px;display:inline-block}.chip.state-ready{color:var(--green);background:color-mix(in srgb, var(--green) 15%, transparent)}.chip.state-unready{color:var(--amber);background:color-mix(in srgb, var(--amber) 15%, transparent)}.chip.state-unreachable{color:var(--red);background:color-mix(in srgb, var(--red) 15%, transparent)}.chip.state-not_placed{color:var(--grey)}.route-modes{margin-top:24px}.route-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;display:grid}
