@font-face{font-family:LabSerif;src:url('assets/roboto-serif-cyrillic.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0400-052F,U+20BD}
@font-face{font-family:LabSerif;src:url('assets/roboto-serif-latin.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-024F}
:root{color-scheme:light;--canvas:#f7ecd3;--canvas-deep:#ebd9b6;--ink:#3f3024;--text:#594432;--muted:#765e49;--line:rgba(116,78,41,.22);--surface:rgba(255,250,235,.67);--surface-strong:#fff9e9;--accent:#ad5b33;--accent-hover:#8f4426;--accent-soft:#f1d7bc;--success:#377555;--success-soft:#e0efdb;--warn:#815a14;--warn-soft:#fae9bc;--danger:#a83f3d;--danger-soft:#fae0dd;--shadow:0 20px 70px rgba(91,61,31,.10);font-family:LabSerif,Georgia,serif}
:root[data-theme=dark]{color-scheme:dark;--canvas:#03100e;--canvas-deep:#071b18;--ink:#f5fdff;--text:#e5f6fb;--muted:#bbd4db;--line:rgba(206,237,239,.22);--surface:rgba(11,43,37,.72);--surface-strong:#0c2923;--accent:#68e0b2;--accent-hover:#8dedc5;--accent-soft:#183e32;--success:#8cf5c5;--success-soft:#123d30;--warn:#f0ce80;--warn-soft:#473b1b;--danger:#ff999e;--danger-soft:#49272b;--shadow:0 20px 70px rgba(0,0,0,.30)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 92% 8%,var(--canvas-deep),transparent 31%),var(--canvas);color:var(--ink);font-size:15px;line-height:1.45;min-width:320px}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:url('assets/honeycomb-raised-light.svg');background-size:960px auto;background-position:center 10%;opacity:.12;z-index:0}:root[data-theme=dark] body:before{background-image:url('assets/honeycomb-raised-dark.svg');opacity:.20}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit}.skip{position:absolute;top:-60px;left:12px;padding:8px;background:var(--surface-strong);z-index:10}.skip:focus{top:8px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.app-shell{position:relative;z-index:1;max-width:1640px;min-height:100vh;margin:auto;display:flex;flex-direction:column}.topbar{height:76px;display:flex;align-items:center;gap:42px;border-bottom:1px solid var(--line);padding:0 clamp(22px,4vw,64px);background:var(--surface);backdrop-filter:blur(32px)}.brand{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:.13em;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:.07em;color:var(--muted)}.brand-mark{width:35px;height:35px;border:1px solid var(--accent);border-radius:11px;display:grid;place-items:center;color:var(--accent);font-size:23px;font-style:italic;letter-spacing:0}.topnav{display:flex;align-items:center;gap:27px;flex:1;color:var(--muted);font-size:13px}.topnav a{color:var(--ink);text-decoration:none;border-bottom:2px solid var(--accent);padding:28px 0 25px}.top-actions{display:flex;align-items:center;gap:12px}.mock-pill,.pill{border:1px solid var(--line);border-radius:100px;padding:6px 11px;font-size:11px;letter-spacing:.05em;white-space:nowrap}.mock-pill{background:var(--accent-soft);color:var(--ink)}.icon-button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:21px;line-height:1}.icon-button:hover{border-color:var(--accent)}main{width:100%;padding:0 clamp(22px,4vw,64px) 75px;flex:1}.crumb{display:flex;gap:9px;color:var(--muted);font-size:12px;padding-top:27px}.hero{display:flex;justify-content:space-between;align-items:center;min-height:265px;padding:32px 0 24px}.eyebrow{margin:0 0 9px;color:var(--accent);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}.hero h1{font-size:clamp(54px,6vw,84px);font-weight:350;letter-spacing:-.055em;line-height:1;margin:0 0 16px}.lead{font-size:17px;color:var(--text);max-width:650px;margin:0;line-height:1.5}.hero-graphic{width:245px;height:205px;margin-right:5%;position:relative;background:radial-gradient(circle,var(--accent-soft),transparent 65%)}.hero-graphic:before,.hero-graphic:after{content:"";position:absolute;left:46px;right:46px;top:98px;border-top:1px solid var(--accent);transform:rotate(34deg);opacity:.55}.hero-graphic:after{transform:rotate(-34deg)}.graphic-center,.graphic-node{position:absolute;z-index:1;display:grid;place-items:center;background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:50%;font-size:11px;letter-spacing:.08em}.graphic-center{left:92px;top:66px;width:65px;height:65px;background:var(--accent);color:var(--canvas);border:0}.graphic-node{width:46px;height:46px}.n1{left:25px;top:24px}.n2{right:20px;top:21px}.n3{left:20px;bottom:10px}.n4{right:18px;bottom:8px}.demo-notice{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);padding:13px 17px;border-radius:15px;color:var(--text);font-size:13px}.notice-icon{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-style:italic}.overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:19px 0 20px}.overview>div{padding:20px 22px;border:1px solid var(--line);border-radius:18px;background:var(--surface);backdrop-filter:blur(28px)}.overview span,.overview small{display:block;color:var(--muted)}.overview strong{display:block;font-size:38px;line-height:1.1;font-weight:350;margin:7px 0}.overview small{font-size:11px}.workbench{display:grid;grid-template-columns:minmax(310px,400px) minmax(0,1fr);gap:18px;align-items:start}.glass{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);backdrop-filter:blur(42px)}.catalog-panel{padding:23px;position:sticky;top:14px}.panel-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-head h2,.prototype-controls h2{font-size:27px;font-weight:400;letter-spacing:-.03em;margin:0}.count{font-size:12px;color:var(--muted)}.field{position:relative;min-width:0}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:var(--surface-strong);color:var(--ink);padding:10px 12px;min-height:43px}.field input::placeholder,.field textarea::placeholder{color:var(--muted)}.search-field input{padding-left:33px}.search-icon{position:absolute;left:12px;bottom:8px;font-size:21px;color:var(--muted)}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px}.catalog-list{display:grid;gap:7px;max-height:700px;overflow:auto}.unit-card{width:100%;text-align:left;border:1px solid var(--line);border-radius:13px;background:var(--surface-strong);color:var(--ink);padding:13px 14px;display:grid;gap:7px}.unit-card:hover,.unit-card[aria-current=true]{border-color:var(--accent);background:var(--accent-soft)}.unit-card-top,.unit-card-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}.unit-card strong{font-size:16px;font-weight:500}.unit-card small,.unit-card-bottom{font-size:11px;color:var(--muted)}.unit-card .code{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}.coverage-dots{display:flex;gap:3px}.coverage-dots i{width:12px;height:4px;border-radius:4px;background:var(--line)}.coverage-dots i.on{background:var(--success)}.detail-panel{min-height:640px;padding:30px}.detail-top{display:flex;align-items:start;justify-content:space-between;gap:20px}.detail-top h2{font-size:clamp(31px,3vw,42px);line-height:1.08;letter-spacing:-.04em;font-weight:380;margin:2px 0 8px}.detail-sub{font-size:12px;color:var(--muted)}.status-pill{display:inline-block;background:var(--success-soft);color:var(--success);border-radius:30px;padding:6px 11px;font-size:11px;white-space:nowrap}.status-pill.warn{background:var(--warn-soft);color:var(--warn)}.divider{height:1px;background:var(--line);margin:20px 0}.detail-intro{color:var(--text);font-size:14px;line-height:1.55;margin:0 0 17px}.context-bar{display:flex;align-items:end;gap:12px;padding:16px;background:var(--surface-strong);border:1px solid var(--line);border-radius:14px}.context-bar .field{max-width:190px}.context-bar .caption{font-size:11px;color:var(--muted);margin-right:auto;max-width:220px}.button-primary,.button-secondary,.button-text{min-height:41px;border-radius:10px;padding:10px 15px;border:1px solid transparent}.button-primary{background:var(--accent);color:var(--canvas);font-weight:600}.button-primary:hover{background:var(--accent-hover)}.button-secondary{background:var(--surface-strong);color:var(--ink);border-color:var(--line)}.button-secondary:hover{border-color:var(--accent)}.button-text{background:transparent;color:var(--accent);padding-inline:0}.detail-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0}.detail-kpis>div{padding:13px;background:var(--surface-strong);border:1px solid var(--line);border-radius:12px}.detail-kpis strong{display:block;font-size:22px;font-weight:400}.detail-kpis span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:24px 0 11px;gap:14px}.section-head h3{font-size:20px;font-weight:400;margin:0}.section-head small{font-size:11px;color:var(--muted)}.routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.route{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:12px 14px;text-align:left;color:var(--ink)}.route:hover{border-color:var(--accent)}.route strong,.route small{display:block}.route strong{font-size:13px;font-weight:500}.route small{font-size:10px;color:var(--muted);margin-top:3px}.route .arrow{color:var(--accent);font-size:18px}.route[disabled]{background:transparent}.route[disabled] .arrow{color:var(--muted)}.proof-list{display:grid;gap:8px}.proof-row{display:grid;grid-template-columns:115px 1fr auto;gap:15px;align-items:start;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-strong);font-size:12px}.proof-row .type{color:var(--muted)}.proof-row strong{font-size:13px;font-weight:500}.proof-row p{margin:4px 0 0;color:var(--muted);line-height:1.4}.proof-row .date{font-size:11px;color:var(--muted);white-space:nowrap}.candidate{display:flex;gap:13px;align-items:start;background:var(--warn-soft);border-radius:12px;padding:14px;color:var(--ink);font-size:12px}.candidate strong{display:block;font-size:13px}.candidate p{margin:4px 0;color:var(--text)}.candidate .button-text{font-size:12px}.empty-state,.error-state,.loading-state{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:26px;color:var(--text)}.empty-state .symbol,.error-state .symbol{font-size:38px;color:var(--accent)}.empty-state h3,.error-state h3{margin:0;color:var(--ink);font-size:23px;font-weight:400}.empty-state p,.error-state p{margin:0;max-width:400px}.skeleton{height:18px;border-radius:8px;background:linear-gradient(90deg,var(--line),var(--surface-strong),var(--line));background-size:200% 100%;animation:shimmer 1.4s infinite;width:80%}.skeleton.short{width:42%}@keyframes shimmer{to{background-position:-200% 0}}.prototype-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px;padding:22px 24px;border:1px dashed var(--line);border-radius:16px}.prototype-controls p:last-child{font-size:12px;color:var(--muted);margin:8px 0 0}.state-buttons{display:flex;flex-wrap:wrap;gap:6px}.state-buttons button{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:8px 10px;font-size:11px}.state-buttons button[aria-pressed=true]{background:var(--accent);color:var(--canvas);border-color:var(--accent)}footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:18px clamp(22px,4vw,64px);color:var(--muted);font-size:11px}.toast{position:fixed;bottom:20px;right:20px;max-width:min(380px,calc(100vw - 40px));background:var(--surface-strong);border:1px solid var(--accent);box-shadow:var(--shadow);padding:14px 18px;border-radius:12px;z-index:12}.toast[hidden]{display:none}dialog{width:min(480px,calc(100vw - 28px));border:1px solid var(--line);border-radius:18px;padding:24px;background:var(--surface-strong);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(2,14,12,.55)}dialog h2{font-size:29px;font-weight:400;margin:0}dialog p:not(.eyebrow){color:var(--text)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:23px}
@media(max-width:1120px){.workbench{grid-template-columns:minmax(280px,350px) minmax(0,1fr)}.hero-graphic{margin-right:0}.context-bar{flex-wrap:wrap}.context-bar .caption{width:100%;max-width:none}.detail-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.topnav{display:none}.top-actions{margin-left:auto}.hero-graphic{display:none}.hero{min-height:210px}.workbench{grid-template-columns:1fr}.catalog-panel{position:static}.catalog-list{max-height:350px}.detail-panel{min-height:0}.prototype-controls{align-items:start;flex-direction:column}}
@media(max-width:560px){.topbar{height:66px}.brand{font-size:14px}.mock-pill{font-size:9px;padding:6px}.hero{padding:28px 0;min-height:0}.hero h1{font-size:54px}.lead{font-size:15px}.overview{grid-template-columns:1fr 1fr;gap:8px}.overview>div{padding:14px}.overview>div:last-child{grid-column:1/-1}.overview strong{font-size:29px}.catalog-panel,.detail-panel{padding:18px}.filter-row{grid-template-columns:1fr 1fr}.detail-top{flex-direction:column;gap:8px}.context-bar .field{flex:1;min-width:120px}.context-bar .button-primary{width:100%}.routes{grid-template-columns:1fr}.proof-row{grid-template-columns:1fr;gap:4px}.proof-row .date{white-space:normal}.prototype-controls{padding:17px}.state-buttons button{flex:1}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.skeleton{animation:none}}
/* Small-screen corrections verified in the earlier local render. */
.route[disabled]{opacity:.72}
@media(max-width:560px){.topbar{gap:8px}.mock-pill{display:none}.context-bar .field{width:100%;max-width:none;flex:none}}
.context-bar .period-applied,.context-bar .field-error{flex:0 0 100%;margin:0;font-size:11px}
.context-bar .period-applied{color:var(--muted)}
.context-bar .field-error{color:var(--danger);font-weight:600}
.context-bar .field-error[hidden]{display:none}
.field input[aria-invalid=true]{border-color:var(--danger);outline-color:var(--danger)}
