/*
 * LEAD BOX ID — страницы поверх Admin Core.
 * Цвета, шрифт, кнопки, поля, таблицы и статусы — из admin-core (--admin-* и .suite-*);
 * здесь только раскладка экранов authbox и запасной сайдбар на случай, если оболочка не поднялась.
 * Новых цветов не вводим: всё через токены, чтобы обе темы работали сами.
 */

html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--admin-bg);color:var(--admin-text);font:14px/1.5 var(--admin-font)}
*,*::before,*::after{box-sizing:border-box}
a{color:var(--admin-accent)}
code,.ab-code{font:500 13px/1.4 var(--admin-font-mono)}
:focus-visible{outline:2px solid var(--admin-accent);outline-offset:2px}
.ab-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- Кабинет: запасной сайдбар (без JS или если модуль оболочки не загрузился) ---------- */
.ab-app{display:grid;grid-template-columns:234px minmax(0,1fr);min-height:100vh}
.ab-side{display:flex;flex-direction:column;gap:18px;padding:20px 14px;background:var(--admin-side-bg);border-right:1px solid var(--admin-side-line)}
.ab-side-brand{display:flex;flex-direction:column;gap:6px;padding:4px 10px;color:var(--admin-text);text-decoration:none}
.ab-side-brand small{font-size:12px;font-weight:600;color:var(--admin-side-muted)}
.ab-nav{display:flex;flex-direction:column;gap:2px}
.ab-nav-group{margin:14px 10px 6px;font-size:12px;font-weight:600;color:var(--admin-side-muted)}
.ab-nav-link{display:block;padding:8px 10px;border-radius:var(--admin-radius);color:var(--admin-side-text);font-weight:600;text-decoration:none}
.ab-nav-link:hover{background:var(--admin-side-hover);color:var(--admin-text)}
.ab-nav-link[aria-current]{background:var(--admin-side-active);color:var(--admin-side-accent);font-weight:700}
.ab-side>.ab-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--admin-side-line)}
.ab-side .suite-shell-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.ab-side .suite-shell-user>span:last-child{display:flex;flex-direction:column;min-width:0}
.ab-side .suite-shell-user strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-side .suite-shell-user small{font-size:12px;color:var(--admin-side-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-side .ab-foot form{margin:0}
.ab-foot-logout svg{width:18px;height:18px}
.ab-side .ab-foot-logout{display:grid;place-items:center;width:34px;min-height:34px;padding:0}
.ab-main{min-width:0;padding:32px}
@media(max-width:800px){
 .ab-app{display:block}
 .ab-side{gap:10px;padding:14px 16px;border-right:0;border-bottom:1px solid var(--admin-side-line)}
 .ab-nav{flex-direction:row;flex-wrap:wrap}
 .ab-nav-group{display:none}
 .ab-main{padding:20px 16px 40px}
}

/* ---------- Страница кабинета ---------- */
.ab-page{max-width:1180px}
.ab-page>.suite-page-head{margin-bottom:28px}
.ab-page .suite-page-head h1{margin-bottom:6px}
.ab-page .suite-breadcrumbs{margin-bottom:6px}
.ab-stack{display:grid;gap:24px;min-width:0}
.ab-columns{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:start}
@media(max-width:1100px){.ab-columns{grid-template-columns:minmax(0,1fr)}}
.ab-section-title{margin:0 0 14px;font-size:17px;font-weight:700}

/* Карточка: заголовок + пояснение слева, действия справа. */
.ab-card{min-width:0}
.ab-card>h2,.ab-card-head h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.01em}
.ab-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.ab-card-head p,.ab-card>p.ab-hint{margin:4px 0 0;color:var(--admin-muted);font-size:14px;max-width:70ch}
.ab-card>p.ab-hint{margin:6px 0 18px}
.ab-card-head .suite-page-actions{flex:none}
.ab-count{margin-left:6px;color:var(--admin-muted);font-weight:600}
.ab-card-foot{margin-top:18px;padding-top:18px;border-top:1px solid var(--admin-line-soft)}

/* Таблица в карточке — во всю ширину карточки, без второй тени. */
.ab-card>.suite-table-scroll{max-height:none;max-width:none;margin:0 -24px;border:0;border-top:1px solid var(--admin-line-soft);border-radius:0;box-shadow:none;background:transparent;scrollbar-gutter:auto}
.ab-card>.suite-form+.suite-table-scroll{margin-top:24px}
.ab-card>.suite-table-scroll:last-child{margin-bottom:-24px;border-radius:0 0 var(--admin-panel-radius) var(--admin-panel-radius)}
/* templates.css сужает поля карточки до 16px на экранах до 800px. */
@media(max-width:800px){.ab-card>.suite-table-scroll{margin-inline:-16px}.ab-card>.suite-table-scroll:last-child{margin-bottom:-16px}.ab-table :is(th,td):first-child{padding-left:16px}.ab-table :is(th,td):last-child{padding-right:16px}}
.suite-table-scroll.ab-table{max-height:none;scrollbar-gutter:auto}
.ab-table table{table-layout:auto;min-width:0}
.ab-table :is(th,td){padding:12px 16px}
.ab-table :is(th,td):first-child{padding-left:24px}
.ab-table :is(th,td):last-child{padding-right:24px}
.ab-table th{position:static;background:var(--admin-panel-2)}
.ab-table td{vertical-align:middle}
.ab-table .ab-actions-cell{text-align:right;white-space:nowrap}
.ab-table .ab-actions-cell>*{vertical-align:middle}
.ab-table .ab-actions-cell>*+*{margin-left:6px}
.ab-table .ab-nowrap{white-space:nowrap}
.ab-table .suite-table-empty{height:auto;padding:28px 24px}
.ab-cell-main{display:block;font-weight:700;color:var(--admin-text);overflow-wrap:anywhere}
.ab-cell-sub{display:block;margin-top:2px;color:var(--admin-muted);font-size:13px;overflow-wrap:anywhere}
a.ab-cell-main{text-decoration:none}
a.ab-cell-main:hover{color:var(--admin-accent);text-decoration:underline}
.ab-muted{color:var(--admin-muted)}
.ab-table select{min-height:var(--admin-control-sm);padding:5px 30px 5px 10px;border:1px solid var(--admin-line);border-radius:var(--admin-radius-sm);background-color:var(--admin-panel);color:var(--admin-text);font:600 13px var(--admin-font)}
/* Телефон: строка таблицы становится карточкой «подпись — значение». */
@media(max-width:640px){
 .ab-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .ab-table table,.ab-table tbody{display:block;min-width:0}
 .ab-table tr{display:grid;gap:8px;padding:16px;border-bottom:1px solid var(--admin-line-soft)}
 .ab-table tbody tr:last-child{border-bottom:0}
 .ab-table tbody tr:hover{background:transparent}
 .ab-table :is(th,td),.ab-table :is(th,td):is(:first-child,:last-child){display:block;padding:0;border:0}
 .ab-table td[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--admin-muted);font-size:12px;font-weight:600}
 .ab-table td:empty{display:none}
 .ab-table td:first-child::before{display:none!important}
 .ab-table .ab-actions-cell{text-align:left;white-space:normal;padding-top:4px}
 .ab-table .ab-actions-cell>*{margin:4px 6px 0 0}
 .ab-table .ab-actions-cell>*+*{margin-left:0}
}

