/* site.css — единый дизайн всего портала (3.1.0).
   База: главная страница style4d (tokens.css + base.css): светлая бумага, aurora-градиенты,
   «стеклянная» шапка-пилюля, крупная типографика, белые карточки, pill-кнопки.
   Подключается сервером последней на ВСЕ страницы, поэтому перекрывает старые
   локальные стили страниц и кабинетные скины. */

/* ---------------------------------------------------------------- 1. Токены и база */
:root{
  --site-max: var(--container);
  --site-topbar-bg: rgba(255,255,255,.78);
  --site-shadow: var(--shadow-sm);
  --site-card-radius: var(--radius-lg);
  --site-card-shadow: var(--shadow-sm);
}

html{scroll-behavior:smooth}
html body{
  min-height:100vh;
  margin:0 !important;
  background-color:var(--paper) !important;
  background-image:
    radial-gradient(38% 30% at 10% 8%,rgba(109,92,255,.16),transparent 70%),
    radial-gradient(34% 28% at 92% 6%,rgba(255,122,89,.13),transparent 70%),
    radial-gradient(40% 32% at 84% 84%,rgba(0,194,168,.14),transparent 70%),
    radial-gradient(30% 26% at 12% 92%,rgba(255,209,102,.16),transparent 70%) !important;
  background-attachment:fixed !important;
  color:var(--ink) !important;
  font:16px/1.6 var(--font) !important;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
/* Старые псевдоэлементы фона (theme4d/легаси) больше не нужны */
body::before,body::after{content:none !important}

main{
  display:block;
  width:100%;
  max-width:var(--site-max) !important;
  margin:0 auto !important;
  padding:26px var(--gutter) 64px !important;
  box-sizing:border-box;
}
main > h1:first-child,main > .lead{margin-top:0}
main h1{font-family:var(--font) !important;font-size:clamp(28px,3.2vw,40px) !important;line-height:1.1 !important;font-weight:800 !important;
  letter-spacing:-.025em !important;margin:0 0 10px !important;color:var(--ink) !important}
main h2{font-family:var(--font) !important;font-size:clamp(22px,2.2vw,28px) !important;line-height:1.2 !important;font-weight:800 !important;
  letter-spacing:-.02em !important;margin:0 0 8px !important;color:var(--ink) !important}
main h3{font-family:var(--font) !important;font-size:18px !important;line-height:1.3 !important;font-weight:700 !important;margin:0 0 6px !important}
/* Страницы без <main> (training, лендинг и т. п.): тот же масштаб заголовков,
   что у кабинетных страниц. Лендинг сохраняет крупный hero-заголовок. */
body[data-page]:not([data-page="landing"]) h1{
  font-family:var(--font) !important;font-size:clamp(28px,3.2vw,40px) !important;line-height:1.1 !important;letter-spacing:-.025em !important}
body[data-page]:not([data-page="landing"]) h2{
  font-family:var(--font) !important;font-size:clamp(22px,2.2vw,28px) !important;line-height:1.2 !important;letter-spacing:-.02em !important}
body[data-page]:not([data-page="landing"]) h3{font-family:var(--font) !important;font-size:18px !important;line-height:1.3 !important}
h1,h2,h3,h4,p{margin-top:0}
p{margin:0 0 10px}
.muted,.hint,.note,.subtle,.meta,small{color:var(--muted) !important}
a{color:inherit;text-decoration:none}
main a:not(.btn):not(.btnlink):not(.navlink):not(.p-btn){color:var(--c1)}
main a:not(.btn):not(.btnlink):not(.navlink):not(.p-btn):hover{text-decoration:underline}
::selection{background:var(--c2-soft);color:var(--ink)}

/* ---------------------------------------------------------------- 2. Шапка */
/* Широкий экран — одна строка: бренд | меню | действия.
   Если не влезает — две аккуратные строки: бренд и вход, ниже меню. */
header.site-topbar{
  position:relative;
  z-index:60;
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"brand nav actions";
  align-items:center !important;
  column-gap:18px !important;
  row-gap:8px !important;
  width:100%;
  max-width:var(--site-max);
  margin:18px auto 0 !important;
  padding:9px 12px 9px 20px !important;
  border:1px solid rgba(255,255,255,.9) !important;
  border-radius:var(--radius-pill) !important;
  background:var(--site-topbar-bg) !important;
  color:var(--ink) !important;
  box-shadow:var(--site-shadow) !important;
  backdrop-filter:blur(14px) saturate(140%);
  box-sizing:border-box;
}
header.site-topbar .brand{grid-area:brand;display:flex !important;align-items:center !important;
  gap:10px !important;min-width:0;flex-wrap:nowrap !important}
header.site-topbar .site-logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:16px;
  letter-spacing:-.01em;color:var(--ink) !important;white-space:nowrap;text-decoration:none}
