:root{--ink:#0F172A;--bg:#F8FAFC;--card:#fff;--pri:#0E7C66;--pri-d:#0A5E4E;--acc:#F59E0B;--err:#B91C1C;--line:#E2E8F0;--mut:#475569;--r:10px}
*{box-sizing:border-box}
body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--pri-d)}
.top{background:#fff;border-bottom:1px solid var(--line)}
.top .in{max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;color:var(--ink)}
.logo small{font-weight:500;color:var(--mut)}
nav{display:flex;gap:16px;flex:1;flex-wrap:wrap}
nav a{text-decoration:none;color:var(--ink);padding:4px 2px;border-bottom:2px solid transparent}
nav a:hover{border-color:var(--pri)}
main{max-width:1080px;margin:0 auto;padding:24px 20px 64px}
h1{font-size:1.6rem;margin:.2em 0 .6em}h2{font-size:1.2rem;margin:1.6em 0 .6em}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin:0 0 16px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.btn,button{background:var(--pri);color:#fff;border:0;border-radius:var(--r);padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover,button:hover{background:var(--pri-d)}
.btn.sec,button.sec{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.danger,button.danger{background:var(--err)}
label{display:block;font-weight:600;margin:12px 0 4px}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r);font:inherit;background:#fff}
input[type=checkbox]{width:auto}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>*{flex:1;min-width:140px}.row>.btn,.row>button{flex:0 0 auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;background:#fff}
th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);font-size:.92rem}
th{background:#F1F5F9;font-weight:600}
td.n,th.n{text-align:right}
.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600;background:#E2E8F0}
.chip.ok{background:#D1FAE5;color:#065F46}.chip.warn{background:#FEF3C7;color:#92400E}.chip.err{background:#FEE2E2;color:var(--err)}
.flash{border-radius:var(--r);padding:10px 14px;margin:0 0 16px;border:1px solid var(--line);background:#fff}
.flash.err{border-color:var(--err);color:var(--err)}.flash.ok{border-color:var(--pri)}
.muted{color:var(--mut);font-size:.9rem}
.stat{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums}
.hp{position:absolute;left:-9999px}
code{background:#F1F5F9;padding:1px 5px;border-radius:5px;word-break:break-all}
footer{max-width:1080px;margin:0 auto;padding:0 20px 40px;color:var(--mut);font-size:.82rem}
.auth{max-width:420px;margin:40px auto}
.scroll{overflow-x:auto}
