:root{color-scheme:light;--ink:#202126;--muted:#666a72;--line:#e5e5e8;--paper:#fff;--ground:#f5f5f2;--yellow:#f8d848;--green:#207453;--red:#a83535;font-family:Inter,"Segoe UI",sans-serif;color:var(--ink);background:var(--ground);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ad7900;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,4vw,48px);line-height:1.04;letter-spacing:-.055em;margin-bottom:12px}h2{font-size:25px;letter-spacing:-.04em;margin-bottom:16px}h3{font-size:16px;margin-bottom:12px}p{line-height:1.55}.muted{color:var(--muted)}.small{font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;min-height:42px;border:1px solid transparent;border-radius:9px;background:var(--yellow);color:var(--ink);font-weight:700;text-decoration:none;white-space:normal;text-align:center}.btn:hover{filter:brightness(.96)}.secondary{background:#fff;border-color:var(--line)}.quiet{background:transparent;border-color:var(--line);font-weight:600}.danger{color:var(--red)}.dark-btn{color:#f5f5f5;border-color:#3c3d42}.selected{background:#fff3b3;border-color:#b9920f}.row,.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:900;letter-spacing:.09em}.brand-icon{display:block;width:48px;height:auto;flex:none}.layout{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:#1b1c20;color:#fff;padding:27px 17px 20px;display:flex;flex-direction:column;gap:32px;position:sticky;top:0;height:100vh}.sidebar .brand{padding-left:7px}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:10px;text-align:left;background:none;border:0;color:#c5c5cc;padding:12px;border-radius:8px;font-size:14px}.nav button[aria-current=page]{color:#201f23;background:var(--yellow);font-weight:800}.nav button:hover:not([aria-current]){background:#303138}.nav-icon{font-size:17px;width:21px;text-align:center}.side-foot{margin-top:auto;border-top:1px solid #34353b;padding:16px 7px 0;display:grid;gap:9px}.side-foot small{color:#b1b1bc}.main{max-width:1440px;width:100%;margin:0 auto;padding:32px clamp(16px,4vw,56px) 58px;min-width:0}.crumb{font-size:13px;color:var(--muted);margin-bottom:20px}.hero{position:relative;isolation:isolate;overflow:hidden;background:#1b1c20;color:#fff;border-radius:16px;padding:32px;margin-bottom:22px;min-height:176px;display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap}.hero:before,.login-art:before{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none}.hero:before{background:linear-gradient(90deg,#1b1c20 22%,#1b1c20e0 52%,#1b1c2020 88%),url('/moscow-city.webp') right 50% / min(76%,640px) auto no-repeat}.hero p,.login-art p{color:#c8c8cf;margin-bottom:0}.hero .small{color:var(--yellow);font-weight:700;letter-spacing:.06em;margin-bottom:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.stat,.panel{background:var(--paper);border:1px solid var(--line);border-radius:13px}.stat{padding:16px 18px;display:grid;gap:8px}.stat strong{font-size:28px;letter-spacing:-.05em}.stat small{color:var(--muted)}.panel{padding:19px 22px;margin:0 0 14px}.panel>p:last-child,.empty p{margin-bottom:0}.table-panel{padding:0;overflow:hidden}.table-panel>header{padding:17px 20px;border-bottom:1px solid var(--line)}.table-panel h2{margin:0}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:640px}th,td{padding:13px 16px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}th{color:#62646e;font-size:12px;background:#fafaf8}tr:last-child td{border:0}td small{display:block;margin-top:4px;color:var(--muted)}.pill{font-size:12px;display:inline-flex;align-items:center;border-radius:20px;padding:5px 9px;background:#efeff1;color:#4e5159;white-space:nowrap}.pill.active,.pill.oral{background:#fff1ad;color:#58460b}.pill.expired{background:#ffe5de;color:#8a2825}.pill.complete,.pill.submitted{background:#e0f3e9;color:#1c684d}.countdown{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.03em}.empty{text-align:center;padding:38px 20px}.empty-icon{display:inline-grid;place-items:center;width:48px;height:48px;background:#fff4bd;border-radius:12px;font-size:23px;margin-bottom:10px}.field{display:grid;gap:6px;font-size:14px;font-weight:650;margin-bottom:12px}.field input,.field textarea,.field select,.control{width:100%;border:1px solid #d9dae0;border-radius:8px;background:#fff;color:var(--ink);padding:10px 11px;font-weight:400;min-width:0}.field textarea{min-height:78px;resize:vertical}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.subhead{margin:24px 0 12px}.question{position:relative}.question h3{line-height:1.5;white-space:pre-wrap}.question img,.exam-image{max-width:100%;max-height:350px;display:block;object-fit:contain;margin:9px 0 14px;border:1px solid var(--line);border-radius:8px}.option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;padding:12px 13px;margin:7px 0;cursor:pointer}.option:has(input:checked){background:#fff7d2;border-color:#d1a914}.option input{accent-color:#7b5d00}.answer{white-space:pre-wrap;background:#f5f5f5;border-radius:8px;padding:11px 13px;overflow-wrap:anywhere}.hint{background:#fff8d9;padding:10px 12px;border-radius:8px;white-space:pre-wrap}.login{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr;background:#fff}.login-art{position:relative;isolation:isolate;overflow:hidden;background:#1c1d21;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(25px,7vw,90px);min-height:410px}.login-art:before{background:linear-gradient(90deg,#1c1d21e8 0%,#1c1d218a 47%,#1c1d2119 100%),linear-gradient(0deg,#1c1d21b0 0%,transparent 50%),url('/moscow-city.webp') right 62% / cover no-repeat}.login-art .brand-icon{width:62px}.login-art h1{font-size:clamp(39px,6vw,80px);max-width:600px}.login-content{width:min(100%,480px);margin:auto;padding:34px}.login-content .btn{width:100%;margin-bottom:10px}.login-content .field{margin-bottom:17px}.login-content h2{font-size:33px;margin-bottom:7px}.pin{position:sticky;top:0;z-index:2;background:#f5f5f2f2;border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:15px}.tabs{display:flex;gap:5px;flex-wrap:wrap;margin:18px 0}.tabs .btn{border-radius:20px}.log{padding:0;list-style:none}.log li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:15px;flex-wrap:wrap}.log time{font-size:13px;color:var(--muted)}#notices{position:fixed;z-index:10;bottom:20px;right:20px;max-width:min(90vw,450px);background:#26272c;color:white;padding:13px 17px;border-radius:9px;box-shadow:0 7px 20px #0002}#notices:empty{display:none}dialog{padding:20px;border-radius:13px;border:1px solid var(--line);max-width:min(94vw,650px);width:100%;box-shadow:0 12px 60px #0004}dialog::backdrop{background:#171820a0}.credentials{font:inherit;font-weight:700;overflow-wrap:anywhere}.error{color:var(--red);min-height:1em}.good{color:var(--green)}.image-input{max-width:100%}.question .topline{margin-bottom:10px}.choice-edit{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:8px}.choice-edit input[type=radio]{accent-color:#8c6800}.progress{height:6px;width:100%;accent-color:#ad7900;margin-top:8px}
@media(max-width:850px){.layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:13px 16px;gap:10px}.sidebar .brand{padding-left:0}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap;padding:8px 10px}.side-foot{display:flex;align-items:center;justify-content:space-between;padding:7px 0 0}.main{padding-top:20px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.login{grid-template-columns:1fr}.login-art{min-height:285px;gap:30px}.login-content{margin:0 auto}.hero{padding:23px}}@media(max-width:550px){.grid,.grid3{grid-template-columns:1fr;gap:0}.panel{padding:15px}.table-panel{padding:0}.stat{padding:12px}.sidebar .nav-icon{display:none}.brand{font-size:19px}}

