/* === АДМИНКА === */

.admin-tab{padding:10px 20px;border-radius:999px;border:1px solid var(--border-light);background:var(--surface);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;backdrop-filter:var(--pill-blur);-webkit-backdrop-filter:var(--pill-blur);animation:glassBlurIn .18s ease-out both}
.admin-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}
.admin-list-item{padding:18px 0;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.admin-list-item:last-child{border-bottom:none}
.adm-btn{padding:8px 16px;border-radius:10px;border:1px solid var(--pill-border);background:var(--pill-bg);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;backdrop-filter:var(--pill-blur);-webkit-backdrop-filter:var(--pill-blur);transition:.2s;animation:glassBlurIn .18s ease-out both}
.adm-btn:hover{background:var(--text);color:var(--bg)}
.adm-btn.danger{color:var(--tag-preview-color);background:var(--tag-preview-bg);border-color:var(--tag-preview-border)}
.adm-btn.danger:hover{background:var(--danger);color:white}
.adm-btn.warning{color:var(--tag-beta-color);background:var(--tag-beta-bg);border-color:var(--tag-beta-border)}
.adm-btn.warning:hover{background:var(--tag-beta-color);color:white}
.adm-btn.success{color:var(--tag-stable-color);background:var(--tag-stable-bg);border-color:var(--tag-stable-border)}
.adm-btn.success:hover{background:var(--tag-stable-color);color:white}
.loc-form{display:flex;flex-direction:column;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border-light)}
.loc-form input{width:100%;padding:14px;border-radius:12px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);outline:none;font-family:'Inter',sans-serif;font-size:15px}
.loc-form input[type="number"],.ban-input-num{-moz-appearance:textfield;appearance:textfield}
.loc-form input[type="number"]::-webkit-inner-spin-button,.loc-form input[type="number"]::-webkit-outer-spin-button,.ban-input-num::-webkit-inner-spin-button,.ban-input-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.status-pick{display:inline-flex;align-items:center;padding:4px 6px;border-radius:12px;border:1px solid var(--border-light);background:var(--surface);cursor:pointer;transition:.2s}
.status-pick.sel{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}

/* === v4: РЕДИЗАЙН АДМИН-МЕНЮ === */
/* Табы: кнопки с svg-иконками (иконки flex-shrink:0 — не сплющиваются) */


