:root{--bg:#f6f3ee;--surface:#fff;--sidebar:#26251f;--sidebar-ink:#d9d4c7;--sidebar-ink-dim:#8b8676;--ink:#201f1c;--ink-soft:#6b6656;--line:#e3ded1;--accent:#b06a4c;--accent-ink:#fff;--success:#4f7a58;--success-soft:#e3ecdf;--muted-bg:#e7e2d5;--muted-ink:#6b6656;--danger:#a8432f;--font:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);color:var(--ink);background:var(--bg);margin:0;font-size:.9375rem;line-height:1.5}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{min-height:100vh;display:flex}.admin-nav-toggle{opacity:0;pointer-events:none;position:absolute}.topbar{background:var(--sidebar);color:var(--sidebar-ink);justify-content:space-between;align-items:center;padding:.75em 1em;display:none}.topbar__brand{margin:0;font-size:1em;font-weight:700}.topbar__toggle{width:2.75em;height:2.75em;color:var(--sidebar-ink);cursor:pointer;border-radius:.4em;justify-content:center;align-items:center;font-size:1.1em;display:flex}.topbar__toggle:hover{background:#ffffff14}.sidebar{background:var(--sidebar);width:12.5rem;color:var(--sidebar-ink);flex-direction:column;flex-shrink:0;padding:1.25rem .9rem;display:flex}.sidebar__brand{border-bottom:1px solid #ffffff1a;margin-bottom:.5rem;padding:0 .5rem 1rem;font-size:.95rem;font-weight:700}.sidebar nav{gap:2px;display:grid}.sidebar a{color:var(--sidebar-ink-dim);border-radius:6px;padding:.55rem .6rem;font-size:.875rem;text-decoration:none;display:block}.sidebar a.active{color:#fff;box-shadow:inset 2px 0 0 var(--accent);background:#ffffff14}.sidebar a:hover{color:#fff}.sidebar__user{border-top:1px solid #ffffff1a;margin-top:auto;padding-top:1rem}.sidebar__user-email{color:var(--sidebar-ink);word-break:break-all;margin:0 0 .1rem;font-size:.8rem}.sidebar__user-role{color:var(--sidebar-ink-dim);margin:0 0 .6rem;font-size:.75rem}.sidebar__user .btn{width:100%;color:var(--sidebar-ink);background:0 0;border-color:#fff3;padding:.4rem .6rem;font-size:.8rem}.sidebar__user .btn:hover{color:#fff;background:#ffffff14}.main{flex:1;min-width:0;padding:1.75rem 2rem 4rem}.main-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.main-head h1{margin:0;font-size:1.35rem}.main-head .sub{color:var(--ink-soft);margin-top:.2rem;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:.65em;overflow:hidden}.card:has(table){overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875em}th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);white-space:nowrap;background:#faf8f4;padding:.65em 1em;font-size:.7em;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:.75em 1em}tr:last-child td{border-bottom:none}td.num{font-variant-numeric:tabular-nums;color:var(--ink-soft)}tr:hover td{background:#faf8f4}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:.4rem;padding:.5rem .9rem;font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:#9a5940}.btn--ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn--ghost:hover{background:var(--muted-bg)}.btn--danger{color:var(--danger)}.pill{cursor:pointer;border:none;border-radius:20px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-family:inherit;font-size:.72rem;font-weight:600;display:inline-flex}.pill:before{content:"";border-radius:50%;width:6px;height:6px}.pill.on{background:var(--success-soft);color:var(--success)}.pill.on:before{background:var(--success)}.pill.off{background:var(--muted-bg);color:var(--muted-ink)}.pill.off:before{background:var(--muted-ink)}.pill:hover{filter:brightness(.96)}.form{gap:1.1rem;max-width:560px;display:grid}.field label{color:var(--ink-soft);margin-bottom:.3rem;font-size:.8rem;font-weight:600;display:block}.field input[type=text],.field input[type=number],.field input[type=email],.field input[type=password],.field select,.field textarea{width:100%;font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:6px;padding:.55rem .7rem;font-size:.875rem}.field textarea{resize:vertical;min-height:5rem}.field-check{color:var(--ink);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.field-check input{width:16px;height:16px}.field .hint{color:var(--ink-soft);margin-top:.3rem;font-size:.75rem}.form-actions{gap:.6rem;display:flex}.empty{text-align:center;color:var(--ink-soft);padding:3rem 1rem;font-size:.9rem}.flash{background:var(--success-soft);color:var(--success);border-radius:8px;margin-bottom:1.25rem;padding:.7rem 1rem;font-size:.85rem;font-weight:600}.notice{border-left:3px solid var(--accent);color:var(--ink-soft);background:#fbf3e9;border-radius:4px;margin-bottom:1.5rem;padding:.9rem 1.1rem;font-size:.85rem}@media (width<=48em){.shell{flex-direction:column}.topbar{display:flex}.sidebar{width:auto;padding:1em;display:none}.shell:has(.admin-nav-toggle:checked) .sidebar{display:flex}.sidebar .sidebar__brand{display:none}.main{padding:1.25em 1em 3em}}
