/* Manrope — variable woff2 (wght 200–800) з нашого домену, OFL: public/fonts/manrope/OFL.txt. Стек шрифта не змінено: Apple (SF) першим, Manrope — де SF нема (Windows/Android). */
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope/manrope-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope/manrope-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope/manrope-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope/manrope-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Видно — система дизайна для кабінету (T-341 Ф1). Токени — docs/sistema-dizajna/project/tokens.json,
   деталі — components/bundle.css (лише ті, що потрібні картці людини), усе під коренем .ds: старі екрани
   кабінету цих змінних і класів не бачать. Шрифт — стек токена; Manrope з нашого домену (@font-face вище), не з Google Fonts:
   зовнішнього запиту з кабінету нема. Hex — лише у визначеннях токенів. У packages/ui переїде з другим споживачем. */
.ds{--veil:rgba(6,16,60,.22);--veil-strong:rgba(6,16,60,.34);--bg:#F3F4F7;--surface:#FFFFFF;--surface-2:#F3F4F7;--ink:#0B0F19;--ink-2:#5E6472;--ink-3:#666C7B;--ink-4:#9097A6;--line:#EAECF1;--track:#E7E9EF;--blue:#2D5BFF;--blue-tint:#EAF0FF;--blue-border:#9FB4FF;--on-blue:#FFFFFF;--green:#12B76A;--green-tint:#E5F7EE;--green-ink:#077A47;--red:#F04438;--red-tint:#FEECEB;--red-ink:#C4320A;--amber:#E8890C;--amber-tint:#FFF4E2;--amber-ink:#9A5800;--cta-top:#2A2D34;--cta-bottom:#1B1D22;--cta-ink:#FFFFFF;--cta-tile:#33363E;--cta-tile-ink:#FFCE00;--glass:rgba(255,255,255,.18);--glass-border:rgba(255,255,255,.32);--tabbar:rgba(255,255,255,.88);--dash:#C9CEDA;--arch-1:rgba(45,91,255,.13);--arch-2:rgba(18,183,106,.16);--focus:#2D5BFF;--grad-start:#1E3BD9;--grad-mid:#2D7BF5;--grad-end:#7DF26B;--grad-text-end:#0A8048;--yellow:#FFCE00;--lime:#7DF26B;--violet:#8B62D8;--pink:#E554A3;--orange:#F0894F;--lavender:#EEEAFB;--ice:#E3F0F8;--peach:#FFF0E6;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-18:18px;--space-24:24px;--space-32:32px;--space-48:48px;--space-64:64px;--radius-9:9px;--radius-12:12px;--radius-14:14px;--radius-16:16px;--radius-20:20px;--radius-22:22px;--radius-24:24px;--radius-26:26px;--radius-28:28px;--radius-pill:999px;--shadow-card:0 1px 2px rgba(11,15,25,.04), 0 8px 24px -16px rgba(11,15,25,.18);--shadow-ctrl:0 2px 10px rgba(11,15,25,.06);--shadow-cta:0 14px 26px -14px rgba(11,15,25,.7);--shadow-brand:0 18px 30px -18px rgba(30,59,217,.6);--shadow-bar:0 10px 26px -14px rgba(11,15,25,.3);--grad-brand:linear-gradient(100deg,#1E3BD9 0%,#2B7BF2 35%,#14B87A 70%,#7DF26B 100%);--grad-text:linear-gradient(115deg,#1E3BD9 0%,#2B63EE 45%,#0A8048 100%);--grad-dark:linear-gradient(160deg,#23262E 0%,#15171C 100%);--grad-sky:linear-gradient(160deg,#799DF3 0%,#8191F1 100%);--grad-lagoon:linear-gradient(160deg,#6DC5B9 0%,#6EB0E0 100%);--grad-orchid:linear-gradient(160deg,#CA83C7 0%,#9D8AE3 100%);--grad-sunset:linear-gradient(160deg,#F0894F 0%,#F2A557 100%);--font-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Manrope", "Segoe UI", system-ui, sans-serif;--on-grad:#FFFFFF}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ds{--bg:#0E1015;--surface:#171A21;--surface-2:#1F232C;--ink:#EEF0F5;--ink-2:#A9B0BF;--ink-3:#8A91A2;--ink-4:#5D6474;--line:#272B35;--track:#262A34;--blue:#7D9BFF;--blue-tint:#1A2347;--blue-border:#41539A;--on-blue:#0B0F19;--green:#32D583;--green-tint:#0F2E20;--green-ink:#4ADE93;--red:#FF6B5E;--red-tint:#3A1715;--red-ink:#FF8A80;--amber:#F5A524;--amber-tint:#33240C;--amber-ink:#F7B84B;--cta-top:#F4F5F8;--cta-bottom:#DFE2E9;--cta-ink:#0B0F19;--cta-tile:#1B1D22;--cta-tile-ink:#FFCE00;--glass:rgba(255,255,255,.14);--glass-border:rgba(255,255,255,.24);--tabbar:rgba(23,26,33,.9);--dash:#3A3F4C;--arch-1:rgba(125,155,255,.17);--arch-2:rgba(50,213,131,.15);--focus:#7D9BFF;--grad-start:#1E3BD9;--grad-mid:#2D7BF5;--grad-end:#7DF26B;--grad-text-end:#0A8048;--yellow:#FFCE00;--lime:#7DF26B;--violet:#A98BEA;--pink:#F07AB9;--orange:#F5A06E;--lavender:#221E3A;--ice:#16263A;--peach:#3A2418;--shadow-card:0 0 0 1px rgba(255,255,255,.04), 0 10px 26px -16px rgba(0,0,0,.7);--shadow-ctrl:0 0 0 1px rgba(255,255,255,.05);--shadow-cta:0 14px 26px -14px rgba(0,0,0,.8);--shadow-brand:0 18px 30px -18px rgba(0,0,0,.8);--shadow-bar:0 0 0 1px rgba(255,255,255,.05), 0 10px 26px -14px rgba(0,0,0,.8);color-scheme:dark}}
:root[data-theme="dark"] .ds{--bg:#0E1015;--surface:#171A21;--surface-2:#1F232C;--ink:#EEF0F5;--ink-2:#A9B0BF;--ink-3:#8A91A2;--ink-4:#5D6474;--line:#272B35;--track:#262A34;--blue:#7D9BFF;--blue-tint:#1A2347;--blue-border:#41539A;--on-blue:#0B0F19;--green:#32D583;--green-tint:#0F2E20;--green-ink:#4ADE93;--red:#FF6B5E;--red-tint:#3A1715;--red-ink:#FF8A80;--amber:#F5A524;--amber-tint:#33240C;--amber-ink:#F7B84B;--cta-top:#F4F5F8;--cta-bottom:#DFE2E9;--cta-ink:#0B0F19;--cta-tile:#1B1D22;--cta-tile-ink:#FFCE00;--glass:rgba(255,255,255,.14);--glass-border:rgba(255,255,255,.24);--tabbar:rgba(23,26,33,.9);--dash:#3A3F4C;--arch-1:rgba(125,155,255,.17);--arch-2:rgba(50,213,131,.15);--focus:#7D9BFF;--grad-start:#1E3BD9;--grad-mid:#2D7BF5;--grad-end:#7DF26B;--grad-text-end:#0A8048;--yellow:#FFCE00;--lime:#7DF26B;--violet:#A98BEA;--pink:#F07AB9;--orange:#F5A06E;--lavender:#221E3A;--ice:#16263A;--peach:#3A2418;--shadow-card:0 0 0 1px rgba(255,255,255,.04), 0 10px 26px -16px rgba(0,0,0,.7);--shadow-ctrl:0 0 0 1px rgba(255,255,255,.05);--shadow-cta:0 14px 26px -14px rgba(0,0,0,.8);--shadow-brand:0 18px 30px -18px rgba(0,0,0,.8);--shadow-bar:0 0 0 1px rgba(255,255,255,.05), 0 10px 26px -14px rgba(0,0,0,.8);color-scheme:dark}
.ds{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14.5px;line-height:21px;-webkit-font-smoothing:antialiased}
.ds .v-ic{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ds .v-ic-l{width:22px;height:22px}
/* MainButton — главная кнопка */
.ds .v-cta{position:relative;overflow:hidden;display:grid;grid-template-columns:44px 1fr 24px;align-items:center;gap:var(--space-10);width:100%;border:0;font:inherit;font-size:16px;font-weight:700;text-align:center;color:var(--cta-ink);background:linear-gradient(180deg,var(--cta-top),var(--cta-bottom));border-radius:var(--radius-22);padding:8px 16px 8px 8px;box-shadow:var(--shadow-cta);cursor:pointer}
.ds .v-cta-tile{width:44px;height:44px;border-radius:var(--radius-14);background:var(--cta-tile);color:var(--cta-tile-ink);display:flex;align-items:center;justify-content:center}
.ds .v-cta::after{content:"";position:absolute;top:0;bottom:0;width:90px;left:-120px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);transform:skewX(-18deg);animation:v-shine 3.2s ease-in-out infinite}
@keyframes v-shine{0%{left:-120px}55%,100%{left:120%}}
.ds .v-cta.is-pressed{transform:scale(.98);filter:brightness(.92)}
.ds .v-cta:disabled,.ds .v-cta.is-disabled{opacity:.42;box-shadow:none;cursor:default}
.ds .v-cta:disabled::after,.ds .v-cta.is-disabled::after,.ds .v-cta.is-loading::after{display:none}
.ds .v-spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:v-spin .9s linear infinite;display:inline-block;vertical-align:-3px;margin-right:8px}
@keyframes v-spin{to{transform:rotate(360deg)}}
.ds .v-cta:focus-visible,.ds .v-ghost:focus-visible,.ds .v-seg button:focus-visible,.ds .v-input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* SecondaryButton */
.ds .v-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;font:inherit;font-size:14px;font-weight:600;color:var(--ink);background:var(--surface);border-radius:var(--radius-16);padding:12px 16px;box-shadow:var(--shadow-ctrl);cursor:pointer}
.ds .v-ghost.is-pressed{background:var(--track)}
.ds .v-ghost:disabled,.ds .v-ghost.is-disabled{color:var(--ink-4);cursor:default}
/* StatusPill */
.ds .v-pill,#modal .v-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;border-radius:var(--radius-pill);padding:4px 9px;white-space:nowrap}
.ds .v-pill-act,#modal .v-pill-act{background:var(--blue-tint);color:var(--blue)}
.ds .v-pill-rec,#modal .v-pill-rec{background:var(--red-tint);color:var(--red-ink)}
.ds .v-pill-rec::before,#modal .v-pill-rec::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red);animation:v-blink 1.2s infinite}
@keyframes v-blink{50%{opacity:.25}}
.ds .v-pill-done,#modal .v-pill-done{background:var(--green-tint);color:var(--green-ink)}
.ds .v-pill-lost,#modal .v-pill-lost{background:var(--amber-tint);color:var(--amber-ink)}
.ds .v-pill-off,#modal .v-pill-off{background:var(--track);color:var(--ink-2)}
/* T-452 метка-термометр: чем горячее, тем ярче; залитые — чтобы не спутать с бледными метками статуса. Тёмная тема — своими токенами. */
.ds .v-pill-hot,#modal .v-pill-hot{background:var(--red-ink);color:var(--surface)}
.ds .v-pill-warm,#modal .v-pill-warm{background:var(--amber);color:#0B0F19}
.ds .v-pill-cold,#modal .v-pill-cold{background:var(--ice);color:var(--ink-2)}
/* Card */
.ds .v-card{background:var(--surface);border-radius:var(--radius-24);padding:var(--space-16);box-shadow:var(--shadow-card)}
.ds .v-card-title{font-size:13px;font-weight:700;color:var(--ink-3);margin-bottom:var(--space-10);display:flex;justify-content:space-between;gap:8px}
.ds .v-card-title a{color:var(--blue);text-decoration:none}
/* PatientRow */
.ds .v-av{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--on-grad);background:var(--grad-text);flex:none}
.ds .v-sum{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
/* IconCircle */
.ds .v-ib{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ds .v-ib-blue{background:var(--blue-tint);color:var(--blue)}
.ds .v-ib-green{background:var(--green-tint);color:var(--green-ink)}
.ds .v-ib-amber{background:var(--amber-tint);color:var(--amber-ink)}
.ds .v-ib-red{background:var(--red-tint);color:var(--red-ink)}
/* Stepper */
.ds .v-stepper{display:grid;grid-template-columns:repeat(var(--n,6),1fr);gap:5px}
.ds .v-stepper span{height:4px;border-radius:var(--radius-9);background:var(--track)}
.ds .v-stepper span.is-on{background:var(--blue)}
/* Input */
.ds .v-field{display:flex;flex-direction:column;gap:5px}
.ds .v-field label{font-size:12.5px;font-weight:700;color:var(--ink-3)}
.ds .v-input{height:46px;border-radius:var(--radius-14);background:var(--surface);border:1.5px solid var(--line);padding:0 14px;font:inherit;font-size:15px;color:var(--ink);width:100%;box-sizing:border-box}
.ds .v-input::placeholder{color:var(--ink-4)}
.ds .v-input.is-focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-tint)}
.ds .v-input.is-error{border-color:var(--red)}
.ds .v-input:disabled{background:var(--track);color:var(--ink-4);border-color:transparent}
.ds .v-field-error{font-size:12.5px;color:var(--red-ink);font-weight:600}
/* TwoWeightTitle */
.ds .v-title{font-size:30px;line-height:1.06;letter-spacing:-.025em;margin:0}
.ds .v-title .v-soft{display:block;font-weight:300;color:var(--ink-2)}
.ds .v-title .v-bold{font-weight:800}
@media (prefers-reduced-motion: reduce){.ds .v-cta::after,.ds .v-spin,.ds .v-pill-rec::before{animation:none}}
/* ── Картка людини в кабінеті (T-341 Ф1, макет «думає») — розкладка поверх деталей; лише токени ── */
.ds.pc{position:relative;overflow:hidden;border-radius:var(--radius-24);padding:var(--space-16) var(--space-18) var(--space-24)}
.ds .pc-arch{position:absolute;top:0;left:0;width:100%;height:300px;pointer-events:none}
.ds .pc-in{position:relative;display:flex;flex-direction:column;gap:var(--space-14)}
.ds .pc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-14)}
.ds .pc-col{display:flex;flex-direction:column;gap:var(--space-14);min-width:0}
@media (min-width:1100px){.ds .pc-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}}
.ds .pc-back{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:14px;font-weight:600;color:var(--blue);background:none;border:0;padding:0;cursor:pointer}
.ds .pc-head{display:flex;align-items:center;gap:var(--space-14);padding-top:var(--space-6)}
.ds .pc-head .v-av{width:56px;height:56px;font-size:16px}
.ds .pc-head .v-title{overflow-wrap:anywhere}
.ds .pc-meta{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap;margin-top:-4px;font-size:14px;color:var(--ink-2)}
.ds .pc-meta+.pc-meta{margin-top:4px}
.ds .pc-telrow+.pc-meta{margin-top:var(--space-6)}
.ds .pc-do{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-12);align-items:start}
.ds .pc-do-t{font-size:21px;line-height:24px;font-weight:800;letter-spacing:-.02em}
.ds .pc-sub{margin-top:var(--space-6);color:var(--ink-2)}
.ds .pc-say{margin-top:var(--space-14);padding:12px 14px;border-radius:var(--radius-16);background:var(--surface-2)}
.ds .pc-say-k{font-size:13px;font-weight:700;color:var(--ink-3)}
.ds .pc-say-t{margin-top:4px;font-size:16px;line-height:22px;font-weight:600}
.ds .pc-say-more{margin-top:var(--space-10);font-size:14.5px;line-height:20px}
.ds .pc-link{font:inherit;font-size:13px;font-weight:600;color:var(--blue);background:none;border:0;padding:0;cursor:pointer;text-align:left}
.ds .pc-sep{margin-top:var(--space-14);padding-top:var(--space-14);border-top:1px solid var(--line)}
.ds .pc-plan{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:var(--space-12);align-items:center}
.ds .pc-t{font-size:15px;font-weight:700;overflow-wrap:anywhere}
.ds .pc-s{font-size:12.5px;color:var(--ink-2)}
.ds .pc-row2{display:flex;gap:var(--space-8);margin-top:var(--space-14)}
.ds .pc-row2 .v-ghost{flex:1}
.ds .pc-row2 .pc-more{flex:none;width:48px;padding:12px 0}
.ds .pc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}
.ds .pc-tile{padding:10px 12px;border-radius:var(--radius-14);background:var(--surface-2);min-width:0}
.ds .pc-tile b{display:block;font-size:22px;line-height:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.ds .pc-tile span{display:block;margin-top:2px;font-size:12.5px;line-height:16px;color:var(--ink-2)}
.ds .pc-bar{display:grid;grid-template-columns:minmax(0,120px) minmax(0,1fr) 64px;gap:var(--space-10);align-items:center;margin-top:var(--space-8);font-size:14px;font-weight:600}
.ds .pc-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds .pc-bar i{display:block;height:8px;border-radius:var(--radius-9);background:var(--track);overflow:hidden}
.ds .pc-bar s{display:block;height:100%;border-radius:var(--radius-9);background:var(--blue)}
.ds .pc-bar em{font-style:normal;font-size:13px;font-weight:400;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}
/* T-452 «Як читав план» целиком: заходы по дням, время столбцом без переноса, не открытые разделы, строки фактов */
.ds .rd-bars .pc-bar{grid-template-columns:minmax(0,120px) minmax(0,1fr) 84px}
.ds .rd-bars .pc-bar em{white-space:nowrap}
.ds .rd-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:var(--space-8)}
.ds .rd-day{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-3);font-weight:600;white-space:nowrap}
.ds .rd-day i{display:flex;align-items:center;justify-content:center;width:100%;height:28px;border-radius:var(--radius-9);background:var(--surface-2);font-style:normal;font-size:13px;font-weight:800;color:var(--ink-4)}
.ds .rd-day i.on{background:var(--blue-tint);color:var(--blue)}
.ds .rd-day i.on2{background:var(--blue);color:var(--on-blue)}
.ds .rd-note{margin-top:var(--space-10);font-size:13px;line-height:1.4;color:var(--ink-2)}
.ds .rd-note b{color:var(--amber-ink);font-weight:700}
.ds .rd-facts{display:grid;gap:var(--space-10);margin-top:var(--space-14);padding-top:var(--space-14);border-top:1px solid var(--line)}
.ds .rd-fact{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-10);align-items:center;font-size:14px;line-height:1.35;font-weight:600}
.ds .rd-fact small{display:block;font-size:12.5px;font-weight:500;color:var(--ink-3)}
.ds .pc-said summary{cursor:pointer;font-size:14.5px;font-weight:700}
.ds .pc-said-t{margin-top:var(--space-8);white-space:pre-wrap;color:var(--ink-2)}
.ds .pc-phone{display:flex;gap:var(--space-8);align-items:center}
.ds .pc-phone .v-input{flex:1;min-width:0}
.ds .pc-tel{flex:1;font-size:16px;font-weight:700;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
.ds .pc-ev{display:grid;grid-template-columns:58px 10px minmax(0,1fr);column-gap:var(--space-10);align-items:start;padding:8px 0;border-top:1px solid var(--line)}
.ds .pc-ev.pc-first{border-top:0}
.ds .pc-ev-d{font-size:12.5px;font-weight:700;color:var(--ink-3);padding-top:1px}
.ds .pc-ev-k{display:block;width:10px;height:10px;border-radius:50%;background:var(--track);margin-top:6px}
.ds .pc-ev-k.is-pat{background:var(--blue)}
.ds .pc-ev-k.is-money{background:var(--green)}
.ds .pc-ev-k.is-red{background:var(--red)}
.ds .pc-ev-s{display:block;font-size:12.5px;color:var(--ink-2)}
.ds .pc-skel{height:132px;border-radius:var(--radius-24);background:var(--surface);box-shadow:var(--shadow-card)}
.ds .pc-back:focus-visible,.ds .pc-link:focus-visible,.ds .pc-said summary:focus-visible,.ds .pc-tel:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (max-width:900px){.ds.pc{margin:0 -16px;border-radius:0}}
@media (max-width:900px){.ds.pc[data-dictate]{margin:0 -14px}} /* = px-3.5 родителя (ds-pad): −16 давало 392 px на 390, экран сдвигался вбок (T-497; как .ds.tv, T-462) */
.ds .pc-cta{max-width:560px}
/* Картка людини: «Коротко» (Ф3) і нотатки (Ф2) */
.ds .pc-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8)}
.ds .pc-fact span{margin:0 0 2px}
.ds .pc-fact b{font-size:14.5px;line-height:20px;font-weight:700;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
.ds .pc-fact q{display:block;margin-top:var(--space-6);font-size:13px;line-height:18px;color:var(--ink-2);overflow-wrap:anywhere}
.ds .pc-fact em{display:block;margin-top:var(--space-6);font-style:normal;font-size:12.5px;color:var(--ink-3)}
.ds .pc-note{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-12);align-items:start}
.ds .pc-note-t{font-size:14.5px;font-weight:600;white-space:pre-wrap;overflow-wrap:anywhere}
.ds .pc-note-a{display:flex;align-items:center;gap:var(--space-12);margin-top:var(--space-6)}
.ds .pc-play{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--blue-tint);color:var(--blue);font:inherit;font-size:12.5px;font-weight:700;border-radius:var(--radius-pill);padding:4px 10px 4px 8px;cursor:pointer}
.ds .pc-del{font-size:12.5px;color:var(--ink-2)}
.ds .pc-compose{display:flex;align-items:center;gap:var(--space-12)}
.ds .pc-mic{width:52px;height:52px;flex:none;border:0;border-radius:var(--radius-16);background:var(--grad-brand);color:var(--on-grad);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-brand);cursor:pointer}
.ds .pc-ta{height:auto;min-height:84px;padding:10px 14px;resize:vertical;line-height:20px}
.ds .pc-play:focus-visible,.ds .pc-mic:focus-visible,.ds .pc-ta:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* FactChip (T-344 Ф4, components/FactChip): метка зуба й ціни у роботи — заповнена / «не вистачає» (пунктир) / запис */
.ds .v-chip{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 11px;border-radius:var(--radius-pill);border:1.5px solid transparent;font:inherit;font-size:13px;font-weight:600;background:var(--blue-tint);color:var(--blue);cursor:pointer}
.ds .v-chip.is-miss{background:transparent;color:var(--ink-2);border:1.5px dashed var(--dash)}
.ds .v-chip.is-rec{background:var(--red-tint);color:var(--red-ink)}
.ds .v-chip:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pc-work{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6) var(--space-8);padding:var(--space-10) 0}
.ds .pc-work-t{flex:1 1 12em;min-width:0;font-weight:600;overflow-wrap:anywhere}