/* Кнопки-ссылки и компактные кнопки в строках. */
a.suite-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.suite-button{font-family:var(--admin-font)}
.suite-button.ab-small{min-height:var(--admin-control-sm);padding:6px 12px;font-size:13px}
.suite-button svg{width:16px;height:16px;flex:none}
form.ab-inline{display:inline}
.ab-link-button{padding:0;border:0;background:none;color:var(--admin-accent);font:700 14px var(--admin-font);cursor:pointer}
.ab-link-button:hover{color:var(--admin-accent-hover);text-decoration:underline}

/* Статусы и роли: пилюли admin-core, тон только поддерживает текст. */
.suite-status+.suite-status{margin-left:4px}
.ab-status-line{display:flex;flex-wrap:wrap;gap:6px}
.ab-status-line .suite-status+.suite-status{margin-left:0}

/* Уведомления страницы (flash, ошибки, состояние организации). */
.ab-notice{display:flex;align-items:flex-start;gap:12px;margin:0 0 20px;padding:14px 18px;border-radius:var(--admin-radius);background:var(--admin-info-bg);color:var(--admin-text);font-weight:500;overflow-wrap:anywhere}
.ab-notice::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--admin-info)}
.ab-notice[data-tone=success]{background:var(--admin-success-bg)}
.ab-notice[data-tone=success]::before{background:var(--admin-success)}
.ab-notice[data-tone=error]{background:var(--admin-danger-bg)}
.ab-notice[data-tone=error]::before{background:var(--admin-danger)}
.ab-notice[data-tone=warning]{background:var(--admin-warning-bg)}
.ab-notice[data-tone=warning]::before{background:var(--admin-warning)}
.ab-notice p{margin:0}