.admin-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid var(--border-light);background:var(--surface);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;backdrop-filter:var(--pill-blur);-webkit-backdrop-filter:var(--pill-blur);transition:background .2s,color .2s,border-color .2s;flex-shrink:0}
.admin-tab svg{width:16px;height:16px;flex-shrink:0}
.admin-tab:hover{color:var(--text);border-color:var(--border-heavy)}
.admin-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}
/* Тулбар юзеров: поиск + счётчик */
.admin-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.admin-search{position:relative;flex:1;min-width:200px;display:flex;align-items:center}
.admin-search svg{position:absolute;left:13px;width:16px;height:16px;color:var(--text-muted);pointer-events:none}
.admin-search input{width:100%;padding:12px 14px 12px 38px;border-radius:12px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);outline:none;font-family:'Inter',sans-serif;font-size:14px}
.admin-search input:focus{border-color:var(--border-heavy)}
.admin-count-chip{padding:6px 12px;border-radius:999px;border:1px solid var(--border-light);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:700;flex-shrink:0}
.admin-list{max-height:60vh;overflow-y:auto}
.admin-empty{text-align:center;color:var(--text-muted);padding:26px 12px;font-size:14px;border:1px dashed var(--border-heavy);border-radius:14px}
/* Строка юзера: ID-бейдж, ник (красится по шкале срока), чип дней */
.admin-user-item{cursor:pointer;padding:14px 0}
.aui-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.aui-id{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:30px;padding:0 8px;border-radius:9px;border:1px solid var(--border-light);background:var(--surface-active);font-size:12px;font-weight:800;color:var(--text-muted);flex-shrink:0}
.aui-names{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.aui-username{font-size:15.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aui-sub{font-size:12.5px;color:var(--text-muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aui-chip{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;font-size:13px;font-weight:800;flex-shrink:0;border:1px solid currentColor;background:transparent}
/* Панель «Рассылки»: подкарточки-секции */
.admin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.admin-panel-head h3{margin-bottom:0}
.admin-subcard{border:1px solid var(--border-light);border-radius:16px;background:var(--surface);padding:16px;margin-top:16px}
.admin-subcard h3{margin-bottom:10px}
.admin-subcard.editing{border-color:var(--pill-border);box-shadow:0 0 0 1px var(--pill-border)}
.admin-textarea{width:100%;padding:14px;border-radius:12px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);font-family:'Inter',sans-serif;font-size:14px;resize:vertical;min-height:90px;outline:none}
.admin-textarea:focus,.admin-input:focus,.admin-select:focus{border-color:var(--border-heavy)}
.admin-input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);outline:none;font-family:'Inter',sans-serif;font-size:15px}
.admin-select{flex:1;min-width:180px;padding:12px 14px;border-radius:12px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);font-family:'Inter',sans-serif;font-size:14px;outline:none;cursor:pointer}
.admin-field-row{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.admin-field-label{font-size:13.5px;font-weight:700;color:var(--text);flex-shrink:0}
.admin-count-hint{font-size:12.5px;color:var(--text-muted);font-weight:600}
.admin-btn-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.admin-hint{font-size:12px;color:var(--text-muted);margin-top:10px;line-height:1.55}
.admin-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:12px 14px;border:1px solid var(--border-light);border-radius:12px;background:var(--surface);cursor:pointer;user-select:none;font-size:14.5px;font-weight:600}
/* Степпер дней в планировщике */
.sched-days-stepper{display:flex;align-items:center;border:1px solid var(--border-light);border-radius:12px;overflow:hidden;background:var(--surface);flex-shrink:0}
.sched-days-stepper button{width:38px;height:38px;border:none;background:transparent;color:var(--text);font-size:17px;cursor:pointer}
.sched-days-stepper button:hover{background:var(--surface-hover)}
.sched-days-stepper input{width:52px;height:38px;border:none;background:transparent;color:var(--text);text-align:center;font-size:15px;font-weight:700;outline:none;-moz-appearance:textfield;appearance:textfield}
.sched-days-stepper input::-webkit-inner-spin-button,.sched-days-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
/* Список расписаний */
.schedules-list{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
.sched-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border-light);border-radius:14px;background:var(--surface-active);transition:opacity .2s}
.sched-item.disabled{opacity:.5}
.sched-item-main{flex:1;min-width:0}
.sched-item-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sched-days-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;border-radius:8px;background:var(--tag-beta-bg);color:var(--tag-beta-color);border:1px solid var(--tag-beta-border);font-size:11px;font-weight:800;letter-spacing:.4px;flex-shrink:0}
.sched-name{font-size:14.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sched-delivery{font-size:11px;color:var(--text-muted);font-weight:600;flex-shrink:0}
/* v5: бейдж типа сообщения у расписания (цвет = выбранная категория) */
.sched-type-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:8px;border:1px solid var(--border-light);background:var(--surface);font-size:11px;font-weight:700;color:var(--text-muted);flex-shrink:0}
.sched-type-badge .sys-filter-dot{width:8px;height:8px}
.sched-text{font-size:13px;color:var(--text-secondary);margin-top:6px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.sched-meta{font-size:11px;color:var(--text-faint);margin-top:6px}
.sched-item-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.sched-toggle{cursor:pointer}
/* Последние рассылки */
.recent-broadcasts-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
/* Мобилка: строки юзеров компактнее */
@media (max-width:480px){
.admin-tab{padding:9px 14px;font-size:13px}
.aui-id{min-width:38px;height:26px;font-size:11px}
.sched-item-actions .adm-btn{padding:7px 11px}
}

/* === v10: РЕДИЗАЙН АДМИН-МЕНЮ → BOTTOM SHEET (v10.3: вынесено из #view-admin) ===
   Прежнее выезжающее слева меню (v9) на телефоне перекрывалось хедером
   (top:0 + z-index) и не помещалось в безопасную зону — особенно на
   девайсах с чёлкой/dynamic island (env(safe-area-inset-top) > 50px).
   Теперь это bottom sheet: выезжает снизу, вообще не лезет под хедер,
   выглядит как нативный iOS-лист с drag handle и сеткой карточек-разделов.
   v10.3: .admin-side-overlay/.admin-side-menu ВЫНЕСЕНЫ ИЗ #view-admin
   в корневой stacking context (рядом с тостами). Раньше они лежали внутри
   #view-admin, который создаёт свой контекст — и z-index (даже 9999999)
   не мог перекрыть .bottom-nav (transform:translate3d → stacking context).
   Теперь оригинальных z-index 100001/100000 снова работает как надо. */
.admin-top-row{display:flex;justify-content:flex-start;margin-bottom:16px}
/* --- кнопка-триггер: компактная пилюля с градиентной иконкой --- */
.admin-menu-btn{position:relative;display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:7px 14px 7px 7px;border-radius:999px;border:1px solid var(--pill-border);background:var(--pill-bg);color:var(--text);cursor:pointer;font-family:'Inter',sans-serif;text-align:left;backdrop-filter:var(--pill-blur);-webkit-backdrop-filter:var(--pill-blur);box-shadow:var(--pill-edge),var(--pill-shadow);transition:background .25s ease,color .25s ease,transform .16s ease;animation:glassBlurIn .18s ease-out both}
.admin-menu-btn:hover{background:var(--text);color:var(--bg)}
.admin-menu-btn:active{transform:scale(.97)}
.amb-ic{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;background:linear-gradient(135deg,rgba(120,150,255,.20),rgba(180,120,255,.20));border:1px solid var(--pill-border);flex-shrink:0;transition:background .25s ease}
.admin-menu-btn:hover .amb-ic{background:rgba(255,255,255,.18)}
[data-theme="light"] .amb-ic{background:linear-gradient(135deg,rgba(70,90,220,.12),rgba(150,70,220,.12));border-color:var(--border-light)}
[data-theme="light"] .admin-menu-btn:hover .amb-ic{background:rgba(255,255,255,.22)}
.amb-ic svg{width:18px;height:18px}
.amb-texts{display:flex;flex-direction:column;gap:0;min-width:0;line-height:1.2}
.amb-label{font-size:9.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;transition:color .25s ease}
.admin-menu-btn:hover .amb-label{color:inherit;opacity:.72}
.amb-section{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.amb-dot{position:absolute;top:-3px;right:-3px;width:12px;height:12px;border-radius:50%;background:linear-gradient(180deg,#ff6a5e,#ff453a);box-shadow:0 0 0 3px var(--bg),0 2px 10px rgba(255,69,58,.5);animation:navBadgeIn .35s cubic-bezier(.34,1.56,.64,1) both}
.amb-chev{display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s cubic-bezier(.32,.72,.28,1)}
.amb-chev svg{width:15px;height:15px;opacity:.55}
/* chevron вращается вниз когда sheet открыт (через :has на общем контейнере) */
#view-admin:has(.admin-side-menu.active) .amb-chev{transform:rotate(90deg)}
/* --- точка на нижней навигации «Админ» (без счётчика — просто индикатор) --- */
.nav-badge.dot{min-width:10px;width:10px;height:10px;padding:0;top:2px;right:calc(50% - 26px);border-radius:50%}
/* --- затемнение под bottom sheet --- */
.admin-side-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .28s ease;z-index:100000}
.admin-side-overlay.active{opacity:1;pointer-events:auto}
/* --- сам bottom sheet: выезжает снизу, не лезет под хедер --- */
.admin-side-menu{position:fixed;left:8px;right:8px;bottom:8px;max-width:520px;margin:0 auto;max-height:88vh;display:flex;flex-direction:column;background:rgba(16,16,18,.97);backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);border:1px solid var(--border-heavy);border-radius:28px;box-shadow:0 -12px 50px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04);z-index:100001;transform:translateY(110%);visibility:hidden;overscroll-behavior:contain;transition:transform .42s cubic-bezier(.32,.72,.28,1),visibility 0s linear .42s;padding-bottom:env(safe-area-inset-bottom)}
.admin-side-menu.active{transform:translateY(0);visibility:visible;transition:transform .42s cubic-bezier(.32,.72,.28,1),visibility 0s}
.admin-side-menu.dragging{transition:none}
[data-theme="light"] .admin-side-menu{background:rgba(252,252,254,.98);box-shadow:0 -12px 50px rgba(30,40,90,.18),0 0 0 1px rgba(0,0,0,.04)}
/* --- drag handle (iOS-стиль) --- */
.admin-side-menu::before{content:'';display:block;width:42px;height:5px;margin:10px auto 6px;border-radius:3px;background:var(--border-heavy);flex-shrink:0;transition:width .2s ease,background .2s ease}
.admin-side-menu:active::before{width:56px;background:var(--text-muted)}
/* --- шапка sheet'а --- */
.admin-side-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 18px 14px;border-bottom:1px solid var(--border-light);flex-shrink:0}
.admin-side-title{font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}
.admin-side-close{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:11px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);cursor:pointer;transition:.2s;flex-shrink:0}
.admin-side-close:hover{background:var(--text);color:var(--bg)}
.admin-side-close svg{width:15px;height:15px;stroke:currentColor;fill:none}
/* --- сетка карточек-разделов: 2 колонки на широком, 1 на узком --- */
.admin-side-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-content:start}
@media (max-width:380px){.admin-side-list{grid-template-columns:1fr}}
/* --- карточка раздела --- */
.admin-side-item{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:11px;width:100%;padding:14px;border-radius:18px;border:1px solid var(--border-light);background:rgba(255,255,255,.05);color:var(--text);font-size:14.5px;font-weight:700;font-family:'Inter',sans-serif;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease,box-shadow .25s ease;text-align:left;overflow:hidden;animation:adminSheetItemIn .35s cubic-bezier(.32,.72,.28,1) both}
.admin-side-list .admin-side-item:nth-child(1){animation-delay:.02s}
.admin-side-list .admin-side-item:nth-child(2){animation-delay:.05s}
.admin-side-list .admin-side-item:nth-child(3){animation-delay:.08s}
.admin-side-list .admin-side-item:nth-child(4){animation-delay:.11s}
.admin-side-list .admin-side-item:nth-child(5){animation-delay:.14s}
@keyframes adminSheetItemIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.admin-side-item:hover{background:rgba(255,255,255,.10);border-color:var(--border-heavy)}
.admin-side-item:active{transform:scale(.97)}
[data-theme="light"] .admin-side-item{background:rgba(0,0,0,.04)}
[data-theme="light"] .admin-side-item:hover{background:rgba(0,0,0,.08)}
/* --- иконка-чип с индивидуальным цветом раздела --- */
.admin-side-ic{width:44px;height:44px;padding:10px;border-radius:13px;background:var(--ic-bg,rgba(255,255,255,.08));border:1px solid var(--ic-border,var(--border-light));stroke:var(--ic-color,currentColor);fill:none;stroke-width:2;flex-shrink:0;transition:background .2s ease,stroke .2s ease,transform .2s ease,border-color .2s ease}
.admin-side-item:hover .admin-side-ic{transform:scale(1.06) rotate(-2deg)}
.admin-side-item span:not(.admin-side-dot){font-size:14.5px;font-weight:800;letter-spacing:-.1px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* --- персональные цвета разделов (градиент в чипе) --- */
.admin-side-item[data-tab="users"]{--ic-bg:linear-gradient(135deg,rgba(120,160,255,.22),rgba(100,140,255,.10));--ic-border:rgba(120,160,255,.32);--ic-color:#8aa9ff}
.admin-side-item[data-tab="tickets"]{--ic-bg:linear-gradient(135deg,rgba(255,180,90,.24),rgba(255,150,60,.10));--ic-border:rgba(255,180,90,.34);--ic-color:#ffb45a}
.admin-side-item[data-tab="locations"]{--ic-bg:linear-gradient(135deg,rgba(100,230,150,.20),rgba(80,210,130,.10));--ic-border:rgba(100,230,150,.32);--ic-color:#62e696}
.admin-side-item[data-tab="broadcast"]{--ic-bg:linear-gradient(135deg,rgba(190,130,255,.24),rgba(160,100,255,.10));--ic-border:rgba(190,130,255,.34);--ic-color:#b785ff}
.admin-side-item[data-tab="functions"]{--ic-bg:linear-gradient(135deg,rgba(220,220,230,.16),rgba(180,180,200,.08));--ic-border:rgba(220,220,230,.24);--ic-color:#c4c8d4}
/* --- активная карточка: инверсия + свечение + галочка --- */
.admin-side-item.active{background:var(--text)!important;color:var(--bg)!important;border-color:var(--text)!important;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 1px var(--text)}
.admin-side-item.active .admin-side-ic{background:rgba(0,0,0,.18)!important;border-color:rgba(0,0,0,.18)!important;stroke:var(--bg)!important;transform:scale(1.06) rotate(-2deg)}
[data-theme="light"] .admin-side-item.active .admin-side-ic{background:rgba(255,255,255,.32)!important;border-color:rgba(255,255,255,.32)!important;stroke:var(--bg)!important}
.admin-side-check{position:absolute;top:14px;right:12px;width:16px;height:16px;flex-shrink:0;margin-left:auto;stroke:currentColor;fill:none;opacity:0;transform:scale(.6) rotate(-12deg);transition:opacity .22s ease,transform .22s ease}
.admin-side-item.active .admin-side-check{opacity:1;transform:scale(1) rotate(0)}
/* --- красная точка «есть новые тикеты» (прячем на активной — мы уже там) --- */
.admin-side-dot{position:absolute;top:14px;right:14px;width:10px;height:10px;border-radius:50%;background:linear-gradient(180deg,#ff6a5e,#ff453a);box-shadow:0 0 8px rgba(255,69,58,.55),0 0 0 2px var(--bg);flex-shrink:0;animation:navBadgeIn .35s cubic-bezier(.34,1.56,.64,1) both}
/* --- футер --- */
.admin-side-foot{padding:12px 18px;padding-bottom:max(12px,env(safe-area-inset-bottom));font-size:11px;color:var(--text-faint);border-top:1px solid var(--border-light);flex-shrink:0;text-align:center}
/* --- мобилка: компактнее, на весь низ --- */
@media (max-width:480px){
.admin-menu-btn{padding:6px 12px 6px 6px}
.amb-ic{width:34px;height:34px}
.amb-section{font-size:14px}
.amb-label{font-size:9px}
.admin-side-menu{left:0;right:0;bottom:0;border-radius:24px 24px 0 0;max-height:90vh}
.admin-side-item{padding:13px;gap:10px}
.admin-side-ic{width:40px;height:40px;padding:9px}
}
/* --- респект к «уменьшить анимацию» --- */
@media (prefers-reduced-motion:reduce){.admin-menu-btn,.amb-dot,.admin-side-overlay,.admin-side-menu,.admin-side-check,.admin-side-dot,.admin-side-item,.amb-chev{animation:none!important;transition:none!important}}
.adm-btn:disabled{opacity:.38!important;filter:grayscale(.75);cursor:not-allowed!important;pointer-events:none}

/* v15: фильтры списка тикетов — в том же визуальном языке, что поиск пользователей */
.admin-ticket-toolbar{margin-top:10px;margin-bottom:10px}
.admin-ticket-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.admin-date-filter{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--border-light);border-radius:12px;background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:700}
.admin-date-filter input{border:0;outline:0;background:transparent;color:var(--text);font:inherit;min-width:128px}
/* v16: селект сортировки тикетов — впилиняем нативный dropdown в тот же стеклянный чип */
.admin-sort-filter select{-webkit-appearance:none;appearance:none;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer;padding-right:14px;min-width:0}
.admin-sort-filter select::-ms-expand{display:none}
.admin-sort-filter select:focus{outline:none}
.admin-sort-filter option{background:var(--bg);color:var(--text)}
.admin-sort-filter::after{content:'';flex-shrink:0;width:7px;height:7px;margin-left:-8px;border-right:1.6px solid var(--text-muted);border-bottom:1.6px solid var(--text-muted);transform:rotate(45deg) translateY(-2px);pointer-events:none}
/* v16: поля ввода часов кулдауна — малые inline-инпуты в языке design-системы */
.cooldown-input{width:74px;margin-left:6px;padding:8px 10px;border-radius:10px;border:1px solid var(--border-light);background:var(--surface);color:var(--text);font-family:'Inter',sans-serif;font-size:14px;font-weight:600;text-align:center;outline:none;-moz-appearance:textfield;appearance:textfield;transition:border-color .2s}
.cooldown-input::-webkit-inner-spin-button,.cooldown-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.cooldown-input:focus{border-color:var(--border-heavy)}
.admin-check-filter{display:inline-flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--border-light);border-radius:12px;background:var(--surface);color:var(--text);font-size:13px;font-weight:700;cursor:pointer}
.admin-check-filter input{accent-color:var(--accent,#7b61ff);width:16px;height:16px;margin:0}
@media(max-width:600px){.admin-date-filter{flex:1;min-width:140px}.admin-date-filter input{min-width:0;width:100%}.admin-check-filter{flex:1}.admin-ticket-filters>.adm-btn{width:100%}}

/* === v18: РЕДИЗАЙН РАЗДЕЛОВ === */
/* Чипы-фильтры (юзеры по статусу подписки, тикеты по статусу) */
.admin-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.uf-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;border:1px solid var(--border-light);background:var(--surface);color:var(--text-secondary);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer;transition:.2s;flex-shrink:0}
.uf-chip b{font-weight:800;font-size:11.5px;color:var(--text-muted);transition:color .2s}
.uf-chip:hover{border-color:var(--border-heavy);color:var(--text)}
.uf-chip.active{background:var(--text);color:var(--bg);border-color:var(--text)}
.uf-chip.active b{color:var(--bg);opacity:.6}
.uf-chip.warn:not(.active){color:var(--tag-beta-color);border-color:var(--tag-beta-border);background:var(--tag-beta-bg)}
.uf-chip.danger:not(.active){color:var(--tag-preview-color);border-color:var(--tag-preview-border);background:var(--tag-preview-bg)}
/* Карточка тикета: стеклянная карточка с блюром и глянцем в стиле
   карточек профиля/уведомлений (мягкие цветные пятна + верхний спекуляр).
   Селектор .admin-list-item.atk-item — специфичность выше мобильного
   правила .admin-list-item из 14-extras.css (иначе паддинг слетает). */
.admin-list-item.atk-item{cursor:pointer;position:relative;overflow:hidden;border:1px solid var(--border-light);border-radius:16px;padding:14px 16px;margin-bottom:10px;--aur-1:rgba(122,156,255,.10);--aur-2:rgba(255,110,180,.05);background:radial-gradient(120% 90% at 88% -18%,var(--aur-1),transparent 60%),radial-gradient(100% 80% at -8% 112%,var(--aur-2),transparent 62%),var(--surface);backdrop-filter:var(--pill-blur);-webkit-backdrop-filter:var(--pill-blur);transition:border-color .2s,transform .15s}
.atk-item::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 30%);pointer-events:none}
.atk-item>*{position:relative;z-index:1}
@media(hover:hover){.atk-item:hover{border-color:var(--border-heavy)}}
.atk-item:active{transform:scale(.995)}
[data-theme="light"] .atk-item{--aur-1:rgba(122,150,255,.10);--aur-2:rgba(255,110,180,.07)}
[data-theme="light"] .atk-item::before{background:linear-gradient(180deg,rgba(255,255,255,.6),transparent 32%)}
.atk-main{flex:1;min-width:0}
.atk-title{font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.atk-num{color:var(--text-muted);font-weight:700}
.atk-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.atk-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.2px;border:1px solid var(--border-light);background:var(--surface);color:var(--text-muted)}
.atk-badge.open{color:var(--tag-stable-color);border-color:var(--tag-stable-border);background:var(--tag-stable-bg)}
.atk-badge.closed{color:var(--text-faint)}
.atk-badge.appeal{color:var(--tag-beta-color);border-color:var(--tag-beta-border);background:var(--tag-beta-bg)}
.atk-badge.unread{color:var(--tag-preview-color);border-color:var(--tag-preview-border);background:var(--tag-preview-bg)}
.atk-meta{font-size:12.5px;color:var(--text-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Профиль пользователя */
.aup-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.aup-names{flex:1;min-width:0}
.aup-names .aui-username{white-space:normal}
.aup-status{font-size:12.5px;color:var(--text-muted);font-weight:600;margin-top:2px}
.aup-grid{display:flex;flex-direction:column;margin-bottom:16px}
.aup-row{display:flex;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px dashed var(--border-light)}
.aup-row:last-child{border-bottom:none}
.aup-label{flex:0 0 42%;font-size:12.5px;color:var(--text-muted);font-weight:600}
.aup-value{font-size:14px;font-weight:600;word-break:break-word;min-width:0}
.aup-reason{display:block;font-size:12px;color:var(--text-muted);font-weight:500;margin-top:2px}
.aup-link-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-light);border-radius:12px;background:var(--surface);margin-bottom:16px}
.aup-link{flex:1;min-width:0;font-size:12px;color:var(--text-muted);word-break:break-all}
.aup-actions{display:flex;flex-wrap:wrap;gap:8px}
.aup-section{border-top:1px solid var(--border-light);padding-top:14px;margin-top:14px}
.aup-section h3{margin-bottom:10px}
.aup-btns{display:flex;flex-wrap:wrap;gap:8px}
.aup-hint{font-size:12px;color:var(--text-muted);margin-top:10px;line-height:1.55}
.aup-ban-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.aup-ban-row span{font-size:13px;color:var(--text-muted);font-weight:600}
.aup-ban-input{width:90px!important;margin-left:0}
/* Локации */
.loc-list{max-height:40vh}
.loc-name{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.loc-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:8px;border:1px solid var(--border-light)}
.loc-badge.visible{background:var(--tag-stable-bg);color:var(--tag-stable-color);border-color:var(--tag-stable-border)}
.loc-badge.hidden{background:var(--tag-preview-bg);color:var(--tag-preview-color);border-color:var(--tag-preview-border)}
.loc-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.loc-meta-chip{font-size:11px;font-weight:600;color:var(--text-muted);padding:2px 9px;border-radius:8px;background:var(--surface);border:1px solid var(--border-light)}
.loc-step-row{display:flex;gap:10px;align-items:center}
.loc-step-btn{padding:14px;background:var(--surface);border:1px solid var(--border-light);border-radius:12px;color:var(--text);font-size:18px;cursor:pointer;min-width:44px;transition:border-color .2s}
.loc-step-btn:hover{border-color:var(--border-heavy)}
.loc-step-input{flex:1;text-align:center}
/* Функции */
.func-info{min-width:0}
.func-title{font-size:16px;font-weight:600}
.func-desc{font-size:13px;color:var(--text-muted);margin-top:2px}
.func-status{display:inline-flex;align-items:center;gap:7px;margin-top:8px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--border-light);background:var(--surface);color:var(--text-muted);transition:.2s}
.func-status i{width:8px;height:8px;border-radius:50%;background:var(--text-faint);flex-shrink:0}
.func-status.on{color:var(--tag-stable-color);border-color:var(--tag-stable-border);background:var(--tag-stable-bg)}
.func-status.on i{background:var(--tag-stable-color)}
.func-status.off{color:var(--tag-preview-color);border-color:var(--tag-preview-border);background:var(--tag-preview-bg)}
.func-status.off i{background:var(--tag-preview-color)}
.func-cooldown-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.func-cool-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);font-weight:600}
/* Последние рассылки */
.rb-item{padding:10px 12px;border:1px solid var(--border-light);border-radius:12px;background:var(--surface)}
.rb-text{font-size:13px;color:var(--text);margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
.rb-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.rb-info{font-size:11px;color:var(--text-muted)}
/* Мобилка: разделы админки */
@media (max-width:480px){
.aup-label{flex-basis:46%;font-size:11.5px}
.aup-value{font-size:13px}
.aup-link-row{flex-wrap:wrap}
.atk-title{font-size:14.5px;white-space:normal}
.uf-chip{padding:7px 11px;font-size:11.5px}
.admin-filter-row{gap:6px}
.loc-step-btn{min-width:40px;padding:11px}
.func-cool-label{flex-wrap:wrap}
}
