:root{
  /* акцент */
  --blue:#0d4cd3;--blue-d:#0a3da8;--blue-l:#e8effc;--blue-xl:#f3f6fd;
  /* нейтральная шкала (чернильная) */
  --bg:#f5f7fa;--card:#fff;--raised:#f1f3f7;
  --text:#111827;--text2:#4b5565;--muted:#6b7487;--line:#e1e5ec;--line-d:#c9d0dc;
  /* смысловые цвета */
  --ok:#16794a;--ok-l:#e5f3ec;--warn:#9a5b00;--warn-l:#fdf1dc;--bad:#c62f3a;--bad-l:#fbe8ea;
  /* радиусы: мелкий 6, контрол 8, карточка 12 */
  --r:12px;--rc:8px;--rs:6px;
  --ease:cubic-bezier(.22,1,.36,1);
  font-family:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-size:15px;line-height:22px;min-height:100vh;padding-bottom:72px;font-weight:400;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-d)}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
b,strong{font-weight:600}
h1{font-size:24px;line-height:32px;font-weight:700}
h2{font-size:18px;line-height:24px;font-weight:700}
h3{font-size:16px;line-height:24px;font-weight:600}
small,.muted{color:var(--muted)}
small{font-size:13px;line-height:20px}
p.muted,.card p,.hero p,.page-h p{color:var(--text2)}
.card p.muted,p.muted{color:var(--text2)}
.hero p.muted,.hero p{color:rgba(255,255,255,.88)}
svg.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 16px}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0}

