:root{
  --ink:#131A24; --ink-fixed:#131A24; --ink-2:#1C2733; --slate:#52647A; --slate-2:#6E7E92;
  --paper:#EEF1F4; --surface:#FFFFFF; --line:#DCE2E9; --line-soft:#E8ECF1;
  --brand:#1F4E79; --brand-soft:#E7EEF5;
  --signal:#C2641A; --signal-soft:#FBEFE2;
  --critical:#A23241; --critical-soft:#F6E7E9;
  --ok:#2C7A66; --ok-soft:#E3F0EC;
  --radius:14px; --radius-sm:9px;
  --shadow:0 1px 2px rgba(19,26,36,.04), 0 8px 24px -12px rgba(19,26,36,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:"Golos Text",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.6;font-size:16px;
  -webkit-font-smoothing:antialiased;
}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace}
.wrap{max-width:820px;margin:0 auto;padding:0 24px 80px}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}

/* top bar */
.topbar{position:sticky;top:0;z-index:5;background:rgba(238,241,244,.86);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.topbar .wrap{padding-top:14px;padding-bottom:14px;display:flex;align-items:center;gap:14px}
.back{font-size:14px;display:inline-flex;align-items:center;gap:7px;color:var(--slate)}
.back:hover{color:var(--brand);text-decoration:none}
.topbar .crumb{font-size:13px;color:var(--slate-2);font-family:"JetBrains Mono",monospace;margin-left:auto}

/* hero */
header.head{
  background:linear-gradient(180deg,var(--ink-fixed) 0%, #0E141C 100%);
  color:#E9EEF3;border-radius:20px;padding:38px 36px 32px;margin:32px 0 28px;position:relative;overflow:hidden;
}
header.head::after{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:32px 32px;-webkit-mask-image:radial-gradient(120% 100% at 85% 0%, #000, transparent 70%);mask-image:radial-gradient(120% 100% at 85% 0%, #000, transparent 70%);pointer-events:none;
}
.kicker{
  position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:#9DB4CC;border:1px solid rgba(157,180,204,.3);border-radius:100px;padding:5px 12px;margin-bottom:18px;
}
.kicker.b{color:#9DB4CC;border-color:rgba(157,180,204,.35)}
.kicker.s{color:#E3B98C;border-color:rgba(227,185,140,.4)}
.kicker.c{color:#E2A0AB;border-color:rgba(226,160,171,.4)}
header.head h1{
  position:relative;z-index:1;font-family:"Manrope",system-ui,sans-serif;font-weight:800;
  font-size:clamp(24px,4vw,36px);line-height:1.1;letter-spacing:-.02em;margin:0 0 12px;
}
header.head .full{position:relative;z-index:1;font-size:15px;color:#B9C7D6;margin:0;max-width:62ch}
.head-meta{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.head-meta .chip{font-family:"JetBrains Mono",monospace;font-size:12px;color:#CBD8E5;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:6px 11px}

/* status banner */
.status{
  display:flex;gap:12px;align-items:flex-start;border-radius:var(--radius-sm);padding:13px 16px;margin:0 0 24px;font-size:14px;
  background:var(--signal-soft);border:1px solid #EAD3B8;border-left:3px solid var(--signal);color:#5C3A14;
}
.status.ok{background:var(--ok-soft);border-color:#BFE0D5;border-left-color:var(--ok);color:#1E4F43}
.status.repl{background:var(--critical-soft);border-color:#E7C3C9;border-left-color:var(--critical);color:#6E2630}
.status b{font-weight:700}

/* sections */
section{margin:0 0 30px}
h2{font-family:"Manrope",system-ui,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.01em;margin:0 0 12px;color:var(--ink);display:flex;align-items:center;gap:10px}
h2 .n{font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:600;color:var(--brand);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:3px 8px}
p{margin:0 0 14px}
.muted{color:var(--slate)}
ul.clean{list-style:none;margin:10px 0;padding:0}
ul.clean li{position:relative;padding:9px 0 9px 26px;border-top:1px solid var(--line-soft);font-size:15px}
ul.clean li:first-child{border-top:none}
ul.clean li::before{content:"";position:absolute;left:4px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--brand)}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}

/* plain-language box */
.plain{display:flex;gap:13px;background:var(--ok-soft);border:1px solid #BFE0D5;border-left:3px solid var(--ok);border-radius:var(--radius-sm);padding:15px 18px;margin:16px 0;font-size:14.5px;color:#1E4F43}
.plain .ic{flex:0 0 auto;color:var(--ok);font-weight:700;font-family:"Manrope",sans-serif;font-size:18px;line-height:1.2}
.plain .lead{font-family:"Manrope",sans-serif;font-weight:700;display:block;margin-bottom:2px}

/* who-table */
table{border-collapse:collapse;width:100%;background:var(--surface);font-size:14.5px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}
thead th{background:var(--ink-fixed);color:#E9EEF3;font-family:"Manrope",sans-serif;font-weight:600;font-size:13px;text-align:left;padding:12px 16px}
tbody td{padding:12px 16px;border-top:1px solid var(--line-soft);vertical-align:top}

/* deadlines / fines */
.kv{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line-soft);font-size:14.5px}
.kv:first-child{border-top:none}
.kv .v{font-family:"JetBrains Mono",monospace;font-weight:600;color:var(--ink-2);white-space:nowrap;text-align:right}

/* source link */
.src{display:inline-flex;align-items:center;gap:8px;font-size:14px;background:var(--brand-soft);border:1px solid #CFDEEC;border-radius:9px;padding:10px 14px;color:#1A3A57}
.src b{color:var(--ink-2)}

footer{border-top:1px solid var(--line);margin-top:30px;padding-top:20px;font-size:12.5px;color:var(--slate-2);line-height:1.6}

/* related */
.related{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.related a{font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 12px;color:var(--brand)}
.related a:hover{background:var(--brand-soft);text-decoration:none}

@media(max-width:560px){
  header.head{padding:28px 22px 24px}
  header.head h1{font-size:24px}
  .wrap{padding-left:16px;padding-right:16px}
  .kv{flex-wrap:wrap;gap:4px 16px}
  .kv .v{text-align:left}
  table{font-size:13.5px}
  thead th,tbody td{padding:10px 12px}
}
@media(max-width:430px){
  .topbar .crumb{display:none}
}

/* ================= THEME TOGGLE + FOCUS ================= */
.theme-toggle{
  flex:0 0 auto;width:34px;height:34px;border-radius:9px;
  background:var(--surface);border:1px solid var(--line);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  font-size:16px;line-height:1;padding:0;
}
.theme-toggle:hover{border-color:var(--brand)}
a:focus-visible,button:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}

/* ================= DARK THEME ================= */
:root[data-theme="dark"]{
  --ink:#E7ECF2; --ink-2:#CDD6E1; --slate:#9FAEC0; --slate-2:#7E8EA2;
  --paper:#0E141B; --surface:#161E28; --line:#2A3540; --line-soft:#222C36;
  --brand:#5A93CC; --brand-soft:#1B2B3C;
  --signal:#D7843A; --signal-soft:#33271A;
  --critical:#D26B79; --critical-soft:#321A1F;
  --ok:#46A589; --ok-soft:#16302A;
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 10px 28px -14px rgba(0,0,0,.6);
}
:root[data-theme="dark"] .topbar{background:rgba(14,20,27,.88)}
:root[data-theme="dark"] header.head{border:1px solid #21313f}
:root[data-theme="dark"] .status{color:#E4D2B6;border-color:#4A3A22}
:root[data-theme="dark"] .status.ok{color:#C2E0D6;border-color:#1E3A33}
:root[data-theme="dark"] .status.repl{color:#E9B9C0;border-color:#43222a}
:root[data-theme="dark"] .plain{color:#C2E0D6;border-color:#1E3A33}
:root[data-theme="dark"] .src{color:#C7D8EC;border-color:#2A3B4D}

@media print{
  .topbar,.related{display:none}
  body{background:#fff;font-size:11pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .wrap{max-width:none;padding:0}
  header.head{background:#fff !important;color:#1a1a1a;border:1px solid #d5dbe2;box-shadow:none;border-radius:0;margin:0 0 18px;padding:18px 0}
  header.head::after{display:none}
  header.head h1,header.head .full,.kicker,.head-meta .chip{color:#1a1a1a !important;border-color:#d5dbe2 !important;background:#fff !important}
  .card,.plain,.status,.src,table{box-shadow:none !important}
  section{break-inside:avoid}
  h2{break-after:avoid}
  a{color:#1a1a1a;text-decoration:none}
  .src::after{content:" — " attr(href);font-size:9.5pt;color:#444;word-break:break-all}
  footer{break-inside:avoid}
}
