/* Сенім Тексеру — портал госуслуг по духу: спокойный синий, карточки услуг, формы-мастера. */
:root{
  --bg:#F2F5FA; --surface:#FFFFFF; --surface-2:#E8EEF7; --line:#D3DCE9;
  --ink:#14233A; --muted:#5A6B84;
  --primary:#1C4F8F; --primary-ink:#FFFFFF; --sky:#1E9BC4;
  --ok:#1E8A5A; --ok-bg:#E2F3EA; --warn:#B06A00; --warn-bg:#FCF0DA; --bad:#B4322E; --bad-bg:#FBE4E2;
  --stub:#9A6A00; --stub-bg:#FFF7DD; --stub-line:#E2B33C;
  --font-ui:"Golos Text","Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"JetBrains Mono",Consolas,"Courier New",monospace;
  --r:10px;
}
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --bg:#0E1622; --surface:#16212F; --surface-2:#1D2B3D; --line:#2B3B50;
    --ink:#E6ECF4; --muted:#95A5BB;
    --primary:#5C93D6; --primary-ink:#0B1420; --sky:#4FC0E3;
    --ok:#5CC98F; --ok-bg:#163327; --warn:#E5A445; --warn-bg:#3A2A10; --bad:#EE7B74; --bad-bg:#3D1C1B;
    --stub:#F0C35A; --stub-bg:#2E2610; --stub-line:#8C6A1C;
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--font-ui);min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{line-height:1.2;text-wrap:balance;margin:0}
h1{font-size:clamp(24px,3.6vw,34px);font-weight:700}
h2{font-size:20px;font-weight:600}
h3{font-size:16px;font-weight:600}
p{margin:0}
a{color:var(--primary)}
.wrap{width:100%;max-width:1140px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.muted{color:var(--muted)}
.small{font-size:13px}
.label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.stack{display:grid;gap:16px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.between{justify-content:space-between}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px}

/* test banner */
.testbar{background:var(--stub-bg);color:var(--stub);border-bottom:1px solid var(--stub-line);font-size:13px}
.testbar .wrap{padding-block:6px;display:flex;gap:6px 16px;flex-wrap:wrap}

/* header */
header.top{background:var(--surface);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:20px;padding-block:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--ink);text-decoration:none}
.mark{width:34px;height:34px;border-radius:8px;background:var(--primary);display:grid;place-items:center;flex:none}
.mark svg{width:20px;height:20px}
.brand small{display:block;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.02em}
.top nav{display:flex;gap:4px 18px;flex-wrap:wrap;font-size:14px}
.top nav a{color:var(--ink);text-decoration:none;padding-block:4px;border-bottom:2px solid transparent}
.top nav a:hover,.top nav a[aria-current="page"]{color:var(--primary);border-color:var(--primary)}
.top .right{margin-left:auto;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.lang{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;font-size:12px;font-weight:600}
.lang span{padding:4px 8px}.lang span.on{background:var(--surface-2)}
.lang span.off{color:var(--muted);text-decoration:line-through dotted}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:10px 18px;border:1px solid var(--primary);background:var(--primary);color:var(--primary-ink);font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2}
.btn.ghost{background:transparent;color:var(--primary)}
.btn.danger{background:transparent;color:var(--bad);border-color:var(--bad)}
.btn.sm{padding:6px 12px;font-size:14px}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.linkbtn{background:none;border:0;color:var(--primary);cursor:pointer;padding:0;font-weight:600;text-decoration:underline}
form.inline{display:inline}

main{flex:1;padding-block:28px 56px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;min-width:0}
.crumbs{font-size:13px;color:var(--muted)}
.crumbs a{text-decoration:none}

/* flash */
.flash{padding:12px 14px;border-radius:8px;font-size:14px;margin-bottom:16px}
.flash.ok{background:var(--ok-bg);color:var(--ok)}
.flash.bad{background:var(--bad-bg);color:var(--bad)}

/* stub (заготовка) */
.stub{border:2px dashed var(--stub-line);background:var(--stub-bg);border-radius:var(--r);padding:14px 16px;display:grid;gap:6px;color:var(--ink)}
.stub .stub-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.stub .stub-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--stub);border:1px solid var(--stub-line);border-radius:999px;padding:1px 8px}
.stub p{font-size:13px;color:var(--muted)}
.stub .stub-body{display:grid;gap:10px;opacity:.75}
.badge-stub{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--stub);background:var(--stub-bg);border:1px dashed var(--stub-line);border-radius:999px;padding:1px 8px;vertical-align:middle}
.badge-key{display:inline-block;font-size:11px;font-weight:700;color:var(--sky);border:1px dashed var(--sky);border-radius:999px;padding:1px 8px;vertical-align:middle}

