/* Скопировано без правок из vet-clinic docs/design/core/core.html, блок <style> (строки 4-394), коммит vet-clinic c23915b. */
  :root{
    --ground:#F7F8F9; --surface:#FFFFFF; --sunken:#F1F3F5; --shell:#EAEDF0;
    --ink:#15181B; --ink-2:#3A4149; --muted:#5B646D; --faint:#8A939C;
    --line:#E2E6EA; --line-2:#CFD5DB;
    --accent:#0F766E; --accent-ink:#0B5A54; --accent-soft:#E4F1F0; --accent-line:#9CCFC9;
    --crit:#B3261E; --crit-soft:#FCECEA; --crit-line:#E9A9A3;
    --warn:#9A5B00; --warn-soft:#FBF0DF; --warn-line:#E3C089;
    --ok:#166534; --ok-soft:#E6F2E9; --ok-line:#A8D5B8;
    --f-doc:"Golos Text",-apple-system,"Segoe UI",sans-serif;
    --f-ui:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;
    --f-mono:"JetBrains Mono","SF Mono",Consolas,monospace;
  }
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
    --ground:#0E1013; --surface:#16191D; --sunken:#1D2126; --shell:#20252A;
    --ink:#EBEEF1; --ink-2:#C0C7CE; --muted:#949DA6; --faint:#6B747D;
    --line:#282D33; --line-2:#383F47;
    --accent:#5FD9CD; --accent-ink:#8AE6DC; --accent-soft:#10322F; --accent-line:#1E514B;
    --crit:#F2A9A2; --crit-soft:#341917; --crit-line:#5C2B26;
    --warn:#E8BC72; --warn-soft:#31250F; --warn-line:#54401A;
    --ok:#86D9A2; --ok-soft:#14291B; --ok-line:#245334;
  }}
  :root[data-theme="dark"]{
    --ground:#0E1013; --surface:#16191D; --sunken:#1D2126; --shell:#20252A;
    --ink:#EBEEF1; --ink-2:#C0C7CE; --muted:#949DA6; --faint:#6B747D;
    --line:#282D33; --line-2:#383F47;
    --accent:#5FD9CD; --accent-ink:#8AE6DC; --accent-soft:#10322F; --accent-line:#1E514B;
    --crit:#F2A9A2; --crit-soft:#341917; --crit-line:#5C2B26;
    --warn:#E8BC72; --warn-soft:#31250F; --warn-line:#54401A;
    --ok:#86D9A2; --ok-soft:#14291B; --ok-line:#245334;
  }

  *{box-sizing:border-box;}
  body{background:var(--ground);color:var(--ink);font-family:var(--f-ui);font-size:15px;
       line-height:1.6;-webkit-font-smoothing:antialiased;}
  .page{max-width:1200px;margin:0 auto;padding:26px 18px 60px;}

  .head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px;}
  .head h1{font-family:var(--f-doc);font-weight:700;font-size:25px;margin:0;letter-spacing:-.4px;}
  .head p{margin:0;color:var(--muted);font-size:13.5px;max-width:56ch;}
  .demo-tag{border:1px solid var(--warn-line);background:var(--warn-soft);color:var(--warn);
            border-radius:5px;padding:3px 9px;font-size:11.5px;font-weight:600;}

  /* маршруты */
  .routes{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px;}
  .rt-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:6px;
          padding:7px 13px;font-size:13px;font-family:inherit;color:var(--ink-2);cursor:pointer;}
  .rt-btn.on{background:var(--ink);color:var(--ground);border-color:var(--ink);font-weight:600;}
  .steps{display:flex;gap:0;flex-wrap:wrap;align-items:center;margin-bottom:16px;
         background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:7px 9px;}
  .step{border:0;background:none;font-family:inherit;font-size:12.5px;color:var(--muted);
        cursor:pointer;padding:5px 9px;border-radius:5px;display:inline-flex;align-items:center;gap:6px;}
  .step .n{font-family:var(--f-mono);font-size:11px;border:1px solid var(--line-2);
           border-radius:3px;padding:0 4px;}
  .step.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;}
  .step.on .n{border-color:var(--accent-line);}
  .step.done{color:var(--ok);}
  .arrow{color:var(--faint);font-size:12px;padding:0 1px;}

  /* приложение */
  .app{border:1px solid var(--line-2);border-radius:9px;overflow:hidden;background:var(--surface);
       font-size:13px;line-height:1.45;box-shadow:0 1px 2px rgba(0,0,0,.05),0 10px 30px -20px rgba(0,0,0,.3);}
  .app-bar{background:var(--shell);border-bottom:1px solid var(--line-2);padding:0 14px;
           height:44px;display:flex;align-items:center;gap:11px;}
  .app-bar .brand{font-weight:600;min-width:0;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .app-bar .sp{flex:1;}
  .hsearch{position:relative;width:340px;}
  .hsearch .inp{min-height:28px;padding:4px 8px;}
  .hres{position:absolute;top:34px;left:0;width:640px;max-width:90vw;max-height:60vh;overflow:auto;z-index:20;
        background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:8px;}
  .st{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:5px;
      padding:3px 8px;background:var(--surface);color:var(--ink-2);font-size:12px;white-space:nowrap;}
  .st.w{border-color:var(--warn-line);background:var(--warn-soft);color:var(--warn);}
  .st.g{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok);}
  .st .num{font-variant-numeric:tabular-nums;font-family:var(--f-mono);font-size:11.5px;}
  .app-body{display:grid;grid-template-columns:184px 1fr;min-height:520px;}
  .rail{background:var(--sunken);border-right:1px solid var(--line);padding:12px 10px;}
  .rail .cap{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);
             padding:0 8px;margin:0 0 6px;}
  .rail button{display:block;width:100%;text-align:left;padding:7px 8px;border-radius:5px;
               color:var(--ink-2);border:0;background:none;font-family:inherit;font-size:13px;
               cursor:pointer;margin-bottom:1px;}
  .rail button:hover{background:var(--line);}
  .rail button.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;}
  .rail .gap{height:14px;}
  .rail-why{font-size:11px;line-height:1.45;color:var(--muted);padding:0 8px;margin:0 0 10px;}
  .rail-why b{color:var(--ink-2);}
  .work-col{min-width:0;display:flex;flex-direction:column;}
  .work{min-width:0;display:flex;flex-direction:column;flex:1;}

  /* Вкладки внутри рабочего места: ресепшен и аптека — одно место (117),
     журнал исследований — вкладка приёма, а не своё место (116). */
  .tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:7px 12px 0;
        border-bottom:1px solid var(--line);}
  .tabs:empty{display:none;}
  .tab{border:1px solid transparent;border-bottom:none;background:none;cursor:pointer;
       padding:6px 11px;border-radius:6px 6px 0 0;font-size:12.5px;color:var(--ink-2);
       margin-bottom:-1px;}
  .tab:hover{background:var(--sunken);}
  .tab.on{background:var(--bg);border-color:var(--line);color:var(--ink);font-weight:600;}
  .tab-why{margin-left:auto;font-size:10.5px;color:var(--faint);padding-bottom:6px;}

  .crumb{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;
         gap:10px;flex-wrap:wrap;}
  .crumb .who{font-weight:600;font-size:14px;}
  .crumb .meta{color:var(--muted);font-size:12.5px;}
  .crumb .rt{margin-left:auto;display:flex;gap:6px;}
  .tag{border:1px solid var(--line-2);border-radius:4px;padding:1px 7px;font-size:11.5px;color:var(--muted);}
  .back{border:0;background:none;color:var(--accent-ink);font-family:inherit;font-size:12.5px;
        cursor:pointer;padding:0;font-weight:600;}

  .pad{padding:14px 16px;}
  .toolbar{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;gap:8px;
           align-items:center;flex-wrap:wrap;}
  .srch{flex:1;min-width:180px;border:1px solid var(--line-2);border-radius:5px;padding:8px 11px;
        color:var(--ink-2);background:var(--surface);font-family:inherit;font-size:13px;}

  table.tbl{width:100%;border-collapse:collapse;font-size:13px;}
  .tbl th{text-align:left;font-weight:600;font-size:12px;color:var(--muted);padding:8px 16px;
          border-bottom:1px solid var(--line-2);white-space:nowrap;}
  .tbl td{padding:10px 16px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top;}
  .tbl tr:last-child td{border-bottom:0;}
  .tbl tr.clickable{cursor:pointer;}
  .tbl tr.clickable:hover td{background:var(--sunken);}
  .tbl td.n{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;}
  .tbl td.mn{font-family:var(--f-mono);font-size:12px;color:var(--muted);white-space:nowrap;}
  .tbl td b{color:var(--ink);font-weight:600;}
  .tbl td .s{display:block;font-size:11.5px;color:var(--faint);margin-top:1px;}

  .stickybar{position:sticky;bottom:0;background:var(--ground);padding:10px 0;border-top:1px solid var(--line-2);}

  .pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;
        font-size:11.5px;font-weight:600;border:1px solid transparent;white-space:nowrap;}
  .pill.wait{background:var(--sunken);color:var(--muted);border-color:var(--line-2);}
  .pill.now{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line);}
  .pill.hold{background:var(--crit-soft);color:var(--crit);border-color:var(--crit-line);}
  .pill.soft{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line);}
  .badge.debt{display:inline-block;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;background:var(--crit-soft);color:var(--crit);border:1px solid var(--crit-line);}
  .pill.done{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line);}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:5px;
       padding:9px 14px;font-size:13px;font-weight:600;font-family:inherit;border:1px solid transparent;
       cursor:pointer;transition:filter .15s ease;}
  .btn:hover:not(:disabled){filter:brightness(.96);}
  .btn.pri{background:var(--accent);color:#fff;border-color:var(--accent);}
  .btn.sec{background:var(--surface);color:var(--ink-2);border-color:var(--line-2);}
  .btn.sm{padding:6px 11px;font-size:12.5px;}
  .btn:disabled{background:var(--sunken);color:var(--faint);border-color:var(--line);cursor:not-allowed;}
  :root[data-theme="dark"] .btn.pri{color:#0B211F;}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.pri{color:#0B211F;}}
  .mini{border:1px solid var(--line-2);background:var(--surface);border-radius:4px;padding:5px 9px;
        font-size:12px;color:var(--ink-2);cursor:pointer;font-family:inherit;display:inline-flex;
        align-items:center;gap:5px;}
  .mini:hover{border-color:var(--accent);}
  .mini.dang{border-color:var(--crit-line);color:var(--crit);}
  .mini.pri{background:var(--accent);color:#fff;border-color:var(--accent);}
  :root[data-theme="dark"] .mini.pri{color:#0B211F;}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mini.pri{color:#0B211F;}}
  .app-bar #qnet{margin:0 12px;white-space:nowrap;font-size:12px;}
  #qnet[data-link="down"]{color:var(--crit);}
  #qlist:empty{display:none;}
  details.blk>summary{cursor:pointer;display:flex;list-style:none;align-items:center;gap:6px;}
  details.blk>summary::-webkit-details-marker{display:none;}
  details.blk>summary::before{content:"▾";color:var(--muted);}
  details.blk:not([open])>summary::before{content:"▸";}
  details.blk>summary h3{display:inline;margin:0;}

  .field{margin-bottom:12px;}
  .field label{display:flex;align-items:baseline;gap:8px;font-size:13px;color:var(--ink-2);
               margin-bottom:5px;font-weight:600;}
  .field label:has(> .inp){flex-direction:column;align-items:stretch;}
  .field label .tmpl{margin-left:auto;color:var(--accent-ink);font-weight:500;font-size:12px;}
  .inp{border:1px solid var(--line-2);border-radius:5px;padding:8px 10px;background:var(--surface);
       color:var(--ink-2);min-height:34px;width:100%;font-family:inherit;font-size:13px;}
  textarea.inp{min-height:54px;resize:vertical;}
  .inp.muted{color:var(--faint);}
  .two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}

  .banner{border-radius:6px;padding:11px 13px;display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;}
  .banner.info{background:var(--accent-soft);border:1px solid var(--accent-line);}
  .banner.warn{background:var(--warn-soft);border:1px solid var(--warn-line);}
  .banner.crit{background:var(--crit-soft);border:1px solid var(--crit-line);}
  .banner.ok{background:var(--ok-soft);border:1px solid var(--ok-line);}
  .banner b{display:block;margin-bottom:2px;font-size:13.5px;}
  .banner.info b{color:var(--accent-ink);} .banner.warn b{color:var(--warn);}
  .banner.crit b{color:var(--crit);} .banner.ok b{color:var(--ok);}
  .banner.emerg{position:sticky;top:0;z-index:5;flex-direction:column;gap:6px;}
  .banner.emerg[hidden]{display:none;}
  .banner.emerg .erow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
  .banner.emerg .erow b{display:inline;margin:0;font-size:16px;}
  .banner p{margin:0;font-size:12.5px;color:var(--ink-2);}

  .pay{padding:14px 16px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);}
  .paysum{margin-right:auto;font-size:13px;color:var(--muted);}
  .paysum b{font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums;display:block;font-weight:600;}

  .pip{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;}
  .pip.open{background:var(--warn);} .pip.shut{background:var(--ok);}

  .axes{display:grid;grid-template-columns:1.25fr 1fr;gap:1px;background:var(--line);flex:1;}
  .ax{background:var(--surface);}
  .ax-h{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;}
  .ax-h .lab{font-weight:600;font-size:13px;}
  .ax-h .state{margin-left:auto;font-size:12px;color:var(--muted);}
  .ax-b{padding:14px 16px;}
  .lines{border-top:1px solid var(--line);}
  .ln{display:grid;grid-template-columns:1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);align-items:baseline;}
  .ln .sub{display:block;font-size:11.5px;color:var(--faint);margin-top:1px;}
  .ln .amt{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink);}
  .ln.tot{border-bottom:0;padding-top:11px;font-weight:600;}
  .ln.tot .amt{font-size:15px;}
  .addline{display:flex;align-items:center;gap:7px;color:var(--accent-ink);padding:9px 0;
           font-weight:500;cursor:pointer;border:0;background:none;font-family:inherit;font-size:13px;}
  .peers{border:1px solid var(--line);border-radius:6px;background:var(--sunken);padding:9px 11px;margin-top:14px;}
  .peers .t{font-weight:600;font-size:12.5px;color:var(--ink-2);margin-bottom:6px;}
  .peer{display:flex;align-items:center;gap:8px;padding:3px 0;color:var(--ink-2);}
  .peer .r{margin-left:auto;font-size:12px;color:var(--muted);}
  .hint{font-size:12px;color:var(--faint);margin-top:7px;line-height:1.45;}
  .hint-block{font-size:15px;color:var(--ink-2);}
  .flag-low{color:#1a5fb4;}
  .flag-high{color:#c01c28;}
  .critical{color:#c01c28;font-weight:700;background:var(--crit-soft);}
  .preview{max-width:320px;max-height:240px;display:block;border:1px solid var(--line-2);border-radius:5px;}
  .file{margin:6px 0;}
  form[data-wait="1"]::after{content:"ждёт отправки";font-size:12px;color:var(--faint);}

  .sect{display:grid;grid-template-columns:auto 1fr auto;gap:11px;padding:12px 16px;
        border-bottom:1px solid var(--line);align-items:center;}
  .sect.hold{background:var(--crit-soft);}
  .sect .amt{font-variant-numeric:tabular-nums;text-align:right;}

  .scanbox{margin:16px;border:2px solid var(--accent);border-radius:7px;background:var(--surface);
           padding:13px 15px;box-shadow:0 0 0 4px var(--accent-soft);}
  .scanbox .lb{font-weight:600;color:var(--accent-ink);margin-bottom:8px;display:flex;
               align-items:center;gap:7px;flex-wrap:wrap;}
  .scanbox .alt{margin-left:auto;font-weight:400;font-size:12px;color:var(--muted);}

  .tabs{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
  .tab{border:1px solid var(--line-2);border-radius:999px;padding:7px 15px;font-size:13px;
       color:var(--ink-2);background:var(--surface);cursor:pointer;font-family:inherit;
       min-height:36px;display:inline-flex;align-items:center;gap:6px;}
  .tab.on{background:var(--ink);color:var(--ground);border-color:var(--ink);font-weight:600;}
  .tab .cnt{background:var(--crit);color:#fff;border-radius:999px;padding:0 6px;font-size:11px;
            font-weight:700;min-width:17px;text-align:center;}
  .hour{display:grid;grid-template-columns:60px 1fr;border-top:1px solid var(--line);}
  .hour .hh{font-family:var(--f-mono);font-size:12px;color:var(--faint);padding:12px 0 12px 16px;
            font-variant-numeric:tabular-nums;}
  .hour.now{background:var(--accent-soft);}
  .hour.now .hh{color:var(--accent-ink);font-weight:700;}
  .hour.late .hh{color:var(--crit);}
  .jobs{padding:6px 16px 10px 0;}
  .job{display:flex;align-items:center;gap:12px;padding:9px 0;}
  .job + .job{border-top:1px dashed var(--line-2);}
  .job .txt{flex:1;min-width:0;}
  .job .p{font-weight:600;}
  .job .d{font-size:12.5px;color:var(--muted);}
  .job .dn{font-size:12px;color:var(--ok);display:flex;align-items:center;gap:5px;}
  .tick{width:44px;height:44px;border:1.5px solid var(--line-2);border-radius:7px;background:var(--surface);
        flex:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--faint);}
  .tick:hover{border-color:var(--accent);}
  .tick.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);}
  .flag{font-size:11.5px;font-weight:700;color:var(--crit);}

  .chk{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px;}
  .chk button{border:1.5px solid var(--line-2);background:var(--surface);border-radius:6px;
              padding:9px 13px;font-size:12.5px;color:var(--ink-2);cursor:pointer;font-family:inherit;
              min-height:40px;display:inline-flex;align-items:center;gap:7px;}
  .chk button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600;}
  .drop{border:1.5px dashed var(--line-2);border-radius:7px;padding:22px;text-align:center;
        color:var(--muted);background:var(--sunken);}
  .drop b{display:block;color:var(--ink-2);margin-bottom:3px;}
  .sw{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);}
  .sw:last-child{border-bottom:0;}
  .sw .tx{flex:1;} .sw .tx b{display:block;font-weight:600;color:var(--ink);}
  .sw .tx span{font-size:12.5px;color:var(--muted);}
  .knob{width:38px;height:22px;border-radius:999px;background:var(--line-2);flex:none;position:relative;cursor:pointer;}
  .knob::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--surface);transition:left .18s ease;}
  .knob.on{background:var(--accent);} .knob.on::after{left:18px;}

  .empty{padding:44px 16px;text-align:center;color:var(--faint);}

  #toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--ink);
         color:var(--ground);padding:11px 17px;border-radius:7px;font-size:13.5px;font-weight:500;
         box-shadow:0 8px 26px -8px rgba(0,0,0,.4);opacity:0;pointer-events:none;
         transition:opacity .22s ease,transform .22s ease;z-index:50;max-width:min(90vw,460px);}
  #toast.show{opacity:1;transform:translateX(-50%) translateY(-4px);}
  @media (prefers-reduced-motion:reduce){#toast,.knob::after{transition:none;}}

  svg.ic{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;
         stroke-linecap:round;stroke-linejoin:round;}
  svg.ic.lg{width:22px;height:22px;}
  button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  @media (max-width:900px){.app-body{grid-template-columns:1fr;}.rail{display:none;}
    .axes,.two,.three{grid-template-columns:1fr;}}

  /* ─── С1: боковая колонка «что происходит физически» ─── */
  .app-body{grid-template-columns:170px 1fr 268px;}
  .side{background:var(--sunken);border-left:1px solid var(--line);padding:12px 12px 16px;
        display:flex;flex-direction:column;gap:12px;}
  .side .cap{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--faint);margin:0 0 5px;}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 11px;}
  .card .row{display:grid;grid-template-columns:64px 1fr;gap:8px;padding:5px 0;
             border-bottom:1px solid var(--line);font-size:12px;line-height:1.4;}
  .card .row:last-child{border-bottom:0;}
  .card .row .k{color:var(--faint);font-size:11px;}
  .card .row .vv{color:var(--ink-2);}
  .card .row.gap-none{color:var(--crit);}

  /* ─── бейджи достоверности ─── */
  .bdg{display:inline-flex;align-items:center;gap:4px;border-radius:4px;padding:1px 6px;
       font-size:10.5px;font-weight:700;border:1px solid transparent;white-space:nowrap;
       letter-spacing:.02em;vertical-align:middle;}
  .bdg.sim{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line);}
  .bdg.out{background:var(--sunken);color:var(--muted);border-color:var(--line-2);}
  .bdg.no{background:var(--crit-soft);color:var(--crit);border-color:var(--crit-line);}
  .bdg.uc{background:var(--surface);color:var(--muted);border-color:var(--line-2);
          font-family:var(--f-mono);font-weight:500;font-size:10px;}
  /* метка изменений на шаге (D-139): «новое» / «исправлено по вашему ответу» */
  .chg{display:inline-flex;align-items:center;border-radius:4px;padding:1px 5px;
       font-size:9.5px;font-weight:700;border:1px solid transparent;vertical-align:middle;}
  .chg.new{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line);}
  .chg.fix{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line);}
  /* периметр: что войдёт в MVP, а что отложено (Processes v3.0 §1.4) */
  .bdg.mvp{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line);}
  .bdg.half{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line);}
  .bdg.p1{background:var(--sunken);color:var(--muted);border-color:var(--line-2);}
  .bdg.ov{background:var(--crit-soft);color:var(--crit);border-color:var(--crit-line);}
  /* требование, которого партнёр не называл — спрашиваем прямо */
  .unsourced{border:1px dashed var(--warn-line);background:var(--warn-soft);border-radius:6px;
             padding:9px 11px;margin:10px 0;font-size:12.5px;line-height:1.5;color:var(--ink-2);}
  .unsourced b{color:var(--warn);}
  /* Плашка раунда 4: предположение из Processes v4.0 §1.5, а не «мы ввели сами». */
  .unsourced.probe{border-color:var(--accent-line);background:var(--accent-soft);}
  .unsourced.probe b{color:var(--accent-ink);}
  .unsourced .ask{display:block;margin-top:5px;color:var(--muted);font-style:italic;}
  /* вопрос задаётся по ходу шага, а не анкетой в конце: в прошлом раунде
     итоговая анкета собрала 0 ответов из 20 */
  .note.ask-here{border:1px solid var(--accent-line);background:var(--accent-soft);
                 border-radius:7px;padding:9px 10px;}
  .note.ask-here .cap{color:var(--accent-ink);}
  .note.ask-here .ask-q{margin:0 0 7px;font-size:12.5px;line-height:1.5;color:var(--ink-2);font-weight:600;}
  .note.ask-here textarea{min-height:52px;}

  /* ─── полоса внешнего устройства ─── */
  .dev{border:1px solid var(--line-2);border-left:3px solid var(--line-2);border-radius:5px;
       background:var(--sunken);padding:10px 12px;margin:12px 0;font-family:var(--f-mono);font-size:12px;}
  .dev .dh{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-family:var(--f-ui);
           font-size:12px;font-weight:600;color:var(--ink-2);}
  .dev .dh .sp{flex:1;}
  .dev pre{margin:0;white-space:pre-wrap;color:var(--ink-2);font-size:11.5px;line-height:1.5;}
  .dev.no{border-left-color:var(--crit);background:var(--crit-soft);}
  .dev.sim{border-left-color:var(--warn);}

  /* ─── панель требований по «?» ─── */
  .spec{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:6px;
        padding:11px 13px;margin:0 16px 14px;font-size:12.5px;color:var(--ink-2);}
  .spec b{display:block;color:var(--accent-ink);margin-bottom:4px;font-size:12.5px;}
  .spec q{display:block;font-style:italic;margin-top:5px;color:var(--muted);}
  .qbtn{border:1px solid var(--line-2);background:var(--surface);color:var(--muted);
        width:22px;height:22px;border-radius:50%;font-family:inherit;font-size:12px;font-weight:700;
        cursor:pointer;line-height:1;padding:0;}
  .qbtn.on{background:var(--accent);border-color:var(--accent);color:#fff;}

  /* ─── развилки ─── */
  .branch{border:1px solid var(--line-2);border-radius:6px;background:var(--surface);
          padding:9px 11px;margin:0 0 13px;}
  .branch .bt{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);
              margin-bottom:7px;display:flex;align-items:center;gap:7px;}
  .branch .opts{display:flex;gap:6px;flex-wrap:wrap;}
  .branch .opts button{border:1.5px solid var(--line-2);background:var(--surface);border-radius:5px;
        padding:7px 11px;font-size:12.5px;color:var(--ink-2);cursor:pointer;font-family:inherit;}
  .branch .opts button.on{border-color:var(--accent);background:var(--accent-soft);
        color:var(--accent-ink);font-weight:600;}

  /* ─── аудит ─── */
  .aud{display:grid;grid-template-columns:78px 1fr;gap:10px;padding:10px 16px;
       border-bottom:1px solid var(--line);font-size:12.5px;}
  .aud .tm{font-family:var(--f-mono);font-size:11.5px;color:var(--faint);}
  .aud b{display:block;color:var(--ink);font-weight:600;}
  .aud span{color:var(--muted);}

  /* ─── замечания ─── */
  .note textarea{width:100%;border:1px solid var(--line-2);border-radius:5px;padding:7px 9px;
       background:var(--surface);color:var(--ink-2);font-family:inherit;font-size:12px;
       min-height:60px;resize:vertical;}
  .note .cnt{font-size:11px;color:var(--faint);margin-top:5px;}
  dialog{border:1px solid var(--line-2);border-radius:9px;background:var(--surface);color:var(--ink);
         padding:0;max-width:min(94vw,620px);width:100%;box-shadow:0 20px 60px -20px rgba(0,0,0,.5);}
  dialog::backdrop{background:rgba(0,0,0,.35);}
  dialog .dlg-h{padding:13px 16px;border-bottom:1px solid var(--line);font-weight:600;
       display:flex;align-items:center;gap:10px;}
  dialog .dlg-b{padding:14px 16px;}
  dialog textarea{width:100%;min-height:280px;border:1px solid var(--line-2);border-radius:5px;
       padding:10px;font-family:var(--f-mono);font-size:11.5px;background:var(--sunken);
       color:var(--ink-2);resize:vertical;}
  dialog .dlg-f{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px;
       justify-content:flex-end;}

  /* ─── итоговые вопросы ─── */
  .qs{display:grid;gap:12px;}
  .qs .q{border:1px solid var(--line);border-radius:6px;padding:11px 13px;background:var(--surface);}
  .qs .q label{display:block;font-weight:600;font-size:13px;margin-bottom:6px;color:var(--ink);}

  .lead{color:var(--muted);font-size:12.5px;margin:0 0 12px;}
  .kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:12.5px;align-items:baseline;}
  .kv .k{color:var(--faint);white-space:nowrap;}
  .flags{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px;}
  .share{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);}
  @media (max-width:1100px){.app-body{grid-template-columns:170px 1fr;}.side{display:none;}}
  @media (max-width:900px){.app-body{grid-template-columns:1fr;}}

  /* ─── ядро: замороженный экран и выпадающий выбор пользователя ─── */
  .work.frozen{position:relative;}
  .work.frozen .app,.work.frozen table,.work.frozen .pad,.work.frozen .toolbar,
  .work.frozen .tabs,.work.frozen .crumb{filter:saturate(.75);}
  .work.frozen button:not([data-act]),.work.frozen .tab,.work.frozen .tick,
  .work.frozen .knob,.work.frozen .srch{cursor:help;}
  .app-bar select{border:1px solid var(--line-2);border-radius:5px;background:var(--surface);
    color:var(--ink);font-family:inherit;font-size:12px;padding:4px 7px;max-width:230px;}
  .app-bar label{font-size:12px;}
  .rail button .tag{opacity:.7;}
  @media (pointer:coarse){.btn,.mini{min-height:44px}}