header.site-topbar .site-logo i{width:26px;height:26px;border-radius:9px;background:var(--grad-main);
  display:inline-block;flex-shrink:0}
header.site-topbar .site-crumb{font-size:12px;color:var(--muted) !important;padding:4px 10px;
  border-radius:var(--radius-pill);border:1px solid var(--line);white-space:nowrap;max-width:170px;
  overflow:hidden;text-overflow:ellipsis}
header.site-topbar nav{grid-area:nav;display:flex !important;align-items:center !important;gap:2px !important;
  flex-wrap:nowrap !important;justify-content:center;justify-content:safe center;min-width:0;overflow-x:auto;scrollbar-width:none;
  background:none !important;padding:0 !important;margin:0 !important;position:static !important}
header.site-topbar nav::-webkit-scrollbar{display:none}
header.site-topbar nav .nav-sep{flex:0 0 auto;width:1px;height:18px;margin:0 5px;border-radius:1px;
  background:rgba(15,18,34,.10)}
header.site-topbar nav a.navlink{color:var(--muted) !important;font-size:13.5px !important;
  padding:8px 11px !important;border:1px solid transparent !important;border-radius:var(--radius-pill) !important;
  background:none !important;line-height:1.2;white-space:nowrap}
header.site-topbar nav a.navlink:hover{color:var(--ink) !important;background:var(--soft) !important}
header.site-topbar nav a.navlink[aria-current="page"]{color:var(--ink) !important;background:#fff !important;
  border-color:var(--line) !important;box-shadow:0 2px 8px rgba(15,18,34,.06)}
header.site-topbar .top-actions{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;
  gap:8px;justify-self:end;margin-left:0;white-space:nowrap}
header.site-topbar .top-actions .btn{flex-shrink:0}
/* виджет входа на светлой шапке — компактно, чтобы данные не распирали строку */
header.site-topbar #auth.auth-global{display:inline-flex !important;align-items:center !important;gap:6px !important;
  flex-wrap:nowrap !important;color:var(--ink) !important;margin:0 !important;min-width:0}
header.site-topbar #auth.auth-global b{color:var(--ink) !important;max-width:130px !important;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
header.site-topbar #auth.auth-global a{color:var(--ink) !important;border-color:var(--line-2) !important;
  background:#fff !important;border-radius:var(--radius-pill) !important}
header.site-topbar #auth.auth-global .role-chip{color:var(--muted) !important;border-color:var(--line-2) !important;
  font-size:9.5px !important;padding:2px 7px !important}
header.site-topbar #auth.auth-global button{background:var(--ink) !important;border:1px solid var(--ink) !important;
  color:#fff !important;border-radius:var(--radius-pill) !important;padding:7px 12px !important;
  font-size:12px !important}

