/* ===== ТОКЕНЫ (светлая тема, стиль WabaFlow + синий #1f5f96). Меняешь тут — меняется весь сайт ===== */
:root{
  /* поверхности */
  --bg:#f6f8f9;            /* фон страницы */
  --surface:#ffffff;       /* карточки/панели */
  --surface-2:#f0f5fb;     /* приподнятый блок (лёгкий синий) */
  --field:#ffffff;         /* поля ввода */
  --field-2:#f1f5f9;       /* чипы/вторичный фон */
  --line:#e7edf0;          /* рамки/разделители */
  /* текст */
  --ink:#0b141a;           /* заголовки/жирный */
  --text:#1f2c34;          /* основной текст */
  --dim:#475569;           /* приглушённый (WCAG AA) */
  /* акцент (синий) */
  --accent:#1f5f96;        /* ЗАЛИВКИ: сайдбар-актив, unread, свитч, фокус-рамка (на тёмном тот же) */
  --accent-ink:#1f5f96;    /* акцент как ТЕКСТ на контентной поверхности (на тёмном — светлее) */
  --accent-strong:#2f78b8; /* заливка кнопок (светлее) */
  --accent-hover:#184b78;  /* hover-углубление */
  --accent-soft:#e8f1f8;   /* мягкая заливка/тинт */
  --accent-border:#bcd3e6; /* мягкая рамка акцента */
  --link:#2f78b8;
  /* статусы */
  --danger:#d92d20; --danger-soft:#fdecea;
  --warning:#f59e0b;
  --star:#f5b301;
  --ok:#16a34a;
  --shadow:0 1px 2px rgba(11,20,26,.05);
  /* чат */
  --chat-bg:#eef1f5;       /* фон ленты сообщений */
  --bubble-out:#d7ebf9;    /* исходящий пузырь */
  /* сайдбар (остаётся ТЁМНЫМ, как у WabaFlow) */
  --sb-bg:#0b141a; --sb-line:#1f2c34; --sb-text:#aebbc2; --sb-hover:#1f2c34;
}

