/* «Ампер» — PWA. Направление «Пульт» (D1): токены, палитра, обе темы.
   Светлая/тёмная через атрибут data-theme на <html>. Без внешних зависимостей. */
:root{
  --bg:#e9edf3;--panel:#ffffff;--panel-2:#f4f7fb;--fg:#0c1520;--muted:#5b6b80;
  --line:#d2dae4;--line-strong:#7d8899;--accent:#0b5cad;--accent-fg:#ffffff;
  --lcd-bg:#0d1620;--lcd-fg:#7dfab0;--lcd-dim:#5f8a72;--lcd-line:#1d2b38;
  --ok:#0f7b3f;--warn:#8a6100;--bad:#b3261e;
  --r:14px;--r-sm:10px;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
html[data-theme="dark"]{
  --bg:#080c11;--panel:#121a23;--panel-2:#0e151d;--fg:#e6edf5;--muted:#93a3b8;
  --line:#243040;--line-strong:#566a82;--accent:#4da3ff;--accent-fg:#04121f;
  --lcd-bg:#05090d;--lcd-fg:#8bffbe;--lcd-dim:#6f9c85;--lcd-line:#16222c;
  --ok:#3fb950;--warn:#d29922;--bad:#f85149;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%}
h1{font-size:1.35rem;margin:0 0 4px}
h2{font-size:.82rem;margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.sub{margin:0 0 14px;color:var(--muted);font-size:.92rem}
main{max-width:760px;margin:0 auto;padding:14px 12px 40px}
footer{max-width:760px;margin:0 auto;padding:0 12px 40px;color:var(--muted);font-size:.78rem}
footer code{font-family:var(--mono)}
/* Шапка-«пульт» */
.topbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:8px;font-size:1.05rem}
.brand b{font-weight:700}
.brand-sub{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.led{width:10px;height:10px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 3px color-mix(in srgb,var(--muted) 25%,transparent);flex:0 0 auto}
.led.ok{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}
.led.warn{background:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 25%,transparent)}
.led.bad{background:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 25%,transparent)}
.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:3px}
.tabs::-webkit-scrollbar{display:none}
.tabs a{border:0;background:transparent;color:var(--muted);font:inherit;font-size:.88rem;padding:8px 12px;border-radius:999px;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
.tabs a.active{background:var(--accent);color:var(--accent-fg)}
.ghost{border:1px solid var(--line);background:var(--panel);color:var(--fg);font:inherit;font-size:.85rem;padding:8px 12px;border-radius:999px;cursor:pointer;min-height:44px}/* F-17: тач-цели шапки ≥ 44 px */
#share-status{margin:0;font-size:.72rem;max-width:100%;overflow-wrap:anywhere}/* F-15: длинная ссылка не растягивает шапку */
.screen{display:none}
.screen.active{display:block}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:12px}
.grid{display:grid;grid-template-columns:1fr;gap:10px}
label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:5px}
input,select{font:inherit;font-size:1rem;color:var(--fg);background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:11px 12px;min-height:48px;width:100%}
input:focus-visible,select:focus-visible,.tabs a:focus-visible,.ghost:focus-visible,.btn:focus-visible,.quick button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
summary{cursor:pointer;color:var(--accent);font-size:.9rem;padding:6px 0;min-height:40px}
details .grid{margin-top:10px}
.btn{display:inline-block;background:var(--accent);color:var(--accent-fg);border:0;padding:12px 18px;border-radius:var(--r-sm);font:inherit;font-weight:600;cursor:pointer;margin-top:12px;min-height:48px}
.btn:disabled{opacity:.5;cursor:default}
.quick{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}
.quick button{border:1px solid var(--line);background:var(--panel-2);color:var(--fg);padding:12px 14px;border-radius:var(--r-sm);cursor:pointer;font:inherit;font-size:.9rem;text-align:left;flex:1 1 150px;min-height:48px}
.verdict{display:flex;align-items:center;gap:12px;font-weight:700;font-size:1.15rem;margin-bottom:10px}
.dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.bg-ok{background:var(--ok)}.bg-warn{background:var(--warn)}.bg-bad{background:var(--bad)}
/* Главный экран: вердикт как табло прибора */
#verdict{background:var(--lcd-bg);border:1px solid var(--lcd-line);border-radius:var(--r);padding:14px 16px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(1.3rem,5.5vw,1.9rem);letter-spacing:.01em}
#verdict .ok{color:var(--lcd-fg)}
#verdict .warn{color:#ffd479}
#verdict .bad{color:#ff8a80}
#verdict-note,#kz-verdict-note,#du-verdict-note,#len-verdict-note,#mark-verdict-note,#ohm-verdict-note{margin:8px 0 0;color:var(--muted);font-size:.88rem}
table{width:100%;border-collapse:collapse;font-size:.92rem}
td,th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere}/* F-20: таблицы не распирают страницу на 320–390 px (WCAG 1.4.10) */
th{color:var(--muted);font-weight:600;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}
/* F-18: заголовок строки «параметр — значение» (scope=row) — выглядит как обычная ячейка параметра */
th[scope="row"]{color:var(--fg);font-weight:400;font-size:inherit;text-transform:none;letter-spacing:0}
.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.src{margin:10px 0 0;color:var(--muted);font-size:.78rem}
#warnings,#kz-warnings,#du-warnings,#len-warnings,#mark-warnings,#ohm-warnings{display:grid;gap:8px;margin-top:10px}
.warnbox{border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);color:var(--fg);padding:8px 10px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:.88rem}
/* F-09: ошибка поля — граница и текст связаны с полем (aria-invalid/aria-describedby) */
input[aria-invalid="true"],select[aria-invalid="true"]{border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}
.field-error{margin:6px 0 0;color:var(--bad);font-size:.85rem}
.steps{margin:8px 0 0;padding-left:18px;font-size:.85rem;color:var(--muted)}
.steps li{margin:4px 0}
.steps code{font-family:var(--mono);color:var(--fg)}
/* F-16: диалог подтверждения очистки истории */
dialog{border:1px solid var(--line-strong);border-radius:var(--r);padding:16px;background:var(--panel);color:var(--fg);max-width:360px;width:calc(100% - 32px)}
dialog:modal{outline:none}
dialog::backdrop{background:color-mix(in srgb,#000 55%,transparent)}
.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.dialog-actions .btn{margin-top:0}
#history-undo{margin-top:12px}
[hidden]{display:none!important}
[data-mode=simple] main details{display:none}
@media(min-width:560px){.grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
  .brand{flex:1 1 auto;order:0}
  .brand-sub{display:none}
  .ghost{flex:0 0 auto;order:0}
  /* F-15: навигация переносится на следующую строку и не скрывается за скроллом */
  .tabs{order:1;flex:1 1 100%;margin-left:0}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