/* ---------------------------------------------------------------- 3. Кнопки */
.btn,button,.btnlink,.p-btn{font-family:var(--font) !important}
.btn,button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 20px;border-radius:var(--radius-pill) !important;border:0;
  background:var(--grad-main) !important;color:#fff !important;
  font:600 14px/1.1 var(--font) !important;cursor:pointer;white-space:nowrap;
  box-shadow:0 8px 20px rgba(109,92,255,.20);
}
.btn:hover,button:hover{filter:brightness(1.06)}
.btn:active,button:active{transform:translateY(1px)}
.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.btn--ghost,button.ghost,a.btnlink,.p-btn--ghost{
  background:rgba(255,255,255,.8) !important;color:var(--ink) !important;border:1px solid var(--line-2) !important;
  box-shadow:none !important;
}
.btn--ghost:hover,button.ghost:hover,a.btnlink:hover{background:#fff !important;border-color:#cdd0de !important}
.btn.btn--grad{background:var(--grad-main) !important;color:#fff !important}
a.btnlink{display:inline-flex;align-items:center;padding:9px 15px;font:600 13px/1.1 var(--font) !important;
  color:var(--ink) !important;border-radius:var(--radius-pill) !important;margin:3px 4px 3px 0}
button.ghost{background:rgba(255,255,255,.8) !important;color:var(--ink) !important;border:1px solid var(--line-2) !important}
.p-btn{padding:10px 18px !important;border-radius:var(--radius-pill) !important;font-weight:600 !important}
.p-btn--primary,.p-btn:not(.p-btn--ghost):not(.p-btn--soft):not(.p-btn--danger){
  background:var(--grad-main) !important;color:#fff !important;border:0 !important}
.p-btn--soft{background:var(--c1-soft) !important;color:#4f3fd6 !important;border:0 !important}
.p-btn--danger{background:var(--c3-soft) !important;color:#b83b1d !important;border:1px solid #ffd7cc !important}
.p-btn--sm{padding:8px 14px !important;font-size:12.5px !important}

/* ---------------------------------------------------------------- 4. Карточки */
.card,.panel,.box,.sheet,.stat,.tile-card,.p-card,.p-hub-card,.glass,.p-card--flat{
  background:#fff !important;border:1px solid var(--line) !important;border-radius:var(--site-card-radius) !important;
  box-shadow:var(--site-card-shadow) !important;color:var(--ink) !important;
}
.card,.panel,.box,.p-card--flat{padding:20px 22px}
.card--pad{padding:24px}
.card .card,.card .panel,.p-card .p-card{box-shadow:none !important}
.p-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.p-card-head h2,.p-card-head h3{margin:0}
.p-grid{display:grid;gap:16px}
.p-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.p-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.p-grid--auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media (max-width:900px){.p-grid--2,.p-grid--3{grid-template-columns:1fr}}
.p-hero{position:relative;overflow:hidden;border-radius:var(--radius-xl) !important;padding:30px 30px;
  background:linear-gradient(130deg,#f5f3ff 0%,#eefbf8 52%,#fff4ee 100%) !important;border:1px solid rgba(255,255,255,.9) !important}
.p-hero h1,.p-hero h2{margin-top:8px}
.p-eyebrow{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.p-kpis{display:flex;gap:10px;flex-wrap:wrap}
.p-kpi{background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius-md);
  padding:12px 16px;min-width:110px;box-shadow:var(--shadow-sm)}
.p-kpi b{display:block;font-size:22px;line-height:1.1;color:var(--ink)}
.p-kpi span{font-size:11.5px;color:var(--muted)}
.p-avatar{border-radius:50%;background:var(--grad-main);color:#fff;display:inline-grid;place-items:center;font-weight:700}
.p-chip,.badge,.tag,.status,.role-chip,.p-code{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);
  background:var(--soft) !important;border:1px solid var(--line) !important;color:var(--muted) !important;
  font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap;
}
.p-code,.code{font-family:Consolas,"Cascadia Code",monospace !important;letter-spacing:.04em}
.status.active,.status.live,.p-chip--active,.p-chip--ready,.p-chip--level-resource{background:var(--c2-soft) !important;
  border-color:#c9efe7 !important;color:#00806e !important}
.status.finished,.status.done,.p-chip--finished,.p-chip--level-unknown{background:var(--soft-2) !important;color:var(--muted) !important}
.p-chip--waiting,.p-chip--pending,.p-chip--processing,.p-chip--level-tension{background:#fff7e6 !important;
  border-color:#f2dfb0 !important;color:#8a5a00 !important}
.p-chip--failed,.p-chip--critical,.p-chip--level-deficit,.p-chip--sev-high{background:var(--c3-soft) !important;
  border-color:#ffd3c6 !important;color:#b83b1d !important}
.p-chip--sev-medium,.p-chip--skipped{background:#fff7e6 !important;border-color:#f2dfb0 !important;color:#8a5a00 !important}
.p-chip--sev-low{background:var(--soft) !important;color:var(--muted) !important}

/* ---------------------------------------------------------------- 5. Формы */
input,select,textarea{
  width:100%;box-sizing:border-box;padding:12px 14px !important;border:1px solid var(--line-2) !important;
  border-radius:var(--radius-md) !important;background:#fff !important;color:var(--ink) !important;
  font:15px/1.35 var(--font) !important;
}
input:focus,select:focus,textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(109,92,255,.30) !important;outline-offset:1px;border-color:var(--c1) !important
}
/* Чекбоксы/радио — не растягивать на всю ширину (иначе скрытые input ломают ширину) */
input[type="checkbox"],input[type="radio"]{
  width:auto !important;height:auto !important;min-width:0 !important;
  padding:0 !important;border:0 !important;background:none !important;box-shadow:none !important;
  accent-color:var(--c1);margin:0 6px 0 0;vertical-align:middle;
}
input[type="file"]{padding:8px 10px !important;background:var(--soft) !important}
/* старые переключатели: скрытый checkbox не должен влиять на layout */
.switch{position:relative}
.switch input{position:absolute !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none !important}
label{font-size:13px;font-weight:600;color:var(--ink-2)}
.p-fields,.p-form{display:grid;gap:12px}
.p-field{display:grid;gap:6px}
.p-label{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.p-input{padding:12px 14px !important;border-radius:var(--radius-md) !important;border:1px solid var(--line-2) !important}

/* ---------------------------------------------------------------- 6. Таблицы, списки, утилиты */
table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted) !important;text-align:left;
  padding:10px 12px !important;border-bottom:1px solid var(--line) !important;background:none !important}
td{padding:11px 12px !important;border-bottom:1px solid var(--line) !important;color:var(--ink) !important;vertical-align:top}
tr:last-child td{border-bottom:0 !important}
pre{white-space:pre-wrap;word-break:break-word;background:var(--soft) !important;border:1px solid var(--line) !important;
  border-radius:var(--radius-md) !important;padding:14px !important;font:13px/1.5 Consolas,monospace;overflow:auto}
code{background:var(--soft);border-radius:6px;padding:1px 5px;font-family:Consolas,monospace;font-size:.92em}
details{border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 14px;background:#fff}
summary{cursor:pointer;font-weight:600}
.warn,.alert,.notice-warn{background:var(--c3-soft) !important;border:1px solid #ffd3c6 !important;color:#8a3d22 !important;
  border-radius:var(--radius-md) !important;padding:12px 14px !important}
.err{color:#c0392b !important}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.p-empty,.empty{border:1px dashed var(--line-2);border-radius:var(--radius-lg);padding:26px 20px;text-align:center;
  color:var(--muted);background:rgba(255,255,255,.55)}
.p-empty-title,.p-empty-text{color:var(--muted)}
.p-hint,.p-axis-hint,.p-invite-note,.p-client-meta{color:var(--muted) !important}
.p-att{display:flex;gap:10px;padding:12px 14px;border-left:4px solid var(--line-2);border-radius:0 var(--radius-md) var(--radius-md) 0;
  background:var(--soft);margin:8px 0}
.p-att--warning{border-left-color:var(--c4)}
.p-att--critical{border-left-color:var(--c3);background:var(--c3-soft)}
.p-att--info{border-left-color:var(--c2)}
.p-axes{display:grid;gap:10px}
.p-axis{padding:10px 12px;border-radius:var(--radius-md);background:var(--soft);border:1px solid var(--line)}
.p-bar{height:8px;border-radius:var(--radius-pill);background:var(--soft-2);overflow:hidden;margin-top:6px}
.p-bar i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--grad-main)}
.p-axis--deficit .p-bar i{background:linear-gradient(90deg,var(--c3),#ffb199)}
.p-axis--tension .p-bar i{background:linear-gradient(90deg,var(--c4),#ffe1a1)}
.p-axis--resource .p-bar i{background:var(--grad-main)}
.p-evidence{font-size:12.5px;color:var(--muted);border-left:2px solid var(--line-2);padding-left:8px;margin-top:6px}
.p-actions-inline,.p-hero-actions,.p-filters,.p-between{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.p-between{justify-content:space-between}
.p-flex{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.p-kv{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.p-kv:last-child{border-bottom:0}
.p-kv b{color:var(--ink)}
.p-consent-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.p-invite{background:linear-gradient(135deg,#f3f0ff,#e9fbf6);border:1px solid #e3ddfb;border-radius:var(--radius-lg);padding:16px}
.p-invite--violet{background:linear-gradient(135deg,#f3f0ff,#eef7ff)}
.p-crisis{background:var(--c3-soft);border:1px solid #ffd3c6;border-radius:var(--radius-lg);padding:16px}
.p-crisis-nums{display:flex;gap:14px;flex-wrap:wrap;font-weight:700;font-size:18px}
.p-client-card{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-sm)}
.p-clients{display:grid;gap:10px}
.p-list{display:grid;gap:8px}
.p-hyp{background:#fff7e6;border:1px dashed #f2dfb0;border-radius:var(--radius-md);padding:6px 10px;font-size:12.5px}
.p-hidden{display:none !important}
.p-hr{height:1px;background:var(--line);border:0;margin:14px 0}
.p-cards{display:grid;gap:14px}
.p-col{display:grid;gap:14px}
.p-hub{display:grid;gap:14px}
.p-hub-card{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px 18px}
.p-hub-title{font-weight:700}
.p-hub-text{font-size:13px;color:var(--muted)}
.p-hub-icon{width:38px;height:38px;border-radius:12px;background:var(--c1-soft);display:grid;place-items:center;font-weight:800;color:#5643d6}
.p-toast,.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;
  border-radius:var(--radius-pill);font-size:13px;box-shadow:var(--shadow-md);z-index:80}
.p-skeleton{background:linear-gradient(90deg,var(--soft) 25%,var(--soft-2) 37%,var(--soft) 63%);
  background-size:400% 100%;animation:p-skeleton 1.2s ease infinite;border-radius:var(--radius-md)}
@keyframes p-skeleton{0%{background-position:100% 50%}100%{background-position:0 50%}}
.p-state--error{background:var(--c3-soft);border:1px solid #ffd3c6;color:#8a3d22;border-radius:var(--radius-lg);padding:20px}

/* ---------------------------------------------------------------- 8. Легаси-страницы */
/* Старые промышленные страницы (book, live, map, training, admin, lab…) теперь
   живут в общем каркасе: светлый герой как на главной, белые карточки,
   фиолетово-мятные акценты. */
main.site-main{display:block;overflow-x:clip}
.hero{
  background:linear-gradient(130deg,#f5f3ff 0%,#eefbf8 52%,#fff4ee 100%) !important;
  color:var(--ink) !important;border:1px solid rgba(255,255,255,.9) !important;
  border-radius:var(--radius-xl) !important;box-shadow:var(--shadow-sm) !important;
  padding:34px 36px !important;display:block !important;overflow:hidden;position:relative;
}
.hero .hero-art{display:none !important}
.hero h1,.hero h2,.hero h3,.hero h4{color:var(--ink) !important;font-family:var(--font) !important}
.hero p,.hero .muted,.hero .note{color:var(--muted) !important}
.hero .eyebrow,.hero .tag,.hero .badge{
  background:rgba(255,255,255,.8) !important;border:1px solid var(--line) !important;color:var(--muted) !important;
}
.hero .pill{background:var(--c1-soft) !important;border:1px solid #e3ddfb !important;color:#5643d6 !important}
.hero .btn--ghost,.hero a.btnlink{background:rgba(255,255,255,.85) !important}
/* старые цветные кнопки → основная градиентная кнопка */
button.primary,button.btn-primary,.primary{
  background:var(--grad-main) !important;color:#fff !important;border:0 !important;
  border-radius:var(--radius-pill) !important;box-shadow:0 10px 24px rgba(109,92,255,.28) !important;font-weight:600 !important;
}
/* карточки, пикеры, выбранные элементы старых форм */
.picker,.selected,.preview{background:#fff !important;border:1px solid var(--line) !important;
  border-radius:var(--radius-md) !important;box-shadow:none !important}
.picker-list{border-top:1px solid var(--line) !important}
.selected{background:linear-gradient(135deg,#f5f3ff,#eefbf8) !important;border-color:#e3ddfb !important}
.option{border-radius:var(--radius-md) !important;color:var(--ink) !important}
.option:hover{background:var(--soft) !important;border-color:var(--line-2) !important}
.option.on{background:var(--c1-soft) !important;border-color:#d9d0ff !important;box-shadow:none !important}
.ai-panel{background:var(--c1-soft) !important;border:1px solid #e3ddfb !important;border-radius:var(--radius-md) !important}
.hidden-ai{background:var(--soft) !important;border:1px solid var(--line) !important;border-radius:var(--radius-md) !important}
.note{background:#fff7e6 !important;border:1px solid #f2dfb0 !important;color:#7a5300 !important}
.step .num,.num{background:var(--grad-main) !important;color:#fff !important;border-radius:12px !important}
.avatar{background:var(--grad-main) !important;color:#fff !important;border-radius:50% !important}
.avatar.ai{background:linear-gradient(135deg,#8a7cff,#5ad7c3) !important}
.badge.human,.badge.ai{background:var(--soft) !important;border-color:var(--line) !important;color:var(--muted) !important}
.group-label,.sum-meta{color:var(--muted) !important}
.preview,.option,.card,.preview *{max-width:100%}
.workspace,.layout,.cols,.grid{max-width:100%}
/* старые «hint»-плашки и подписи */
.hint{color:var(--muted) !important}
/* старые таблицы и превью не должны вызывать горизонтальный скролл страницы */
main.site-main table{display:table}
main.site-main .preview,main.site-main .option{overflow-wrap:anywhere}

/* Полноэкранные приложения (тренировка): один каркас на весь экран без подвала */
body[data-page="training.html"]{display:block !important;overflow:auto !important;height:auto !important}
body[data-page="training.html"] .workspace{
  display:grid !important;height:calc(100vh - 150px) !important;min-height:560px;
  max-width:var(--site-max);margin:14px auto 24px;border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);
  grid-template-columns:280px minmax(0,1fr) 340px !important;gap:0 !important;
}
body[data-page="training.html"] .site-footer{display:none !important}
body[data-page="training.html"] .side,body[data-page="training.html"] .report{
  background:#fff !important;border-color:var(--line) !important}
body[data-page="training.html"] .persona{background:#fff !important;border:1px solid var(--line) !important;
  border-radius:12px !important;margin-bottom:7px !important}
body[data-page="training.html"] .persona.on{background:var(--c1-soft) !important;border-color:#d9d0ff !important}
body[data-page="training.html"] .statusline,body[data-page="training.html"] .ctrl,
body[data-page="training.html"] .composer{background:#fff !important;border-color:var(--line) !important}
body[data-page="training.html"] #log{background:var(--soft);border-radius:var(--radius-md);margin:12px;
  padding:12px}
body[data-page="training.html"] .msg.client{background:#fff !important;border-color:var(--line) !important}
body[data-page="training.html"] .msg.trainer{background:var(--grad-main) !important;color:#fff !important;border:0 !important}
body[data-page="training.html"] h3{font-family:var(--font) !important;color:var(--muted) !important;
  font-size:11.5px !important;letter-spacing:.06em !important}
body[data-page="training.html"] .report .head h2{font-family:var(--font) !important}
/* Страница входа по ссылке — без подвала, по центру */
body[data-page="live-join.html"] .site-footer{display:none !important}
/* Бренд-блок шапки в одну строку */
header.site-topbar .brand{display:flex !important;align-items:center !important;gap:10px !important;
  min-width:0;flex-wrap:wrap}
/* Страница входа по приглашению: верхняя шапка + центрированная карточка */
body[data-page="live-join.html"]{display:block !important;min-height:100vh;padding:0 !important;
  align-items:initial !important;justify-content:initial !important}
body[data-page="live-join.html"] .card{max-width:580px !important;margin:26px auto 60px !important;
  padding:26px 28px !important}
body[data-page="live-join.html"] h1{font-size:clamp(26px,3vw,34px) !important;line-height:1.15 !important}
body[data-page="live-join.html"] .site-footer{display:none !important}
body[data-page="live-join.html"] .check{display:flex !important;gap:9px;align-items:flex-start}
body[data-page="live-join.html"] .check input{width:auto !important;margin-top:3px !important}
/* Кнопки-компоненты старых страниц (роли Codex, ОС, персоны, табы) — не «пилюли» */
button.role,.role{display:inline-flex !important;align-items:center;gap:8px;width:auto !important;
  background:#fff !important;color:var(--ink) !important;border:1px solid var(--line) !important;
  border-radius:var(--radius-md) !important;box-shadow:none !important;padding:9px 13px !important;
  font:600 13px/1.2 var(--font) !important;white-space:normal !important}
button.role:hover,.role:hover{border-color:var(--line-2) !important;background:var(--soft) !important}
button.role.on,.role.on{background:var(--c1-soft) !important;border-color:#d9d0ff !important;
  box-shadow:none !important;color:var(--ink) !important}
button.role span,.role span{display:block;font-weight:400;color:var(--muted) !important;font-size:11.5px}
button.os,.os{width:auto !important;background:#fff !important;color:var(--ink) !important;
  border:1px solid var(--line-2) !important;border-radius:var(--radius-pill) !important;
  box-shadow:none !important;padding:8px 14px !important;font:600 12.5px/1.1 var(--font) !important}
button.os.on,.os.on{background:var(--c1-soft) !important;border-color:#d9d0ff !important;color:#5643d6 !important}
button.persona,.persona{width:100% !important;background:#fff !important;color:var(--ink) !important;
  border:1px solid var(--line) !important;border-radius:12px !important;box-shadow:none !important;
  text-align:left !important;padding:9px 10px !important}
button.persona.on,.persona.on{background:var(--c1-soft) !important;border-color:#d9d0ff !important}
/* Лендинг на мобильном: внутренние inline-grid главной страницы в одну колонку */
@media (max-width:900px){
  [style*="grid-template-columns:1.06fr"]{grid-template-columns:1fr !important;gap:22px !important}
  [style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr !important}
  [style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr !important}
  [style*="grid-template-columns:repeat(4"]{grid-template-columns:1fr 1fr !important}
}
/* ---------------------------------------------------------------- 9. Подвал */
.site-footer{margin:40px auto 0;max-width:var(--site-max);padding:22px var(--gutter) 34px;
  border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:13px;color:var(--muted)}
.site-footer b{color:var(--ink)}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--ink)}

/* ---------------------------------------------------------------- 8. Адаптив */
/* Средние экраны: меню — отдельной строкой, данные аккаунта не сжимаются. */
@media (max-width:1160px){
  header.site-topbar{
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-areas:"brand . actions" "nav nav nav";
    border-radius:26px !important;
    row-gap:8px !important;
    padding-bottom:7px !important;
  }
  header.site-topbar nav{justify-content:flex-start;width:100%;flex-wrap:wrap !important;overflow:visible;
    padding-top:8px;border-top:1px solid rgba(15,18,34,.07)}
  header.site-topbar nav .nav-sep{margin:0 3px}
}
@media (max-width:900px){
  :root{--gutter:16px}
  header.site-topbar{grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"brand actions" "nav nav";align-items:start !important;
    border-radius:22px !important;padding:11px 12px 10px 16px !important;gap:8px !important}
  header.site-topbar .top-actions{flex-wrap:wrap;justify-content:flex-end;white-space:normal;row-gap:6px}
  header.site-topbar nav{flex-wrap:nowrap !important;overflow-x:auto;justify-content:flex-start;
    scrollbar-width:none;padding-bottom:2px;border-top:1px solid rgba(15,18,34,.07)}
  header.site-topbar nav::-webkit-scrollbar{display:none}
  header.site-topbar nav a.navlink{flex:0 0 auto}
  header.site-topbar nav .nav-sep{flex:0 0 auto}
  header.site-topbar .site-crumb{max-width:120px}
  main{padding:18px var(--gutter) 48px !important}
}
@media (max-width:600px){
  /* На телефоне в шапке оставляем имя и «Выйти»; роль и CTA не распирают строку */
  header.site-topbar .site-cta{display:none !important}
  header.site-topbar #auth.auth-global .role-chip{display:none !important}
  header.site-topbar #auth.auth-global b{max-width:100px !important}
  header.site-topbar .site-logo{font-size:14px !important}
}
@media (max-width:520px){
  header.site-topbar .site-crumb{display:none !important}
}
@media print{
  header.site-topbar,.site-footer{display:none !important}
  body{background:#fff !important}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* Все заголовки портала — системный шрифт (легаси ставил Georgia) */
h1,h2,h3,h4,.hero h1,.hero h2,.hero h3,.card h2,.card h3{font-family:var(--font) !important}

/* статусы функций в настройках */
.p-chip--ok{background:#e9f9f3 !important;border-color:#c9e9dc !important;color:#0a7a5f !important}
.p-chip--off{background:#fff4f0 !important;border-color:#f3d3c8 !important;color:#b4492f !important}
.p-list{margin:0;padding-left:18px;color:var(--muted);font-size:13.5px;line-height:1.65}

/* функция ИИ-психолога: блоки-заглушки, когда функция выключена */
[data-ai-off-only]{display:none !important}
body[data-ai="off"] [data-ai-off-only]{display:block !important}


/* ---------------------------------------------------------------- Доп-меню «Контроль» */
nav.site-subnav{
  position:relative;
  z-index:9;
  display:flex;
  align-items:center;
  gap:3px;
  flex-wrap:wrap;
  width:fit-content;
  max-width:var(--site-max);
  margin:10px auto 0;
  padding:6px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(10px);
}
nav.site-subnav .site-subnav-label{
  padding:0 8px 0 3px;
  font-size:10px;
  line-height:1;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
nav.site-subnav a.subnav-link{
  padding:7px 11px;
  border-radius:999px;
  color:var(--ink-2);
  font-size:12.5px;
  font-weight:550;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s,color .15s;
}
nav.site-subnav a.subnav-link:hover{background:var(--soft);color:var(--ink)}
nav.site-subnav a.subnav-link[aria-current="page"]{
  background:linear-gradient(95deg,var(--c1),var(--c2));
  color:#fff;
}
@media(max-width:900px){
  nav.site-subnav{
    width:auto;
    margin:8px 12px 0;
    padding:5px 8px;
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    border-radius:16px;
  }
  nav.site-subnav::-webkit-scrollbar{display:none}
}