/* ===== ТЁМНАЯ ТЕМА (data-theme="dark"). Те же токены, тёмные значения. Сайдбар уже тёмный — не трогаем ===== */
[data-theme="dark"]{
  /* поверхности (база WhatsApp-dark, чуть светлее тёмного сайдбара #0b141a) */
  --bg:#111b21;
  --surface:#1d2a33;
  --surface-2:#17232c;
  --field:#2a3942;
  --field-2:#182229;
  --line:#2a3942;
  /* текст */
  --ink:#e9edef;
  --text:#d1d7db;
  --dim:#8696a0;
  /* акцент: ЗАЛИВКИ тот же синий; ТЕКСТ/ссылки светлее (на тёмном #1f5f96 даёт ~3:1) */
  --accent:#1f5f96;
  --accent-ink:#5aa9e6;
  --accent-strong:#2f78b8;
  --accent-hover:#3a86c8;
  --accent-soft:#16344d;
  --accent-border:#2d5a7d;
  --link:#5aa9e6;
  /* статусы (чуть ярче для тёмного) */
  --danger:#f15b50; --danger-soft:#3a1d1b;
  --warning:#f5b53d;
  --star:#fbbf24;
  --ok:#22c55e;
  --shadow:0 1px 3px rgba(0,0,0,.4);
  /* чат */
  --chat-bg:#0b141a;
  --bubble-out:#0e3a5c;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Open Sans',-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}
h1,h2,h3,.logo,.nav-brand,.sb-company{font-family:'Poppins',-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}
.hidden{display:none!important}
.muted{color:var(--dim)}
.err{color:var(--danger);font-size:13px}
a{color:var(--link);text-decoration:none;cursor:pointer}
input,select{background:var(--field);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;width:100%;outline:none;font-size:14px}
input:focus,select:focus{border-color:var(--accent)}
.btn{border:none;border-radius:8px;padding:10px 16px;font-size:14px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.btn.primary{background:var(--accent-strong);color:#fff}
.btn.primary:hover{background:var(--accent-hover)}
.btn.ghost{background:var(--surface);border:1px solid var(--accent-border);color:var(--accent-ink);font-weight:700}
.btn.ghost:hover{background:var(--accent-soft);border-color:var(--accent)}
.btn.danger{background:var(--surface);border:1px solid #f3cdca;color:var(--danger)}
.btn.sm{padding:6px 10px;font-size:13px}
.card,.int-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.badge{font-size:12px;color:var(--dim);border:1px solid var(--line);border-radius:20px;padding:2px 10px}
.badge.ok{color:var(--ok);border-color:var(--ok)}
/* Режим рассылки уведомлений: бейдж состояния + строка номер/кнопка + статус сохранения */
.mode-badge{display:inline-block;padding:6px 11px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:8px;border:1px solid}
.mode-badge.live{color:var(--ok);border-color:var(--ok)}
.mode-badge.test{color:var(--warning);border-color:var(--warning)}
.mode-row{display:flex;gap:8px;align-items:center}
.mode-row input{flex:1}
.mode-row .btn{white-space:nowrap;flex:none}
input.field-err{border-color:var(--danger)!important}
.saved-ok{display:block;margin-top:4px;min-height:15px;font-size:12px;font-weight:600;color:var(--ok);opacity:0;transition:opacity .2s}
.saved-ok.show{opacity:1}

/* auth split */
.auth-split{display:flex;min-height:100vh}
.auth-left{flex:1;display:flex;align-items:center;justify-content:center;padding:48px;background:linear-gradient(160deg,#1f5f96,#123a5c)}
.auth-left-content{max-width:440px}
.auth-left .logo{color:#fff;font-weight:800;font-size:24px;margin-bottom:24px}
.auth-badge{display:inline-block;padding:6px 14px;background:rgba(255,255,255,.15);color:#fff;border-radius:999px;font-size:13px;font-weight:700;margin-bottom:20px}
.auth-left h1{font-size:32px;color:#fff;line-height:1.15;margin:0 0 14px;font-weight:800;letter-spacing:-.02em}
.auth-desc{color:#cfe0ee;font-size:16px;margin-bottom:24px}
.auth-feat{list-style:none;padding:0;margin:0}
.auth-feat li{padding:8px 0;color:#e8f1f8;display:flex;gap:10px;align-items:center}
.auth-feat li::before{content:'✓';color:#fff;font-weight:800}
.auth-right{flex:1;display:flex;align-items:center;justify-content:center;padding:48px;background:var(--bg)}
.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:32px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}
.tabs{display:flex;gap:4px;background:var(--field-2);border-radius:10px;padding:5px}
.tabs button{flex:1;padding:9px;border:none;border-radius:8px;background:transparent;color:var(--dim);font-weight:700;cursor:pointer}
.tabs button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
#auth-form{display:flex;flex-direction:column;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;color:var(--dim);font-weight:600}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:42px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--dim);cursor:pointer;font-size:16px;padding:6px}
.msg{padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600}
.msg.err{background:var(--danger-soft);color:var(--danger)}
.center{text-align:center}
#reg-consent{display:flex;flex-direction:column;gap:10px}
.check{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--dim);line-height:1.4;cursor:pointer}
.check input{width:17px;height:17px;flex:none;margin-top:1px;accent-color:var(--accent)}
.check a{font-weight:600}
@media(max-width:820px){.auth-left{display:none}.auth-right{padding:24px}}

/* ===== Левый сайдбар (остаётся ТЁМНЫМ) ===== */
.cl-layout{display:flex;min-height:100vh}
.sidebar{width:240px;flex:none;background:var(--sb-bg);border-right:1px solid var(--sb-line);display:flex;flex-direction:column;padding:14px 12px;gap:3px;position:sticky;top:0;height:100vh;align-self:flex-start;overflow-y:auto}
.sb-brand{display:flex;align-items:center;gap:10px;padding:6px 6px 16px}
.sb-avatar{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#2b7ec0,#1f5f96);color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;flex:none}
.sb-brand-txt{min-width:0}
.sb-company{font-weight:700;font-size:15px;line-height:1.15;color:#fff;word-break:break-word}
.sb-brandsub{font-size:11px;color:#5aa0d6;font-weight:700;letter-spacing:.02em;margin-top:1px}
.nav-brand{font-weight:800;color:var(--accent)}
.nav-links{display:flex;flex-direction:column;gap:3px}
.nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--sb-text);cursor:pointer;font-weight:600;transition:background .12s,color .12s}
.nav-link:hover{background:var(--sb-hover);color:#fff}
.nav-link.active{background:var(--accent);color:#fff}
.nav-link .nav-ic{width:20px;height:20px;flex:none}
.sb-bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--sb-line)}
.sb-sub{width:100%;background:transparent;border:1px solid #5aa0d6;color:#5aa0d6;border-radius:10px;padding:9px 10px;font-weight:700;font-size:13px;cursor:pointer;text-align:center}
.sb-user{padding:2px 6px}
.sb-uname{font-weight:700;font-size:14px;color:#fff}
.sb-urole{font-size:12px;margin-top:1px;color:var(--sb-text)}
.sb-logout{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;color:var(--sb-text);cursor:pointer;font-weight:600}
.sb-logout:hover{color:#fff;background:var(--sb-hover)}
.sb-logout svg{width:18px;height:18px;flex:none}
.cl-main{flex:1;min-width:0}
.lk{padding:24px;max-width:1100px;margin:0 auto}
.row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}
/* мобильный фолбэк */
@media(max-width:760px){
  .cl-layout{flex-direction:column}
  .sidebar{width:auto;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;overflow:visible;gap:6px}
  .sb-brand{padding:6px 8px}
  .nav-links{flex-direction:row;flex-wrap:wrap}
  .sb-bottom{margin-top:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;border-top:none;padding-top:0}
  .sb-sub{width:auto}
}

/* channels */
.qr-box{margin-top:20px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}
.qr-box img{width:260px;height:260px;background:#fff;border-radius:8px}
.ch-card{display:flex;flex-direction:column;gap:8px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px}
.dot.connected{background:var(--ok)}.dot.pending{background:var(--warning)}.dot.disconnected{background:var(--danger)}
.apikey{font-family:monospace;font-size:12px;background:var(--field-2);padding:6px 8px;border-radius:6px;word-break:break-all}

/* chats */
.chat-wrap{display:flex;height:calc(100vh - 48px)}
.chat-side{width:320px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--surface)}
.chat-side select{border-radius:0;border:none;border-bottom:1px solid var(--line)}
.chat-list{overflow:auto;flex:1}
.chat-item{padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.chat-item:hover,.chat-item.active{background:var(--accent-soft)}
.chat-item .name{font-weight:600}
.chat-item .last{color:var(--dim);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.unread{background:var(--accent);color:#fff;border-radius:10px;padding:0 7px;font-size:12px;font-weight:700;float:right}
.chat-main{flex:1;display:flex;flex-direction:column}
.chat-header{padding:12px 18px;border-bottom:1px solid var(--line);min-height:20px;background:var(--surface)}
.chat-header .ch-name{font-weight:600}
.chat-header .ch-sub{font-size:12px;color:var(--dim)}
.chat-item .via{font-size:11px;color:var(--link);margin-top:3px}
.msg .meta .tick{vertical-align:middle;margin-left:3px}
.msg .ticks{display:inline-flex;align-items:center;vertical-align:middle}
.m-img{max-width:280px;max-height:300px;border-radius:10px;cursor:pointer;display:block;margin:2px 0}
.m-audio{height:40px;max-width:250px;margin:2px 0}
.m-doc{display:inline-flex;align-items:center;gap:6px;background:var(--field-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--text);text-decoration:none;margin:2px 0}
.m-load{background:var(--field-2);border:1px dashed var(--line);border-radius:8px;padding:9px 12px;color:var(--dim);font-size:13px;margin:2px 0}
.m-cap{margin-top:4px;white-space:pre-wrap}
.chat-msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:6px;background:var(--chat-bg)}
.placeholder{margin:auto;color:var(--dim)}
.msg{max-width:65%;padding:7px 11px;border-radius:10px;background:var(--surface);color:var(--text);align-self:flex-start;white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow)}
.msg.out{align-self:flex-end;background:var(--bubble-out)}
.msg .meta{font-size:11px;color:var(--dim);margin-top:3px;text-align:right}
.msg .reactions{font-size:14px;margin-top:2px}
.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);align-items:center;background:var(--surface)}
.chat-input .ic{padding:8px 10px;font-size:18px;line-height:1;flex:none}
#msg-mic.rec{background:var(--danger);border-color:var(--danger);color:#fff;animation:pulse-rec 1s infinite}
@keyframes pulse-rec{0%,100%{opacity:1}50%{opacity:.55}}

/* integrations */
.int-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.int-card.off{opacity:.55}
.int-card b{font-size:15px}
.int-logo{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;letter-spacing:-.03em;box-shadow:0 6px 16px rgba(11,20,26,.14);overflow:hidden;padding:0 6px}
.int-logo--wa{background:linear-gradient(135deg,#25d366,#0f8a6e)}
.int-logo--iiko{background:#f1592a;font-size:21px;font-style:italic}
.int-logo--altegio{background:#2d7ff9;font-size:13px}
.int-logo--binotel{background:#10a44f;font-size:13px}
.int-clickable{cursor:pointer;transition:transform .12s,border-color .12s}
.int-clickable:hover{transform:translateY(-2px);border-color:var(--accent)}

/* приглашения / сотрудники */
.invite-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
#inv-form{display:flex;flex-direction:column;gap:14px}
#inv-head h2{margin:0 0 4px;font-size:22px}
.pending-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;flex-wrap:wrap}
.note{background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;padding:12px 14px;font-size:14px}
.note.tip{background:#e8f5ec;border-color:#bfe5cc}
select.sm{width:auto;padding:6px 10px;font-size:13px}
.btn.danger.sm{padding:6px 10px;font-size:13px}

/* team admin (сайдбар тоже тёмный) */
.sa-layout{display:flex;min-height:100vh}
.sa-side{width:220px;background:var(--sb-bg);border-right:1px solid var(--sb-line);padding:18px;display:flex;flex-direction:column;gap:6px}
.sa-side .nav-brand{color:#fff}
.sa-link{padding:10px 12px;border-radius:8px;color:var(--sb-text);cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.sa-link:hover{background:var(--sb-hover);color:#fff}
.sa-link.active{background:var(--accent);color:#fff}
.sa-badge{background:var(--danger);color:#fff;border-radius:10px;min-width:18px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.sa-main{flex:1;padding:24px;max-width:1000px}
.tbl{width:100%;border-collapse:collapse;margin-top:12px}
.tbl th,.tbl td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px}
.tbl th{color:var(--dim);font-weight:600}

/* misc */
.imp-banner{background:#fef3c7;color:#92600a;text-align:center;padding:8px;font-size:13px;position:sticky;top:0;z-index:10}
.modal{position:fixed;inset:0;background:rgba(11,20,26,.45);display:flex;align-items:center;justify-content:center;z-index:20}
.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;width:420px;max-height:85vh;overflow:auto;box-shadow:0 10px 40px rgba(11,20,26,.18)}
.modal-card input,.modal-card select{margin-bottom:10px}

/* notifications module */
textarea{background:var(--field);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;width:100%;outline:none;font:inherit;min-height:64px;resize:vertical}
textarea:focus{border-color:var(--accent)}
code{background:var(--field-2);padding:2px 6px;border-radius:5px;font-size:12px;font-family:monospace}
/* вкладки-странички (Уведомления): язычки сливаются с панелью контента */
/* модуль уведомлений: страница и панель во всю ширину (подвкладки = верхнее меню раздела) */
#page-notify{max-width:none}
.notify-panel{max-width:none;margin-top:2px}
/* шапка раздела: заголовок слева, вкладки справа, общая нижняя линия = верх тела вкладки */
.notify-head{display:flex;justify-content:space-between;align-items:flex-end;gap:8px 24px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.notify-title{padding-bottom:10px;min-width:0}
.notify-title h2{margin:0;line-height:1.2}
.notify-head .tabstrip{margin-right:80px} /* не заезжать под плавающий тумблер темы (top-right) */
.tabstrip{display:flex;gap:4px;flex-wrap:wrap}
.tabstrip button{appearance:none;font:inherit;background:transparent;border:1px solid transparent;border-bottom:none;border-radius:10px 10px 0 0;padding:10px 18px;margin-bottom:-1px;color:var(--dim);font-weight:600;cursor:pointer;white-space:nowrap}
.tabstrip button:hover{color:var(--ink)}
.tabstrip button.active{background:var(--surface);border-color:var(--line);color:var(--accent-ink)}
.tab-body{border:1px solid var(--line);border-top:none;border-radius:0 0 12px 12px;background:var(--surface);padding:20px;box-shadow:var(--shadow)}
.tab-body > .ntab > .card{border:none;background:transparent;padding:0;max-width:none;box-shadow:none}
/* секции форм (Настройки/Отзывы): группы с синими заголовками, воздух, 2 колонки, поля белые внутри */
.fsections{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:16px;align-items:start}
/* форм-вкладки держат читаемую ширину даже на полноширинной странице; data-вкладки (отзывы/журнал) .fsections не используют → остаются во всю ширину */
#notify-settings .fsections{max-width:1100px}
#notify-stoplist .fsections{max-width:560px}
.fsec{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:13px}
.fsec-h{margin:0;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-ink)}
.fhint{font-size:12px;line-height:1.45}
.notify-panel.wide{max-width:none}
.tpl-layout{display:flex;gap:18px;align-items:flex-start;max-width:1100px}
.tpl-list{flex:1;min-width:0}
.tpl-aside{flex:none;width:270px;position:sticky;top:16px;display:flex;flex-direction:column;gap:14px}
.ph-rail{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow)}
/* превью сообщения в стиле WhatsApp (НЕ зависит от темы) */
.wa-preview{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;box-shadow:var(--shadow)}
.wa-title{font-weight:700;font-size:13px;margin-bottom:10px}
.wa-screen{background:#e5ddd5;border-radius:10px;padding:14px 12px}
.wa-bubble{position:relative;max-width:100%;background:#fff;color:#111b21;border-radius:8px;border-top-left-radius:2px;padding:7px 10px 18px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 1px rgba(0,0,0,.13)}
.wa-bubble b{font-weight:700}
.wa-bubble .wa-time{position:absolute;right:9px;bottom:5px;font-size:10px;color:#667781}
.wa-bubble.empty{background:transparent;box-shadow:none;color:#5b6b73;font-style:italic;padding:8px 4px;white-space:normal}
.ph-head{display:flex;flex-direction:column;gap:2px;font-weight:700;font-size:13px;margin-bottom:10px}
.ph-sub{font-weight:500;font-size:11px;color:var(--dim)}
.ph-items{display:flex;flex-direction:column;gap:3px}
.ph-item{display:flex;flex-direction:column;gap:1px;text-align:left;width:100%;background:transparent;border:1px solid transparent;border-radius:8px;padding:6px 8px;cursor:pointer}
.ph-item:hover{background:var(--field-2);border-color:var(--line)}
.ph-item code{font-size:12px;color:var(--accent-ink);background:none;padding:0;font-family:monospace}
.ph-item span{font-size:11px;color:var(--dim)}
.ph-item.ph-q code{color:#1a7d8c}
.ph-note{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--dim)}
@media(max-width:760px){.tpl-layout{flex-direction:column}.tpl-aside{width:auto;position:static;order:-1}}
.metric{font-size:26px;font-weight:700;margin-top:4px;color:var(--accent-ink)}
.switch-row{display:flex;align-items:center;gap:10px;cursor:pointer}
.switch-row input{width:18px;height:18px;accent-color:var(--accent);flex:none}
.wh-url{display:flex;gap:8px;align-items:center}
.wh-url input{font-family:monospace;font-size:12px}
.tpl-row{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow)}
.tpl-head{margin-bottom:10px}
.tpl-head .muted{font-size:12px;margin-left:6px}
.tpl-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tpl-fields textarea{resize:none;overflow:hidden}
/* кнопка теста: прижата к низу колонки + синяя заливка */
.tpl-fields .tpl-test{align-self:flex-start;margin-top:auto;background:var(--accent-strong);border:1px solid var(--accent-strong);color:#fff}
.tpl-fields .tpl-test:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.org-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto;margin:10px 0}
.opt-list{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.opt-chip{display:inline-flex;align-items:center;gap:6px;background:var(--field-2);border:1px solid var(--line);border-radius:20px;padding:5px 6px 5px 12px;font-size:13px;font-family:monospace}
.opt-chip button{background:none;border:none;color:var(--dim);cursor:pointer;font-size:16px;line-height:1;padding:0 4px}
.opt-chip button:hover{color:var(--danger)}
@media(max-width:640px){.tpl-fields{grid-template-columns:1fr}}

/* ── Статусы подписки (бейджи: клиентская страница «Тариф») ── */
.badge.st-active{color:var(--ok);border-color:var(--ok)}
.badge.st-trial{color:var(--warning);border-color:var(--warning)}
.badge.st-paused,.badge.st-grace{color:#d97706;border-color:#d97706}
.badge.st-expired,.badge.st-cancelled{color:var(--danger);border-color:var(--danger)}
/* тумблер-переключатель (конструктор пакета + настройки канала) */
.switch{position:relative;display:inline-block;width:40px;height:22px;flex:none}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .slider{position:absolute;inset:0;background:#cbd5e1;border-radius:22px;cursor:pointer;transition:.2s}
.switch .slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked + .slider{background:var(--accent)}
.switch input:checked + .slider::before{transform:translateX(18px)}
/* сегмент-переключатель (тип цены / статус оплаты) */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--field-2)}
.seg button{appearance:none;font:inherit;background:transparent;border:none;border-right:1px solid var(--line);padding:8px 14px;color:var(--dim);font-weight:600;cursor:pointer;white-space:nowrap}
.seg button:last-child{border-right:none}
.seg button.active{background:var(--accent);color:#fff}

/* ════ PRO-страница карточки компании (data-dense дашборд; шрифты по канону: Poppins только в заголовках) ════ */
.sa-main.pro{max-width:1280px}
.pro .ic{width:18px;height:18px;flex:none;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pro .ic-lg{width:20px;height:20px}
.pro-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--link);cursor:pointer;font:inherit;padding:0;margin-bottom:14px}
/* шапка карточки компании: карточка-подложка; верхний ряд = «‹ Компании» + имя/чипы + «Войти как клиент»,
   нижний ряд = вкладки-пилюли (активная залита акцентом — однозначно читается как вкладка) */
.co-head2{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px 12px;box-shadow:var(--shadow);margin-bottom:22px}
.co-head-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.co-head-top h1{font-size:20px}
.pro-id{display:flex;gap:14px;align-items:center;min-width:0}
.pro-av{width:52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;flex:none}
.pro-id-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pro-id-line h1{margin:0;font-size:23px}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--field-2);color:var(--dim);border:1px solid var(--line)}
.chip.ok{background:rgba(22,163,74,.12);color:var(--ok);border-color:transparent}
.chip.warn{background:rgba(245,158,11,.15);color:#b9770b;border-color:transparent}
.chip.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}
.chip .dot{width:7px;height:7px;border-radius:50%;background:currentColor;margin:0}
/* тёмная тема: янтарный текст вместо тёмно-коричневого (иначе нечитаемо на тёмном фоне) */
[data-theme="dark"] .chip.warn{color:var(--warning);background:rgba(245,181,61,.16)}
.co-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pro-tabs{display:flex;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.pro-tabs button{appearance:none;font:inherit;font-weight:600;background:none;border:none;border-radius:10px;padding:7px 16px;color:var(--dim);cursor:pointer;transition:background .15s,color .15s}
.pro-tabs button:hover{background:var(--field-2);color:var(--ink)}
.pro-tabs button.active{background:var(--accent-soft);color:var(--accent-ink)}
/* KPI-карточки */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.kpi-top{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:13px}
.kpi-ico{width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;flex:none}
.kpi .val{font-size:25px;font-weight:700;color:var(--ink);margin-top:10px;display:flex;align-items:baseline;gap:6px}
.kpi .val small{font-size:14px;color:var(--dim);font-weight:600}
.kpi .sub{font-size:12px;color:var(--dim);margin-top:3px}
.bar{height:6px;border-radius:6px;background:var(--field-2);overflow:hidden;margin-top:10px}
.bar span{display:block;height:100%;background:var(--ok);border-radius:6px}
/* секции-карточки */
.pro-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);margin-top:16px}
.pro-card-h{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-weight:600;font-size:15px;color:var(--ink)}
.pro-card-h .ic{color:var(--accent-ink)}
.ctl-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0}
.ctl-row + .ctl-row{border-top:1px solid var(--line)}
.ctl-lbl{width:120px;flex:none;color:var(--dim)}
/* таблица сотрудников */
.emp-tbl{width:100%;border-collapse:collapse}
.emp-tbl th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}
.emp-tbl td{padding:11px 10px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
.emp-tbl tr:last-child td{border-bottom:none}
.emp-tbl tbody tr{transition:background .15s}
.emp-tbl tbody tr:hover{background:var(--surface-2)}
.who{display:flex;align-items:center;gap:10px}
.av-sm{width:32px;height:32px;border-radius:9px;background:var(--field-2);color:var(--dim);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex:none}
.rolebadge{font-size:12px;font-weight:600;padding:2px 9px;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink)}
.rolebadge.owner{background:rgba(245,158,11,.15);color:#b9770b}
[data-theme="dark"] .rolebadge.owner{color:var(--warning);background:rgba(245,181,61,.16)}
.sdot{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text)}
.sdot::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--ok)}
.sdot.off{color:var(--dim)}.sdot.off::before{background:var(--dim)}
.row-act{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
/* ПАКЕТ: конфигурация + сводка */
.pkg-grid{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}
.pkg-cfg{display:flex;flex-direction:column;gap:16px}
.pkg-cfg .pro-card{margin-top:0}
.cfg-grp{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);font-weight:600;margin:16px 0 2px}
.cfg-row{display:grid;grid-template-columns:1fr 96px 116px;align-items:center;gap:6px 18px;padding:12px 2px;border-top:1px solid var(--line)}
.cfg-grp + .cfg-row{border-top:none}
.cfg-nm{display:flex;flex-direction:column;gap:1px;min-width:0}
.cfg-nm .n{font-weight:600;color:var(--ink)}
.cfg-nm .d{font-size:12px;color:var(--dim)}
.cfg-price{text-align:right;font-weight:700;color:var(--ink);white-space:nowrap}
.cfg-price.free{color:var(--ok);font-weight:600}
.cfg-control{display:flex;justify-content:flex-end}
@media(max-width:520px){.cfg-row{grid-template-columns:1fr auto auto}}
/* степпер */
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--field)}
.stepper button{appearance:none;border:none;background:none;color:var(--dim);width:30px;height:32px;font-size:17px;cursor:pointer;padding:0}
.stepper button:hover{background:var(--field-2);color:var(--ink)}
.stepper input{width:42px;text-align:center;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);background:transparent;margin:0;padding:6px 0;height:32px;border-radius:0}
.stepper.off{opacity:.4}
/* сводка-«счёт» */
.summary{position:sticky;top:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}
.summary h3{margin:0;font-size:15px;color:var(--ink)}
.sum-price{font-size:32px;font-weight:800;color:var(--ink);line-height:1}
.sum-price small{font-size:14px;color:var(--dim);font-weight:600}
.sum-bd{font-size:13px;color:var(--dim);display:flex;flex-direction:column;gap:5px}
.sum-bd .l{display:flex;justify-content:space-between;gap:10px}
.hr{border-top:1px solid var(--line)}
.sum-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sum-row .pk-lbl{color:var(--dim);font-size:13px}
.pay-note{font-size:12px;color:var(--dim);line-height:1.5;background:var(--surface-2);border-radius:10px;padding:10px 12px}
.summary .btn{width:100%}
.seg.full{display:flex;width:100%}.seg.full button{flex:1;padding:8px 6px}
@media(max-width:980px){.pkg-grid{grid-template-columns:1fr}.summary{position:static}}

/* ── Уведомления в ЛК (баннер сверху) ── */
#lk-notices:not(:empty){padding:16px 24px 0}
.lk-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.lk-notice .btn{flex:none}
/* ── Лента уведомлений команды (админка) ── */
.act-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow)}
.act-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.act-what{font-size:13px;color:var(--accent-ink);margin-top:3px}
.act-detail{font-size:13px;color:var(--text);margin-top:4px}
.act-comment{margin-top:6px;font-size:13px;background:var(--surface-2);border-radius:8px;padding:8px 10px;white-space:pre-wrap;word-break:break-word}

/* ── Клиентский «Тариф» ── */
.tariff-hero{text-align:center;padding:18px;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:12px;margin:14px 0}
.tariff-hero .num{font-size:34px;font-weight:800;line-height:1;color:var(--accent-ink)}
.tariff-hero .sub{color:var(--dim);margin-top:6px}
.tariff-banner{background:#fef3c7;color:#92600a;border-radius:10px;padding:10px 14px;margin:12px 0;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.limit-cards{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.limit-card{flex:1;min-width:130px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;box-shadow:var(--shadow)}
.limit-card .v{font-size:18px;font-weight:700;margin-top:2px;color:var(--accent-ink)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}

/* ===== «Мои номера» / подключение QR / настройки ===== */
.btn-primary{background:var(--accent-strong);color:#fff;font-weight:600;padding:.8rem 1.5rem;border:none;border-radius:8px;cursor:pointer;display:inline-block}
.btn-primary:hover{background:var(--accent-hover)}
.btn-primary:disabled{cursor:default;opacity:.6}
.btn-secondary{background:var(--surface);color:var(--accent-ink);border:1px solid var(--accent-border);padding:.8rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:700}
.btn-secondary:hover{background:var(--accent-soft);border-color:var(--accent)}
.btn-danger{background:var(--danger);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}
.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.empty-state{color:var(--dim);text-align:center;padding:3rem}
.sub-banner{background:var(--surface);border:1px solid var(--line);padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid var(--accent);box-shadow:var(--shadow)}

.instances-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.docs-hint{grid-column:1/-1;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:10px;padding:.7rem 1rem;font-size:.85rem;color:var(--text)}
.docs-hint a{font-weight:600}
.instance-card{background:var(--surface);border-radius:10px;padding:1.5rem;border:1px solid var(--line);box-shadow:var(--shadow)}
.status{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--text)}
.status::before{content:'';width:8px;height:8px;border-radius:50%;flex:none;background:currentColor}
.status-connected::before{background:#16a34a}
.status-pending::before{background:#d9a40a}
.status-disconnected::before{background:#dc2626}
.api-key-row{display:flex;align-items:center;gap:.5rem;margin:.8rem 0}
.instance-card .api-key{flex:1;background:var(--field-2);padding:.5rem;border-radius:6px;font-family:monospace;font-size:.75rem;word-break:break-all}
/* API Доступ — аккордеон эндпоинтов + блок n8n */
.api-ep{border:1px solid var(--line);border-radius:8px;margin-top:.5rem;background:var(--surface);overflow:hidden}
.api-ep summary{cursor:pointer;padding:.6rem .8rem;font-size:.85rem;list-style:none;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;color:var(--text)}
.api-ep summary::-webkit-details-marker{display:none}
.api-ep[open] summary{border-bottom:1px solid var(--line)}
.api-m{font-size:.68rem;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap}
.api-path{font-family:monospace;font-size:.76rem;color:var(--dim)}
.api-ep-body{padding:.7rem .8rem}
.api-ep-body pre{background:var(--field-2);border-radius:6px;padding:.7rem;overflow-x:auto;margin:0 0 .5rem}
.api-ep-body pre code{background:none;padding:0;font-size:.74rem;color:var(--text);white-space:pre;font-family:monospace}
.api-m-get{background:var(--ok);color:#fff}
.api-m-post{background:var(--accent-strong);color:#fff}
.api-n8n{margin:1.2rem 0;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:12px;padding:1rem 1.1rem}
.api-n8n > h3{margin:0 0 .15rem;color:var(--ink);font-size:1.05rem}
.api-n8n-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.85rem .95rem;margin-top:.7rem}
.api-n8n-card .t{font-weight:700;font-size:.92rem;display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem;flex-wrap:wrap;color:var(--ink)}
.api-badge{font-size:.64rem;font-weight:700;padding:3px 9px;border-radius:20px;background:var(--accent-strong);color:#fff;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.api-badge.alt{background:var(--surface);color:var(--accent-ink);border:1px solid var(--accent-border)}
.api-n8n-card pre{background:var(--field-2);border-radius:6px;padding:.7rem;overflow-x:auto;margin:0 0 .5rem}
.api-n8n-card pre code{background:none;padding:0;font-size:.74rem;color:var(--text);white-space:pre;font-family:monospace}
.api-copyrow{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--field-2);border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;margin-top:.5rem;cursor:pointer;transition:border-color .15s,background .15s}
.api-copyrow:hover{border-color:var(--accent);background:var(--accent-soft)}
.api-copyrow-lbl{font-size:.66rem;color:var(--dim);font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.api-copyrow-val{font-family:monospace;font-size:.8rem;color:var(--text);word-break:break-all;margin-top:1px}
.api-copyrow-ic{color:var(--dim);flex:none;display:flex}
.api-copyrow:hover .api-copyrow-ic{color:var(--accent-ink)}
.api-copypre{cursor:pointer}
.api-copypre:hover{outline:1px solid var(--accent-border);outline-offset:-1px}
#mg-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(12px);background:var(--ink);color:#fff;padding:.6rem 1.1rem;border-radius:10px;font-size:.85rem;font-weight:600;box-shadow:0 6px 22px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:9999}
#mg-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.btn-icon{background:var(--field-2);border:1px solid var(--line);color:var(--dim);padding:.4rem;border-radius:6px;cursor:pointer;display:flex;align-items:center}
.btn-icon:hover{color:var(--accent-ink);background:var(--accent-soft)}
.btn-settings{background:var(--field-2);border:1px solid var(--line);color:var(--dim);padding:.5rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;transition:all .2s}
.btn-settings:hover{color:var(--accent-ink);background:var(--accent-soft)}

.connect-card{background:var(--surface);padding:2rem;border-radius:12px;max-width:500px;border:1px solid var(--line);box-shadow:var(--shadow)}
#qr-code{margin:1.5rem 0;text-align:center}
#qr-code img{max-width:280px;width:280px;background:#fff;border-radius:8px}
.qr-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem;color:var(--dim)}
.spinner{width:40px;height:40px;border:3px solid var(--line);border-top:3px solid var(--accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.connect-success{background:#dcfce7;color:#15803d;padding:1rem;border-radius:8px;text-align:center;font-weight:600;font-size:1.1rem;margin-bottom:1rem}
.connect-pending{background:#fef3c7;color:#b45309;padding:.8rem;border-radius:8px;text-align:center;margin-bottom:1rem}

.settings-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}
.btn-back{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:var(--dim);cursor:pointer;font-size:.95rem;padding:.5rem .8rem;border-radius:8px;transition:all .2s}
.btn-back:hover{color:var(--ink);background:var(--field-2)}
.settings-content{max-width:600px}
.setting-group{background:var(--surface);border-radius:12px;border:1px solid var(--line);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}
.setting-group-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--dim);margin:0 0 1.2rem}
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--line)}
.setting-row:last-child{border-bottom:none;padding-bottom:0}
.setting-row:first-of-type{padding-top:0}
.setting-info{display:flex;flex-direction:column;gap:.2rem}
.setting-label{font-weight:600;color:var(--ink)}
.setting-desc{font-size:.82rem;color:var(--dim)}
.setting-input{width:100%;padding:.6rem .8rem;background:var(--field);border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:.9rem;margin-top:.5rem}
.setting-input:focus{outline:none;border-color:var(--accent)}
.settings-save-btn{width:100%;margin-top:.5rem;padding:1rem;font-size:1rem}

/* ===== Плавающий переключатель темы (вид «компакт-пилюля», правый верхний угол) ===== */
.theme-fab{position:fixed;top:14px;right:16px;z-index:50}
.theme-fab .s3-pill{box-shadow:0 6px 18px rgba(11,20,26,.18)}
[data-theme="dark"] .theme-fab .s3-pill{box-shadow:0 6px 18px rgba(0,0,0,.45)}
.s3-pill{display:inline-flex;align-items:center;position:relative;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer;line-height:0;-webkit-tap-highlight-color:transparent;transition:border-color .25s ease,background .25s ease}
.s3-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.s3-track{position:relative;display:inline-flex;align-items:center}
.s3-knob{position:absolute;top:0;left:0;width:28px;height:28px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.04);transform:translateX(0);transition:transform .26s cubic-bezier(.34,1.4,.5,1);z-index:1}
[data-theme="dark"] .s3-knob{transform:translateX(28px)}
.s3-icon{position:relative;z-index:2;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}
.s3-icon svg{width:16px;height:16px;transition:color .26s ease,opacity .26s ease}
.s3-sun{color:var(--accent)}
.s3-moon{color:var(--dim)}
[data-theme="dark"] .s3-sun{color:var(--dim)}
[data-theme="dark"] .s3-moon{color:var(--accent-ink)}
/* мобайл: сайдбар уезжает в верхнюю строку — уводим пилюлю в нижний угол, чтобы не перекрывала */
@media(max-width:760px){.theme-fab{top:auto;bottom:14px;right:14px}}
/* средние экраны: правый край контента близко к краю окна → отступаем шапку, чтобы кнопки (+ Подключить / + Пригласить / поиск) не уходили под пилюлю. На широких мониторах пилюля и так в поле справа */
@media(min-width:761px) and (max-width:1520px){.row-head{padding-right:84px}}
