:root{
  --bg:#0b0f14; --card:#121821; --muted:#8aa0b6; --text:#e6eef7;
  --primary:#62a8ff; --accent:#71f6d1; --danger:#ff6b6b; --warn:#ffd166; --ok:#6bff9c;
  --border:#213145;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
a{color:var(--primary);text-decoration:none}
.container{max-width:1100px;margin:24px auto;padding:0 16px}
.header{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:10px 0 20px}
.nav{display:flex;gap:8px;flex-wrap:wrap}
.btn{padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg, #192233, #121821);color:var(--text);box-shadow:0 1px 0 #0003}
.btn:hover{transform:translateY(-1px);transition:.15s ease;filter:brightness(1.08)}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 6px 24px rgba(0,0,0,.35)}
h1,h2,h3{margin:4px 0 8px}
.table{width:100%;border-collapse:separate;border-spacing:0 8px}
.table th,.table td{padding:10px 12px;background:#0f1520;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.table th:first-child,.table td:first-child{border-left:1px solid var(--border);border-radius:12px 0 0 12px}
.table th:last-child,.table td:last-child{border-right:1px solid var(--border);border-radius:0 12px 12px 0}
.input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#0e1420;color:var(--text);outline:none}
.input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #62a8ff22}
.grid{display:grid;gap:14px}
.grid-2{grid-template-columns:1fr 1fr}
.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:#0f1520}
.badge.overdue{background:#2b1010;border-color:#5a2020;color:#ff9a9a}
.badge.today{background:#2b2810;border-color:#5a5120;color:#ffe08a}
.badge.upcoming{background:#10232b;border-color:#20455a;color:#a6e7ff}
.badge.none{background:#1b2230;border-color:#283348;color:#8aa0b6}
.kv{display:flex;gap:8px;align-items:center}
hr{border:0;border-top:1px solid var(--border);margin:12px 0}
.footer{margin:20px auto;opacity:.7;font-size:13px}
.small{font-size:12px;color:var(--muted)}
.alert{padding:10px 12px;border:1px dashed var(--border);background:#0f1520;border-radius:12px}
label{font-size:13px;color:var(--muted);margin-bottom:6px;display:block}
header .status{display:flex;gap:8px;align-items:center}
.status-dot{width:10px;height:10px;border-radius:50%}
.status.locked .status-dot{background:#a33}
.status.unlocked .status-dot{background:#3a6}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
.code{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size:12px}