/* Формы в строку: поля растягиваются, кнопка — по нижнему краю полей. */
.ab-inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px}
.ab-inline-form>.suite-form-field{flex:1 1 240px}
.ab-inline-form>.suite-form-field.ab-narrow{flex:0 1 200px}
.ab-inline-form>.suite-button{flex:none}
@media(max-width:560px){.ab-inline-form>.suite-form-field.ab-narrow{flex:1 1 100%}.ab-inline-form>.suite-button{flex:1 1 100%}}
.suite-form-field select{appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--admin-muted) 50%),linear-gradient(135deg,var(--admin-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.ab-table select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--admin-muted) 50%),linear-gradient(135deg,var(--admin-muted) 50%,transparent 50%);background-position:calc(100% - 15px) 55%,calc(100% - 10px) 55%;background-size:5px 5px;background-repeat:no-repeat}

/* Организации — плитки. */
.ab-org-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.ab-org{display:flex;align-items:center;gap:14px;min-width:0;padding:18px 20px;border:1px solid var(--admin-card-border);border-radius:var(--admin-panel-radius);background:var(--admin-panel);box-shadow:var(--admin-shadow);color:var(--admin-text);text-decoration:none;transition:box-shadow .15s,border-color .15s}
.ab-org:hover{box-shadow:var(--admin-shadow-float);border-color:var(--admin-line)}
.ab-org>span:nth-child(2){flex:1;min-width:0;display:grid;gap:6px;justify-items:start}
.ab-org strong{font-size:15px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.ab-org>svg{width:18px;height:18px;flex:none;color:var(--admin-muted)}
.ab-org:hover>svg{color:var(--admin-accent)}
@media(prefers-reduced-motion:reduce){.ab-org{transition:none}}

/* Сведения «подпись — значение» внутри карточки. */
.ab-facts{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:14px 20px;margin:0}
.ab-facts dt{color:var(--admin-muted)}
.ab-facts dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;overflow-wrap:anywhere}
@media(max-width:640px){.ab-facts{grid-template-columns:minmax(0,1fr);gap:4px}.ab-facts dd{margin-bottom:12px}}
.ab-profile{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.ab-profile strong{display:block;font-size:17px;font-weight:700}
.ab-profile span{color:var(--admin-muted)}
.ab-chips{display:flex;flex-wrap:wrap;gap:8px}
.ab-chip{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 12px;border-radius:var(--admin-pill);background:var(--admin-panel-2);border:1px solid var(--admin-line);color:var(--admin-text);font-weight:600;font-size:13px;text-decoration:none}
a.ab-chip:hover{border-color:var(--admin-line-strong);background:var(--admin-hover)}
.ab-chip small{color:var(--admin-muted);font-size:12px;font-weight:600}
.ab-id{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 10px;border-radius:var(--admin-radius-sm);background:var(--admin-sunken);color:var(--admin-text-2);user-select:all;overflow-wrap:anywhere}

/* Состояние «пусто» внутри карточки — вставка, не вторая карточка. */
.suite-state.ab-state-sm{min-height:0;padding:22px}
.ab-card .suite-state{box-shadow:none;border-color:transparent;background:var(--admin-panel-2)}

/* Листалка. */
.ab-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}
.ab-pager span.suite-button{opacity:.45;cursor:default}

