:root{
  color-scheme:dark;
  --bg:#0d0f12;
  --surface:#171a1f;
  --surface2:#20242a;
  --text:#f2f3f5;
  --muted:#9aa1aa;
  --accent:#55d6c2;
  --accent2:#1e514c;
  --accent-ink:#062522;
  --focus-ring:rgba(85,214,194,.18);
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --radius-control:14px;
  --radius-card:20px;
  --danger:#ffb4ab;
  --border:#2a3038;
}
*{box-sizing:border-box}
html{background:var(--bg);min-height:100%;}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Roboto,system-ui,sans-serif;min-height:var(--tg-viewport-stable-height,100vh);}
button,input,textarea,select{font:inherit}
button{border:0;color:inherit}
button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring);outline:none}
#app{max-width:720px;margin:auto;min-height:var(--tg-viewport-stable-height,100vh);padding-bottom:24px;padding-top:env(safe-area-inset-top)}
/* Кнопка «домой» в шапке вместо нижней панели */
.home-btn{width:44px;height:44px;flex:0 0 auto;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:21px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.home-btn:hover{border-color:var(--accent);color:var(--accent)}
.home-btn[hidden]{display:none}
[hidden]{display:none !important}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px 12px;position:sticky;top:0;z-index:10;background:rgba(13,15,18,.96);backdrop-filter:blur(12px)}
.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--muted)}
h1{margin:4px 0;font-size:25px}
.window-actions{display:flex;gap:8px;align-items:center}
.icon-btn{width:44px;height:44px;border-radius:50%;background:var(--surface2);cursor:pointer}

