
:root{
  --bg:#f6f8fb;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#475569;
  --border:#e2e8f0;
  --primary:#2563eb;
  --primary-2:#1d4ed8;
  --danger:#dc2626;
  --ok:#16a34a;
  --warn:#d97706;
  --shadow: 0 10px 25px rgba(15,23,42,.08);
  --radius: 16px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#ffffff 0%, var(--bg) 25%, var(--bg) 100%);
}
a{color:var(--primary); text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1200px; margin:0 auto; padding:0 18px}
.header{
  position:sticky; top:0; z-index:20;
  background:rgba(255,255,255,.85);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:12px}
.brand{display:flex; align-items:center; gap:10px; min-width:210px}
.logo{
  width:34px;height:34px;border-radius:10px;
  background:linear-gradient(135deg,var(--primary), #60a5fa);
  box-shadow:0 8px 18px rgba(37,99,235,.25);
}
.brand .title{font-weight:800; letter-spacing:.2px}
.nav{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.nav a{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 12px; border-radius:12px;
  color:var(--text);
  border:1px solid transparent;
}
.nav a.active{background:#eff6ff; border-color:#bfdbfe; color:var(--primary-2)}
.nav a:hover{background:#f1f5f9; border-color:var(--border); text-decoration:none}
.userbox{display:flex; align-items:center; gap:10px; justify-content:flex-end; min-width:230px}
.pill{
  padding:8px 12px; border:1px solid var(--border); background:var(--card);
  border-radius:999px; color:var(--muted); font-size:13px;
}
.btn{
  appearance:none; border:1px solid var(--border); background:var(--card);
  padding:10px 14px; border-radius:12px; cursor:pointer;
  box-shadow: 0 1px 0 rgba(15,23,42,.02);
}
.btn.primary{background:var(--primary); border-color:var(--primary); color:#fff}
.btn.primary:hover{background:var(--primary-2)}
.btn.danger{background:var(--danger); border-color:var(--danger); color:#fff}
.btn.small{padding:7px 10px; border-radius:10px; font-size:13px}
.btn:disabled{opacity:.6; cursor:not-allowed}
.main{padding:22px 0 40px}
.card{
  background:var(--card); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow);
  padding:18px;
}
.h1{font-size:26px; margin:0 0 6px}
.h2{font-size:18px; margin:0 0 10px}
.muted{color:var(--muted)}
.grid{display:grid; gap:14px}
.grid-2{grid-template-columns: 1fr 1fr}
.grid-3{grid-template-columns: 1fr 1fr 1fr}
@media (max-width: 980px){.grid-2,.grid-3{grid-template-columns:1fr}}
.table{width:100%; border-collapse:collapse}
.table th,.table td{padding:10px 10px; border-bottom:1px solid var(--border); vertical-align:top; text-align:left}
.table th{font-size:13px; color:var(--muted); font-weight:700}
.badge{display:inline-flex; padding:5px 10px; border-radius:999px; border:1px solid var(--border); background:#f8fafc; font-size:12px; color:var(--muted)}
.badge.ok{background:#ecfdf5; border-color:#bbf7d0; color:#166534}
.badge.warn{background:#fffbeb; border-color:#fde68a; color:#92400e}
.badge.danger{background:#fef2f2; border-color:#fecaca; color:#991b1b}
.form-row{display:grid; gap:10px}
label{font-size:13px; color:var(--muted); font-weight:700}
input[type=text], input[type=email], input[type=password], input[type=number], textarea, select{
  width:100%; padding:10px 12px; border-radius:12px;
  border:1px solid var(--border); background:#fff;
  outline:none;
}
textarea{min-height:120px; resize:vertical}
.hr{height:1px; background:var(--border); margin:14px 0}
.alert{padding:12px 14px; border-radius:14px; border:1px solid var(--border); background:#f8fafc}
.alert.ok{background:#ecfdf5; border-color:#bbf7d0}
.alert.danger{background:#fef2f2; border-color:#fecaca}
.alert.warn{background:#fffbeb; border-color:#fde68a}
.footer{padding:18px 0 26px; color:var(--muted); border-top:1px solid var(--border)}
.kbd{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace; font-size:12px; background:#0f172a; color:#fff; padding:2px 6px; border-radius:6px}
.right{text-align:right}
.flex{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
