:root{
  --ink:#0B1324; --ink-2:#121B31; --paper:#F3F5F4; --card:#FFFFFF; --beacon:#FF5A1F; --beacon-deep:#C93A0A;
  --slate:#5B6475; --fog:#AEB6C2; --line:#D5DAE0; --line-dark:#2A3550; --ok:#1B7F4B; --bad:#B3261E;
  --display:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif; --body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-0.025em}
h1{font-size:30px;line-height:1.1}h2{font-size:20px}h3{font-size:16px}
a{color:var(--beacon-deep)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--beacon);outline-offset:2px}
.mono{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.muted{color:var(--slate)}
.logo{display:inline-flex;align-items:baseline;font-family:var(--display);font-weight:600;letter-spacing:-0.045em;line-height:1;color:inherit;text-decoration:none}
.logo svg{position:relative;top:.538ex;width:1.154ex;height:1.615ex;margin-right:.01em;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid transparent;background:var(--ink);color:#fff;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--ink-2)}
.btn.accent{background:var(--beacon);color:var(--ink)}.btn.accent:hover{background:#FF7340}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{border-color:var(--ink);background:transparent}
.btn.danger{background:transparent;color:var(--bad);border-color:var(--line)}
.btn.small{min-height:32px;padding:0 12px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label{font-size:13px;font-weight:600}
.field input,.field select,.field textarea,.in{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:16px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;background:#fff;white-space:nowrap}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--beacon);flex:none}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:500;background:#FAFBFB}
tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
td.wrap{white-space:normal;min-width:180px}
.notice{padding:12px 14px;border-radius:10px;background:#FFF1EA;border:1px solid #F6C9B4;font-size:14px}
.notice.err{background:#FCEDEC;border-color:#EFC1BD;color:var(--bad)}
.notice.ok{background:#E9F5EE;border-color:#BFE0CD;color:var(--ok)}
.empty{padding:28px;text-align:center;color:var(--slate);border:1px dashed var(--line);border-radius:12px;background:#fff}