.page{padding:10px 16px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.card,.tile{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:18px}
.tile{min-height:120px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;cursor:pointer}
.tile b{font-size:17px}.tile span{font-size:30px}
.tile small{font-size:12px;color:var(--muted);margin-top:2px}
.home-menu .tile{min-height:72px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;justify-content:stretch;text-align:left;gap:var(--space-3);transition:border-color .16s ease,color .16s ease,background-color .16s ease,transform .12s ease}
.home-menu .tile span{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;border-radius:11px;background:var(--accent2);color:var(--accent);font-size:20px;line-height:1;text-align:center}
.home-menu .tile b{grid-column:2;font-size:15px;line-height:1.3;min-width:0;overflow-wrap:anywhere;word-break:normal}
.home-menu .tile:hover{border-color:var(--accent);background:rgba(85,214,194,.045);color:var(--accent)}
.home-menu .tile:active{background:var(--focus-ring);transform:scale(.99)}
@media(prefers-reduced-motion:reduce){.home-menu .tile{transition:none}.home-menu .tile:active{transform:none}}
.tool-head{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:14px 18px;margin-bottom:12px;display:flex;flex-direction:column;gap:3px}
.tool-head b{font-size:17px}
.tool-head span{font-size:12px;color:var(--muted)}
/* В режиме отправки блоки даты и времени не выводятся — их убирает разметка */
.send-mode .switch{display:none}
.section-title{margin:24px 4px 10px;font-size:14px;color:var(--muted)}
label{display:block;color:var(--muted);font-size:13px;margin:14px 0 7px}
input,textarea,select{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:16px;padding:13px;color:var(--text);outline:none}
textarea{min-height:120px;resize:vertical}
.primary{width:100%;background:var(--accent);color:var(--accent-ink);padding:14px;border-radius:16px;font-weight:700;margin-top:16px}
.secondary{background:var(--surface2);padding:12px 14px;border-radius:14px}
.danger{color:var(--danger)}
.switch{display:flex;align-items:center;justify-content:space-between;background:var(--surface2);padding:14px;border-radius:16px;margin-top:12px}
.settings-option-switch{gap:12px;border:1px solid var(--border);background:var(--surface);min-height:56px}
.settings-option-switch span{color:var(--text);font-size:14px;line-height:1.4}
.settings-option-switch input{width:22px;height:22px;flex:0 0 22px;margin:0;accent-color:var(--accent);cursor:pointer}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.day{aspect-ratio:1;border-radius:12px;background:var(--surface2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.day.selected{background:var(--accent2);outline:2px solid var(--accent)}
.day.muted{opacity:.35}
.date-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.chip{padding:8px 11px;background:var(--surface2);border-radius:99px;font-size:13px}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;margin:auto;max-width:720px;height:76px;padding-bottom:env(safe-area-inset-bottom);background:rgba(23,26,31,.96);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;z-index:5}
.bottom-nav button{background:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);min-width:58px}
.bottom-nav span{font-size:23px}.bottom-nav small{font-size:10px}
.bottom-nav .fab{width:52px;height:52px;border-radius:18px;background:var(--accent);color:var(--accent-ink);font-size:30px}
.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}
.schedule{margin-bottom:10px}
.status{display:inline-block;padding:5px 9px;border-radius:99px;background:var(--surface2);font-size:11px;color:var(--muted)}
.status.active{color:var(--accent)}
.error{color:var(--danger);font-size:13px;margin-top:10px}
.notice{color:#ffd08a;background:rgba(255,208,138,.1);border:1px solid rgba(255,208,138,.22);border-radius:12px;padding:9px 11px;font-size:12px;margin-top:10px;line-height:1.35}
.media-box{display:block;border:1px dashed var(--border);padding:14px;border-radius:16px;text-align:center;color:var(--muted);cursor:pointer;background:var(--surface2)}
.media-status{font-size:12px;color:var(--muted);min-height:18px;margin-top:7px}
.media-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.media-item{width:112px;min-width:0}
.media-thumb{height:92px;border-radius:14px;overflow:hidden;background:#0d0f12;position:relative;border:1px solid var(--border)}
.media-thumb img,.media-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.media-remove{position:absolute;right:5px;top:5px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;font-size:20px;line-height:24px;cursor:pointer}
.video-badge{position:absolute;left:6px;bottom:6px;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;font-size:12px}
.media-name{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}
.preview-btn{width:100%;margin-top:16px;text-align:center;cursor:pointer}
.preview-modal{width:min(100%,560px);max-height:88vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:16px;box-shadow:0 18px 50px rgba(0,0,0,.4)}
.preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:18px}
.modal-close{width:38px;height:38px;border-radius:50%;background:var(--surface2);font-size:25px;cursor:pointer}
.telegram-preview{background:var(--bg);border-radius:18px;padding:10px;overflow:hidden}
.preview-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.preview-media{width:100%;max-height:360px;object-fit:cover;border-radius:12px;display:block;background:#111}
.preview-text{padding:12px 4px 6px;white-space:normal;word-break:break-word}
.preview-buttons{display:grid;gap:5px;margin-top:8px}
.preview-button{display:block;text-align:center;padding:10px 12px;border-radius:10px;background:var(--accent2);color:var(--text);text-decoration:none;font-size:13px}
@media(max-width:430px){.grid{grid-template-columns:1fr}.admin-menu-grid{grid-template-columns:1fr;gap:8px}.topbar{padding-left:16px;padding-right:16px}}
.header-left{display:flex;align-items:center;gap:8px;min-width:0}
.back-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;background:var(--surface2);font-size:32px;line-height:1;cursor:pointer}
.header-left h1{margin:4px 0}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.58);display:flex;align-items:center;justify-content:center;padding:20px}
.modal{width:min(100%,360px);background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.4)}
.modal h3{margin:0 0 20px;font-size:19px}
.modal-actions{display:flex;gap:10px}
.modal-actions button{flex:1}
.modal-primary{margin-top:0}
.header-left{display:flex;align-items:center;gap:10px;min-width:0}
.back-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center;border-radius:12px;background:var(--surface2);color:var(--text);font-size:24px;font-weight:400;line-height:1;cursor:pointer}
.header-title{display:flex;flex-direction:column;gap:2px;min-width:0}
.header-left h1{margin:0}
.header-group-label{font-size:11px;line-height:1.2;color:var(--muted);font-weight:400;overflow-wrap:anywhere}
.schedule-next{color:var(--muted);margin-top:8px}
.schedule-option{margin-top:8px;font-size:12px}
.danger-btn{margin-top:12px;background:#2a1f22;color:var(--danger);padding:9px 13px;border-radius:12px;cursor:pointer}
.button-editor{display:grid;grid-template-columns:1fr 1fr 40px;gap:8px;margin:8px 0;align-items:center}
.remove-btn{width:40px;height:40px;border-radius:12px;background:#2a1f22;color:var(--danger);font-size:22px;cursor:pointer}
.calendar-head{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;margin-bottom:8px;text-align:center}
.month-btn{width:40px;height:40px;border-radius:12px;background:var(--surface2);cursor:pointer;font-size:24px}
.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:5px;text-align:center;color:var(--muted);font-size:11px}
.schedule-row{padding:10px 0;border-bottom:1px solid var(--border)}
.modal-actions{display:flex;gap:10px}.modal-actions button{flex:1}.modal-primary{margin-top:0}

.calendar-head b{text-transform:none;font-size:15px}
.calendar .day{font-size:14px;font-weight:600;position:relative;border:1px solid transparent}
.calendar .day:hover{border-color:var(--accent)}
.calendar .day.selected{background:var(--accent);color:var(--accent-ink);outline:none}
.calendar .day.has-events:after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.calendar .day.selected.has-events:after{background:var(--accent-ink)}
.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.card-actions .secondary,.card-actions .danger-btn{margin-top:0;cursor:pointer}
.status.completed{color:#9be7b0}.status.deleted{color:var(--danger)}.status.error{color:var(--danger)}
.status.paused{color:#ffd08a;background:rgba(255,208,138,.12);border:1px solid rgba(255,208,138,.22)}
.error-modal-text{white-space:pre-wrap;word-break:break-word}
@media(max-width:430px){.button-editor{grid-template-columns:1fr 40px}.button-editor input:nth-child(2){grid-column:1}.button-editor .remove-btn{grid-column:2;grid-row:1 / span 2}}

/* Единый стиль системных списков и выбора времени */
select{appearance:none;-webkit-appearance:none;background-color:var(--surface2);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 19px) 20px,calc(100% - 14px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:42px;min-height:48px}
select:focus,input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}
.time-button{width:100%;min-height:48px;padding:0 14px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface2);border:1px solid var(--border);border-radius:16px;color:var(--text);font-size:16px;font-weight:600;letter-spacing:.02em;cursor:pointer;text-align:left}
.time-button:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring);outline:none}
.time-icon{width:26px;height:26px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--accent2);color:var(--text);font-size:15px;flex:0 0 auto}
body.modal-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.sheet-backdrop{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center;padding:14px;overscroll-behavior:contain}
.sheet{width:min(100%,480px);max-height:86vh;overflow:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.sheet-time{max-height:92vh;height:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.sheet-head{display:flex;align-items:center;justify-content:space-between;font-size:18px;margin-bottom:12px}
.sheet-time .sheet-head{margin-bottom:0;font-size:16px}
.recent-times{display:flex;gap:6px;flex-wrap:wrap;justify-content:space-between;margin:0}
.recent-times .chip{cursor:pointer;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 9px;font-size:11px;flex:1;min-width:0}
.recent-times .chip i{font-style:normal;font-size:12px;font-weight:700;color:var(--text)}
.recent-times .chip.chip-active{border-color:var(--accent);background:var(--focus-ring)}
.recent-times .chip.chip-active i{color:var(--accent)}
.time-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:0;flex:1 1 auto}
.time-col{background:var(--surface2);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.time-col-title{padding:7px 10px;font-size:12px;color:var(--muted);text-align:center;border-bottom:1px solid var(--border);flex:0 0 auto}
.time-col-title b{color:var(--accent);font-size:14px}
.time-col-list{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:6px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;height:176px;max-height:176px;scroll-behavior:auto}
.time-option{min-height:38px;flex:0 0 auto;border-radius:12px;background:transparent;color:var(--text);font-size:17px;font-weight:600;cursor:pointer;touch-action:manipulation}
.time-option:hover{background:var(--focus-ring)}
.time-option:focus{outline:2px solid var(--accent);outline-offset:1px}
.time-option.selected{background:var(--accent);color:var(--accent-ink);outline:2px solid var(--accent);outline-offset:1px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.time-option.center-candidate{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 2px rgba(85,214,194,.2)}
.time-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}
.time-modal-hint{font-size:12px;color:var(--muted)}
.time-modal-hint b{color:var(--accent);font-size:15px}
.sheet .primary{margin-top:0}
.primary.compact{width:auto;padding:10px 22px;margin:0;font-size:14px;flex:0 0 auto}
.url-status{grid-column:1 / -1;font-size:12px;margin:2px 0 4px;word-break:break-word}
.url-status.checking{color:var(--muted)}
.url-status.ok{color:#9be7b0}
.url-status.bad{color:var(--danger)}
.mode-hint{font-size:12px;color:var(--muted);margin-bottom:10px;line-height:1.35}
.mode-note{font-size:12px;color:#ffd08a;background:rgba(255,208,138,.1);border:1px solid rgba(255,208,138,.22);border-radius:12px;padding:9px 11px;margin-bottom:10px;line-height:1.35}
.button-editor{position:relative;padding-bottom:4px}.button-color-row{grid-column:1 / -1;display:flex;gap:7px;align-items:center;padding:2px 0}.color-choice{width:25px;height:25px;border-radius:50%;background:var(--button-color);border:2px solid transparent;box-shadow:0 0 0 1px rgba(255,255,255,.12);cursor:pointer;padding:0}.color-choice.selected{border-color:#fff;box-shadow:0 0 0 2px var(--button-color)}
.style-label{font-size:12px;color:var(--muted);margin-left:4px}
.preview-button{background:var(--preview-button-color,var(--accent2))}
.status.error{background:rgba(255,76,76,.14);color:#ff7b7b;border:1px solid rgba(255,76,76,.25)}
.status.deleted{color:var(--danger)}
.status.completed{color:#9be7b0}
.date-list .chip{border:1px solid var(--border)}
/* Панель форматирования текста сообщения */
.editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.fmt-btn{min-width:38px;height:38px;padding:0 10px;border-radius:11px;background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.fmt-btn:hover{border-color:var(--accent);color:var(--accent)}
.fmt-btn:active{background:var(--accent);color:var(--accent-ink)}
.fmt-link{font-weight:400}
.editor-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.editor-status{font-size:12px;color:var(--muted)}
.editor-status.bad{color:var(--danger)}
.link-toggle{background:none;color:var(--accent);font-size:12px;cursor:pointer;padding:4px 2px;text-decoration:underline}
.editor-preview{margin-top:10px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:14px;font-size:14px;line-height:1.45;word-break:break-word;max-height:280px;overflow:auto}
.editor-preview .muted{color:var(--muted);font-size:13px}
.editor-preview a{color:var(--accent)}
.editor-preview blockquote{margin:6px 0;padding:4px 0 4px 10px;border-left:3px solid var(--accent2);color:var(--muted)}
.editor-preview blockquote[expandable]{border-left-style:dashed}
.editor-preview pre{background:var(--surface2);padding:9px 11px;border-radius:10px;overflow:auto;margin:6px 0;font-size:13px}
.editor-preview code{background:var(--surface2);padding:2px 5px;border-radius:6px;font-size:13px}
.editor-preview pre code{background:none;padding:0}
.editor-preview span.tg-spoiler{background:var(--surface2);color:transparent;border-radius:5px;cursor:pointer}
.editor-preview span.tg-spoiler.revealed{color:var(--text)}
/* Точный предпросмотр сообщения */
.telegram-preview.rich .preview-text a{color:var(--accent)}
.telegram-preview.rich .preview-text blockquote{margin:6px 0;padding:4px 0 4px 10px;border-left:3px solid var(--accent2);color:var(--muted)}
.telegram-preview.rich .preview-text pre{background:var(--surface2);padding:9px 11px;border-radius:10px;overflow:auto;margin:6px 0;font-size:13px;white-space:pre-wrap}
.telegram-preview.rich .preview-text code{background:var(--surface2);padding:2px 5px;border-radius:6px;font-size:13px}
.telegram-preview.rich .preview-text pre code{background:none;padding:0}
.telegram-preview.rich .preview-text span.tg-spoiler{background:var(--surface2);color:transparent;border-radius:5px;cursor:pointer}
.telegram-preview.rich .preview-text span.tg-spoiler.revealed{color:var(--text)}

.settings-status{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(85,214,194,.09);border:1px solid rgba(85,214,194,.24);color:var(--accent);font-size:13px;line-height:1.4}
.settings-page-heading{margin:2px 2px 18px}
.settings-page-heading h2{margin:0 0 6px;font-size:22px;line-height:1.25}
.settings-page-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;max-width:42ch}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Сворачиваемые блоки экрана настроек */
.settings-section{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:18px;margin-bottom:12px;overflow:hidden}
/* Выпадающий список действий предупреждений должен выходить за границы карточки и перекрывать блок «Антифлуд». */
.settings-section-warnings{position:relative;z-index:2;overflow:visible}
.settings-section-warnings .settings-section-header{border-radius:17px 17px 0 0}
.settings-section-header{width:100%;min-height:52px;padding:10px 12px 10px 16px;background:var(--surface2);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font-weight:700;font-size:15px}
.settings-section-title-button{min-width:0;flex:1;display:flex;align-items:center;padding:0;background:transparent;border:0;color:inherit;text-align:left;font:inherit;cursor:pointer}
.settings-section-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.settings-section-header:hover{color:var(--accent)}
.antiflood-switch{position:relative;display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;padding:4px;cursor:pointer;flex:0 0 auto}
.antiflood-switch input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.antiflood-switch-track{width:42px;height:24px;display:flex;align-items:center;padding:2px;border:1px solid var(--border);border-radius:99px;background:var(--surface);transition:background .16s ease,border-color .16s ease}
.antiflood-switch-track span{width:18px;height:18px;border-radius:50%;background:var(--muted);transform:translateX(0);transition:transform .16s ease,background .16s ease}
.antiflood-switch input:checked+.antiflood-switch-track{background:rgba(85,214,194,.22);border-color:var(--accent)}
.antiflood-switch input:checked+.antiflood-switch-track span{background:var(--accent);transform:translateX(18px)}
.antiflood-switch input:focus-visible+.antiflood-switch-track{outline:2px solid var(--accent);outline-offset:2px}
.antiflood-help{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 12px}
.antiflood-fields-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:end}
.antiflood-fields-row>div{min-width:0}
.antiflood-fields-row label{margin-top:10px}
.antiflood-option{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 0!important;color:var(--text);font-size:13px}
.antiflood-option span{min-width:0;line-height:1.4}
.antiflood-option input{width:22px;height:22px;flex:0 0 auto;accent-color:var(--accent)}
.settings-section-toggle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);color:var(--muted);flex:0 0 auto}
.settings-section-toggle svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.settings-section-header:hover .settings-section-toggle{border-color:var(--accent);color:var(--accent)}
.settings-section-content{padding:0 16px 16px}


/* Этап 4: единая визуальная система планировщика */
.planner-shell{padding-top:8px;padding-bottom:24px}
.planner-hero{position:relative;overflow:hidden;gap:5px;padding:18px 18px 17px;border-color:rgba(85,214,194,.24);background:linear-gradient(135deg,rgba(85,214,194,.09),rgba(23,26,31,.98) 62%)}
.planner-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.planner-hero b{font-size:19px;line-height:1.25}
.planner-hero span{font-size:12px;line-height:1.45;max-width:38ch}
.planner-nav-grid{margin-bottom:22px;gap:10px}
.planner-nav-grid .planner-nav-tile{min-height:76px;background:var(--surface);border-color:var(--border)}
.planner-nav-grid .planner-nav-tile b{font-size:14px;line-height:1.35}
.planner-nav-grid .planner-nav-tile small{grid-column:2;color:var(--accent);font-weight:600}
.planner-section-title{display:flex;align-items:center;gap:10px;margin:22px 2px 11px;color:var(--text);font-size:15px;font-weight:700;letter-spacing:.005em}
.planner-section-title:before{content:"";width:3px;height:17px;border-radius:9px;background:var(--accent);flex:0 0 auto}
.planner-calendar-panel{padding:16px;background:linear-gradient(180deg,rgba(32,36,42,.92),var(--surface) 38%)}
.planner-calendar-panel h2{margin:0 0 15px;font-size:18px;line-height:1.3}
.planner-calendar-panel .calendar{gap:6px}
.planner-calendar-panel .weekday-row{margin-bottom:8px;font-weight:600}
.planner-calendar-panel .calendar .day{border-radius:13px;min-width:0}
.planner-calendar-panel .calendar .day.has-events:not(.selected){background:rgba(85,214,194,.075);border-color:rgba(85,214,194,.28)}
.planner-calendar-panel .calendar .day.selected{box-shadow:0 0 0 2px rgba(85,214,194,.18)}
.planner-schedule-card,.planner-history-card{padding:15px;margin-bottom:11px;border-radius:18px;border-color:rgba(154,161,170,.2);background:linear-gradient(135deg,rgba(32,36,42,.72),var(--surface) 58%)}
.planner-schedule-card>.row,.planner-history-card>.row{align-items:flex-start;gap:10px}
.planner-schedule-card>.row>b,.planner-history-card>.row>b{min-width:0;overflow-wrap:anywhere;line-height:1.4}
.planner-status{white-space:normal;text-align:center;line-height:1.25;font-weight:650;max-width:48%;flex:0 0 auto}
.planner-status.active,.planner-status.sent{color:var(--accent);background:rgba(85,214,194,.09);border:1px solid rgba(85,214,194,.22)}
.planner-status.pending{color:#c7d1d9;background:rgba(154,161,170,.1);border:1px solid rgba(154,161,170,.18)}
.planner-status.paused{color:#ffd08a;background:rgba(255,208,138,.1);border:1px solid rgba(255,208,138,.22)}
.planner-status.completed{color:#9be7b0;background:rgba(155,231,176,.08);border:1px solid rgba(155,231,176,.2)}
.planner-status.error{color:var(--danger);background:rgba(255,76,76,.12);border:1px solid rgba(255,76,76,.24)}
.planner-status.deleted,.planner-status.skipped{color:var(--muted);background:var(--surface2);border:1px solid var(--border)}
.planner-schedule-card .schedule-next{font-size:13px;line-height:1.4;font-variant-numeric:tabular-nums}
.planner-schedule-card .card-actions{gap:7px}
.planner-schedule-card .card-actions button{min-height:40px;padding:10px 12px;font-size:12px;line-height:1.25}
.planner-schedule-card .error{overflow-wrap:anywhere;line-height:1.4}
.planner-empty{padding:19px 16px;text-align:center;color:var(--muted);background:rgba(23,26,31,.55);border-style:dashed;line-height:1.45}
.editor-foot{justify-content:flex-start;min-height:20px}
@media(max-width:430px){.planner-hero{padding:16px}.planner-calendar-panel{padding:13px}.planner-calendar-panel .calendar{gap:4px}.planner-calendar-panel .calendar .day{border-radius:10px;font-size:13px}.planner-schedule-card,.planner-history-card{padding:13px}.planner-status{max-width:46%}.planner-schedule-card .card-actions button{flex:1 1 auto}}


/* Этап 5: интерактивные состояния формы планировщика */
select{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
select:hover{border-color:rgba(85,214,194,.68);background-color:rgba(85,214,194,.055)}
select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring);outline:none}
.form-action,.media-box{cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease}
.form-action:hover{border-color:var(--accent);box-shadow:0 0 0 1px rgba(85,214,194,.14);color:var(--accent)}
.form-action:active{transform:scale(.99);box-shadow:0 0 0 2px rgba(85,214,194,.16)}
.form-action:focus-visible,.media-box:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.primary.form-action:hover{background:#72e2d0;color:#09201c;box-shadow:0 4px 16px rgba(85,214,194,.16)}
.primary.form-action:active{background:#3dbca9}
.media-box:hover{border-color:var(--accent);background:rgba(85,214,194,.07);color:var(--accent)}
.media-box:active{background:rgba(85,214,194,.13);transform:scale(.995)}
.media-item{position:relative}
.media-pending .media-thumb{border-color:rgba(85,214,194,.65)}
.media-upload-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:rgba(13,15,18,.82);color:var(--text);font-size:10px;text-align:center;padding:5px}
.media-progress{--progress:0%;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) var(--progress),rgba(255,255,255,.16) 0);position:relative;animation:none}
.media-progress-indeterminate{animation:media-spin 1.15s linear infinite}
.media-progress:before{content:"";position:absolute;inset:4px;border-radius:50%;background:#171a1f}
.media-progress span{z-index:1;font-size:9px;color:var(--text);animation:none}
.media-upload-label{color:var(--accent)}
.media-upload-error{background:rgba(13,15,18,.9);color:var(--danger)}
.media-upload-error span{font-size:10px}
.media-retry{cursor:pointer;border:1px solid var(--accent);border-radius:9px;background:rgba(85,214,194,.12);color:var(--accent);font-size:10px;padding:5px 7px}
.media-retry:hover{background:rgba(85,214,194,.22)}
.media-remove{z-index:2;border:1px solid rgba(255,255,255,.2)}
@keyframes media-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){select,.form-action,.media-box{transition:none}.form-action:active,.media-box:active{transform:none}.media-progress{animation:none}}

/* Исправление dropdown: собственное доступное меню вместо системного popup */
.custom-select-source{display:none!important}
.custom-select{position:relative;width:100%;margin:0 0 4px;color:var(--text)}
.custom-select-trigger{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.custom-select-trigger:hover{border-color:rgba(85,214,194,.7);background:#222a2d}
.custom-select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}
.custom-select-trigger svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.custom-select-trigger[aria-expanded="true"] svg{transform:rotate(180deg)}
.custom-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;max-height:240px;overflow-y:auto;padding:5px;background:#171a1f;border:1px solid #38434a;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.42)}
.custom-select-menu[hidden]{display:none!important}
.custom-select-option{display:block;width:100%;min-height:40px;padding:10px 12px;border:1px solid transparent;border-left:3px solid transparent;border-radius:9px;background:transparent;color:#f2f3f5;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.custom-select-option:hover{background:#242a2e;color:#fff}
.custom-select-option.selected{background:#1e514c;border-color:rgba(85,214,194,.2);border-left-color:#55d6c2;color:#f2f3f5}
.custom-select-option:focus-visible{outline:2px solid #55d6c2;outline-offset:-2px;background:#243d3a;color:#fff}
@media(prefers-reduced-motion:reduce){.custom-select-trigger,.custom-select-trigger svg{transition:none}}

/* Исправление dropdown: собственное доступное меню вместо системного popup */
.custom-select-source{display:none!important}
.custom-select{position:relative;width:100%;margin:0 0 4px;color:var(--text)}
.custom-select-trigger{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.custom-select-trigger:hover{border-color:rgba(85,214,194,.7);background:#222a2d}
.custom-select-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}
.custom-select-trigger svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.custom-select-trigger[aria-expanded="true"] svg{transform:rotate(180deg)}
.custom-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;max-height:240px;overflow-y:auto;padding:5px;background:#171a1f;border:1px solid #38434a;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.42)}
.custom-select-menu[hidden]{display:none!important}
.custom-select-option{display:block;width:100%;min-height:40px;padding:10px 12px;border:1px solid transparent;border-left:3px solid transparent;border-radius:9px;background:transparent;color:#f2f3f5;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.custom-select-option:hover{background:#242a2e;color:#fff}
.custom-select-option.selected{background:#1e514c;border-color:rgba(85,214,194,.2);border-left-color:#55d6c2;color:#f2f3f5}
.custom-select-option:focus-visible{outline:2px solid #55d6c2;outline-offset:-2px;background:#243d3a;color:#fff}
@media(prefers-reduced-motion:reduce){.custom-select-trigger,.custom-select-trigger svg{transition:none}}


/* Неблокирующая загрузка предпросмотра расписания */
.modal-backdrop.preview-backdrop-loading{background:transparent;pointer-events:none}
.preview-backdrop-loading .preview-modal{pointer-events:auto;border-color:rgba(85,214,194,.45);box-shadow:0 12px 36px rgba(0,0,0,.35)}
.preview-loading{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px;text-align:center;color:var(--text)}
.preview-loading small{color:var(--muted);font-size:12px}
.preview-spinner{width:32px;height:32px;border:3px solid rgba(85,214,194,.2);border-top-color:var(--accent);border-radius:50%;animation:preview-spin .8s linear infinite}
.preview-error{padding:16px;border:1px solid rgba(255,100,100,.3);border-radius:12px;background:rgba(255,80,80,.08);color:var(--danger);overflow-wrap:anywhere}
@keyframes preview-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.preview-spinner{animation:none;border-top-color:var(--accent);border-right-color:var(--accent)}}


/* Унифицированный экран «Запрещённые слова» */
.blocked-words-page{display:flex;flex-direction:column;gap:14px}
.blocked-words-head{padding:18px;margin:0}
.blocked-words-heading{display:flex;align-items:flex-start;gap:14px}
.blocked-words-heading h2{font-size:20px;line-height:1.25;margin:1px 0 8px}
.blocked-words-heading p{font-size:13px;line-height:1.5;margin:0;color:var(--muted)}
.blocked-words-icon,.blocked-words-empty-icon{width:42px;height:42px;flex:0 0 42px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--accent2);color:var(--accent);font-size:25px}
.blocked-words-form{padding:18px;margin:0}
.blocked-words-form h3,.blocked-words-list-head h3{font-size:16px;margin:0 0 6px}
.blocked-words-form label{margin-top:14px}
.blocked-word-duration{margin-top:4px;padding:12px;background:var(--surface2);border:1px solid var(--border);border-radius:16px}
.blocked-word-duration label{margin-top:0}
.blocked-word-duration .row{align-items:center}
.blocked-word-duration .row>*{min-width:0}
.blocked-word-add{margin-top:18px}
.blocked-words-list-head{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 0}
.blocked-words-list-head h3{margin:0}
.blocked-words-count{min-width:28px;height:28px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:99px;background:var(--accent2);color:var(--accent);font-size:12px;font-weight:700}
.blocked-words-list{display:flex;flex-direction:column;gap:9px}
.blocked-word-item{position:relative;display:flex;align-items:center;gap:10px;margin:0;padding:14px 12px 14px 16px;border-radius:16px}
.blocked-word-main{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-right:2px}
.blocked-word-phrase{font-size:15px;font-weight:650;line-height:1.4;overflow-wrap:anywhere;word-break:break-word}
.blocked-word-badge{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:99px;background:var(--surface2);color:var(--muted);font-size:11px;font-weight:650}
.blocked-word-badge.ban{background:rgba(255,180,171,.12);color:var(--danger)}
.blocked-word-badge.warn{background:rgba(255,208,138,.12);color:#ffd08a}
.blocked-word-badge.mute{background:var(--accent2);color:var(--accent)}
.blocked-word-meta{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.blocked-word-delete{width:40px;height:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:rgba(255,180,171,.09);border:1px solid rgba(255,180,171,.15);color:var(--danger);font-size:24px;cursor:pointer}
.blocked-word-delete:hover{background:rgba(255,180,171,.16);border-color:var(--danger)}
.blocked-words-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:24px 18px;color:var(--muted)}
.blocked-words-empty-icon{width:38px;height:38px;flex-basis:38px;font-size:18px;margin-bottom:4px}
.blocked-words-empty b{color:var(--text);font-size:14px}
.blocked-words-empty p{margin:0;font-size:12px;line-height:1.45}
@media(max-width:430px){.blocked-words-page{gap:12px}.blocked-words-head,.blocked-words-form{padding:15px}.blocked-words-heading{gap:11px}.blocked-words-heading h2{font-size:18px}.blocked-word-duration .row{gap:7px}}

/* Администрирование пользователей: отдельные адаптивные окна */
.admin-page{display:flex;flex-direction:column;gap:13px;min-width:0}
.admin-menu-head,.admin-section-head{margin:0;padding:18px}
.admin-section-heading{display:flex;align-items:flex-start;gap:13px;min-width:0}
.admin-section-heading>div{min-width:0;flex:1}
.admin-section-heading h2{font-size:20px;line-height:1.25;margin:1px 0 7px;overflow-wrap:anywhere}
.admin-section-heading p{font-size:13px;line-height:1.5;margin:0;color:var(--muted)}
.admin-section-icon{width:44px;height:44px;flex:0 0 44px;border-radius:14px;background:var(--accent2);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:650}
.admin-section-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.admin-search-panel{margin:0;padding:16px;display:flex;flex-direction:column;gap:6px}
.admin-search-panel label{margin:0 0 2px;font-weight:600;color:var(--text)}
.admin-search-control{display:flex;align-items:center;gap:8px;min-width:0;background:var(--surface2);border:1px solid var(--border);border-radius:15px;padding:0 10px;transition:border-color .16s ease,box-shadow .16s ease}
.admin-search-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--focus-ring)}
.admin-search-control>span{font-size:24px;line-height:1;color:var(--muted);flex:0 0 auto}
.admin-search-control input{border:0;box-shadow:none!important;background:transparent;min-width:0;padding:12px 0;border-radius:0}
.admin-search-control input:focus-visible{outline:none}
.admin-search-control input::-webkit-search-cancel-button{display:none}
.admin-search-clear{width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:var(--surface);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.admin-search-clear:hover{color:var(--text);background:var(--accent2)}
.admin-search-panel>small{font-size:11px;color:var(--muted);line-height:1.4}
.admin-record-list{display:flex;flex-direction:column;gap:10px;min-width:0}
.admin-record-card{margin:0;padding:15px;min-width:0;border-radius:18px;display:flex;flex-direction:column;gap:12px;transition:border-color .16s ease,background-color .16s ease}
.admin-record-card:hover{border-color:#3a4b4b}
.admin-record-top,.admin-record-leading{display:flex;align-items:center;gap:11px;min-width:0}
.admin-record-top{justify-content:space-between}
.admin-record-leading{flex:1}
.admin-record-icon{width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:650;background:var(--accent2);color:var(--accent)}
.admin-record-icon.warning{background:rgba(255,208,138,.12);color:#ffd08a}
.admin-record-icon.mute{background:rgba(154,161,170,.13);color:#c4cbd3}
.admin-record-identity{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.admin-record-name{font-size:14px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}
.admin-record-handle{font-size:12px;color:var(--muted);overflow-wrap:anywhere;word-break:break-word}
.admin-icon-action{width:38px;height:38px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:25px;line-height:1;cursor:pointer}
.admin-icon-action:hover{border-color:var(--accent);color:var(--accent)}
.admin-icon-action.admin-reset-action{background:#2a1f22;border-color:#473034;color:var(--danger);font-size:23px}
.admin-ban-details{padding:13px 0 0 49px;border-top:1px solid var(--border)}
.admin-reason-label{font-size:11px;color:var(--muted);margin-bottom:5px}
.admin-reason{font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:var(--text)}
.admin-record-action{width:100%;margin-top:2px;text-align:center;font-size:13px;font-weight:600;cursor:pointer}
.admin-record-action.secondary{border:1px solid var(--border)}
.admin-record-action.secondary:hover{border-color:var(--accent)}
.admin-record-action.danger-btn{background:#2a1f22;border:1px solid #473034;color:var(--danger)}
.admin-warning-summary{display:flex;align-items:baseline;gap:7px;margin-left:49px}
.admin-warning-count{font-size:21px;font-weight:750;line-height:1.1;color:var(--accent);font-variant-numeric:tabular-nums}
.admin-warning-count span{font-size:15px;color:var(--muted);font-weight:500}
.admin-warning-caption{font-size:11px;color:var(--muted)}
.admin-warning-track{height:5px;margin-left:49px;overflow:hidden;border-radius:99px;background:var(--surface2)}
.admin-warning-track span{height:100%;display:block;background:var(--accent);border-radius:99px;transition:width .18s ease}
.admin-mute-expiry{display:flex;align-items:center;gap:10px;padding:11px 12px;margin-left:49px;border-radius:13px;background:var(--surface2);min-width:0}
.admin-mute-expiry-icon{font-size:21px;color:var(--accent);flex:0 0 auto}
.admin-mute-expiry>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.admin-mute-expiry small{font-size:11px;color:var(--muted)}
.admin-mute-expiry b{font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.admin-empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:25px 18px;color:var(--muted);margin:0}
.admin-empty-icon{width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--accent2);color:var(--accent);font-size:24px;margin-bottom:2px}
.admin-empty-state b{font-size:14px;color:var(--text)}
.admin-empty-state p{font-size:12px;line-height:1.45;margin:0;max-width:280px}
.admin-loading-spinner{width:25px;height:25px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:admin-spin .8s linear infinite}
@keyframes admin-spin{to{transform:rotate(360deg)}}
.admin-error:empty{display:none}
.admin-error:not(:empty){padding:10px 12px;border-radius:12px;background:rgba(255,180,171,.08);border:1px solid rgba(255,180,171,.18)}
@media(max-width:430px){.admin-page{gap:11px}.admin-menu-head,.admin-section-head{padding:15px}.admin-section-heading{gap:11px}.admin-section-heading h2{font-size:18px}.admin-search-panel{padding:14px}.admin-record-card{padding:13px}.admin-ban-details{padding-left:0}.admin-warning-summary,.admin-warning-track,.admin-mute-expiry{margin-left:0}}
@media(prefers-reduced-motion:reduce){.admin-record-card,.admin-search-control,.admin-warning-track span{transition:none}.admin-loading-spinner{animation:none}}

@media(max-width:430px){
  .settings-section-header{padding-left:12px;padding-right:10px}
  .settings-section-actions{gap:6px}
  .antiflood-switch-track{width:38px}
  .antiflood-switch input:checked+.antiflood-switch-track span{transform:translateX(14px)}
  .antiflood-fields-row{gap:8px}
}

/* Канал событий */
.event-channel-page{gap:14px}
.event-channel-header,.event-channel-connect,.event-channel-categories{padding:18px}
.event-channel-title{display:flex;align-items:center;gap:12px}
.event-channel-title>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(85,214,194,.12);color:#55D6C2;font-size:24px}
.event-channel-title h2,.event-channel-connect h3,.event-channel-categories h3{margin:0 0 6px}
.event-channel-title p,.event-channel-categories p{margin:0;color:var(--muted,#9ba4ad)}
.event-channel-status{margin-top:14px;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.05);color:var(--muted,#9ba4ad);font-size:14px}
.event-channel-status.connected{background:rgba(85,214,194,.12);color:#55D6C2}
.event-channel-status.pending{background:rgba(255,193,7,.1);color:#ffd166}
.event-channel-identity{margin-top:12px;overflow-wrap:anywhere}
.event-channel-connect label{display:block;margin:12px 0 6px}
.event-channel-connect input{width:100%;box-sizing:border-box}
.event-channel-connect .muted{font-size:13px;line-height:1.45}
.event-channel-categories>p{margin-bottom:10px;font-size:13px;line-height:1.45}
.event-channel-category{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:14px}
.event-channel-category:last-child{border-bottom:0}
.event-channel-category span{min-width:0;overflow-wrap:anywhere}
.event-channel-category input{flex:0 0 22px;width:22px;height:22px;accent-color:#55D6C2}

/* Пояснения категорий канала событий */
.event-channel-category{align-items:center}
.event-channel-category-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.event-channel-category-title{font-size:14px;line-height:1.3;font-weight:600;color:var(--text)}
.event-channel-category-description{display:block;font-size:12px;line-height:1.45;font-weight:400;color:var(--muted);overflow-wrap:anywhere}
.event-channel-category input{margin:0}
.event-channel-connect .secondary{width:100%;margin:0}
@media(max-width:430px){.event-channel-header,.event-channel-connect,.event-channel-categories{padding:15px}.event-channel-category{gap:10px;padding:13px 0}.event-channel-category-description{font-size:12px;line-height:1.4}}

/* Media blocking rules — compact cards aligned with the Dark Material design system. */
.media-blocking-page{display:flex;flex-direction:column;gap:14px;min-width:0}
.media-blocking-head,.media-blocking-form{padding:18px;margin:0;min-width:0}
.media-blocking-heading{display:flex;align-items:flex-start;gap:12px}
.media-blocking-heading>span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:rgba(85,214,194,.12);color:#55D6C2;font-size:23px}
.media-blocking-heading h2{font-size:20px;line-height:1.25;margin:1px 0 8px}
.media-blocking-heading p,.media-blocking-form p{font-size:13px;line-height:1.5;margin:0;color:var(--muted,#9ba4ad)}
.media-blocking-form h3,.media-blocking-list-head h3{font-size:16px;margin:0 0 8px}
.media-blocking-form label:not(.switch){display:block;margin:13px 0 6px}
.media-blocking-form select,.media-blocking-form input:not([type=checkbox]){width:100%;min-width:0;box-sizing:border-box}
.media-blocking-form .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:9px}
.media-blocking-delete.switch,.media-blocking-delete{margin-top:12px}
.media-blocking-delete.switch{display:flex;align-items:center;justify-content:space-between;gap:12px}
.media-blocking-delete.switch input,.media-blocking-enabled input{width:22px;height:22px;accent-color:#55D6C2;flex:0 0 22px}
.media-blocking-form .primary{width:100%;margin-top:14px}
.media-blocking-list-head{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 0}
.media-blocking-list-head h3{margin:0}
.media-blocking-count{min-width:28px;height:28px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:99px;background:rgba(85,214,194,.12);color:#55D6C2;font-size:12px;font-weight:700}
.media-blocking-list{display:flex;flex-direction:column;gap:9px;min-width:0}
.media-blocking-rule{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"main enabled delete";align-items:start;gap:10px;padding:14px;margin:0;min-width:0}
.media-blocking-rule-main{grid-area:main;min-width:0;overflow-wrap:anywhere}
.media-blocking-rule-title{font-size:15px;font-weight:700;line-height:1.35}
.media-blocking-rule-topic{font-size:13px;color:var(--muted,#9ba4ad);margin-top:3px;overflow-wrap:anywhere}
.media-blocking-rule-meta{display:flex;flex-wrap:wrap;gap:6px 9px;margin-top:8px;font-size:12px;color:var(--muted,#9ba4ad)}
.media-blocking-badge{display:inline-flex;align-items:center;border-radius:99px;padding:3px 8px;font-weight:700}
.media-blocking-badge.ban{background:rgba(255,82,82,.13);color:#ff7777}
.media-blocking-badge.mute{background:rgba(255,193,7,.13);color:#ffd166}
.media-blocking-badge.warn{background:rgba(85,214,194,.12);color:#55D6C2}
.media-blocking-enabled{grid-area:enabled;display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted,#9ba4ad);flex:0 0 auto}
.media-blocking-enabled input{margin:0}
.media-blocking-rule .media-blocking-delete{grid-area:delete;width:34px;height:34px;flex:0 0 34px;border:0;border-radius:10px;background:rgba(255,82,82,.1);color:#ff7777;font-size:24px;line-height:1;cursor:pointer;margin:0}
.media-blocking-empty{padding:24px 18px;text-align:center;color:var(--muted,#9ba4ad)}
.media-blocking-empty b{color:var(--text)}
.media-blocking-empty p{font-size:12px;line-height:1.45;margin:7px 0 0}
@media(max-width:430px){.media-blocking-page{gap:12px}.media-blocking-head,.media-blocking-form{padding:15px}.media-blocking-heading{gap:10px}.media-blocking-heading h2{font-size:18px}.media-blocking-rule{padding:12px;gap:7px}.media-blocking-rule-meta{gap:5px 7px}.media-blocking-enabled{flex-direction:column;gap:3px}.media-blocking-form .row{gap:7px}}

.topic-registry-hint{margin:7px 0 13px;color:var(--muted,#9ba4ad);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.topic-registry-hint code{color:var(--accent,#55D6C2);font-size:11px;white-space:normal}

/* Полный список часовых поясов: поиск и доступная область поверх карточек */
.timezone-select-menu{position:fixed;left:auto;right:auto;top:auto;z-index:10000;max-height:min(45vh,360px);padding:8px;overflow-y:auto;overscroll-behavior:contain;isolation:isolate}
.timezone-search{position:sticky;top:0;z-index:2;width:100%;margin:0 0 6px;padding:11px 12px;border:1px solid #46545b;border-radius:10px;background:#20262b;color:#f2f3f5;box-sizing:border-box}
.timezone-search::placeholder{color:#aeb9bf}
.timezone-search:focus-visible{outline:2px solid #55d6c2;outline-offset:1px}
.timezone-select-menu .custom-select-option[hidden]{display:none!important}
.timezone-select-menu .custom-select-option{font-size:14px;line-height:1.35}

/* Role management follows the existing Material card and switch language. */
.role-settings-entry,.role-editor,.role-assignment,.role-card{margin-top:14px;}
.role-settings-entry h3,.role-editor h3,.role-assignment h3,.role-list-heading h3,.role-assignment-list h3{margin:0 0 10px;}
.role-editor input:not([type=checkbox]),.role-assignment input,.role-assignment select{width:100%;box-sizing:border-box;margin:6px 0 12px;}
.role-permission-list{display:grid;gap:8px;margin:14px 0;}
.role-permission{display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:14px;padding:10px 12px;border-radius:12px;background:var(--surface-2,rgba(127,127,127,.08));margin:0;}
.role-permission>span{min-width:0;line-height:1.35;overflow-wrap:anywhere;}
.role-permission>input[type="checkbox"]{width:22px;height:22px;min-width:22px;margin:0;justify-self:center;accent-color:var(--accent);}
.role-card{padding:16px;border:1px solid color-mix(in srgb,var(--accent,#55D6C2) 22%,var(--border));background:linear-gradient(145deg,var(--surface,#20262b),var(--surface-2,rgba(127,127,127,.08)));}
.role-card-header h3{margin:0;min-width:0;overflow-wrap:anywhere;font-size:17px;line-height:1.35;}
.role-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;}
.role-card-metric{display:grid;grid-template-rows:26px 1fr;align-content:stretch;gap:4px;min-width:0;min-height:68px;padding:11px 13px;box-sizing:border-box;border:1px solid var(--border,rgba(127,127,127,.2));border-radius:13px;background:var(--surface-2,rgba(127,127,127,.08));}
.role-metric-value{align-self:start;color:var(--accent,#55D6C2);font-size:23px;font-weight:750;line-height:1.1;font-variant-numeric:tabular-nums;}
.role-metric-label{color:var(--muted,#9ba4ad);font-size:12px;line-height:1.35;overflow-wrap:anywhere;}
.role-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;}
.role-card-actions>button:only-child{grid-column:1/-1;}
.role-list-heading{align-items:center;justify-content:space-between;margin-top:20px;}
.role-list-heading h3{margin:0;min-width:0;}
.role-assignment-list{margin-top:20px;}
.role-assignment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;}
.role-assignment-row>div{min-width:0;overflow-wrap:anywhere;}
.role-assignment-row>button{flex:0 0 auto;}
.role-form-actions{align-items:stretch;}
.role-form-actions>button{min-width:0;}
.role-assignment>select{display:block;width:100%;min-height:44px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);}
.role-assignment>button{width:100%;min-height:44px;margin-top:8px;}
.role-assignment>button:disabled{opacity:.5;cursor:not-allowed;}

/* Role editor modal: one surface for create/edit and equal action controls. */
.role-modal-backdrop{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.62);box-sizing:border-box;}
.role-modal{width:min(100%,520px);max-height:calc(100dvh - 36px);overflow:auto;box-sizing:border-box;margin:0;padding:20px;}
.role-modal h3{margin:0 0 16px;}
.role-modal input:not([type=checkbox]){display:block;width:100%;box-sizing:border-box;margin:6px 0 12px;}
.role-modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;}
.role-modal-actions>button{width:100%;min-width:0;min-height:44px;margin:0;}
.boot-loading .card{display:grid;gap:12px;}
.boot-progress{height:3px;overflow:hidden;border-radius:99px;background:var(--surface-2,rgba(127,127,127,.15));position:relative;}
.boot-progress:after{content:"";position:absolute;inset:0 auto 0 0;width:38%;background:var(--accent,#55d6c2);animation:boot-progress 1.1s ease-in-out infinite alternate;}
@keyframes boot-progress{from{transform:translateX(-15%)}to{transform:translateX(180%)}}

@media(max-width:430px){.role-card{padding:14px}.role-card-metrics{gap:8px;margin-top:12px}.role-card-metric{min-height:64px;padding:10px}.role-metric-value{font-size:21px}.role-metric-label{font-size:11px}.role-card-actions{margin-top:12px}}

/* Group-level schedule controls: consistent icon slot across every action. */
.schedule-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.schedule-actions button{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0;min-height:42px;margin:0;padding:9px 10px;font-size:12px;text-align:left}
.schedule-actions button:last-child{grid-column:auto}
.schedule-action-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 23px;width:23px;font-size:19px}
.schedule-dates{display:grid;gap:8px}
.schedule-date-item{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--surface)}
.schedule-date-item .planner-status{font-size:11px}

.calendar .day.today-marker::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent)}
.calendar .day.today-marker.selected::after{background:var(--accent-ink)}
.history-actions button:last-child{grid-column:auto}
.planner-history-card .schedule-date-item{flex-wrap:wrap}
.planner-history-card .schedule-date-item .error{flex-basis:100%}

.schedule-time-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.schedule-time-row{display:flex;align-items:center;gap:8px;min-width:0}
.schedule-time-row .time-button{width:auto;flex:1 1 0;min-width:0;min-height:44px}
.schedule-time-control{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:13px;background:var(--surface2);color:var(--text);font-size:24px;cursor:pointer}
.schedule-time-control.add{color:var(--accent);border-color:var(--accent)}
.schedule-time-control:hover{background:var(--focus-ring)}

.schedule-time-control.placeholder{visibility:hidden;pointer-events:none}