/* ── T-345 + T-347: «Сьогодні» карточками, «Мої пацієнти», «Знімки», «Передати» (система дизайна від 06.10, «ярче»).
   Усе під .ds; класи розкладки — tv-* (старі .tasks/.task кабінету не чіпаємо). Нічого не пливе: рухається лише блик v-cta і точка запису. ── */
.ds{--v-mesh:radial-gradient(55% 70% at 126% 142%,rgba(125,242,107,.34) 0%,rgba(125,242,107,0) 62%),radial-gradient(60% 75% at -6% -12%,rgba(139,98,216,.55) 0%,rgba(139,98,216,0) 60%),radial-gradient(45% 50% at 78% 0%,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 70%),linear-gradient(115deg,#1E3BD9 0%,#2B63EE 45%,#0A8048 100%)}
.ds{--grad-side:radial-gradient(130% 55% at 0% 0%,rgba(139,98,216,.30) 0%,rgba(139,98,216,0) 60%),radial-gradient(120% 45% at 100% 100%,rgba(125,242,107,.12) 0%,rgba(125,242,107,0) 60%),linear-gradient(180deg,#1A32C8 0%,#142387 45%,#0D1544 100%)}
.ds{--grad-sky:linear-gradient(160deg,#799DF3 0%,#8191F1 100%);--grad-lagoon:linear-gradient(160deg,#6DC5B9 0%,#6EB0E0 100%);--grad-orchid:linear-gradient(160deg,#CA83C7 0%,#9D8AE3 100%);--grad-sunset:linear-gradient(160deg,#F0894F 0%,#F2A557 100%);--grad-brand:linear-gradient(100deg,#1E3BD9 0%,#2B7BF2 35%,#14B87A 70%,#7DF26B 100%)}
.ds .v-prow{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:var(--space-10);align-items:center;padding:12px 0}
.ds .v-prow-name{font-weight:700;font-size:15px;line-height:1.2;overflow-wrap:anywhere;color:var(--ink);text-decoration:none}
.ds .v-prow-meta{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.ds .v-prow-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.ds .v-filter{align-self:flex-start;max-width:100%;border:0;font:inherit;font-size:13px;font-weight:600;padding:7px 12px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);cursor:pointer}
.ds .v-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--track);border-radius:var(--radius-12);padding:3px;font-size:13px;font-weight:600;text-align:center}
.ds .v-seg button{border:0;background:transparent;font:inherit;color:var(--ink-2);padding:7px 0;border-radius:var(--radius-9);cursor:pointer}
.ds .v-seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(11,15,25,.1)}
.ds .v-seg button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .v-cong{position:relative;overflow:hidden;border-radius:var(--radius-24);padding:14px;background:var(--grad-sunset);box-shadow:0 18px 30px -18px rgba(240,137,79,.7)}
.ds .v-cong-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--space-12);align-items:center;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius-20);padding:12px;color:#0B0F19;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.ds .v-cong .v-ib{width:44px;height:44px;background:#FFF0E6;color:#C2410C}
.ds .v-cong b{display:block;font-size:16px;letter-spacing:-.01em}
.ds .v-cong span{font-size:13px;font-weight:600;color:#5E6472}
.ds .v-pastel-lav{background:var(--lavender)}.ds .v-pastel-ice{background:var(--ice)}.ds .v-pastel-peach{background:var(--peach)}
.ds .v-toast{display:grid;grid-template-columns:28px minmax(0,1fr);gap:var(--space-10);align-items:center;background:var(--ink);color:var(--bg);border-radius:var(--radius-16);padding:10px 14px 10px 10px;font-size:14px;font-weight:600;box-shadow:var(--shadow-cta)}
.ds .v-toast .v-ib{width:28px;height:28px}
/* «Сьогодні» */
.ds.tv{position:relative;overflow:hidden;border-radius:var(--radius-24);padding:var(--space-16) var(--space-18) var(--space-24)}
.ds .tv-in{position:relative;display:flex;flex-direction:column;gap:var(--space-14)}
.ds .tv-th{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.ds .tv-sub{font-size:14px;color:var(--ink-2);margin-top:8px;line-height:1.35}
.ds .tv-newp{border:1.6px dashed var(--dash);border-radius:var(--radius-20);padding:13px;display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:14px;font-weight:700;color:var(--blue);width:100%;background:transparent;cursor:pointer}
.ds .tv-tasks{display:flex;flex-direction:column;gap:var(--space-12)}
.ds .tv-task{display:flex;flex-direction:column;gap:var(--space-10)}
.ds .tv-task .v-prow{padding:0}
.ds .tv-said{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-10);align-items:start;border-radius:var(--radius-16);padding:10px 12px}
.ds .tv-said b{display:block;font-size:14px;line-height:1.35;font-weight:600}
.ds .tv-said span.tv-why{display:block;font-size:13px;line-height:1.4;color:var(--ink-2);margin-top:3px}
.ds .tv-say-fold{margin:0 0 8px 46px;font-size:12.5px}.ds .tv-say-fold summary{display:inline;cursor:pointer;list-style:none;font-weight:600;color:var(--blue)}.ds .tv-say-fold summary::-webkit-details-marker{display:none}.ds .tv-say-fold[open] summary{margin-bottom:4px}.ds .tv-say-fold .tv-why{display:block;font-size:13px;line-height:1.4;color:var(--ink-2)}
.ds .tv-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ds .tv-acts .v-ghost{padding:10px 14px}
.ds .tv-skip{border:0;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--ink-3);padding:6px 4px;cursor:pointer}
.ds .tv-after{font-size:12.5px;color:var(--ink-3);line-height:1.35}
.ds .tv-work{display:flex;flex-direction:column;gap:var(--space-10);border-top:1px solid var(--line);padding-top:var(--space-10)}
.ds .tv-tel{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ds .tv-tel b{font-variant-numeric:tabular-nums;font-size:15px}
.ds .tv-tel a.v-ghost{text-decoration:none}
.ds .tv-ask{font-size:13px;font-weight:700}
.ds .tv-outs{display:flex;flex-wrap:wrap;gap:6px}
.ds .tv-outs .v-ghost{padding:8px 12px;font-size:13px}
.ds .tv-outs .tv-bad{color:var(--red-ink)}
.ds .tv-src{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px}
.ds .tv-more,.ds .tv-tail{font-size:12.5px;color:var(--ink-3);padding:0 4px}
.ds .tv-more a,.ds .tv-tail a{color:var(--blue);font-weight:600;text-decoration:none}
.ds .tv-score{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px;font-size:12.5px;font-weight:700;color:#5E6472}
.ds .tv-block{display:flex;flex-direction:column;gap:var(--space-14)}
.ds .tv-h2{font-size:21px;line-height:1.1;letter-spacing:-.02em;margin:0}
.ds .tv-h2 .v-soft{font-weight:300;color:var(--ink-2)}
.ds .tv-h2 .v-bold{font-weight:800}
/* T-462 «Видно само» Ф2: справи рядками у трьох групах, одна кнопка в рядку, тихі дії під «⋯» (екрани v4) */
.ds .tv-group{display:flex;flex-direction:column;padding-bottom:6px}
.ds .tv-group .v-card-title{margin-bottom:2px}
.ds .tv-row{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ds .tv-group .v-card-title+.tv-row{border-top:0}
/* T-475: група «Старі плани з Clinic Cards» — пояснення під заголовком, «Показати ще» посиланням, рядок про записаних (екрани Ф2в) */
.ds .tv-group .tv-oldsub{margin:0 0 4px}
.ds .tv-oldmore{padding:10px 4px 2px;margin:0}
.ds .tv-oldtail{padding:8px 4px 0;margin:0}
.ds .tv-link{font:inherit;font-weight:600;color:var(--blue);background:none;border:0;padding:0;cursor:pointer}
.ds .tv-row .v-prow{border-top:0;padding:12px 0}
.ds .tv-row .v-prow-name{text-decoration:none;color:var(--ink);margin-right:2px}
.ds .tv-row .v-pill{vertical-align:2px}
.ds .tv-row .v-prow-meta{line-height:1.35}
.ds .tv-right{flex-direction:row;align-items:center;gap:10px}
.ds .tv-rowacts{display:inline-flex;align-items:center;gap:6px}
.ds .tv-btn{display:inline-flex;align-items:center;gap:6px;border:0;font:inherit;font-size:13px;font-weight:700;color:var(--cta-ink);background:linear-gradient(180deg,var(--cta-top),var(--cta-bottom));border-radius:var(--radius-12);padding:9px 13px;box-shadow:var(--shadow-ctrl);white-space:nowrap;cursor:pointer;text-decoration:none}
.ds .tv-btn .v-ic{width:16px;height:16px;color:var(--cta-tile-ink)}
.ds .tv-btn:disabled{opacity:.55;cursor:default}
.ds .tv-btn:focus-visible,.ds .tv-dots:focus-visible,.ds .tv-mi:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .tv-dots{width:36px;height:36px;border-radius:var(--radius-9);border:0;background:var(--surface-2);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.ds .tv-dots .v-ic{width:20px;height:20px;stroke-width:3}
.ds .tv-dots.on{background:var(--blue-tint);color:var(--blue)}
.ds .tv-menu{align-self:flex-end;display:flex;flex-direction:column;min-width:230px;background:var(--surface);border-radius:var(--radius-16);box-shadow:0 0 0 1px var(--line),0 18px 40px -18px rgba(11,15,25,.45);padding:4px;margin:-4px 0 12px}
.ds .tv-mi{display:flex;align-items:center;gap:10px;border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--ink);padding:11px 12px;text-align:left;cursor:pointer;border-radius:var(--radius-12)}
.ds .tv-mi+.tv-mi{border-top:1px solid var(--line);border-radius:0}
.ds .tv-mi.tv-bad{color:var(--red-ink)}
.ds .tv-row .tv-work{background:var(--surface-2);border-top:0;border-radius:var(--radius-16);padding:12px;margin-bottom:12px}
.ds .tv-gs{font-size:13px;padding:8px 12px;border-radius:var(--radius-12);text-decoration:none}
.ds .tv-gs .v-ic{width:15px;height:15px}
@media (max-width:899px){
  .ds .tv-row .v-prow{grid-template-columns:40px minmax(0,1fr)}
  .ds .tv-row .tv-right{grid-column:2;justify-content:space-between;width:100%}
  /* T-530: строка «Сьогодні в клініці» на телефоне — имя · время · сумма одной строкой, «що» в одну строку с многоточием (иначе «Надіслати» уходит под нижнюю панель) */
  .ds .tv-row[data-group="clinic"] .v-prow{grid-template-columns:40px minmax(0,1fr) auto}
  .ds .tv-row[data-group="clinic"] .tv-right{grid-column:auto;width:auto;justify-content:flex-end}
  .ds .tv-row[data-group="clinic"] .v-prow-meta .tv-what{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ds .tv-row[data-group="clinic"] .v-prow-meta .tv-doc{display:block;font-size:11.5px}
  /* не больше 2 строк «в клинике» над «Надіслати»: остальные — за «ще N у клініці ›» */
  .ds .tv-clinic-x[data-open="false"]{display:none}
  /* пояснение группы на телефоне не нужно каждый день — две строки места первой «Надіслати» */
  .ds .tv-clinic-sub{display:none}
}
@media (min-width:900px){.ds .tv-clinic-more{display:none}}
@media (min-width:1100px){
  .ds .v-title.tv-title{font-size:36px}
}
@media (max-width:900px){.ds.tv{margin:0 -14px;border-radius:0}} /* = px-3.5 родителя (ds-pad): было −16 px — экран на 390 шире на 4 px, сдвигался вбок (T-462) */
.ds .tv-plate{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;border-radius:var(--radius-pill);padding:3px 9px;background:var(--blue-tint);color:var(--blue)}
.ds .tv-people{display:flex;flex-direction:column}
.ds .tv-person{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:var(--space-10);align-items:center;padding:10px 0;border-top:1px solid var(--line);cursor:pointer;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;color:inherit;text-align:left;width:100%}
.ds .tv-person:first-child{border-top:0}
.ds .tv-person:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* Знімки */
.ds .pm-bar{display:flex;gap:var(--space-8);flex-wrap:wrap}
.ds .pm-bar .v-ghost{flex:1;min-width:120px}
.ds .pm-kind{margin:var(--space-10) 0}
.ds .pm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8);margin-top:var(--space-12)}
.ds .pm-th{position:relative;display:block;border:0;padding:0;background:var(--surface-2);border-radius:var(--radius-14);overflow:hidden;aspect-ratio:1;cursor:pointer;text-align:left;font:inherit}
.ds .pm-th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ds .pm-th span{position:absolute;left:4px;right:4px;bottom:4px;font-size:11.5px;font-weight:700;line-height:1.2;color:#FFFFFF;background:rgba(11,15,25,.62);border-radius:var(--radius-9);padding:2px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds .pm-th:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pm-sub{font-size:12.5px;font-weight:700;color:var(--ink-3);margin-top:var(--space-14)}
.ds .pm-wait{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);margin-top:var(--space-10)}
.ds .pm-err{font-size:13px;font-weight:600;color:var(--red-ink);margin-top:var(--space-10)}
/* лист поверх: перегляд знімка, правка, «Передати» (на 390 — знизу) */
.pm-sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:rgba(11,15,25,.55)}
.pm-sheet .pm-box{width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:var(--radius-24) var(--radius-24) 0 0;padding:var(--space-16) var(--space-18) var(--space-24);box-shadow:var(--shadow-bar);background:var(--surface);color:var(--ink);display:flex;flex-direction:column;gap:var(--space-12)}
/* T-439: лист длиннее экрана прокручивается, а не ужимает детали — у .v-cta overflow:hidden, без этого кнопка сплющивалась в полоску 16 px */
.pm-sheet .pm-box>*{flex-shrink:0}
@media (min-width:700px){.pm-sheet{align-items:center}.pm-sheet .pm-box{border-radius:var(--radius-24)}}
.pm-sheet .pm-big{display:block;width:100%;max-height:62vh;object-fit:contain;border-radius:var(--radius-16);background:var(--surface-2)}
.pm-sheet .pm-row{display:flex;gap:var(--space-8);flex-wrap:wrap}
.pm-sheet .pm-opt{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;font:inherit;font-size:15px;font-weight:600;text-align:left;color:var(--ink);background:var(--surface-2);border-radius:var(--radius-14);padding:12px 14px;cursor:pointer}
.pm-sheet .pm-opt:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.pm-sheet h3{margin:0;font-size:16px;letter-spacing:-.01em}
.pm-sheet label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:var(--ink-3)}
.pm-sheet select,.pm-sheet input[type=date]{height:46px;border-radius:var(--radius-14);background:var(--surface);color:var(--ink);border:1.5px solid var(--line);padding:0 12px;font:inherit;font-size:15px}
.pm-sheet textarea{border-radius:var(--radius-14);background:var(--surface);color:var(--ink);border:1.5px solid var(--line);padding:10px 12px;font:inherit;font-size:16px;resize:vertical} /* 16px: iOS не зумит поле */
.pm-sheet .pm-cap{font-size:15px;font-weight:600;line-height:1.35;color:var(--ink)}
.ds .pc-hand{margin-left:auto}
.ds .pc-ev-h{font-weight:600}
/* ── Рамка кабінету (T-351): меню на компʼютері, нижня панель телефону, «Ще» — у клінік з ключем картки.
   Деталі Sidebar і TabBar з components/bundle.css + доповнення рамки з прийнятого макета
   docs/2026-10-06-t351-ramka-maket.html. Одна копія вигляду для кабінету (prototype-try-dveri.html) і сторінок
   сайту (CabinetV3Shell). Корінь рамки — сам елемент: <aside class="ds v-side">, <nav class="ds v-tabbar">,
   <div class="ds v-more">; токени .ds діють на ньому самому, старі екрани в головній колонці їх не бачать. */
.ds .v-nav,.ds .v-rec,.ds .v-newplan,.ds .v-srch,.ds .v-tab,.ds .v-foot-links>*,.ds .v-theme,.ds .v-logo{font:inherit;border:0;background:none;color:inherit;text-decoration:none;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.ds.v-side{display:flex;flex-direction:column;gap:4px;width:256px;padding:18px 14px;background:var(--surface-2);background:color-mix(in srgb,var(--bg) 70%,var(--surface));border-right:1px solid var(--line);box-sizing:border-box;color:var(--ink);font-size:14px;line-height:1.3}
.ds .v-logo{display:flex;align-items:center;gap:9px;padding:2px 8px 16px;font-weight:800;font-size:16px;letter-spacing:-.02em;color:var(--ink);cursor:default}
/* знак — той самий файл, що значок вкладки (apps/web/app/icon.svg): «V» контуром Manrope, не системним шрифтом */
.ds .v-logo i{width:26px;height:26px;border-radius:22%;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><defs><linearGradient id='g' x1='0.077' y1='0.179' x2='0.923' y2='0.821'><stop offset='0' stop-color='%231E3BD9'/><stop offset='0.45' stop-color='%232B63EE'/><stop offset='1' stop-color='%230A8048'/></linearGradient></defs><rect width='100' height='100' rx='22' fill='url(%23g)'/><path transform='translate(29.13 73) scale(0.03194 -0.03194)' fill='%23FFFFFF' d='M450 0 10 1440H290L650 256L1016 1440H1296L856 0Z'/></svg>") center/100% 100% no-repeat;display:block;position:relative;flex:none}
.ds.v-side .v-logo i{box-shadow:inset 0 0 0 1px rgba(255,255,255,.32)}
.ds .v-logo img{width:28px;height:28px;border-radius:var(--radius-9);object-fit:contain;background:#FFFFFF;flex:none}
.ds .v-logo>span{line-height:1.1;min-width:0}
.ds .v-logo small{display:block;font-size:12.5px;font-weight:600;color:var(--ink-3);letter-spacing:0;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds .v-srch{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-12);background:var(--surface);box-shadow:var(--shadow-ctrl);font-size:14px;font-weight:600;color:var(--ink-3);margin-bottom:12px}
.ds .v-srch kbd{margin-left:auto;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3);background:var(--surface-2);border-radius:var(--radius-9);padding:1px 6px}
.ds .v-rec{display:flex;align-items:center;gap:10px;border-radius:var(--radius-16);padding:8px 10px 8px 8px;background:linear-gradient(180deg,var(--cta-top),var(--cta-bottom));color:var(--cta-ink);font-weight:700;font-size:14px;line-height:1.25;margin-bottom:12px;box-shadow:var(--shadow-cta)}
.ds .v-rec>span{width:32px;height:32px;border-radius:var(--radius-12);background:var(--grad-brand);display:flex;align-items:center;justify-content:center;color:#FFFFFF;flex:none}
.ds .v-newplan{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 8px;border-radius:var(--radius-16);background:var(--surface);box-shadow:var(--shadow-ctrl);font-weight:700;font-size:14px;color:var(--ink);margin:-4px 0 12px}
.ds .v-newplan>span{width:32px;height:32px;border-radius:var(--radius-12);background:var(--blue-tint);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none}
.ds .v-nav{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-12);font-size:14px;font-weight:600;color:var(--ink-2)}
.ds .v-nav:hover{color:var(--ink)}
.ds .v-nav.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-ctrl)}
.ds .v-nav.is-on .v-ic{color:var(--blue)}
.ds .v-nav em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums}
.ds .v-sect{font-size:12.5px;font-weight:700;color:var(--ink-3);padding:14px 10px 4px}
.ds .v-side-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.ds .v-me{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:0 6px}
.ds .v-me .v-av{width:36px;height:36px;font-size:13px;overflow:hidden}
.ds .v-me .v-av img{width:100%;height:100%;object-fit:cover}
.ds .v-me b{display:block;font-size:14px;line-height:1.2;overflow-wrap:anywhere}
.ds .v-me small{font-size:12.5px;color:var(--ink-3)}
.ds .v-foot-links{display:flex;gap:4px}
.ds .v-foot-links>*{flex:1;text-align:center;font-size:12.5px;font-weight:600;color:var(--ink-2);padding:6px;border-radius:var(--radius-9)}
.ds .v-foot-links>*:hover{background:var(--surface);color:var(--ink)}
.ds .v-theme{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-3);padding:4px 10px}
.ds .v-theme .v-ic{width:16px;height:16px}
.ds.v-tabbar{background:var(--tabbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-26);display:flex;align-items:flex-end;padding:8px 4px;font-size:11.5px;font-weight:600;line-height:1.15;color:var(--ink-3);text-align:center;box-shadow:var(--shadow-bar)}
.ds .v-tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:2px 0;color:var(--ink-3);text-align:center}
/* колонка мікрофона ширша: «Надиктувати» вміщується в 11px на 360–390 (дрібніше 11px текст не робимо — правило системи) */
.ds .v-tab:has(.v-tab-mic){flex-grow:1.35}
.ds .v-tab.is-on{color:var(--blue)}
.ds .v-tab>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}
.ds .v-tab-mic{width:46px;height:46px;border-radius:var(--radius-14);background:var(--grad-brand);display:flex;align-items:center;justify-content:center;margin:0 auto;color:#FFFFFF;box-shadow:0 10px 18px -8px rgba(30,59,217,.6)}
.ds .v-tab-mic.is-rec{background:var(--red);box-shadow:0 0 0 6px var(--red-tint)}
.ds.v-more{background:var(--surface);color:var(--ink);border-radius:var(--radius-20);padding:6px;box-shadow:var(--shadow-bar);display:flex;flex-direction:column;gap:2px;min-width:220px;font-size:15px}
.ds.v-more .v-nav{font-size:15px;padding:11px 12px}
.ds .v-nav:focus-visible,.ds .v-rec:focus-visible,.ds .v-newplan:focus-visible,.ds .v-srch:focus-visible,.ds .v-tab:focus-visible,.ds .v-foot-links>*:focus-visible,.ds .v-theme:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* ── T-351 B — сторінки сайту (React-рамка CabinetDsShell): розкладка, фон колонки, «Ще» над панеллю, смужка менеджера.
   Лише під клінікою з ключем; .ds-frame/.ds-pad — не .ds (токени .ds перефарбували б старий вміст), тож фон — ті самі hex, що --bg. */
.ds-frame{background:#F3F4F7}
:root[data-theme="dark"] .ds-frame{background:#0E1015}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ds-frame{background:#0E1015}}
.ds.v-side{display:none}
.ds.v-tabbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:40}
.ds-pad{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
@media (max-width:767px){.ds-pad .sticky[class*="bottom-"]{bottom:calc(104px + env(safe-area-inset-bottom,0px))}}
@media (min-width:768px){
.ds.v-side{display:flex;position:sticky;top:0;height:100vh;flex-shrink:0;overflow-y:auto}
.ds.v-tabbar{display:none}
.ds-pad{padding-bottom:32px}
}
.ds .v-more-wrap{position:relative;min-width:0;flex:1 1 0;display:flex}
.ds .v-more-wrap>summary{width:100%}
/* вузький телефон (360): панель ближче до країв, як у кабінеті — «Результати» вміщується в 11px поруч із «Ще» на повну колонку */
@media (max-width:380px){.ds.v-tabbar{left:8px;right:8px;padding-left:2px;padding-right:2px}}
.ds .v-more-wrap>summary{list-style:none;cursor:pointer}
.ds .v-more-wrap>summary::-webkit-details-marker{display:none}
.ds .v-more-wrap>.v-more{position:absolute;right:0;bottom:calc(100% + 18px);width:max-content}
.ds .v-more-wrap[open]>summary{color:var(--blue)}
.ds .v-me .v-av{display:flex}
.ds .v-logo{text-decoration:none}
.ds.v-mgr{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 14px 0;padding:9px 12px;border-radius:var(--radius-16);background:linear-gradient(135deg,var(--ice) 0%,var(--green-tint) 100%);font-size:14px;line-height:1.4;color:var(--ink-2)}
@media (min-width:768px){.ds.v-mgr{margin:32px 32px 0}}
.ds.v-mgr p{margin:0;display:flex;align-items:center;min-width:0}
.ds.v-mgr .v-mgr-t{flex:none;white-space:nowrap}
.ds.v-mgr b{color:var(--ink)}
.ds.v-mgr a{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:13px 0;margin:-13px 0;color:var(--blue);font-weight:600;text-decoration:none}
.ds.v-mgr .v-mgr-dot{margin:0 8px;color:var(--ink-3)}
.ds.v-mgr button{flex:none;border:0;background:none;color:var(--ink-3);cursor:pointer;padding:14px;margin:-14px}
/* T-534 Ф3: на телефоне смужка менеджера — один рядок */
@media (max-width:480px){.ds.v-mgr{margin:6px 14px 0;padding:4px 10px;font-size:13px}.ds.v-mgr .v-mgr-dot{margin:0 5px}}
/* Бокова панель у кольорі бренду (Андрій 08.10, варіант A): глибокий синій фірмового градієнта з фіолетовим відблиском угорі
   й салатовим унизу; текст білий, вибраний пункт — скляна плашка з жовтою іконкою. Лише вигляд: пункти, слова й порядок ті самі. */
.ds.v-side{background:var(--grad-side);border-right:0;color:#FFFFFF}
.ds.v-side .v-logo,.ds.v-side .v-logo small{color:#FFFFFF}
.ds.v-side .v-logo small{opacity:.72}
.ds.v-side .v-srch{background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);color:rgba(255,255,255,.85)}
.ds.v-side .v-srch kbd{background:rgba(255,255,255,.18);color:#FFFFFF}
.ds.v-side .v-nav{color:rgba(255,255,255,.82)}
.ds.v-side .v-nav:hover{color:#FFFFFF;background:rgba(255,255,255,.08)}
.ds.v-side .v-nav.is-on{background:rgba(255,255,255,.18);color:#FFFFFF;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.ds.v-side .v-nav.is-on .v-ic{color:#FFCE00}
.ds.v-side .v-nav em{color:rgba(255,255,255,.78)}
.ds.v-side .v-more-wrap[open]>summary{color:#FFFFFF}
.ds.v-side .v-sect{color:rgba(255,255,255,.62)}
.ds.v-side .v-side-foot{border-top-color:rgba(255,255,255,.16)}
.ds.v-side .v-me b{color:#FFFFFF}
.ds.v-side .v-me small{color:rgba(255,255,255,.72)}
.ds.v-side .v-foot-links>*{color:rgba(255,255,255,.8)}
.ds.v-side .v-foot-links>*:hover{background:rgba(255,255,255,.1);color:#FFFFFF}
.ds.v-side .v-theme{color:rgba(255,255,255,.72)}
.ds.v-side .v-newplan{background:rgba(255,255,255,.96);color:#0B0F19}
.ds.v-side :is(.v-nav,.v-srch,.v-rec,.v-newplan,.v-foot-links>*,.v-theme,.v-logo):focus-visible{outline-color:#FFFFFF}
/* T-367: «Ще» в боковій — details-обгортка; лист position:fixed без координат стоїть на своєму місці в потоці (під пунктом),
   але не обрізається overflow-y:auto боковій; кольори листа — як у .ds.v-more .v-nav (светла й темна тема — через токени). */
/* Бокова — sticky, тобто свій шар відмальовки: без z-index головна колонка малювалась поверх, і лист «Ще» ховався під нею
   (стенд T-367, 09.10). Бокова над головною; модалки й тости (z 50–70, на корені) — однаково вище. */
.ds.v-side{z-index:30}
.ds.v-side .v-more-wrap.v-more-side{flex:none;display:block}
.ds.v-side .v-more-wrap.v-more-side>summary{display:flex;list-style:none;cursor:pointer}
.ds.v-side .v-more-wrap.v-more-side>.v-more{position:fixed;right:auto;bottom:auto;margin:-36px 0 0 232px;z-index:50}
.ds.v-side .v-more-side .v-more .v-nav{color:var(--ink-2)}
.ds.v-side .v-more-side .v-more .v-nav:hover{color:var(--ink);background:var(--surface-2)}
.ds.v-side .v-more-side .v-more .v-nav.is-on{background:var(--surface-2);color:var(--ink);box-shadow:none}
.ds.v-side .v-more-side .v-more .v-nav.is-on .v-ic{color:var(--blue)}
.ds.v-side .v-more-side .v-more .v-nav:focus-visible{outline-color:var(--focus)}
.ds.v-side .v-nav .v-tab-mic{width:26px;height:26px;margin:0;border-radius:var(--radius-9);box-shadow:none;flex:none}
.ds.v-side .v-nav .v-tab-mic .v-ic{width:18px;height:18px}

/* T-383 (в): AiCard, SavedBanner, LoadingSteps — детали системы, нужные кабинету с ключом */
.ds .v-ai{--ai-grad:var(--grad-text);background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--ai-grad) border-box;border:1.5px solid transparent;border-radius:var(--radius-16);padding:12px 14px;color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ds .v-ai{--ai-grad:linear-gradient(115deg,var(--blue) 0%,var(--green) 100%)}}
:root[data-theme="dark"] .ds .v-ai{--ai-grad:linear-gradient(115deg,var(--blue) 0%,var(--green) 100%)}
.ds .v-saved{display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--space-12);align-items:center;background:var(--green-tint);border-radius:var(--radius-20);padding:14px}
.ds .v-saved .v-ib{width:40px;height:40px;background:var(--surface);color:var(--green-ink)}
.ds .v-saved b{display:block;font-size:16px;letter-spacing:-.01em}
.ds .v-saved span{font-size:13px;color:var(--green-ink)}
.ds .v-steps-load{display:grid;gap:var(--space-8)}
.ds .v-steps-load>div{display:grid;grid-template-columns:22px minmax(0,1fr);gap:var(--space-10);align-items:center;font-size:14px}
.ds .v-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.ds .v-dot-done{background:var(--green-tint);color:var(--green-ink)}
.ds .v-dot-now{border:2px solid var(--blue);border-right-color:transparent;animation:v-spin .9s linear infinite}
.ds .v-dot-wait{background:var(--track)}
.ds .v-steps-load .is-now{font-weight:700}
.ds .v-steps-load .is-wait{color:var(--ink-3)}
@media (prefers-reduced-motion: reduce){.ds .v-dot-now{animation:none}}

/* T-481 (Ф4б): карточка выступала за окно на 2 px: поля -16px против отступа оболочки px-3.5 (14px). Запись из карточки в поле внизу — строкой над полем (`.pc-comp .v-card`, ниже). */
@media (max-width:900px){.ds.pc[data-patient-card]{margin-inline:-14px}}

/* T-479 Ф4б «Карточка — лента» (шаг 6): шапка, лента строк, «Що сказати» над главной кнопкой, поле внизу */
.ds .pc-head .v-title{flex:1;min-width:0}
.ds .pc-hbox{position:relative;margin-left:auto;flex:none}
.ds .pc-dots{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--surface-2);color:var(--ink-2);cursor:pointer}
.ds .pc-hact:not(:has(button, a)) + .pc-dots{display:none}
/* T-534 Ф3: «Передати» — только в «⋯», на любой ширине */
.ds .pc-hact{display:none;position:absolute;right:0;top:46px;z-index:5;flex-direction:column;align-items:stretch;min-width:210px;padding:6px;border-radius:var(--radius-16);background:var(--surface);box-shadow:var(--shadow-card)}
.ds .pc-hact.is-open{display:flex}
.ds .pc-hact .pc-hand{margin-left:0}
.ds .pc-answer{display:flex;flex-direction:column;gap:var(--space-10)}
.ds .pc-answer-a{padding:var(--space-10) var(--space-12);border-radius:var(--radius-16);background:var(--surface-2)}
.ds .pc-telrow{display:flex;align-items:center;gap:var(--space-8);margin-top:var(--space-6);font-size:14px;color:var(--ink-2);flex-wrap:wrap}
.ds .pc-telic{display:inline-flex;color:var(--ink-3)}
.ds .pc-telrow .pc-tel{flex:none;font-size:14px}
.ds .pc-telrow .v-input{flex:1 1 0;max-width:220px;min-width:0;padding-block:8px}
.ds .pc-telrow .v-ghost{padding:8px 14px}
@media (max-width:700px){
  /* Пакет «причесать» D (4.4): «Запитати колегу» не в «⋯» — строкой под именем */
  .ds .pc-head{flex-wrap:wrap}
  .ds .pc-head .pc-ask{order:9;flex:1 0 100%;justify-content:center}
  .ds .pc-head .pc-s{order:10;flex:1 0 100%}
}
.ds .pc-lenta{padding:0 var(--space-16);overflow:hidden}
.ds .pc-lenta:not(:has([data-pc-row],.pc-prow)){display:none}
.ds .pc-lenta-in{margin-top:-1px}
.ds .pc-row,.ds .pc-prow{border-top:1px solid var(--line)}
.ds .pc-row>summary,.ds .pc-prow{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:var(--space-12);align-items:center;padding:var(--space-12) 0}
.ds .pc-row>summary{cursor:pointer;list-style:none}
.ds .pc-row>summary::-webkit-details-marker{display:none}
.ds .pc-row>summary::after{content:'';width:8px;height:8px;margin:-3px 4px 0 0;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:rotate(45deg)}
.ds .pc-row[open]>summary::after{margin-top:3px;transform:rotate(-135deg)}
.ds .pc-row>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pc-rtx{display:flex;flex-direction:column;gap:2px;min-width:0}
.ds .pc-rt{font-size:15px;font-weight:700;overflow-wrap:anywhere}
.ds .pc-rs{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}
.ds .pc-row[open]>summary .pc-rs{display:block;-webkit-line-clamp:unset}
/* T-536 (раскадровка T-544, кадр 43): у владельца строка «Власник лише дивиться…» видна целиком, обрезка двумя строками её не прячет */
.ds .pc-rs:has(>[data-pc=owner-note]){display:block;-webkit-line-clamp:unset}
.ds .pc-row-body{display:flex;flex-direction:column;gap:var(--space-10);min-width:0;padding:0 0 var(--space-14) 48px}
.ds .pc-acts{display:flex;align-items:center;gap:var(--space-8)}
.ds .pc-acts .pc-more{width:40px;height:40px;padding:0;flex:none}
.ds .pc-nowrap{white-space:nowrap}
.ds .pc-lenta .v-card{padding:0;border-radius:0;background:none;box-shadow:none}
.ds .pc-say-row{padding:0 var(--space-14);border:0;border-radius:var(--radius-16);background:var(--surface);box-shadow:var(--shadow-card)}
.ds .pc-say-row .pc-row-body{padding-left:0}
@media (max-width:480px){.ds .pc-cta .v-cta{font-size:15px;gap:8px}}
.ds .pc-slot:empty{display:none}
.ds .pc-comp{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);padding:var(--space-8);border-radius:var(--radius-24);background:var(--surface);box-shadow:var(--shadow-card)}
.ds .pc-comp .v-card,.ds .pc-comp-full{flex:1 1 100%;order:-1;min-width:0}
.ds .pc-comp .v-card{background:var(--surface-2);box-shadow:none}
.ds .pc-comp-msg{flex:1 1 100%;order:10}
.ds .pc-clip,.ds .pc-micbtn,.ds .pc-sendbtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--surface-2);color:var(--ink-2);cursor:pointer}
.ds .pc-micbtn,.ds .pc-sendbtn{order:3;background:var(--blue);color:var(--on-blue)}
.ds .pc-inp{flex:1 1 0;min-width:0;height:44px;padding:0 var(--space-8);border:0;background:transparent;font:inherit;font-size:16px;color:var(--ink)}
.ds .pc-inp:focus-visible,.ds .pc-clip:focus-visible,.ds .pc-micbtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pc-mkplan{padding:var(--space-8) 0 var(--space-12) 48px;border-top:1px solid var(--line)}
.ds .pc-ctawork{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8);margin-top:var(--space-10);padding:var(--space-12) var(--space-14);border-radius:var(--radius-16);background:var(--surface);box-shadow:var(--shadow-card)}

/* T-506 Ф5: «Надіслати» на экране плана прилипает к низу на телефоне (над нижней панелью, как .ds-pad .sticky) */
@media (max-width:700px){.ds[data-plan-screen] > .v-cta[data-send-button]{position:sticky;bottom:calc(104px + env(safe-area-inset-bottom,0px));z-index:5}}

/* T-536: карточка пациента по принятому макету 22.10 (UKxBhds4) — открытые карточки вместо свёрнутых строк ленты.
   Детали — из системы дизайна макета (v-num, v-cap, v-msg-*, v-mic), остальное — те же переменные. */
.ds .v-num{width:26px;height:26px;border-radius:50%;background:var(--blue);color:var(--on-blue);font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ds .v-cap{font-size:12.5px;color:var(--ink-3);font-weight:600}
.ds .v-msg-who{font-size:13px;font-weight:700}
.ds .v-msg-when{font-size:12.5px;color:var(--ink-3);font-weight:600}
.ds .v-mic{width:46px;height:46px;border-radius:50%;border:0;background:var(--grad-brand);color:var(--on-grad,#FFFFFF);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 18px -8px rgba(30,59,217,.6);flex:none;cursor:pointer}
.ds .v-mic:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pc-card{display:flex;flex-direction:column;gap:var(--space-10);padding:18px 22px;min-width:0}
.ds .pc-card-h{margin-bottom:0;align-items:center}
.ds .pc-card-h .pc-link{font-size:13px;white-space:nowrap}
.ds .pc-card-h .pc-acts{gap:var(--space-10)}
/* шапка: «Записать приём» и строка чтения */
.ds .pc-hrec{flex:none}
.ds .pc-readline{font-size:14px;color:var(--ink)}
@media (max-width:700px){.ds .pc-head .pc-hrec{order:8;flex:1 0 100%}}
/* «Что сделать сейчас» — синяя рамка (v-ai), реплики, «Что сказать», кнопка внутри */
.ds .pc-now{display:flex;flex-direction:column;gap:var(--space-14);padding:18px 22px;border-radius:var(--radius-20)}
.ds .pc-now-h{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);flex-wrap:wrap}
.ds .pc-now-h>.v-cap:first-child{color:var(--blue)}
.ds .pc-now-why{font-size:16px;font-weight:600;line-height:1.4}
.ds .pc-msg{display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--space-12)}
.ds .pc-msg>.v-av{width:36px;height:36px;font-size:13px}
.ds .pc-msg-b{display:flex;flex-direction:column;gap:6px;min-width:0}
.ds .pc-msg-t{font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.ds .pc-msg.is-new{padding:12px;margin:0 -12px;border-radius:var(--radius-16);background:var(--blue-tint)}
.ds .pc-msg-att{display:flex;gap:var(--space-8);align-items:center;flex-wrap:wrap}
.ds .pc-msg-att img{width:96px;height:64px;object-fit:cover;border-radius:var(--radius-12);display:block}
.ds .pc-now-f{display:flex;justify-content:space-between;align-items:center;gap:var(--space-10);flex-wrap:wrap}
.ds .pc-now .v-ghost[data-pc="reply"],.ds .v-ghost.is-blue{background:var(--blue);color:var(--on-blue)}
.ds .pc-now .pc-note-a{margin-top:0}
.ds .pc-saybox{display:flex;flex-direction:column;gap:var(--space-8);padding:14px 16px;border-radius:var(--radius-16);background:var(--surface-2)}
.ds .pc-saybox-h{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8)}
.ds .pc-saylist{display:grid;grid-template-columns:22px minmax(0,1fr);gap:var(--space-8) var(--space-10);font-size:14.5px;line-height:1.45}
.ds .pc-saylist .pc-ev-s{grid-column:2}
/* T-536: довод перед фразой «Что сказать» — обычным весом, фраза в кавычках — как была */
.ds .pc-say-r{font-weight:400;color:var(--ink-2)}
/* T-536 (макет 22.10 Admin): главная кнопка в синей карточке — компактная «Позвонить · номер» (иконка, текст), без плитки и стрелки; рядом «Скопировать сообщение» */
.ds .pc-now-acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);margin-top:var(--space-12)}
.ds .pc-now-acts .tv-acts{margin-top:0}
.ds .pc-now-acts > .v-ghost{width:auto !important;margin-top:0 !important}
.ds .pc-now .pc-cta{max-width:100%}
.ds .pc-now .pc-cta .v-cta{display:inline-flex;width:auto;max-width:100%;gap:var(--space-8);padding:12px 18px;border-radius:var(--radius-12);font-size:15px;background:var(--blue);color:var(--on-blue);box-shadow:var(--shadow-brand)}
.ds .pc-now .pc-cta .v-cta::after{display:none}
.ds .pc-now .pc-cta .v-cta-tile{width:auto;height:auto;border-radius:0;background:none;color:inherit}
.ds .pc-now .pc-cta .v-cta > svg:last-child{display:none}
.ds .pc-now .pc-cta .v-cta-tile svg{width:18px;height:18px}
.ds .pc-qreply{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:var(--space-10);align-items:center}
/* «Коротко» таблицей */
.ds .pc-kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 14px;font-size:14.5px}
.ds .pc-kv>div{min-width:0;overflow-wrap:anywhere}
.ds .pc-kv q{display:block;margin-top:2px;font-size:13px;line-height:18px;color:var(--ink-2)}
/* План карточкой: сумма, этапы, «Как читали» внутри */
.ds .pc-ptot{display:flex;align-items:baseline;gap:var(--space-10);flex-wrap:wrap}
.ds .pc-ptot b{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.ds .pc-ptot span{font-size:14px;color:var(--ink-2)}
.ds .pc-stg{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:var(--space-12);align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.ds .pc-stg.is-q{padding:11px 12px;margin:0 -12px;border-top-color:transparent;border-radius:var(--radius-16);background:var(--blue-tint)}
.ds .pc-stg.is-done .v-num{background:var(--green)}
.ds .pc-stg-n{display:flex;flex-wrap:wrap;gap:6px var(--space-8);align-items:center;min-width:0}
.ds .pc-stg-n>b{font-weight:600;overflow-wrap:anywhere}
.ds .pc-stg .v-chip{padding:3px 9px}
.ds .pc-plan-card .pc-row>summary{padding:10px 0}
.ds .pc-plan-card .pc-mkplan{padding:var(--space-10) 0 0;border-top:1px solid var(--line)}
.ds .pc-plan-card .pc-gaps{font-size:13px;font-weight:600;color:var(--amber-ink)}
.ds .pc-read{display:flex;flex-direction:column;gap:var(--space-12);margin-top:var(--space-4,4px);padding-top:var(--space-14);border-top:1px solid var(--line)}
.ds .pc-read-h{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);flex-wrap:wrap}
.ds .pc-read-h b{font-size:15px}
.ds .pc-read .pc-bar{margin-top:0;grid-template-columns:minmax(0,120px) minmax(0,1fr) 64px}
.ds .pc-ins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;font-size:13px;line-height:1.4}
.ds .pc-ins .is-soft{color:var(--ink-3)}
/* Медкарта карточкой */
.ds .pc-mc{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:var(--space-12);align-items:center;padding:16px 22px}
.ds .pc-mc-t{font-weight:700}
/* «Что было» открытой лентой */
.ds .pc-tl{display:grid;grid-template-columns:10px 96px minmax(0,1fr);gap:var(--space-12);align-items:start;padding:9px 0;font-size:14px}
.ds .pc-tl+.pc-tl{border-top:1px solid var(--line)}
.ds .pc-dot{width:10px;height:10px;border-radius:50%;background:var(--dash);margin-top:5px}
.ds .pc-dot.is-pat{background:var(--blue)}
.ds .pc-dot.is-money{background:var(--green)}
.ds .pc-dot.is-red{background:var(--red)}
/* Обсуждение, заметки — отдельной карточкой-строкой */
.ds .pc-card-row{padding:0 22px;border-top:0;border-radius:var(--radius-24);background:var(--surface);box-shadow:var(--shadow-card)}
.ds .pc-card-row>summary{padding:14px 0}
.ds .pc-card-row>summary .pc-open{color:var(--blue);font-size:14px;font-weight:600;white-space:nowrap}
.ds .pc-card-row>summary::after{display:none}
.ds .pc-card-row[open]>summary .pc-open{display:none}
.ds .pc-notes{display:flex;flex-direction:column}
.ds .pc-notes>.pc-note{padding:var(--space-10) 0}
.ds .pc-notes>.pc-note+.pc-note{border-top:1px solid var(--line)}
@media (max-width:600px){
  .ds .pc-card,.ds .pc-now,.ds .pc-mc{padding:16px}
  .ds .pc-card-row{padding:0 16px}
  .ds .pc-kv{grid-template-columns:110px minmax(0,1fr)}
  /* T-536 (макет Kollega 22.10): на телефоне дата — строкой над событием, не колонкой слева */
  .ds .pc-tl{grid-template-columns:10px minmax(0,1fr);row-gap:2px}
  .ds .pc-tl>:nth-child(3){grid-column:2}
  .ds .pc-ins{grid-template-columns:minmax(0,1fr)}
  .ds .pc-read .pc-bar{grid-template-columns:minmax(0,96px) minmax(0,1fr) 56px}
  .ds .pc-read .pc-bar span{white-space:normal;line-height:1.25}
}
/* T-565: запись приёма — в шапке карточки (состояния записи у шапки); поле внизу — заметка (микрофон заметки: строка статуса вместо поля, ■ вместо микрофона) */
.ds .pc-rec-status{display:flex;flex-direction:column;gap:var(--space-8);margin:var(--space-8) 0;color:var(--ink)}
.ds .pc-rec-status:empty{display:none}
.ds .pc-rec-status .v-card{color:var(--ink)}
.ds .pc-rec-status .pc-s{color:var(--ink-2)}
.ds .pc-comp .pc-comp-note{flex:1 1 100%;order:-3;color:var(--ink-2)}
.ds .pc-comp .notemic-line{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:var(--space-10);height:44px;padding:0 var(--space-12);border-radius:var(--radius-pill);background:var(--surface-2);font-weight:700}
.ds .pc-comp .notemic-line .dot{width:10px;height:10px;border-radius:50%;background:var(--red);animation:v-blink 1.2s infinite;flex:none}
.ds .pc-comp .notemic-line .rtm{font-variant-numeric:tabular-nums}
.ds .pc-comp .notemic-line .who{font-size:13px}
.ds .pc-comp .notemic-msg{flex:1 1 100%;order:10;margin:0;font-size:12.5px;color:var(--red-ink)}
.ds .pc-comp .pc-micbtn[data-note-mic-state="recording"]{background:var(--red-ink)}
.ds .pc-comp .pc-micbtn .sq{width:16px;height:16px;border-radius:25%;background:#FFFFFF;display:block}
.ds .pc-comp .pc-micbtn:disabled{background:var(--track);color:var(--ink-4);cursor:default}
@media (prefers-reduced-motion: reduce){.ds .pc-comp .notemic-line .dot{animation:none}}
.ds .pc-rec-status .pc-rec-line{display:flex;align-items:center;gap:var(--space-10);min-height:48px;padding:0 var(--space-8) 0 var(--space-14);border-radius:var(--radius-16);background:var(--red-tint);color:var(--ink);font-weight:700}
.ds .pc-rec-line .dot{width:10px;height:10px;border-radius:50%;background:var(--red);animation:v-blink 1.2s infinite;flex:none}
.ds .pc-rec-line .rtm{font-variant-numeric:tabular-nums}
.ds .pc-rec-line .lim{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}
.ds .pc-rec-line .pc-rec-stop{width:40px;height:40px;flex:none;border:0;border-radius:50%;background:var(--red-ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.ds .pc-rec-line .pc-rec-stop .sq{width:16px;height:16px;border-radius:25%;background:#FFFFFF;display:block}
.ds .pc-rec-line .pc-rec-stop:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pc-rec-status .pc-rec-hint{color:var(--red-ink);margin:0}
@media (prefers-reduced-motion: reduce){.ds .pc-rec-line .dot{animation:none}}
/* T-621 Ф3: «Для команды» — особые заметки; закрыто по умолчанию (нативный <details>), при печати скрыто */
.ds .pc-team{margin-top:var(--space-6);max-width:520px;border:1px solid var(--line);border-radius:var(--radius-12);background:var(--card,#fff);color:var(--ink,#1f2328);font-size:14px}
.ds .pc-team>summary{cursor:pointer;list-style:none;padding:var(--space-6) var(--space-12);font-weight:600}
.ds .pc-team>summary::-webkit-details-marker{display:none}
.ds .pc-team>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds .pc-team-list{margin:0;padding:0 var(--space-12) var(--space-10);list-style:none;display:flex;flex-direction:column;gap:var(--space-8)}
.ds .pc-team-meta{font-size:12.5px;color:var(--ink-3)}
.ds .pc-team-t{white-space:pre-wrap;overflow-wrap:anywhere}
@media print{.ds .pc-team{display:none!important}}
