:root{--bg:#eef1f4;--surface:#fff;--ink:#1b2430;--muted:#5d6b7a;--line:#cbd3dc;--accent:#0f6e6e;--accent-ink:#fff;--danger:#b3261e}
@media (prefers-color-scheme:dark){:root{--bg:#12181f;--surface:#1b242e;--ink:#e6ebf0;--muted:#97a4b2;--line:#33414f;--accent:#4cc2b8;--accent-ink:#0b1a19;--danger:#ff8a80}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Avenir Next","Segoe UI",system-ui,sans-serif}
header{display:flex;align-items:center;gap:12px;padding:16px clamp(16px,4vw,40px);border-bottom:1px solid var(--line);background:var(--surface)}
header h1{font-size:1.15rem;margin:0;flex:1}
main{max-width:1000px;margin:0 auto;padding:28px clamp(16px,4vw,40px)}
h2{font-size:1.3rem;margin:32px 0 12px}
button,.btn{font:inherit;padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{border-color:var(--accent)}
button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button.danger{color:var(--danger)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
input,select,textarea{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
label{display:block;font-weight:600;margin-bottom:12px}
label small{font-weight:400;color:var(--muted)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.tile{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:inherit;text-decoration:none}
.tile:hover{border-color:var(--accent)}
.tile b{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:1.3rem}
.tile span{display:block;font-weight:700}.tile small{color:var(--muted)}
.empty{color:var(--muted);padding:24px 0}
table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line)}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.chk{display:inline-flex;gap:6px;align-items:center;font-weight:400;margin:0 14px 4px 0}.chk input{width:auto}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:640px){.row{grid-template-columns:1fr}.scroll{overflow-x:auto}}
.err{color:var(--danger);min-height:1.5em}
.login{max-width:360px;margin:12vh auto}
.tile img{flex:none;width:44px;height:44px;object-fit:cover;border-radius:8px}
