
:root{--ground:#182b47;--surface:#21395c;--ink:#ece7d8;--muted:#9aaabf;
--rule:rgba(236,231,216,.16);--rule-strong:rgba(236,231,216,.34);--accent:#e0553a;--seal-ink:#fbf3ec;
--display:"Shippori Mincho",Georgia,serif;--body:"Zen Kaku Gothic New",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--edge:min(72px,6vw);}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);line-height:1.5;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--ink)}::selection{background:var(--accent);color:var(--seal-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.topbar{display:flex;align-items:center;gap:20px;padding:18px var(--edge);border-bottom:1px solid var(--rule)}
.wordmark{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.seal{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;background:var(--accent);color:var(--seal-ink);font-family:var(--display);font-weight:700;font-size:1.25rem;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--seal-ink) 34%,var(--accent))}
.wordmark .name{font-family:var(--mono);font-weight:700;font-size:1.1rem;letter-spacing:.02em}
.topbar nav{margin-left:auto;display:flex;align-items:center;gap:16px;font-family:var(--mono);font-size:.82rem}
.who{color:var(--muted)}
main{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:40px var(--edge) 64px;display:flex;flex-direction:column;gap:26px}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
h1{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4vw,2.8rem);line-height:1.05;margin:0}
h2{font-family:var(--display);font-weight:700;font-size:1.3rem;margin:0}
.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:.86em}.num{font-variant-numeric:tabular-nums;text-align:right}
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.switcher select{font-family:var(--mono);font-size:.9rem;background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);border-radius:6px;padding:9px 12px}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:24px 26px}
.card.auth{max-width:420px;margin:6vh auto}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:8px}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:11px 14px;border-bottom:1px solid var(--rule)}
td{padding:11px 14px;border-bottom:1px solid var(--rule)}tr:last-child td{border-bottom:0}
form.create{margin-top:20px;padding-top:20px;border-top:1px solid var(--rule)}
.fields{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:16px}
label{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--muted);flex:1;min-width:180px}
input,select{font-family:var(--body);font-size:.95rem;background:var(--ground);color:var(--ink);border:1px solid var(--rule-strong);border-radius:6px;padding:10px 12px}
.card.auth label{margin-bottom:14px}
.btn{font-family:var(--mono);font-size:.84rem;font-weight:700;letter-spacing:.02em;border:0;border-radius:6px;padding:11px 20px;cursor:pointer;text-decoration:none;display:inline-block}
.btn.solid{background:var(--accent);color:var(--seal-ink)}.btn.solid:hover{background:color-mix(in srgb,var(--accent) 88%,#fff)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule-strong)}.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.btn.small{padding:7px 14px;font-size:.76rem}
.inline{display:inline}
.notice{border-radius:8px;padding:14px 16px;font-size:.9rem}
.notice.ok{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border:1px solid var(--accent)}
.notice.ok pre{margin:10px 0 0;font-family:var(--mono);font-size:.82rem;overflow-x:auto;color:var(--seal-ink)}
.notice.err{background:color-mix(in srgb,#c0392b 22%,var(--surface));border:1px solid #c0392b}
footer{border-top:1px solid var(--rule);padding:20px var(--edge);display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;font-family:var(--mono)}
