:root {
  --brand:#1F3A5F; --accent:#19B7B3; --highlight:#3ED4CF;
  --bg:#F7F9FB; --card:#FFFFFF; --border:#E6ECF1;
  --text:#1B263B; --muted:#6B7C93; --ok:#22C55E; --warn:#F59E0B; --err:#EF4444;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#0F172A; --card:#111827; --border:#374151; --text:#E5E7EB; --muted:#9CA3AF; }
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;background:var(--bg);color:var(--text)}
.container{width:min(1120px,94%);margin:0 auto}
.topbar{background:var(--brand);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}
.brand img{height:40px;width:auto;border-radius:6px;display:block}
.menu{display:flex;gap:14px;flex-wrap:wrap}
.menu a{color:#dbe8ff;text-decoration:none;font-weight:600}
.menu a:hover{color:var(--highlight)}
.userbox{font-size:.92rem;color:#dbe8ff}.userbox a{color:#fff}
.page{padding:22px 0}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
h1{margin:0 0 14px} h2{margin:0 0 8px;font-size:1.1rem} p{margin:0 0 8px;color:var(--muted)}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left}
.input,.btn,select{border-radius:10px;border:1px solid var(--border);padding:10px 12px;font:inherit}
.input,select{width:100%;background:var(--card);color:var(--text)}
.btn{cursor:pointer;background:var(--accent);color:#042b2a;font-weight:700;text-decoration:none;display:inline-block}
.btn:hover{background:var(--highlight)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.btn-ghost:hover{background:rgba(255,255,255,.06)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.alert{padding:10px 12px;border-radius:10px;margin:0 0 12px}
.alert.ok{background:rgba(34,197,94,.12);color:var(--ok)}
.alert.err{background:rgba(239,68,68,.12);color:var(--err)}
.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:20px}
.login-card{width:min(460px,96%);background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px}
.logo-center{height:62px;border-radius:8px;display:block;margin:0 auto 14px}

.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:18px;z-index:1000}
.modal[hidden]{display:none}
.modal-card{width:min(760px,96vw);background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}
.js-edit-row{cursor:pointer}
.js-edit-row:hover{background:rgba(25,183,179,.08)}