/* landing */
.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center}
.hero p.lead{font-size:17px;color:var(--muted);max-width:58ch;margin-top:12px}
.hero-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:12px}
.flow{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:s}
.flow li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;counter-increment:s}
.flow li::before{content:counter(s);width:28px;height:28px;border-radius:50%;background:var(--surface-2);color:var(--primary);display:grid;place-items:center;font-weight:700;font-size:13px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.svc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;display:grid;gap:8px;grid-template-rows:auto 1fr auto}
.svc .src{font-size:12px;color:var(--muted)}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--primary);justify-self:start}
.tag.cand{background:var(--warn-bg);color:var(--warn)}
.prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.price{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:6px;align-content:start}
.price.best{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}
.price .num{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.note{font-size:13px;color:var(--muted);border-left:3px solid var(--line);padding-left:12px;max-width:80ch}

/* kpi */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:4px;align-content:start}
.kpi .v{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.meter{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--primary)}
.two{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px;align-items:start}
.half{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}

/* forms */
form.f{display:grid;gap:14px}
.fld{display:grid;gap:6px;min-width:0}
.fld label,.fld .flabel{font-size:13px;font-weight:600}
.fld input,.fld select,.fld textarea{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);width:100%}
.fld input[readonly]{background:var(--surface-2)}
.fld .hint{font-size:12px;color:var(--muted)}
.fld .err{font-size:12px;color:var(--bad)}
.req::after{content:" *";color:var(--bad)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.chk input{margin-top:3px;width:18px;height:18px;flex:none}
fieldset{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0;display:grid;gap:8px}
legend{font-size:13px;font-weight:600;padding:0 4px}

/* tables */
.tbl{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
td.nw{white-space:nowrap}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.p-ok{background:var(--ok-bg);color:var(--ok)}
.p-warn{background:var(--warn-bg);color:var(--warn)}
.p-bad{background:var(--bad-bg);color:var(--bad)}
.p-wait{background:var(--surface-2);color:var(--muted)}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filters a{font-size:13px;text-decoration:none;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--ink)}
.filters a[aria-current="true"]{border-color:var(--primary);color:var(--primary);font-weight:600}
.filters input{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);min-width:0;flex:1 1 180px}

/* wizard */
.wizard{max-width:760px;width:100%;margin:0 auto;display:grid;gap:20px}
.steps{display:flex;gap:8px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.steps li{flex:1 1 140px;font-size:13px;padding-top:8px;border-top:3px solid var(--line);color:var(--muted)}
.steps li.on{border-color:var(--primary);color:var(--ink);font-weight:600}
.steps li.done{border-color:var(--ok);color:var(--ok)}
.consent{background:var(--surface-2);border-radius:8px;padding:14px;font-size:14px;white-space:pre-line;max-height:240px;overflow:auto}
.signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.doc{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px dashed var(--line);border-radius:8px;padding:12px;flex-wrap:wrap}
.doc input[type=file]{max-width:100%;font-size:13px}

/* report */
.verdict{display:flex;gap:6px 14px;align-items:center;padding:16px;border-radius:var(--r);flex-wrap:wrap}
.verdict b{font-size:18px}
.v-ok{background:var(--ok-bg);color:var(--ok)}.v-warn{background:var(--warn-bg);color:var(--warn)}
.v-wait{background:var(--surface-2);color:var(--ink)}.v-bad{background:var(--bad-bg);color:var(--bad)}
.check{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--line)}
.check:last-child{border-bottom:0}
.check .src{font-size:12px;color:var(--muted);grid-column:1}
.check .det{grid-column:1/-1;font-size:14px;background:var(--surface-2);border-radius:8px;padding:10px 12px;display:grid;gap:8px}
.check .det form{display:grid;gap:8px}
.kv{display:grid;grid-template-columns:200px minmax(0,1fr);gap:6px 16px;font-size:14px}
.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}

/* admin */
.bars{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:8px}
.bars div{flex:1;display:grid;gap:4px;justify-items:center;align-content:end;height:100%;min-width:0}
.bars i{display:block;width:100%;background:var(--primary);border-radius:4px 4px 0 0;min-height:2px}
.bars span{font-size:11px;color:var(--muted)}
.bars em{font-style:normal;font-size:11px;font-variant-numeric:tabular-nums}
.nodes{display:grid;gap:10px}
.node{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.secret{font-family:var(--font-mono);background:var(--surface-2);padding:10px 12px;border-radius:8px;overflow-wrap:anywhere}
pre.msg{white-space:pre-wrap;font:13px/1.5 var(--font-mono);background:var(--surface-2);padding:10px;border-radius:8px;margin:0;max-height:220px;overflow:auto}

footer{border-top:1px solid var(--line);background:var(--surface)}
footer .wrap{padding-block:22px;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:13px;color:var(--muted);justify-content:space-between}

@media (max-width:900px){.hero,.two,.half{grid-template-columns:1fr}}
@media (max-width:600px){.grid2{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.top nav{width:100%;order:3}}

@media print{
  .testbar,header.top,footer,.noprint{display:none!important}
  body{background:#fff;color:#000}
  .panel{border:0;padding:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
