:root{--bg:#f3f0ea;--bg-deep:#e7e1d6;--ink:#1c1915;--muted:#5c564c;--line:#cfc6b6;--accent:#0f6b5c;--accent-ink:#f7faf9;--danger:#9b2c2c;--ok:#1f7a3f;--warn:#8a5a00;--panel:#fffcf7e0;--shadow:0 18px 50px #1c191514;--radius:14px;color:var(--ink);background:var(--bg);font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(1200px 600px at 10% -10%, #d9efe9 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #f0e2c8 0%, transparent 50%), linear-gradient(180deg, var(--bg), var(--bg-deep));margin:0}h1,h2,h3,.brand{letter-spacing:.01em;font-family:Instrument Serif,Georgia,serif;font-weight:400}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffcf78c;flex-direction:column;gap:1.5rem;padding:1.5rem 1.25rem;display:flex}.brand{font-size:2rem;line-height:1}.brand span{color:var(--accent)}.nav{flex-direction:column;gap:.35rem;display:flex}.nav a{color:var(--muted);border-radius:10px;padding:.65rem .8rem}.nav a.active,.nav a:hover{color:var(--ink);background:#0f6b5c1a}.main{padding:2rem clamp(1rem,3vw,2.5rem)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.page-head{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.25rem;display:flex}.page-head h1{margin:0;font-size:2.4rem}.page-head p{color:var(--muted);margin:.35rem 0 0}.grid{gap:1rem;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem .5rem}th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.8rem;font-weight:600}.btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:10px;padding:.65rem 1rem}.btn:hover{filter:brightness(1.05)}.btn.secondary{color:var(--ink);border:1px solid var(--line);background:0 0}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.form{gap:.85rem;display:grid}.form label{gap:.35rem;font-size:.92rem;display:grid}.form input,.form select,.form textarea{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.65rem .75rem}.row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--ok)}.badge{border:1px solid var(--line);border-radius:999px;padding:.15rem .5rem;font-size:.8rem;display:inline-block}.badge.on{color:var(--ok);background:#1f7a3f1f}.badge.off{color:var(--danger);background:#9b2c2c1a}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{width:min(420px,100%)}.login-card h1{margin:0 0 .25rem;font-size:3rem}.login-card .lede{color:var(--muted);margin:0 0 1.25rem}.webmail-link{margin:1rem 0 0}.webmail-link a{color:var(--accent);text-decoration:underline}.stack{flex-direction:column;gap:.75rem;display:flex}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.nav{flex-flow:wrap}}
