:root{--bg:#f3f4f6;--panel:#fff;--ink:#1c2128;--mut:#5f6b78;--line:#dfe3e8;--nav:#1f2933;--navink:#cdd5dd;--navact:#fff;--acc:#0b7285;--acc-ink:#fff;--acc-soft:#e0f2f5;--good:#2b8a3e;--good-soft:#e3f4e6;--warn:#b35c00;--warn-soft:#fdebd3;--bad:#c92a2a;--bad-soft:#fde8e8;--font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14181d;--panel:#1c2229;--ink:#e6e9ec;--mut:#9aa6b2;--line:#2f3943;--nav:#0f1317;--navink:#a9b4bf;--navact:#fff;--acc:#3bb3c8;--acc-ink:#06232a;--acc-soft:#16363d;--good:#6cc27d;--good-soft:#17321d;--warn:#f0a24b;--warn-soft:#3a2a12;--bad:#ff8787;--bad-soft:#3a1c1c;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--font)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}a{color:var(--acc)}.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}nav.side{background:var(--nav);color:var(--navink);padding:16px 0;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{padding:0 20px 16px;color:var(--navact);font-weight:600;font-size:16px;letter-spacing:.2px}.brand small{display:block;font-weight:400;color:var(--navink);font-size:12px}nav.side a,nav.side button{all:unset;box-sizing:border-box;cursor:pointer;padding:9px 20px;display:block;border-left:3px solid transparent;color:var(--navink)}nav.side a:hover,nav.side button:hover{background:#ffffff0f}nav.side a[aria-current=page]{color:var(--navact);border-left-color:var(--acc);background:#ffffff14}nav.side a:focus-visible,nav.side button:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}nav.side .spacer{flex:1}main{min-width:0;display:flex;flex-direction:column}header.top{background:var(--acc);color:var(--acc-ink);padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}header.top h1{margin:0;font-size:22px;font-weight:600}header.top .btn{color:var(--ink)}.content{padding:20px 24px 32px;display:flex;flex-direction:column;gap:16px;min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.tile{padding:16px;display:flex;flex-direction:column;gap:2px;text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--ink)}.tile b{font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}.tile span{color:var(--mut)}.bar{display:flex;gap:10px;padding:12px 14px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--line)}.bar input[type=search],.bar select{padding:7px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel);min-width:0}.bar .sp{flex:1}.btn{padding:7px 14px;border-radius:4px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}.btn:hover{border-color:var(--acc)}.btn.p{background:var(--acc);color:var(--acc-ink);border-color:var(--acc)}.btn.d{color:var(--bad)}.btn.d.solid{background:var(--bad);color:#fff;border-color:var(--bad)}.btn:disabled{opacity:.55;cursor:default}.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:640px}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);text-align:left;font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--acc-soft)}.num{font-variant-numeric:tabular-nums}.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;white-space:nowrap}.pill.y{background:var(--warn-soft);color:var(--warn)}.pill.n{background:var(--bg);color:var(--mut)}.pill.s{background:var(--good-soft);color:var(--good)}.pill.c{background:var(--acc-soft);color:var(--acc)}.thumb{width:44px;height:44px;border-radius:4px;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--acc-soft);color:var(--acc);text-align:center;line-height:1.1;overflow:hidden;flex:none}.thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.thumb.round{border-radius:50%}.mono{font-family:var(--mono);font-size:13px}.act{display:flex;gap:6px}.act .btn{padding:3px 8px;font-size:13px}.tabs{display:flex;gap:4px;padding:0 14px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{all:unset;cursor:pointer;padding:12px 14px;border-bottom:3px solid transparent;color:var(--mut);white-space:nowrap}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--acc)}.tabs button:focus-visible{outline:2px solid var(--acc)}.pad{padding:16px}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.form label,.field{display:flex;flex-direction:column;gap:4px;color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.form input,.form select,.form textarea{padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);text-transform:none;letter-spacing:0;font-size:14px;min-width:0}.form .full{grid-column:1/-1}.chips{display:flex;gap:8px;flex-wrap:wrap}.form .chips label,.chips label{flex-direction:row;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink)}.modal{position:fixed;inset:0;background:#00000080;display:grid;place-items:center;padding:16px;z-index:20}.modal .card{width:min(600px,100%);max-height:92vh;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.modal h2{margin:0;font-size:18px}.row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:6px;z-index:30;max-width:90vw}.toast.err{background:var(--bad);color:#fff}.hint{color:var(--mut);font-size:13px}.err{color:var(--bad)}.errbox{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad);border-radius:4px;padding:8px 10px}.empty{padding:28px 16px;text-align:center;color:var(--mut)}.layoutrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:4px}.layoutrow .name{min-width:90px}.imgpick{display:flex;gap:10px;align-items:center}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:min(380px,100%);padding:24px;display:flex;flex-direction:column;gap:16px}.login h1{margin:0;font-size:20px}.login img{max-width:200px;max-height:70px;object-fit:contain;align-self:center}.spin{padding:40px;text-align:center;color:var(--mut)}@media(max-width:760px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}nav.side{position:static;height:auto;flex-direction:row;overflow-x:auto;padding:8px;gap:0}.brand{display:none}nav.side a,nav.side button{white-space:nowrap;padding:8px 12px;border-left:0;border-bottom:3px solid transparent}nav.side a[aria-current=page]{border-bottom-color:var(--acc)}nav.side .spacer{display:none}.content,header.top{padding-left:16px;padding-right:16px}}@media(prefers-reduced-motion:no-preference){.toast{animation:in .2s}@keyframes in{0%{opacity:0;transform:translate(-50%,8px)}}}