/* ---------- Экраны входа ---------- */
.ab-auth{display:grid;grid-template-columns:minmax(380px,5fr) minmax(0,7fr);min-height:100vh;min-height:100dvh}
.ab-auth-aside{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:44px 48px;background:#0a0d0c;color:#dfe6e2;overflow:hidden}
html[data-theme=dark] .ab-auth-aside{background:var(--admin-side-bg);border-right:1px solid var(--admin-side-line)}
.ab-auth-aside .ab-brand-word{color:#fff}
html[data-theme=dark] .ab-auth-aside .ab-brand-word{color:var(--admin-text)}
.ab-brand-word .suite-logo{font-size:1em}
.ab-auth-aside h2{margin:0 0 14px;max-width:15ch;font-size:34px;line-height:1.15;font-weight:800;letter-spacing:-.025em;color:#fff}
html[data-theme=dark] .ab-auth-aside h2{font-weight:700;color:var(--admin-text)}
.ab-auth-aside>div>p{margin:0;max-width:40ch;color:#aebbb5;font-size:15px;line-height:1.6}
html[data-theme=dark] .ab-auth-aside>div>p{color:var(--admin-text-2)}
.ab-points{display:grid;gap:18px;margin:34px 0 0;padding:0;list-style:none;max-width:44ch}
.ab-points li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:4px 14px;color:#aebbb5;font-size:14px;line-height:1.55}
html[data-theme=dark] .ab-points li{color:var(--admin-text-2)}
.ab-points li strong{grid-column:2;color:#fff;font-size:15px;font-weight:700}
html[data-theme=dark] .ab-points li strong{color:var(--admin-text)}
.ab-points li>span{grid-column:2}
.ab-points li>svg{grid-row:1/span 2;width:36px;height:36px;padding:8px;border-radius:10px;background:rgb(255 255 255 / .07);color:#dfe6e2}
.ab-auth-aside>small{color:#8b9892;font-size:12px}
html[data-theme=dark] .ab-auth-aside>small{color:var(--admin-muted)}
.ab-brand-word{display:inline-flex;align-items:center;gap:10px}
.ab-brand-id{font:800 1em/1 'Suite Logo',Montserrat,var(--admin-font);letter-spacing:-.05em}
.ab-brand-word{font-size:26px}

.ab-auth-main{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-width:0;padding:72px 24px 40px}
.ab-auth-top{position:absolute;top:20px;right:24px;left:24px;display:flex;align-items:center;justify-content:flex-end;gap:12px}
.ab-auth-top .ab-brand-word{margin-right:auto;color:var(--admin-text);text-decoration:none}
.ab-auth-top .ab-brand-word{font-size:20px}
.ab-auth .suite-service{width:100%;max-width:440px;margin:0;padding:36px}
.ab-auth .suite-service h1{margin:6px 0 10px;font-size:26px;font-weight:800;letter-spacing:-.02em}
html[data-theme=dark] .ab-auth .suite-service h1{font-weight:700}
.ab-lead{margin:0 0 22px;color:var(--admin-muted);line-height:1.6}
.ab-auth .suite-form-grid{grid-template-columns:minmax(0,1fr);gap:16px}
.ab-auth .suite-form-actions{margin-top:22px}
.ab-auth .suite-form-actions .suite-button{flex:1 1 100%;min-height:46px;font-size:15px}
.ab-auth .suite-form-field .suite-password>input{padding-right:104px}
.ab-auth .ab-notice{margin-bottom:18px}
.ab-auth-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:22px 0 0;padding-top:20px;border-top:1px solid var(--admin-line-soft);color:var(--admin-muted)}
.ab-auth-links a,.ab-auth-links .ab-link-button{color:var(--admin-accent);font-weight:700;text-decoration:none}
.ab-auth-links a:hover{text-decoration:underline}
.ab-auth-links form{margin:0}
.ab-auth-foot{display:none;margin:0;max-width:440px;color:var(--admin-muted);font-size:13px;text-align:center}
.ab-choices{display:grid;gap:10px;margin:0 0 20px}
.ab-choices form{margin:0}
.ab-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:10px 16px;text-align:left}
.ab-choice svg{width:18px;height:18px;flex:none;color:var(--admin-muted)}
.ab-choice:hover svg{color:var(--admin-accent)}
.ab-divider{display:flex;align-items:center;gap:12px;margin:4px 0 16px;color:var(--admin-muted);font-size:13px}
.ab-divider::before,.ab-divider::after{content:"";flex:1;height:1px;background:var(--admin-line)}
.ab-scopes{display:grid;gap:10px;margin:0 0 24px;padding:0;list-style:none}
.ab-scopes li{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--admin-radius);background:var(--admin-panel-2)}
.ab-scopes li::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--admin-accent)}
.ab-auth .ab-stack-actions{display:grid;gap:10px}
.ab-auth .ab-stack-actions form{margin:0}
.ab-auth .ab-stack-actions .suite-button{width:100%;min-height:46px;font-size:15px}
.ab-theme.suite-button{display:grid;place-items:center;width:var(--admin-control);padding:0;color:var(--admin-text-2)}
.ab-theme svg{width:18px;height:18px}
.ab-theme.suite-button[aria-pressed]{background:var(--admin-panel);border-color:var(--admin-line);color:var(--admin-text-2);font-weight:600}
.ab-theme.suite-button:hover{color:var(--admin-text)}
html[data-theme=dark] .ab-theme-light,html:not([data-theme=dark]) .ab-theme-dark{display:none}
@media(max-width:960px){
 .ab-auth{grid-template-columns:minmax(0,1fr)}
 .ab-auth-aside{display:none}
 .ab-auth-foot{display:block}
}
@media(min-width:961px){.ab-auth-top .ab-brand-word{visibility:hidden}}
@media(max-width:560px){
 .ab-auth-main{justify-content:flex-start;padding:84px 16px 32px}
 .ab-auth .suite-service{padding:24px 20px}
 .ab-auth .suite-service h1{font-size:23px}
 .ab-auth-top{top:16px;left:16px;right:16px}
}
@media(forced-colors:active){.ab-notice,.ab-org{border:1px solid CanvasText}.ab-nav-link[aria-current]{outline:2px solid Highlight}}
/* templates.css ограничивает формы 960px; в карточках кабинета форма во всю ширину карточки. */
.ab-page .suite-form{max-width:none}

/* Security forms inherit Admin Core; only long secrets and recovery lists are local. */
.ab-security { max-width: 760px; }
.ab-security details { margin-block: 16px; }
.ab-security summary { cursor: pointer; font-weight: 600; }
.ab-secret { width: 100%; min-width: 0; font-family: monospace; overflow-wrap: anywhere; }
.ab-recovery-codes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 8px 24px; padding-inline-start: 24px; }
.ab-recovery-codes code { overflow-wrap: anywhere; user-select: all; }
.ab-field-error { color: var(--admin-danger, #b42318); margin-block: 6px; }