/* Graphite surfaces keep the skyline visible behind the working area. */
:root {
  color-scheme: dark;
  --ink: #f3f1ed;
  --muted: #b4b5bf;
  --line: #41434e;
  --paper: #23252dee;
  --ground: #17191f;
  --green: #8fdbb8;
  --red: #ff9b94;
}
body {
  background: linear-gradient(90deg, #17191f 16%, #17191fe0 58%, #17191f85), url('/moscow-city.webp') right bottom / auto 100vh no-repeat fixed, var(--ground);
}
.layout, .login { background: transparent; }
.sidebar { background: #191a20f5; }
.login-content {
  margin: auto;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  width: min(calc(100% - 32px), 440px);
}
.login-art { background: #16181f; }
.login-art:before { opacity: .8; }
.btn { color: #1b1c20; }
.btn.secondary, .btn.quiet { color: var(--ink); }
.btn.secondary { background: #30323b; }
.btn.selected { background: #65551e; border-color: #bea23c; color: #fff5bf; }
.btn.danger { color: var(--red); }
.stat, .panel, .option, dialog { background: var(--paper); color: var(--ink); }
dialog { background: #23252d; }
th { background: #292b34; color: var(--muted); }
.field input, .field textarea, .field select, .control { background: #191b22; border-color: var(--line); color: var(--ink); }
.field input::placeholder, .field textarea::placeholder { color: #a2a4af; }
.pin { background: #191b22f5; }
.answer { background: #181a20; }
.hint, .option:has(input:checked) { background: #393119; color: #fff2bd; }
.empty-icon { background: #493c19; color: #ffe282; }
.pill { background: #3a3d47; color: #e7e8ef; }
.pill.active, .pill.oral { background: #54461d; color: #ffe48a; }
.pill.expired { background: #532e30; color: #ffc4bf; }
.pill.complete, .pill.submitted { background: #244738; color: #b3ebce; }
@media (max-width: 850px) {
  body { background-size: auto, auto 75vh; }
  .login-content { margin: 16px auto 28px; }
}