/* шапка */
.hdr{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.hdr-in{display:flex;align-items:center;gap:16px;height:64px}
.brand{display:flex;align-items:center;gap:12px;color:var(--text)}
.brand:hover{color:var(--text)}
.logo{width:40px;height:40px;border-radius:10px;background:var(--blue);display:grid;place-items:center;color:#fff;flex:none}
.logo svg{width:32px;height:32px}
.brand b{display:block;white-space:nowrap;font-size:17px;line-height:24px;font-weight:700;color:var(--blue);letter-spacing:-.01em}
.brand small{font-size:12px;line-height:16px;display:block}
.nav{display:none;gap:4px;margin-left:16px;flex:1;align-self:stretch}
.nav a{display:flex;align-items:center;padding:0 12px;color:var(--blue);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s var(--ease),border-color .15s var(--ease)}
.nav a:hover{color:var(--blue)}
.nav a.on{color:var(--blue);border-bottom-color:var(--blue)}
.hdr-r{display:flex;align-items:center;gap:4px;margin-left:auto;position:relative}
.ib{position:relative;width:40px;height:40px;border-radius:var(--rc);display:grid;place-items:center;color:var(--text2);transition:background-color .15s var(--ease)}
.ib:hover{background:var(--raised);color:var(--text)}
.dot{position:absolute;top:2px;right:0;min-width:18px;height:18px;border-radius:9px;background:var(--bad);color:#fff;font-size:11px;line-height:14px;font-weight:600;display:grid;place-items:center;padding:0 4px;border:2px solid #fff}
.who{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:var(--rc);transition:background-color .15s var(--ease)}
.who:hover{background:var(--raised)}
.who span.n{font-weight:500;font-size:14px;display:none}
.av{width:32px;height:32px;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:600;font-size:14px;flex:none}
.av.lg{width:48px;height:48px;font-size:20px}
.menu{position:absolute;right:0;top:52px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(17,24,39,.08);padding:8px;width:280px;z-index:40}
.menu h4{font-size:12px;line-height:16px;font-weight:500;color:var(--muted);padding:8px 8px 4px}
.menu button{display:flex;align-items:center;gap:12px;width:100%;padding:8px;border-radius:var(--rc);text-align:left;transition:background-color .15s var(--ease)}
.menu button:hover,.menu button.on{background:var(--raised)}
.menu button.on b::after{content:" ✓";color:var(--blue)}
.menu hr{border:0;border-top:1px solid var(--line);margin:8px 0}

/* нижняя панель на телефоне */
.tabbar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:flex;z-index:30;padding-bottom:env(safe-area-inset-bottom)}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;font-size:11px;line-height:16px;color:var(--muted);font-weight:500}
.tabbar a.on{color:var(--blue)}

/* каркас страницы */
main.wrap{padding-top:24px;padding-bottom:32px}
.page-h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.page-h p{margin-top:4px}
.grid{display:grid;gap:16px}
.g2,.g3,.g4,.side{grid-template-columns:1fr}
.card{background:var(--card);border-radius:var(--r);padding:16px;border:1px solid var(--line)}
.card.flat{border:1px solid var(--line)}
.card h2{margin-bottom:16px}
.card-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.card-h h2{margin:0}
.sp{height:16px}

/* кнопки */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;min-height:44px;border-radius:var(--rc);background:var(--blue);color:#fff;font-weight:500;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .15s var(--ease);white-space:nowrap}
.btn:hover{background:var(--blue-d);color:#fff}
.btn:active{transform:scale(.98)}
.btn.sec{background:var(--blue-l);color:var(--blue)}
.btn.sec:hover{background:#d7e3fa;color:var(--blue-d)}
.btn.ghost{background:#fff;color:var(--text);border:1px solid var(--line-d)}
.btn.ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn.danger{background:#fff;color:var(--bad);border:1px solid var(--line-d)}
.btn.danger:hover{background:var(--bad-l);border-color:var(--bad);color:var(--bad)}
.btn.sm{padding:6px 16px;min-height:36px;font-size:14px}
.btn.block{width:100%}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.white{background:#fff;color:var(--blue)}
.btn.white:hover{background:var(--blue-l)}

/* бейджи и чипы */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--rs);font-size:13px;line-height:20px;font-weight:500;background:var(--blue-l);color:var(--blue);white-space:nowrap}
.badge.ok{background:var(--ok-l);color:var(--ok)}
.badge.warn{background:var(--warn-l);color:var(--warn)}
.badge.bad{background:var(--bad-l);color:var(--bad)}
.badge.gray{background:var(--raised);color:var(--text2)}
.badge svg.i{width:14px;height:14px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:6px 16px;min-height:36px;border-radius:18px;background:#fff;border:1px solid var(--line-d);font-weight:500;font-size:14px;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff}
.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tabs a{padding:12px 8px;margin-right:8px;font-weight:500;color:var(--text2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .15s var(--ease),border-color .15s var(--ease)}
.tabs a:hover{color:var(--blue)}
.tabs a.on{color:var(--blue);border-color:var(--blue)}

/* приветственный блок */
.hero{background:linear-gradient(135deg,#2a4fd9,#4f72e3);color:#fff;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:16px}
.hero p{color:rgba(255,255,255,.88)}
.hero b{color:#fff}
.hero .sync{background:rgba(255,255,255,.16);border-radius:var(--rc);padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hero .sync svg.i{color:#fff}
.hero .sync div{flex:1;min-width:180px;font-size:14px;line-height:20px}
.hero .sync b{display:block}

/* семья */
.fam{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}
.fam button{flex:1;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;gap:12px;align-items:center;text-align:left;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.fam button:hover{border-color:var(--line-d)}
.fam button.on{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.fam b{display:block}

/* быстрые действия */
.qa{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qa a{background:#eaf0fd;border:1px solid transparent;border-radius:16px;padding:16px;color:var(--text);display:flex;flex-direction:column;gap:4px;font-weight:600;transition:border-color .15s var(--ease),background-color .15s var(--ease)}
.qa a:hover{border-color:var(--blue);color:var(--text)}
.qa a small{color:var(--text2)}
.qa .ic{width:40px;height:40px;border-radius:12px;background:#fff;color:var(--blue);display:grid;place-items:center;margin-bottom:8px}
.qa small{font-weight:400}

/* строки списков */
.row{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0;padding-top:0}
.row:last-child{padding-bottom:0}
.row .body{flex:1;min-width:0}
.row .body b{display:block;font-weight:500}
.row .ico,.nt .ico,.login li .ico{width:40px;height:40px;border-radius:var(--rc);display:grid;place-items:center;flex:none;background:var(--raised);color:var(--text2)}
.ico.ok{color:var(--ok)}.ico.warn{color:var(--warn)}.ico.bad{color:var(--bad)}.ico.gray{color:var(--muted)}
.row.click{cursor:pointer}
.row.click:hover .body b{color:var(--blue)}
.row .end{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
a.row{color:var(--text)}
a.row:hover{color:var(--text)}

/* электронный талон: как справка, с синей полосой слева */
.ticket{background:#fff;border:1px solid var(--line-d);border-radius:var(--r);padding:16px;display:flex;gap:16px;position:relative}
.ticket .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ticket .time{font-size:20px;line-height:28px;font-weight:600;color:var(--text)}
.ticket .qr{width:96px;height:96px;flex:none;background:#fff;border-radius:var(--rc);padding:4px;border:1px solid var(--line);align-self:flex-start}
.ticket .no{font-size:13px;color:var(--muted)}
.ticket-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* прогресс */
.bar{height:8px;background:var(--raised);border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue);border-radius:4px}
.bar.ok i{background:var(--ok)}

/* ключ-значение */
.kv{display:grid;grid-template-columns:1fr;gap:0}
.kv div{padding:12px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr;gap:4px}
.kv div:first-child{border-top:0;padding-top:0}
.kv div:last-child{padding-bottom:0}
.kv dt{color:var(--muted);font-size:13px;line-height:20px}
.kv dd{margin:0;font-weight:400}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fact{background:var(--raised);border-radius:var(--rc);padding:12px 16px}
.fact small{display:block}
.fact b{font-size:18px;line-height:24px;font-weight:500}

/* хронология */
.tl{position:relative;padding-left:24px}
.tl::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl>div{position:relative;padding-bottom:16px}
.tl>div:last-child{padding-bottom:0}
.tl>div::before{content:"";position:absolute;left:-23px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-sizing:content-box;margin:-2px 0 0 -2px}

/* таблица анализов */
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:13px;line-height:20px;color:var(--muted);font-weight:500;padding:8px 8px;border-bottom:1px solid var(--line-d)}
.tbl td{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.val{font-weight:600;font-size:16px;font-variant-numeric:tabular-nums}
.val.high{color:var(--bad)}.val.low{color:var(--warn)}
.rng{position:relative;height:8px;border-radius:4px;background:var(--raised);min-width:112px}
.rng .okz{position:absolute;top:0;bottom:0;background:#bfdfcd;border-radius:4px}
.rng .pt{position:absolute;top:-4px;width:16px;height:16px;border-radius:50%;background:var(--ok);border:2px solid #fff;transform:translateX(-50%)}
.rng .pt.high{background:var(--bad)}.rng .pt.low{background:var(--warn)}
.tbl .refc{color:var(--text2);font-size:13px;font-variant-numeric:tabular-nums}
.mhide{display:none}

/* шаги записи */
.stepper{display:flex;gap:8px;margin-bottom:24px}
.stepper div{flex:1;font-size:13px;line-height:20px;color:var(--muted);font-weight:500}
.stepper div::before{content:"";display:block;height:4px;border-radius:2px;background:var(--line);margin-bottom:8px}
.stepper div.on{color:var(--blue)}.stepper div.on::before,.stepper div.done::before{background:var(--blue)}
.stepper div.done{color:var(--text)}
.sel{display:grid;gap:12px;grid-template-columns:1fr}
.sel button{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px;text-align:left;display:flex;gap:12px;align-items:center;transition:border-color .15s var(--ease),background-color .15s var(--ease)}
.sel button:hover{border-color:var(--blue)}
.sel button.on{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:var(--blue-xl)}
.dates{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:16px}
.dates button{min-width:64px;border:1px solid var(--line);background:#fff;border-radius:var(--rc);padding:8px 4px;text-align:center;transition:border-color .15s var(--ease),background-color .15s var(--ease)}
.dates button:hover{border-color:var(--blue)}
.dates button b{display:block;font-size:18px;line-height:24px;font-weight:600}.dates button small{display:block;line-height:16px}
.dates button.on{border-color:var(--blue);background:var(--blue);color:#fff}.dates button.on small{color:#dbe6ff}
.dates button[disabled]{opacity:.4;pointer-events:none}
.times{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.times button{padding:8px 0;min-height:40px;border:1px solid var(--line);border-radius:var(--rc);background:#fff;font-weight:500;font-variant-numeric:tabular-nums;transition:border-color .15s var(--ease),background-color .15s var(--ease),color .15s var(--ease)}
.times button:hover{border-color:var(--blue);color:var(--blue)}
.times button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.times button[disabled]{opacity:.35;text-decoration:line-through;pointer-events:none}
input[type=text],select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-d);border-radius:var(--rc);font:inherit;background:#fff;color:var(--text)}
input::placeholder{color:var(--muted)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.field{margin-bottom:16px}.field label{display:block;font-weight:500;font-size:14px;margin-bottom:8px}

/* переключатели */
.sw{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.sw:first-of-type{border-top:0;padding-top:0}
.tg{width:44px;height:24px;border-radius:12px;background:#c4ccd9;position:relative;flex:none;transition:background-color .15s var(--ease)}
.tg::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s var(--ease)}
.tg.on{background:var(--blue)}.tg.on::after{transform:translateX(20px)}

/* уведомления */
.nt{display:flex;gap:12px;padding:16px;border-radius:var(--r);background:#fff;border:1px solid var(--line);margin-bottom:12px}
.nt.urgent{--rule:var(--bad)}.nt.soon{--rule:var(--warn)}.nt.ok{--rule:var(--ok)}
/* вертикальная метка слева: прямой прямоугольник без скруглений */
.rule,.nt,.ticket,.toast.sms{position:relative;overflow:hidden}
.rule::before,.nt::before,.ticket::before,.toast.sms::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--rule,var(--blue))}
.nt.unread{background:var(--blue-xl)}
.nt .body{flex:1;min-width:0}
.nt .body p{color:var(--text2);margin:4px 0 12px}
.nt .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}

/* окна и всплывающие сообщения */
.ov{position:fixed;inset:0;background:rgba(17,24,39,.48);z-index:60;display:grid;place-items:center;padding:16px}
.modal{background:#fff;border-radius:var(--r);max-width:440px;width:100%;padding:24px;max-height:90vh;overflow:auto}
.sy{display:flex;gap:12px;align-items:center;padding:8px 0;color:var(--muted)}
.sy.done{color:var(--text)}.sy.cur{color:var(--blue);font-weight:500}
.sy .st{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--raised);flex:none}
.sy.done .st{background:var(--ok);color:#fff}
.sy.cur .st{background:var(--blue-l);color:var(--blue)}
.sy.cur .st svg{animation:spin 1s linear infinite}
.sy .st svg{width:14px;height:14px}
#toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;align-items:center;width:calc(100% - 32px);max-width:420px;pointer-events:none}
.toast{background:#1f2937;color:#fff;padding:12px 16px;border-radius:var(--rc);animation:fade .2s var(--ease);width:100%;font-size:14px;line-height:20px}
.toast.sms{background:#fff;color:var(--text);border:1px solid var(--line-d);box-shadow:0 8px 24px rgba(17,24,39,.08);padding-left:20px}
.toast small{display:block;color:#b4bdcc}
.toast.sms small{color:var(--text2)}

/* вход */
.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--bg)}
.login .box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;max-width:480px;width:100%;text-align:left}
.login .logo{width:56px;height:56px;border-radius:14px;margin:0 0 24px}.login .logo svg{width:44px;height:44px}
.login ul{list-style:none;padding:0;text-align:left;margin:24px 0}
.login li{display:flex;gap:12px;padding:8px 0}

.note{background:var(--warn-l);color:#6e4300;border-radius:var(--rc);padding:12px 16px;font-size:14px;line-height:20px}
.note.info{background:var(--blue-l);color:#0a3a9e}
.empty{text-align:center;padding:32px 16px;color:var(--text2)}
.foot{text-align:center;color:var(--muted);font-size:13px;line-height:20px;padding:16px 16px 24px}
.foot a{color:var(--muted);text-decoration:underline;cursor:pointer}
.foot a:hover{color:var(--blue)}
.stat{display:flex;gap:16px;align-items:center}.stat b{font-size:32px;line-height:32px;font-weight:600;color:var(--blue);font-variant-numeric:tabular-nums}
.phone{width:260px;margin:0 auto}

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}

@media(min-width:720px){
  .wrap{padding:0 24px}
  .card{padding:24px}
  .g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
  .qa{grid-template-columns:repeat(4,1fr)}
  .sel{grid-template-columns:1fr 1fr}
  .kv div{grid-template-columns:224px 1fr;gap:16px}
  .mhide{display:table-cell}
  .times{grid-template-columns:repeat(6,1fr)}
  .hero{flex-direction:row;align-items:center;justify-content:space-between;padding:24px}
  .hero .sync{min-width:360px}
  .who span.n{display:inline}
  .brand b{font-size:20px}
  .login .box{padding:32px}
  h1{font-size:28px;line-height:36px}
}
@media(min-width:960px){
  body{padding-bottom:0}
  .tabbar{display:none}
  .nav{display:flex}
  .side{grid-template-columns:minmax(0,1fr) 352px;align-items:start}
  .sel{grid-template-columns:1fr 1fr 1fr}
  #toast{bottom:24px}
  h1{font-size:32px;line-height:40px}
  main.wrap{padding-top:32px;padding-bottom:40px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.sy.cur .st svg{animation:spin 1s linear infinite!important}}
@media print{
  .hdr,.tabbar,.no-print,#toast,.foot{display:none!important}
  body{background:#fff;padding:0}.card{border:1px solid #ccc}
}

/* standalone (iPhone): отступ под вырез и статус-бар */
.hdr{padding-top:env(safe-area-inset-top)}

/* ---------- аккаунты, формы, файлы ---------- */
[hidden]{display:none!important}
input[type=date],input[type=number],input[type=email],input[type=password]{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-d);border-radius:var(--rc);font:inherit;background:#fff;color:var(--text)}
.head-act{display:flex;gap:8px;flex-wrap:wrap}
.lnk{background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.lnk:hover{color:var(--blue-d)}.lnk.bad{color:var(--bad)}
.rb{display:inline-flex;gap:16px;margin-left:12px;white-space:nowrap}
.kv dd .rb,.tl .rb{display:flex;margin:4px 0 0}
.modal.wide{max-width:560px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.fgrid .field{grid-column:1/-1}.fgrid .field.half{grid-column:auto}
.form-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.note.err{background:var(--bad-l);color:var(--bad);margin-bottom:16px}
.files .frow{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.files .frow:first-child{border-top:0}
.th{width:44px;height:44px;object-fit:cover;border-radius:var(--rs);background:var(--raised);flex:none}
.th.pdf{display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--text2)}
.frow .fn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#form-files.busy{opacity:.5}
.lrow{display:grid;grid-template-columns:1fr 1fr 32px;gap:8px;margin-bottom:12px;align-items:center}
.lrow .lc.n{grid-column:1/-1}
.lrow button{grid-column:3;grid-row:2;align-self:end;padding:10px 4px}
.lrow input{min-height:40px;padding:8px;font-size:14px}
.auth-form{text-align:left;margin-top:20px}
.auth-form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chk{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;font-size:14px}
.chk input{margin-top:3px;width:18px;height:18px;flex:none}
.tabs a[data-act]{cursor:pointer}
@media(min-width:720px){.lrow{grid-template-columns:2fr 1fr 1fr 1fr 1fr 32px}.lrow .lc.n{grid-column:auto}.lrow button{grid-column:auto;grid-row:auto}}
@media(max-width:480px){.fgrid .field.half{grid-column:1/-1}.auth-form .two{grid-template-columns:1fr}}
.auth-form .tabs{overflow:visible}
@media(max-width:560px){
  .row:has(.rb){flex-wrap:wrap}
  .row:has(.rb) .body{flex:1 1 calc(100% - 56px)}
  .row:has(.rb) .end{flex:1 1 100%;justify-content:flex-start;padding-left:52px}
}

/* длинные слова не растягивают страницу; подписи строк анализа; крупнее нажимаемые ссылки */
main,.modal,.ov{overflow-wrap:anywhere}
.lc{display:flex;flex-direction:column;gap:2px;min-width:0}
.lc small{font-size:12px;color:var(--muted)}
.nav a{white-space:nowrap}
.lnk{padding:8px 2px}
.rb{gap:12px}

/* чат-помощник */
.chat-log{display:flex;flex-direction:column;gap:12px;max-height:460px;overflow-y:auto;padding:4px 2px}
.msg{display:flex}.msg.me{justify-content:flex-end}
.bub{max-width:88%;padding:12px 16px;border-radius:12px;background:var(--raised);line-height:22px}
.msg.me .bub{background:var(--blue);color:#fff;border-radius:12px 12px 4px 12px}
.msg.ai .bub{border-radius:12px 12px 12px 4px}
.bub .doc{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-d)}
.bub .doc small{display:block;color:var(--muted)}
.bub.typing{color:var(--muted)}
.chat-act{margin:16px 0}
.chat-act .chips{margin-bottom:12px}
.chat-in{display:flex;gap:8px}.chat-in input{flex:1;min-width:0}

/* QR-код сайта */
.qr-row{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.qr-btn{border:1px solid var(--line);background:#fff;padding:0;border-radius:var(--rc);cursor:pointer;line-height:0}
.qr-btn img{display:block;border-radius:var(--rc)}
.qr-text{flex:1;min-width:220px}
.qr-text p{margin:8px 0 12px}
.qr-card{margin-top:16px}
.qr-ov{background:#fff;cursor:pointer}
.qr-big{text-align:center;max-width:100%}
.qr-big img{width:min(78vw,68vh);height:auto;display:block;margin:0 auto}
.qr-url{font-size:clamp(22px,4vw,36px);font-weight:700;margin:8px 0 4px}
.stat b{flex:none;white-space:nowrap;overflow-wrap:normal}
