#tab-btn-contentcfg { display: none !important; }
@media (min-width: 900px) {
  #agents-editor-layout.abilities-layout { display:grid !important; grid-template-columns:minmax(0,1fr) 380px; gap:18px; align-items:start; }
  #agents-editor-layout.abilities-layout #agents-abilities-block { max-width:none !important; position:sticky; top:18px; }
}
:root {
  --bg: #0a0f1a;
  --surface: #111827;
  --surface2: #1a2235;
  --surface3: #0f1724;
  --primary: #FF4655;
  --primary-dim: rgba(255,70,85,.12);
  --accent: #38bdf8;
  --text: #e2e8f0;
  --text2: #748297;
  --sidebar-text: #909bac;
  --border: rgba(255,255,255,.07);
  --border2: rgba(255,255,255,.12);
  --green: #22c55e;
  --orange: #f97316;
  --red: #ef4444;
  --r: 8px;
  --sidebar-w: 228px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; min-height: 100vh; font-size: 14px; overflow-x: hidden; }

.site-loader { position:fixed; inset:0; z-index:100000; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:24px; background:radial-gradient(circle at 50% 42%, #172237 0, #0a0f1a 42%, #070b13 100%); transition:opacity .35s ease, visibility .35s ease; }
.site-loader--hidden { opacity:0; visibility:hidden; pointer-events:none; }
.site-loader__brand { color:var(--primary); font-size:14px; font-weight:900; letter-spacing:3px; }
.site-loader__brand span { color:var(--text); }
.site-loader__game { position:relative; display:flex; align-items:center; width:min(300px, 78vw); height:58px; overflow:hidden; }
.site-loader__pacman { position:absolute; left:0; z-index:2; width:42px; height:42px; animation:site-loader-run 3s linear infinite; }
.site-loader__pacman::before,.site-loader__pacman::after { content:''; position:absolute; left:0; width:42px; height:21px; background:#ffd43b; }
.site-loader__pacman::before { top:0; border-radius:42px 42px 0 0; transform-origin:50% 100%; background:radial-gradient(circle at 65% 42%,#111827 0 2px,#ffd43b 2.5px); animation:site-loader-jaw-top .3s ease-in-out infinite alternate; }
.site-loader__pacman::after { bottom:0; border-radius:0 0 42px 42px; transform-origin:50% 0; animation:site-loader-jaw-bottom .3s ease-in-out infinite alternate; }
.site-loader__dots { display:flex; justify-content:space-around; width:100%; padding-left:50px; }
.site-loader__dots i { width:7px; height:7px; border-radius:50%; background:#4cc9ff; box-shadow:0 0 8px rgba(76,201,255,.65); animation-duration:3s; animation-timing-function:linear; animation-iteration-count:infinite; }
.site-loader__dots i:nth-child(1) { animation-name:site-loader-dot-1; }.site-loader__dots i:nth-child(2) { animation-name:site-loader-dot-2; }.site-loader__dots i:nth-child(3) { animation-name:site-loader-dot-3; }.site-loader__dots i:nth-child(4) { animation-name:site-loader-dot-4; }.site-loader__dots i:nth-child(5) { animation-name:site-loader-dot-5; }.site-loader__dots i:nth-child(6) { animation-name:site-loader-dot-6; }
.site-loader__title { color:var(--text); font-size:18px; font-weight:900; letter-spacing:1.5px; }
.site-loader__hint { color:var(--text2); font-size:12px; text-align:center; }
@keyframes site-loader-run { 0% { transform:translateX(0) scaleX(1); } 40%,49.99% { transform:translateX(calc(min(300px, 78vw) - 42px)) scaleX(1); } 50% { transform:translateX(calc(min(300px, 78vw) - 42px)) scaleX(-1); } 90%,99.99% { transform:translateX(0) scaleX(-1); } 100% { transform:translateX(0) scaleX(1); } }
@keyframes site-loader-jaw-top { from { transform:rotate(-34deg); } to { transform:rotate(-4deg); } }
@keyframes site-loader-jaw-bottom { from { transform:rotate(34deg); } to { transform:rotate(4deg); } }
@keyframes site-loader-dot-1 { 0%,4% { opacity:1; transform:scale(1); } 5%,40% { opacity:0; transform:scale(.1); } 41.5%,85% { opacity:1; transform:scale(1); } 86%,90% { opacity:0; transform:scale(.1); } 91.5%,100% { opacity:1; transform:scale(1); } }
@keyframes site-loader-dot-2 { 0%,11% { opacity:1; transform:scale(1); } 12%,41.5% { opacity:0; transform:scale(.1); } 43%,78% { opacity:1; transform:scale(1); } 79%,91.5% { opacity:0; transform:scale(.1); } 93%,100% { opacity:1; transform:scale(1); } }
@keyframes site-loader-dot-3 { 0%,18% { opacity:1; transform:scale(1); } 19%,43% { opacity:0; transform:scale(.1); } 44.5%,71% { opacity:1; transform:scale(1); } 72%,93% { opacity:0; transform:scale(.1); } 94.5%,100% { opacity:1; transform:scale(1); } }
@keyframes site-loader-dot-4 { 0%,25% { opacity:1; transform:scale(1); } 26%,44.5% { opacity:0; transform:scale(.1); } 46%,64% { opacity:1; transform:scale(1); } 65%,94.5% { opacity:0; transform:scale(.1); } 96%,100% { opacity:1; transform:scale(1); } }
@keyframes site-loader-dot-5 { 0%,32% { opacity:1; transform:scale(1); } 33%,46% { opacity:0; transform:scale(.1); } 47.5%,57% { opacity:1; transform:scale(1); } 58%,96% { opacity:0; transform:scale(.1); } 97.5%,100% { opacity:1; transform:scale(1); } }
@keyframes site-loader-dot-6 { 0%,39% { opacity:1; transform:scale(1); } 40%,47.5% { opacity:0; transform:scale(.1); } 49%,50% { opacity:1; transform:scale(1); } 51%,97.5% { opacity:0; transform:scale(.1); } 99%,100% { opacity:1; transform:scale(1); } }
@media (prefers-reduced-motion:reduce) { .site-loader__pacman { left:calc(50% - 21px); animation:none; } .site-loader__pacman::before,.site-loader__pacman::after,.site-loader__dots i { animation:none; } }

/* ── Header ── */
.header {
  background: var(--surface); border-bottom: 1px solid var(--border);
  padding: 0 20px; height: 54px; display: flex; align-items: center;
  justify-content: space-between; position: sticky; top: 0; z-index: 200;
  box-shadow: 0 1px 0 var(--border), 0 4px 16px rgba(0,0,0,.35);
}
.logo { font-size: 15px; font-weight: 800; letter-spacing: 2.5px; color: var(--primary); display: flex; align-items: center; gap: 8px; }
.logo span { color: var(--text); }
.logo-icon { font-size: 18px; }
.admin-version { font-size: 10px; font-weight: 700; letter-spacing: .7px; color: var(--text2); border: 1px solid var(--border2); border-radius: 999px; padding: 3px 8px; background: rgba(255,255,255,.035); white-space: nowrap; }
.header-right { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--text2); }
.header-user-name { font-size: 13px; font-weight: 600; color: var(--text); }
.btn-out { background: transparent; border: 1px solid var(--border2); color: var(--text2); padding: 5px 13px; border-radius: var(--r); cursor: pointer; font-size: 12px; transition: .15s; }
.btn-out:hover { border-color: var(--primary); color: var(--primary); }
.admin-update-banner { position: fixed; left: 50%; top: 66px; z-index: 5000; transform: translate(-50%, -12px); display: none; align-items: center; gap: 12px; width: min(560px, calc(100vw - 28px)); padding: 12px 14px; border-radius: var(--r); border: 1px solid rgba(255,70,85,.55); background: rgba(17,24,39,.97); box-shadow: 0 18px 48px rgba(0,0,0,.45); color: var(--text); font-size: 13px; font-weight: 800; opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s; }
.admin-update-banner.show { display: flex; opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.admin-update-banner span { flex: 1; line-height: 1.35; }
.admin-update-banner button { flex-shrink: 0; border: 0; background: var(--primary); color: #fff; border-radius: var(--r); padding: 8px 12px; font-size: 12px; font-weight: 900; cursor: pointer; }

/* ── App body: sidebar + content ── */
.app-body { display: flex; min-height: calc(100vh - 54px); }

/* ── Sidebar ── */
.sidebar {
  width: var(--sidebar-w); flex-shrink: 0;
  background: var(--surface);
  border-right: 1px solid var(--border);
  position: sticky; top: 54px;
  height: calc(100vh - 54px);
  overflow-y: auto; overflow-x: hidden;
  display: flex; flex-direction: column;
  scrollbar-width: thin; scrollbar-color: var(--border2) transparent;
}
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }
.sidebar-section-label {
  padding: 16px 16px 4px;
  font-size: 9px; font-weight: 700; letter-spacing: 1.8px;
  color: var(--sidebar-text); text-transform: uppercase;
}
.sidebar-divider { height: 1px; background: var(--border); margin: 6px 12px; }

/* ── Nav tabs (sidebar style) ── */
.tabs { display: flex; flex-direction: column; gap: 1px; background: none; border: none; border-radius: 0; padding: 6px 8px; width: 100%; margin-bottom: 0; }
.tab {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px; border-radius: 6px;
  border: none; border-left: none;
  font-weight: 500; font-size: 13px; letter-spacing: 0;
  color: var(--sidebar-text); background: transparent;
  text-align: left; width: 100%; cursor: pointer;
  transition: background .15s, color .15s;
}
.tab:hover { background: rgba(255,255,255,.05); color: var(--text); }
.tab.active { background: var(--primary-dim); color: var(--primary); font-weight: 700; }
.tab.has-unread:not(.active) { background: rgba(255,70,85,.12); color: var(--primary); }
.tab.has-unread:not(.active) .bi { opacity: 1; }
.tab .bi { font-size: 15px; flex-shrink: 0; width: 18px; text-align: center; opacity: .96; }
.tab.active .bi { opacity: 1; }

/* ── Main content area ── */
.main { flex: 1; min-width: 0; padding: 22px 24px; overflow: visible; box-sizing: border-box; }

.center-screen { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 24px; }
.auth-card { background: var(--surface); border: 1px solid var(--border2); border-radius: 12px; padding: 48px 40px; max-width: 360px; width: 100%; text-align: center; }
.auth-title { font-size: 26px; font-weight: 800; color: var(--primary); letter-spacing: 3px; margin-bottom: 4px; }
.auth-sub { color: var(--text2); font-size: 12px; letter-spacing: 1px; margin-bottom: 36px; }
.btn-google { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; background: #fff; color: #1a1a1a; border: none; padding: 12px 20px; border-radius: var(--r); font-size: 14px; font-weight: 600; cursor: pointer; transition: opacity .15s; }
.btn-google:hover { opacity: .88; }
.btn-google:disabled { opacity: .45; cursor: default; }
.g-icon { font-size: 15px; font-weight: 900; color: #4285F4; }
.auth-err { color: var(--red); font-size: 12px; margin-top: 14px; display: none; }

.filters { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 14px; }
.filter-btn { padding: 5px 14px; border-radius: 20px; border: 1px solid var(--border2); background: var(--surface2); color: var(--text2); cursor: pointer; font-size: 12px; font-weight: 600; transition: .15s; }
.filter-btn:hover { background: rgba(255,255,255,.07); color: var(--text); border-color: var(--border2); }
.filter-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.filter-btn.f-pending.active  { background: var(--orange); border-color: var(--orange); }
.filter-btn.f-approved.active { background: var(--green);  border-color: var(--green); }
.filter-btn.f-rejected.active { background: var(--red);    border-color: var(--red); }
.filter-btn.f-archived.active { background: #7c3aed;      border-color: #7c3aed; }

.search { width: 100%; max-width: 420px; background: var(--surface2); border: 1px solid var(--border2); border-radius: var(--r); color: var(--text); padding: 8px 13px 8px 36px; font-size: 14px; margin-bottom: 14px; outline: none; }
.search:focus { border-color: rgba(255,70,85,.5); box-shadow: 0 0 0 3px rgba(255,70,85,.08); }
.search-wrap { position: relative; max-width: 420px; margin-bottom: 14px; }
.search-wrap .bi { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--text2); font-size: 14px; pointer-events: none; }
.search-wrap .search { width: 100%; margin-bottom: 0; }

.lineup-list { display: flex; flex-direction: column; gap: 8px; min-height: 0; }
.lcard { background: var(--surface); border: 1px solid var(--border); border-left: 3px solid transparent; border-radius: var(--r); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.lcard:hover { box-shadow: 0 4px 20px rgba(0,0,0,.35); }
.lcard[data-status="pending"]  { border-left-color: var(--orange); }
.lcard[data-status="approved"] { border-left-color: var(--green); }
.lcard[data-status="rejected"] { border-left-color: var(--red); }
.lcard[data-status="archived"] { border-left-color: #7c3aed; }
.lcard-head { padding: 13px 15px; display: flex; align-items: center; gap: 11px; cursor: pointer; user-select: none; }
.badge { padding: 3px 7px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: .4px; white-space: nowrap; flex-shrink: 0; }
.b-pending  { background: rgba(249,115,22,.12); color: var(--orange); border: 1px solid var(--orange); }
.b-approved { background: rgba(34,197,94,.12);  color: var(--green);  border: 1px solid var(--green); }
.b-rejected { background: rgba(239,68,68,.12);  color: var(--red);    border: 1px solid var(--red); }
.b-removed   { background: rgba(100,100,100,.1); color: #777;          border: 1px solid #555; }
.b-archived  { background: rgba(139,92,246,.12); color: #a78bfa;       border: 1px solid #7c3aed; }
.b-hot       { background: rgba(249,115,22,.15); color: #f97316;       border: 1px solid #f97316; }
.lcard[data-status="hot"] { border-left-color: #f97316; }
.lcard.moderator-approved { border-left-color: #38bdf8; background: linear-gradient(90deg, rgba(56,189,248,.10), var(--surface) 42%); }
.lcard.moderator-rejected { border-left-color: #ef4444; background: linear-gradient(90deg, rgba(239,68,68,.10), var(--surface) 42%); }
.badge.b-moderator-approved { color:#38bdf8; border-color:rgba(56,189,248,.65); background:rgba(56,189,248,.13); }
.badge.b-moderator-rejected { color:#ff6b75; border-color:rgba(239,68,68,.65); background:rgba(239,68,68,.13); }
.audit-action.hot { color: #f97316; }
.hot-buns-bar { background: rgba(249,115,22,.07); border: 1px solid rgba(249,115,22,.3); border-radius: 8px; padding: 12px 16px; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.lineups-sticky-top { position: sticky; top: 54px; z-index: 50; background: var(--bg); margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; padding-bottom: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.25); }
.btn-publish { background: #16a34a !important; color: #fff !important; }
.linfo { flex: 1; min-width: 0; }
.ltitle { font-weight: 700; font-size: 14px; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lmeta  { color: var(--text2); font-size: 12px; display: flex; gap: 10px; flex-wrap: wrap; }
.expand-btn { background: transparent; border: none; color: var(--text2); cursor: pointer; font-size: 17px; padding: 2px 6px; transition: transform .18s; }
.expand-btn.open { transform: rotate(180deg); }

.ldetail { display: none; border-top: 1px solid var(--border); padding: 16px; background: var(--surface3); }
.ldetail.open { display: block; }
.section { margin-bottom: 13px; }
.dlabel { font-size: 10px; font-weight: 700; color: var(--text2); letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 5px; }
.dval   { color: var(--text); font-size: 13px; line-height: 1.5; }
.dgrid  { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin-bottom: 13px; }
.dfield { background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; padding: 9px 12px; }
.ld-ability-summary { margin-bottom:16px; padding:10px; border:1px solid rgba(82,191,243,.3); border-radius:8px; background:rgba(15,40,58,.48); }
.ld-ability-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; color:#71c7f3; font-size:10px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.ld-ability-list { display:grid; gap:6px; }
.ld-ability-row { display:grid; grid-template-columns:28px minmax(120px,1fr) minmax(110px,180px) 54px; align-items:center; gap:10px; padding:7px 9px; border:1px solid var(--border); border-radius:6px; background:rgba(9,18,31,.72); }
.ld-ability-order { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:rgba(82,191,243,.13); color:#7dd3fc; font-size:10px; font-weight:900; }
.ld-ability-name { min-width:0; color:var(--text); font-size:12px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ld-sova-charge { position:relative;height:16px;border:2px solid rgba(232,244,250,.82);background:rgba(111,126,134,.28);box-shadow:inset 0 0 0 2px rgba(3,15,24,.42);overflow:hidden; }
.ld-sova-charge-fill { position:absolute;inset:2px auto 2px 2px;width:max(0px,calc(var(--charge-pct,0%) - 4px));background:#68ddc5; }
.ld-sova-charge.is-max .ld-sova-charge-fill{background:#ff4655}.ld-sova-charge::before,.ld-sova-charge::after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:1px;background:rgba(245,250,255,.9)}.ld-sova-charge::before{left:33.333%}.ld-sova-charge::after{left:66.666%}
.ld-sova-bounces { display:flex;justify-content:center;gap:9px; }
.ld-sova-bounces i { width:14px;height:14px;display:block;transform:rotate(45deg);border:2px solid #65737c;background:rgba(111,126,134,.22); }
.ld-sova-bounces i.active { border-color:#efffff;background:#68ddc5;box-shadow:0 0 7px rgba(104,221,197,.65),inset 0 0 0 2px rgba(5,25,31,.32); }
@media(max-width:620px){.ld-ability-row{grid-template-columns:28px 1fr}.ld-sova-charge,.ld-sova-bounces{grid-column:2;width:100%;max-width:180px}.ld-sova-bounces{justify-content:flex-start;padding-left:4px}}

.row   { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 11px; }
.btn   { padding: 8px 15px; border-radius: var(--r); border: none; cursor: pointer; font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; transition: opacity .13s; }
.btn:hover    { opacity: .82; }
.btn:disabled { opacity: .4; cursor: default; }
.btn-approve { background: var(--green);  color: #fff; }
.btn-reject  { background: var(--orange); color: #fff; }
.btn-delete   { background: transparent; border: 1px solid var(--red);    color: var(--red); }
.btn-archive  { background: transparent; border: 1px solid #7c3aed;      color: #a78bfa; }
.btn-ban     { background: transparent; border: 1px solid var(--red);    color: var(--red); font-size: 12px; }
.btn-save    { background: var(--primary); color: #fff; }

.yt-player  { width: 100%; aspect-ratio: 16/9; border-radius: var(--r); overflow: hidden; margin-bottom: 9px; background: #000; }
.yt-player iframe { width: 100%; height: 100%; border: none; }
.yt-row     { display: flex; gap: 8px; align-items: flex-start; }

.toggle-switch { position:relative; display:inline-block; width:36px; height:20px; }
.toggle-switch input { opacity:0; width:0; height:0; }
.toggle-slider { position:absolute; cursor:pointer; inset:0; background:var(--border); border-radius:20px; transition:.2s; }
.toggle-slider:before { position:absolute; content:""; height:14px; width:14px; left:3px; bottom:3px; background:white; border-radius:50%; transition:.2s; }
input:checked + .toggle-slider { background:var(--green); }
input:checked + .toggle-slider:before { transform:translateX(16px); }

.ss-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.ss-thumb { aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; background: var(--surface2); cursor: zoom-in; }
.ss-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.ss-thumb:hover img { transform: scale(1.06); }

.form-wrap  { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 22px; max-width: 800px; }
.form-title { color: var(--primary); font-size: 15px; font-weight: 700; letter-spacing: 1px; margin-bottom: 18px; }
.form-title-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.form-title-row .form-title { margin-bottom: 0; }
#bulk-video-zone { display: flex; align-items: center; gap: 12px; border: 2px dashed var(--border); border-radius: 10px; padding: 12px 20px; color: var(--text2); font-size: 12px; cursor: pointer; transition: all .2s; min-width: 220px; }
#bulk-video-zone:hover, #bulk-video-zone.drag-active { border-color: var(--primary); background: rgba(255,70,85,.06); color: var(--text); box-shadow: 0 0 0 3px rgba(255,70,85,.15); }
.fgrid      { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
@media (max-width: 600px) { .fgrid { grid-template-columns: 1fr; } }
.fg         { display: flex; flex-direction: column; gap: 5px; }
.fg.full    { grid-column: 1/-1; }
.flabel     { font-size: 11px; font-weight: 700; color: var(--text2); letter-spacing: 1px; text-transform: uppercase; }
.finput, .fselect, .ftextarea {
  background: var(--surface2); border: 1px solid var(--border); border-radius: var(--r);
  color: var(--text); padding: 9px 13px; font-size: 14px; outline: none;
  transition: border-color .15s; width: 100%; font-family: inherit; box-shadow: none;
}
.finput:focus, .fselect:focus, .ftextarea:focus { border-color: var(--primary); }
/* Отключаем красную рамку браузерной валидации (разделено для совместимости браузеров) */
.finput:invalid, .fselect:invalid, .ftextarea:invalid {
  border-color: var(--border) !important; box-shadow: none !important; outline: none !important;
}
.finput:-moz-ui-invalid, .fselect:-moz-ui-invalid, .ftextarea:-moz-ui-invalid {
  border-color: var(--border) !important; box-shadow: none !important; outline: none !important;
}
.finput:user-invalid, .fselect:user-invalid, .ftextarea:user-invalid {
  border-color: var(--border) !important; box-shadow: none !important; outline: none !important;
}
.fselect option { background: var(--surface2); }
.ftextarea  { resize: vertical; min-height: 78px; }
.fcheck-row { display: flex; align-items: center; gap: 9px; padding: 9px 13px; background: var(--surface2); border: 1px solid var(--border); border-radius: var(--r); cursor: pointer; }
.fcheck-row input { accent-color: var(--primary); width: 15px; height: 15px; cursor: pointer; }
.yt-hint    { background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; padding: 9px 12px; color: var(--text2); font-size: 12px; line-height: 1.6; margin-bottom: 7px; }

.agent-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 5px; }
.agent-card { position: relative; border-radius: 7px; border: 2px solid var(--border); background: var(--surface2); cursor: pointer; transition: border-color .13s, background .13s; overflow: hidden; display: flex; flex-direction: column; align-items: center; }
.agent-card:hover  { border-color: var(--primary); }
.agent-card.sel    { border-color: var(--primary); background: rgba(255,70,85,.12); }
.agent-card img    { width: 86px; height: 86px; object-fit: cover; object-position: center; display: block; pointer-events: none; flex:0 0 86px; }
.agent-card .ac-fallback { width: 86px; height: 86px; display: flex; align-items: center; justify-content: center; font-size: 22px; flex:0 0 86px; }
.agent-card .ac-name { font-size: 9px; font-weight: 700; color: var(--text2); text-align: center; padding: 3px 3px; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.agent-card.sel .ac-name { color: var(--primary); }
.agent-category-toggle { width:calc(100% - 8px);margin:2px 4px 5px;padding:5px 3px;border:1px solid var(--border);border-radius:5px;font-size:9px;font-weight:800;cursor:default;white-space:nowrap; }
.agent-cat-dots { display:flex; gap:3px; justify-content:center; margin-top:3px; padding-bottom:3px; }
.cat-dot { width:6px; height:6px; border-radius:50%; background:var(--border); transition:.15s; }
.cat-dot.has-abilities { background:var(--primary); }
.cat-dot[data-cat="combo"].has-abilities { background:#f97316; }
.cat-dot[data-cat="wallbang"].has-abilities { background:#7a9bb5; }
.cat-dot[data-cat="defense"].has-abilities { background:#22c55e; }
.ability-row { display: flex; flex-wrap: wrap; gap: 6px; }
.abil-btn   { min-width: 66px; min-height: 66px; padding: 6px; border-radius: 7px; border: 1px solid var(--border); background: var(--surface2); color: var(--text2); cursor: pointer; font-size: 10px; font-weight: 700; transition: .13s; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.abil-btn:hover { border-color: var(--primary); color: var(--primary); }
.abil-btn.sel   { background: var(--primary); border-color: var(--primary); color: #fff; }
.abil-btn:disabled, .abil-btn.added { opacity:.45; cursor:not-allowed; }
.abil-btn img { width: 32px; height: 32px; object-fit: contain; pointer-events:none; }
.abil-btn span { max-width: 54px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.extra-ability-panel { display:none; grid-column:1/-1; background:rgba(15,23,42,.55); border:1px solid var(--border); border-radius:var(--r); padding:12px; }
.extra-ability-panel.show { display:block; }
.extra-ability-picker { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.extra-ability-pick.added { opacity:.45; cursor:not-allowed; }
.extra-ability-list { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.extra-ability-chip { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border); background:var(--surface2); color:var(--text); border-radius:999px; padding:5px 7px; font-size:12px; font-weight:800; cursor:pointer; }
.extra-ability-chip.sel { border-color:var(--primary); box-shadow:0 0 0 3px rgba(255,70,85,.14); }
.extra-ability-chip img { width:22px; height:22px; object-fit:contain; }
.extra-ability-chip button { border:0; background:rgba(148,163,184,.12); color:var(--text2); border-radius:50%; width:18px; height:18px; cursor:pointer; font-weight:900; line-height:1; }
.slot-map-workbench { display:grid; grid-template-columns:1fr; gap:10px; align-items:start; }
.slot-map-workbench:has(.slot-extra-tools:not([hidden])) { grid-template-columns:168px minmax(0, 1fr); }
.slot-extra-tools { border:1px solid var(--border); background:rgba(15,23,42,.55); border-radius:var(--r); padding:10px; display:grid; gap:9px; }
.slot-extra-tools[hidden] { display:none !important; }
.slot-extra-tools .ability-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.slot-extra-tools .abil-btn { width:100%; min-width:0; padding:5px; }
.slot-extra-tools .extra-ability-list { margin-top:0; }
.defense-editor-tools { display:grid; gap:9px; }
.defense-editor-tools[hidden] { display:none !important; }
.defense-mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.defense-mode-grid .btn { min-width:0; justify-content:center; padding:7px 8px; font-size:11px; }
.defense-mode-grid .btn.active { border-color:#50d6ff; color:#50d6ff; background:rgba(80,214,255,.10); }
.defense-ability-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.defense-ability-picker .abil-btn { width:100%; min-width:0; }
.defense-placed-list { display:grid; gap:5px; }
.defense-placed-chip { display:grid; grid-template-columns:auto 24px minmax(0,1fr) auto; align-items:center; gap:6px; min-width:0; padding:5px 6px; border:1px solid var(--border); border-radius:7px; background:var(--surface2); color:var(--text); font-size:11px; cursor:pointer; }
.defense-placed-chip.sel { border-color:#50d6ff; box-shadow:0 0 0 3px rgba(80,214,255,.10); }
.defense-placed-chip img { width:22px; height:22px; object-fit:contain; }
.defense-placed-chip span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.defense-placed-chip button { width:20px; height:20px; padding:0; border:0; border-radius:50%; background:rgba(148,163,184,.12); color:var(--text2); cursor:pointer; }
.defense-radius-controls { display:flex; align-items:center; gap:5px; }
.defense-radius-controls input { width:72px; padding:5px 7px; font-size:11px; }
.defense-map-layer { position:absolute; inset:0; z-index:4; pointer-events:none; overflow:visible; }
.defense-map-layer svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.defense-site-marker, .defense-setup-marker, .defense-ability-point, .defense-line-anchor { position:absolute; transform:translate(-50%,-50%); pointer-events:auto; user-select:none; }
.defense-site-marker { min-width:34px; height:34px; padding:0 8px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(15,23,42,.78); border:2px solid #fff; color:#fff; font-size:16px; font-weight:900; box-shadow:0 4px 16px rgba(0,0,0,.55); }
.defense-setup-marker { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#50d6ff; border:2px solid #e8faff; color:#07111d; font-size:12px; font-weight:900; box-shadow:0 0 10px rgba(80,214,255,.8); }
.defense-zoom-box { position:absolute; border:2px dashed #22c55e; background:rgba(34,197,94,.12); box-shadow:0 0 14px rgba(34,197,94,.24); pointer-events:none; }
.defense-ability-point { width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(9,18,32,.90); border:1px solid #dff8ff; box-shadow:0 0 7px rgba(80,214,255,.75); cursor:pointer; overflow:hidden; }
.defense-ability-point img { width:12px; height:12px; object-fit:contain; }
.defense-ability-point.sel, .defense-line-anchor.sel { box-shadow:0 0 0 4px rgba(80,214,255,.22),0 0 11px rgba(80,214,255,.9); }
.defense-line-anchor { width:8px; height:8px; border-radius:50%; background:#50d6ff; border:1px solid #fff; }
.defense-line-anchor.sensor-pivot { width:12px; height:12px; background:#fff; border:1.5px solid #17233b; box-shadow:0 0 0 2px rgba(101,220,255,.3),0 0 8px rgba(101,220,255,.7); }
.defense-line-anchor.sensor-rotate { width:12px; height:12px; background:#ff4655; border:1.5px solid #fff; box-shadow:0 0 0 2px rgba(255,70,85,.24),0 0 8px rgba(255,70,85,.7); }
.defense-shape-line-bg { stroke:rgba(5,10,20,.8); stroke-width:3.5; stroke-linecap:round; }
.defense-shape-line { stroke:#50d6ff; stroke-width:1.35; stroke-linecap:round; filter:drop-shadow(0 0 2px rgba(80,214,255,.7)); }
.defense-shape-mesh { stroke:#50d6ff; stroke-width:1.35; }
.defense-shape-sensor { stroke:#65dcff; stroke-width:1.15; opacity:.9; filter:drop-shadow(0 0 2px rgba(101,220,255,.8)); }
.defense-shape-sensor-ring { fill:#173b52; stroke:#9cecff; stroke-width:1.1; filter:drop-shadow(0 0 3px rgba(101,220,255,.9)); }
.defense-shape-sensor-rect { fill:rgba(54,89,173,.38); stroke:#65dcff; stroke-width:.35; }
.defense-shape-node { fill:#e8faff; stroke:#50d6ff; stroke-width:.55; }
.defense-shape-area { fill:rgba(80,214,255,.18); stroke:#8ce8ff; stroke-width:1; vector-effect:non-scaling-stroke; }
.defense-shape-area.net { stroke:none; }
.defense-net-grid-line { fill:none; stroke:rgba(174,232,255,.88); stroke-width:.65; }
.defense-shape-area.viper { fill:rgba(34,197,94,.20); stroke:#6ee7b7; }
.defense-previewing .defense-site-marker, .defense-previewing .defense-setup-marker, .defense-previewing .defense-zoom-box { display:none; }
.defense-previewing .map-canvas, .defense-preview-returning .map-canvas { transition:transform .36s cubic-bezier(.2,.8,.2,1); }
.defense-preview-back { width:100%; justify-content:center; border:1px solid #50d6ff !important; color:#50d6ff !important; }
#add-slots-container:has(.defense-editor-tools:not([hidden])) { grid-template-columns:1fr !important; }
@media(max-width:900px){ .slot-map-workbench { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce){ .defense-previewing .map-canvas, .defense-preview-returning .map-canvas { transition:none; } }
.map-picker-wrap { position: relative; border-radius: var(--r); overflow: hidden; background: var(--surface2); border: 1px solid var(--border); cursor: crosshair; user-select: none; aspect-ratio: 1; width: min(100%, 320px); }
#editor-panel .agent-grid { grid-template-columns:repeat(auto-fill, minmax(58px, 64px)); }
#editor-panel .map-picker-wrap { width:min(100%, 420px); }
.map-canvas { position: absolute; inset: 0; transform-origin: 0 0; }
.map-canvas img { width: 100%; height: 100%; display: block; object-fit: contain; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.map-site-label { position: absolute; transform: translate(-50%,-50%); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; font-weight: 700; line-height: 1; text-shadow: 0 1px 4px rgba(0,0,0,.9); pointer-events: none; user-select: none; z-index: 2; white-space:nowrap; }
.map-site-label.map-site-label--compact { width:auto !important; height:auto !important; font-size:12px !important; }
.map-spawn-zone { position:absolute;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;pointer-events:none;z-index:1;border:2px solid;border-radius:5px;box-sizing:border-box; }
.ms-category-nav { position:sticky;top:56px;z-index:30;display:flex;gap:7px;flex-wrap:wrap;padding:10px;margin:14px 0;background:rgba(10,16,28,.98);border:1px solid var(--border);border-radius:10px;backdrop-filter:blur(12px);box-shadow:0 8px 18px rgba(0,0,0,.2); }
.ms-category-nav button { border:1px solid var(--border2);background:var(--surface2);color:var(--text2);border-radius:8px;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer;transition:.15s; }
.ms-category-nav button:hover,.ms-category-nav button.active { color:#fff;border-color:var(--primary);background:rgba(255,70,85,.16); }
.ms-system-section { margin-bottom:24px;padding:16px;border:1px solid rgba(79,195,247,.4);border-radius:10px;background:var(--surface);scroll-margin-top:76px; }
.ms-system-section-head { display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px; }
.ms-system-section-head b { display:block;color:var(--text);font-size:14px; }
.ms-system-section-head span { display:block;color:var(--text2);font-size:11px;margin-top:4px; }
.ms-annotation-mode { border:1px solid var(--border2);background:var(--surface2);color:var(--text2);border-radius:7px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer; }
.ms-annotation-mode.active { color:#fff;background:rgba(79,195,247,.18);border-color:#4fc3f7; }
.ms-orientation-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px; }
.ms-preview-grid { position:sticky;top:124px;z-index:12;padding:10px;border:1px solid rgba(79,195,247,.28);border-radius:10px;background:rgba(10,16,28,.97);backdrop-filter:blur(10px);box-shadow:0 14px 35px rgba(0,0,0,.28); }
.ms-mapstyle-shell { max-width:1500px !important; }
.ms-workbench { display:grid;grid-template-columns:minmax(420px,.88fr) minmax(520px,1.12fr);gap:18px;align-items:start; }
.ms-workbench-preview { position:sticky;top:124px;min-width:0; }
.ms-map-picker-bar { display:grid;grid-template-columns:auto minmax(140px,1fr) auto auto;gap:7px;align-items:center;margin-bottom:9px;padding:9px;border:1px solid var(--border);border-radius:10px;background:rgba(10,16,28,.98); }
.ms-map-picker-bar label { color:var(--text2);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px; }
.ms-map-picker-bar #ms-global-map-pick { width:100%;padding:8px 10px !important;background:var(--surface2);color:var(--text);border:1px solid var(--border2);border-radius:7px; }
.ms-map-step { width:34px;height:34px;border:1px solid var(--border2);border-radius:8px;background:var(--surface2);color:var(--text);cursor:pointer;font-size:16px;font-weight:800; }
.ms-map-step:hover { color:#fff;border-color:var(--primary);background:rgba(255,70,85,.14); }
.ms-workbench-preview .ms-preview-grid { position:relative;top:auto;display:block !important;margin:0 !important; }
.ms-workbench-preview .ms-preview-grid > div:first-child { display:none; }
.ms-workbench-preview .ms-preview-grid > div:last-child > div:first-child { font-size:0 !important; }
.ms-workbench-preview .ms-preview-grid > div:last-child > div:first-child::after { content:'Предпросмотр карты';font-size:10px; }
.ms-workbench-settings { min-width:0; }
.ms-workbench-settings > :first-child { margin-top:0 !important; }
@media (max-width:1120px) { .ms-workbench { grid-template-columns:1fr; } .ms-workbench-preview { position:relative;top:auto; } }
@media (max-width:720px) { .ms-preview-grid { position:relative;top:auto; } }
.map-marker { position: absolute; width: 20px; height: 20px; background: var(--surface); border: 2px solid var(--primary); border-radius: 50%; transform: translate(-50%,-50%); pointer-events: none; box-shadow: 0 0 6px rgba(0,0,0,.75); z-index: 2; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.map-marker img { width: 14px; height: 14px; object-fit: cover; }
.map-marker.dot { background: var(--primary); border-color: #fff; box-shadow: 0 0 8px rgba(255,70,85,.85); }
.map-marker.target { background: #f97316; border-color: #fff7ed; color: #fff; font-size: 11px; font-weight: 900; box-shadow: 0 0 8px rgba(249,115,22,.85); z-index: 3; }
.content-extra-panel { display: none; grid-column: 1/-1; background: rgba(15,23,42,.55); border: 1px solid var(--border); border-radius: var(--r); padding: 12px; }
.content-extra-panel.show { display: block; }
.weapon-check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 7px; }
.weapon-check-grid .fcheck-row { min-width: 0; }
.map-ph { display: flex; align-items: center; justify-content: center; min-height: 80px; color: var(--text2); font-size: 13px; padding: 16px; text-align: center; }
.coords-row { display: flex; gap: 12px; margin-top: 6px; font-size: 12px; color: var(--text2); align-items: center; }
.coord-pill { background: var(--surface2); border: 1px solid var(--border); border-radius: 4px; padding: 3px 10px; font-family: monospace; letter-spacing: .5px; }

.upload-zone { border: 2px dashed var(--border); border-radius: var(--r); padding: 22px 16px; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.upload-zone:hover, .upload-zone.drag { border-color: var(--primary); background: rgba(255,70,85,.05); }
.uz-icon { font-size: 26px; margin-bottom: 5px; }
.uz-text { color: var(--text2); font-size: 13px; }
.uz-hint { color: var(--text2); font-size: 11px; margin-top: 3px; opacity: .65; }
.upload-previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 7px; margin-top: 9px; }
.up-thumb { position: relative; aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; background: var(--surface2); }
.slot-block { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 18px; min-width: 0; overflow: hidden; }
.up-thumb img { width: 100%; height: 100%; object-fit: cover; }
.up-overlay { position: absolute; inset: 0; pointer-events: none; }
.up-overlay-err { background: rgba(239,68,68,.55); display: flex; align-items: center; justify-content: center; }
.up-err-icon { color: #fff; font-size: 18px; font-weight: 900; }
.up-size { position: absolute; bottom: 8px; left: 5px; z-index: 1; background: rgba(0,0,0,.72); color: rgba(255,255,255,.9); font-size: 9px; font-family: monospace; border-radius: 3px; padding: 1px 5px; pointer-events: none; line-height: 1.5; white-space: nowrap; }
.up-prog-wrap { position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: rgba(0,0,0,.4); }
.up-prog-bar  { height: 100%; background: var(--primary); transition: width .1s linear; min-width: 4px; border-radius: 0 2px 2px 0; }
.up-remove { position: absolute; top: 4px; right: 4px; z-index: 2; background: rgba(0,0,0,.72); border: none; color: #fff; border-radius: 50%; width: 20px; height: 20px; font-size: 12px; cursor: pointer; display: flex; align-items: center; justify-content: center; line-height: 1; transition: background .13s; }
.up-remove:hover { background: var(--red); }

/* ── Page title bar ── */
.page-title-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.page-title-bar .bi { font-size: 18px; color: var(--primary); }
.page-title-bar h1 { font-size: 16px; font-weight: 800; letter-spacing: 1px; color: var(--text); }
.page-title-bar .page-subtitle { font-size: 12px; color: var(--text2); margin-left: 4px; }

/* Twitch streamers admin */
.streamers-admin-shell{max-width:1080px;margin:0 auto}.streamers-admin-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 24px;border:1px solid #46305f;border-radius:12px;background:linear-gradient(115deg,#181225 0%,var(--surface) 58%,#111821 100%);box-shadow:inset 3px 0 #9146ff}.streamers-admin-head h2{margin:5px 0 6px;color:var(--text);font-size:22px}.streamers-admin-head p{margin:0;color:var(--text2);font-size:12px}.streamers-admin-kicker{color:#b98aff;font-size:10px;font-weight:800;letter-spacing:.15em}.streamers-live-mark{display:flex;align-items:center;gap:9px;color:#c6a4ff;font-size:11px;font-weight:900;letter-spacing:.12em}.streamers-live-mark i{width:9px;height:9px;border-radius:50%;background:#ff4655;box-shadow:0 0 0 5px rgba(255,70,85,.12),0 0 18px rgba(255,70,85,.55)}.streamers-settings,.streamers-library{margin-bottom:14px;padding:20px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.streamers-section-title,.streamers-library-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.streamers-section-title strong,.streamers-library-head strong{display:block;color:var(--text);font-size:13px}.streamers-section-title small,.streamers-library-head small{display:block;margin-top:4px;color:var(--text2);font-size:10px}.streamers-master-switch{display:flex;align-items:center;gap:9px;cursor:pointer;color:var(--text);font-size:11px}.streamers-master-switch input{position:absolute;opacity:0}.streamers-master-switch span{position:relative;width:38px;height:20px;border:1px solid var(--border);border-radius:20px;background:var(--bg);transition:.2s}.streamers-master-switch span:after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--text2);transition:.2s}.streamers-master-switch input:checked+span{border-color:#9146ff;background:rgba(145,70,255,.23)}.streamers-master-switch input:checked+span:after{left:21px;background:#b98aff}.streamers-master-switch input:focus-visible+span{outline:2px solid #b98aff;outline-offset:2px}.streamers-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.streamers-settings-grid>label>span{display:block;margin-bottom:7px;color:var(--text2);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.streamers-volume{display:flex;align-items:center;gap:12px;min-height:35px}.streamers-volume input{width:100%;accent-color:#9146ff}.streamers-volume output{min-width:42px;color:#c6a4ff;font-size:13px;font-weight:800;text-align:right}.streamers-settings-grid .streamers-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);cursor:pointer}.streamers-check input{accent-color:#9146ff}.streamers-check span{margin:0!important;text-transform:none!important;letter-spacing:0!important}.streamers-check b,.streamers-check small{display:block}.streamers-check b{color:var(--text);font-size:11px}.streamers-check small{margin-top:3px;color:var(--text2);font-size:9px;font-weight:400}.streamers-library-head{margin-bottom:14px}.streamers-list{display:grid;gap:10px}.streamer-row{display:grid;grid-template-columns:38px minmax(140px,.8fr) minmax(220px,1.4fr) 80px 36px;gap:10px;align-items:end;padding:13px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}.streamer-row-index{align-self:center;display:grid;place-items:center;width:30px;height:30px;border:1px solid #513876;border-radius:7px;color:#b98aff;background:#1b1328;font-size:11px;font-weight:900}.streamer-field span{display:block;margin-bottom:6px;color:var(--text2);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.streamer-field .finput{width:100%}.streamer-enabled{display:flex;align-items:center;gap:6px;height:35px;color:var(--text2);font-size:10px;cursor:pointer}.streamer-enabled input{accent-color:#9146ff}.streamer-remove{display:grid;place-items:center;width:35px;height:35px;border:1px solid #51323b;border-radius:7px;color:#ff7d87;background:#241418;cursor:pointer}.streamer-remove:hover{border-color:#ff4655;background:#32191f}.streamers-empty{display:none;place-items:center;padding:34px;border:1px dashed var(--border);border-radius:8px;color:var(--text2);text-align:center}.streamers-empty.visible{display:grid}.streamers-empty i{margin-bottom:10px;color:#7657a1;font-size:24px}.streamers-empty strong{color:var(--text);font-size:12px}.streamers-empty span{margin-top:5px;font-size:10px}.streamers-actions{position:sticky;bottom:12px;display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:rgba(14,18,26,.94);backdrop-filter:blur(12px);box-shadow:0 12px 30px rgba(0,0,0,.28)}.streamers-actions span{margin-right:auto;color:var(--text2);font-size:11px}.streamers-actions span.error{color:#ff7d87}.streamers-actions span.success{color:var(--green)}@media(max-width:850px){.streamers-settings-grid{grid-template-columns:1fr}.streamer-row{grid-template-columns:34px 1fr 40px}.streamer-row .streamer-field-url{grid-column:2/4}.streamer-row .streamer-enabled{grid-column:2}.streamer-remove{grid-column:3;grid-row:1}.streamers-admin-head{align-items:flex-start}.streamers-live-mark{display:none}}@media(prefers-reduced-motion:reduce){.streamers-master-switch span,.streamers-master-switch span:after{transition:none}}
.content-category-switch { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 10px; margin: -8px 0 14px; max-width: 920px; }
.content-category-btn { min-height: 54px; border: 1px solid var(--border2); border-radius: 8px; background: var(--surface); color: var(--text2); cursor: pointer; padding: 10px 12px; text-align: left; transition: border-color .15s, background .15s, color .15s, box-shadow .15s; }
.content-category-btn:hover { border-color: rgba(255,70,85,.45); color: var(--text); background: rgba(255,255,255,.035); }
.content-category-btn.active { border-color: var(--primary); background: var(--primary-dim); color: var(--text); box-shadow: 0 0 0 1px rgba(255,70,85,.16); }
.content-category-name { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; white-space: nowrap; }
.content-category-hint { margin-top: 4px; font-size: 11px; color: var(--text2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.content-category-btn.active .content-category-hint { color: rgba(226,232,240,.7); }
@media (max-width: 900px) { .content-category-switch { grid-template-columns: repeat(2, minmax(140px, 1fr)); } }

/* ── Stats bar ── */
.lineup-stats-bar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.stat-pill { display: flex; align-items: center; gap: 8px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 9px 14px; }
.stat-pill .sp-val { font-size: 20px; font-weight: 800; line-height: 1; }
.stat-pill .sp-lbl { font-size: 11px; color: var(--text2); font-weight: 500; }
.stat-pill .sp-icon { font-size: 18px; flex-shrink: 0; }
.stat-pill.sp-total    .sp-val { color: var(--text); }
.stat-pill.sp-pending  .sp-val { color: var(--orange); }
.stat-pill.sp-approved .sp-val { color: var(--green); }
.stat-pill.sp-rejected .sp-val { color: var(--red); }
.stat-pill.sp-archived .sp-val { color: #a78bfa; }

.state { text-align: center; padding: 48px 24px; color: var(--text2); }
.reload-btn { margin-top: 14px; padding: 8px 20px; background: var(--primary); color: #fff; border: none; border-radius: var(--r); cursor: pointer; font-weight: 600; }

.lb { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.92); z-index: 999; align-items: center; justify-content: center; cursor: zoom-out; }
.lb.open { display: flex; }
.lb img { max-width: 95vw; max-height: 95vh; border-radius: 4px; }

.toasts { position: fixed; bottom: 22px; right: 22px; display: flex; flex-direction: column; gap: 7px; z-index: 1000; }
.toast  { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 11px 16px; font-size: 13px; max-width: 310px; animation: tin .2s ease; }
.toast.s { border-color: var(--green);  color: var(--green); }
.toast.e { border-color: var(--red);    color: var(--red); }
.toast.i { border-color: var(--primary); color: var(--primary); }
@keyframes tin { from { opacity:0; transform:translateX(18px); } to { opacity:1; transform:none; } }

.edit-sep { border-top: 1px dashed var(--border); margin: 13px 0 16px; }
.edit-form-title { font-size: 11px; font-weight: 700; color: var(--primary); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 13px; }
.btn-edit-toggle { background: transparent; border: 1px solid var(--border); color: var(--text2); }
.btn-edit-toggle:hover { border-color: var(--primary); color: var(--primary); }
.btn-edit-toggle.open { background: rgba(255,70,85,.1); border-color: var(--primary); color: var(--primary); }

.auth-divider { display:flex; align-items:center; gap:10px; margin:18px 0; color:var(--text2); font-size:12px; letter-spacing:.5px; }
.auth-divider::before, .auth-divider::after { content:''; flex:1; height:1px; background:var(--border); }

.adm-list { display:flex; flex-direction:column; gap:8px; }
.adm-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:13px 15px; display:flex; align-items:center; justify-content:space-between; gap:12px; transition:.15s; }
.adm-card.clickable { cursor:pointer; }
.adm-card.clickable:hover { border-color:var(--primary); }
.adm-card.selected { border-color:var(--primary); background:rgba(255,70,85,.05); }
.adm-name { font-weight:700; font-size:14px; margin-bottom:3px; }
.adm-meta { color:var(--text2); font-size:12px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
/* ── Категориальные табы (Пользователи / Админы / Модераторы) ── */
.ucat-header { display:flex; border-bottom:2px solid var(--border); margin-bottom:20px; gap:0; }
.ucat-btn { padding:11px 22px; font-size:13px; font-weight:600; color:var(--text2); background:none; border:none; border-bottom:3px solid transparent; margin-bottom:-2px; cursor:pointer; display:flex; align-items:center; gap:8px; transition:color .15s; white-space:nowrap; }
.ucat-btn:hover { color:var(--text); }
.ucat-btn.active { color:var(--primary); border-bottom-color:var(--primary); }
.ucat-badge-cnt { font-size:10px; font-weight:700; padding:1px 7px; border-radius:10px; background:var(--surface2); color:var(--text2); }
.ucat-btn.active .ucat-badge-cnt { background:rgba(255,70,85,.15); color:var(--primary); }
/* ── Карточки аналитики пользователя ── */
.usr-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }
.usr-stat-card { background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:10px 12px; }
.usr-stat-val  { font-size:18px; font-weight:700; color:var(--text); }
.usr-stat-lbl  { font-size:10px; color:var(--text2); text-transform:uppercase; letter-spacing:.8px; margin-top:2px; }
.b-admin     { background:rgba(255,70,85,.12);  color:var(--primary); border:1px solid var(--primary); }
.b-moderator { background:rgba(249,115,22,.12); color:var(--orange);  border:1px solid var(--orange); }
.b-pioneer   { background:linear-gradient(135deg,rgba(108,63,232,.18),rgba(0,212,255,.12)); color:#00D4FF; border:1px solid rgba(108,63,232,.55); }
.btn-pioneer { background:transparent; border:1px solid rgba(108,63,232,.5); color:#6C3FE8; font-size:12px; padding:5px 11px; border-radius:var(--r); cursor:pointer; transition:.15s; white-space:nowrap; }
.btn-pioneer:hover { background:rgba(108,63,232,.1); border-color:#6C3FE8; }
.btn-pioneer.active { background:linear-gradient(135deg,rgba(108,63,232,.2),rgba(0,212,255,.12)); border-color:rgba(108,63,232,.7); color:#00D4FF; }

.video-upload-zone { border:2px dashed var(--border); border-radius:var(--r); padding:18px 16px; text-align:center; cursor:pointer; transition:border-color .15s,background .15s; }
.video-upload-zone:hover,.video-upload-zone.drag { border-color:var(--primary); background:rgba(255,70,85,.05); }
.video-preview-wrap { position:relative; border-radius:var(--r); overflow:hidden; background:#000; margin-top:9px; }
.video-preview-wrap video { width:100%; display:block; max-height:270px; }
.video-remove-btn { position:absolute; top:6px; right:6px; z-index:2; background:rgba(0,0,0,.72); border:none; color:#fff; border-radius:50%; width:24px; height:24px; font-size:13px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.video-remove-btn:hover { background:var(--red); }
.video-prog-wrap { background:var(--surface2); border:1px solid var(--border); border-radius:var(--r); padding:11px 14px; margin-top:9px; display:flex; align-items:center; gap:10px; }
.video-prog-track { flex:1; height:4px; background:rgba(255,255,255,.15); border-radius:2px; overflow:hidden; }
.video-prog-fill { height:100%; background:var(--primary); border-radius:2px; transition:width .1s linear; }
.video-prog-pct { font-size:12px; color:var(--text2); min-width:34px; text-align:right; }
.vfe-wrap { border-radius:var(--r); overflow:hidden; background:#000; margin-top:9px; }
.vfe-stage { position:relative; background:#000; line-height:0; }
.vfe-stage video { width:100%; display:block; max-height:270px; }
.vfe-canvas { position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none; touch-action:none; cursor:crosshair; transition:opacity .18s ease; }
.vfe-canvas:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }
.vfe-wrap.is-drawing .vfe-canvas { opacity:1; pointer-events:auto; }
.vfe-controls { display:flex; align-items:center; gap:7px; padding:7px 10px; background:var(--surface); flex-wrap:wrap; }
.vfe-play { background:var(--surface2); border:1px solid var(--border); color:var(--text1); padding:4px 10px; border-radius:6px; cursor:pointer; font-size:13px; min-width:30px; transition:.15s; }
.vfe-play:hover { border-color:var(--primary); color:var(--primary); }
.vfe-scrub { flex:1; min-width:60px; accent-color:var(--primary); cursor:pointer; }
.vfe-time { font-size:11px; color:var(--text2); white-space:nowrap; min-width:78px; }
.vfe-cap { background:rgba(79,195,247,.12); border:1px solid var(--primary); color:var(--primary); padding:4px 12px; border-radius:6px; cursor:pointer; font-size:12px; font-weight:700; white-space:nowrap; transition:.15s; }
.vfe-cap:hover { background:rgba(79,195,247,.22); }
.vfe-cap:disabled,.vfe-play:disabled,.vfe-rem:disabled,.vfe-scrub:disabled { opacity:.4; cursor:default; }
.vfe-rem { background:transparent; border:1px solid var(--border); color:var(--text2); padding:4px 9px; border-radius:6px; cursor:pointer; font-size:12px; transition:.15s; }
.vfe-rem:hover { border-color:var(--red); color:var(--red); }
.vfe-draw-panel { max-height:0; overflow:hidden; opacity:0; transform:translateY(-5px); pointer-events:none; background:linear-gradient(135deg,rgba(0,212,255,.07),rgba(255,70,85,.035)),var(--surface); border-top:1px solid transparent; transition:max-height .24s ease,opacity .18s ease,transform .24s ease,border-color .18s ease; }
.vfe-draw-panel.is-open { max-height:240px; opacity:1; transform:translateY(0); pointer-events:auto; border-top-color:var(--border); }
.vfe-draw-panel-inner { padding:9px 10px 10px; }
.vfe-draw-toolbar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.vfe-tool-group { display:flex; align-items:center; gap:4px; padding-right:7px; border-right:1px solid var(--border); }
.vfe-tool-group:last-child { padding-right:0; border-right:0; }
.vfe-tool,.vfe-width { min-height:30px; border:1px solid var(--border); border-radius:6px; background:var(--surface2); color:var(--text2); cursor:pointer; font-size:11px; font-weight:700; padding:5px 9px; transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease; }
.vfe-tool:hover,.vfe-width:hover { border-color:rgba(0,212,255,.65); color:var(--text); }
.vfe-tool.active,.vfe-width.active { border-color:var(--primary); background:rgba(0,212,255,.14); color:var(--primary); }
.vfe-tool:disabled,.vfe-width:disabled { opacity:.38; cursor:default; }
.vfe-clear:hover:not(:disabled) { border-color:var(--red); color:var(--red); }
.vfe-color { width:26px; height:26px; padding:0; border:2px solid transparent; border-radius:50%; background:var(--vfe-swatch); background-clip:padding-box; cursor:pointer; box-shadow:0 0 0 1px rgba(255,255,255,.2); transition:transform .15s ease,box-shadow .15s ease; }
.vfe-color:hover { transform:scale(1.08); }
.vfe-color.active { box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--primary); }
.vfe-width { width:30px; padding:0; display:grid; place-items:center; }
.vfe-width span { width:var(--vfe-dot); height:var(--vfe-dot); border-radius:50%; background:currentColor; }
.vfe-history { margin-left:auto; }
.vfe-draw-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:9px; padding-top:9px; border-top:1px solid var(--border); }
.vfe-draw-hint { font-size:11px; color:var(--text2); }
.vfe-draw-hint i { color:var(--primary); margin-right:4px; }
.vfe-draw-actions { display:flex; align-items:center; gap:6px; }
.vfe-draw-cancel,.vfe-draw-apply { border-radius:6px; padding:6px 11px; cursor:pointer; font-size:11px; font-weight:800; transition:filter .15s ease,border-color .15s ease; }
.vfe-draw-cancel { border:1px solid var(--border); background:transparent; color:var(--text2); }
.vfe-draw-cancel:hover { border-color:var(--text2); color:var(--text); }
.vfe-draw-apply { border:1px solid var(--primary); background:var(--primary); color:#061018; }
.vfe-draw-apply:hover { filter:brightness(1.1); }
.vfe-draw-apply:disabled { opacity:.55; cursor:wait; }
.vfe-saving-dot { display:inline-block; width:7px; height:7px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:vfe-spin .7s linear infinite; }
@keyframes vfe-spin { to { transform:rotate(360deg); } }
@media (max-width:720px) {
  .vfe-draw-panel.is-open { max-height:320px; }
  .vfe-history { margin-left:0; }
  .vfe-draw-footer { align-items:flex-start; flex-direction:column; }
  .vfe-draw-actions { width:100%; }
  .vfe-draw-cancel,.vfe-draw-apply { flex:1; }
}
@media (prefers-reduced-motion:reduce) {
  .vfe-canvas,.vfe-draw-panel,.vfe-tool,.vfe-width,.vfe-color { transition:none; }
  .vfe-saving-dot { animation:none; }
}

/* Saved upload-site montage preview */
.admin-edited-video { overflow:hidden; border:1px solid var(--border); border-radius:var(--r); background:#03060b; }
.admin-edited-video-stage { position:relative; overflow:hidden; width:100%; max-height:var(--admin-video-max-height,300px); background:#000; cursor:pointer; line-height:0; }
.admin-edited-video-base { position:relative; width:100%; transform-origin:50% 50%; will-change:transform; }
.admin-edited-video-source { display:block; width:100%; max-height:var(--admin-video-max-height,300px); object-fit:contain; background:#000; }
.admin-edited-video-drawing { position:absolute; inset:0; z-index:4; display:none; width:100%; height:100%; pointer-events:none; }
.admin-edited-video-drawing.show { display:block; }
.admin-edited-video-footage,.admin-edited-video-chroma { position:absolute; z-index:7; left:50%; top:50%; display:none; height:auto; max-width:none; max-height:none; object-fit:contain; background:transparent; transform:translate(-50%,-50%); pointer-events:none; }
.admin-edited-video-footage.show,.admin-edited-video-chroma.show { display:block; }
.admin-edited-video-footage.chroma-source { opacity:0; }
.admin-edited-video-badge { position:absolute; z-index:12; left:10px; top:10px; display:flex; align-items:center; gap:6px; padding:5px 8px; border:1px solid rgba(0,212,255,.45); border-radius:999px; background:rgba(3,8,16,.78); color:#67d9ff; font-size:9px; font-weight:900; line-height:1; letter-spacing:.45px; text-transform:uppercase; pointer-events:none; backdrop-filter:blur(6px); }
.admin-edited-video-badge i { width:6px; height:6px; border-radius:50%; background:#22c55e; box-shadow:0 0 8px rgba(34,197,94,.8); }
.admin-edited-video-loading { position:absolute; inset:0; z-index:11; display:none; place-items:center; background:rgba(4,8,16,.56); color:var(--text2); font-size:12px; font-weight:800; line-height:1.3; pointer-events:none; }
.admin-edited-video.is-loading .admin-edited-video-loading { display:grid; }
.admin-edited-video-controls { display:flex; align-items:center; gap:8px; padding:8px 10px; background:linear-gradient(180deg,#111827,#0d1420); }
.admin-edited-video-controls button { flex:0 0 auto; min-width:32px; height:28px; border:1px solid var(--border2); border-radius:6px; background:var(--surface2); color:var(--text); cursor:pointer; font-size:11px; }
.admin-edited-video-controls button:hover { border-color:#67d9ff; color:#67d9ff; }
.admin-edited-video-controls input { flex:1; min-width:80px; accent-color:var(--primary); cursor:pointer; }
.admin-edited-video-controls span { flex:0 0 auto; min-width:78px; color:var(--text2); font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:nowrap; }
.admin-edited-video.load-error .admin-edited-video-stage::after { content:'Не удалось загрузить видео'; position:absolute; inset:0; z-index:20; display:grid; place-items:center; background:rgba(4,8,16,.88); color:var(--red); font-size:12px; font-weight:800; }
@media (max-width:560px) {
  .admin-edited-video-badge { left:7px; top:7px; }
  .admin-edited-video-controls { gap:5px; padding:7px; }
  .admin-edited-video-controls span { min-width:68px; font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .admin-edited-video-base { will-change:auto; }
}

/* ── Author field + dictionary panel ── */
.author-wrap { position: relative; }

.author-panel-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.4);
  opacity: 0; pointer-events: none;
  transition: opacity .32s ease;
  z-index: 490;
}
.author-panel-overlay.visible {
  opacity: 1; pointer-events: all;
}

.author-panel {
  position: fixed; top: 0; right: 0; bottom: 0; width: 300px;
  background: var(--surface);
  border-left: 1px solid var(--border);
  transform: translateX(100%);
  /* Плавная анимация — ease-out spring, без рывков */
  transition: transform .4s cubic-bezier(.16,1,.3,1);
  will-change: transform;
  z-index: 491;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.author-panel.open { transform: translateX(0); }

.ap-header {
  padding: 16px 15px 11px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.ap-header-row {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px;
}
.ap-title {
  font-size: 10px; font-weight: 700; color: var(--text2);
  letter-spacing: 1.5px; text-transform: uppercase;
}
.ap-close {
  background: transparent; border: none; color: var(--text2);
  cursor: pointer; font-size: 18px; padding: 0; line-height: 1;
  transition: color .13s; display: flex; align-items: center;
}
.ap-close:hover { color: var(--primary); }

.ap-search-wrap { position: relative; }
.ap-search-icon {
  position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
  color: var(--text2); font-size: 14px; pointer-events: none;
}
.ap-search {
  width: 100%;
  background: var(--bg); border: 1px solid var(--border);
  border-radius: var(--r); color: var(--text);
  padding: 8px 11px 8px 32px;
  font-size: 13px; outline: none;
  transition: border-color .15s; font-family: inherit;
}
.ap-search:focus { border-color: var(--primary); }

/* Блок 5 совпадений */
.ap-suggestions { flex-shrink: 0; }
.ap-sec-label {
  padding: 9px 15px 4px;
  font-size: 10px; font-weight: 700; color: var(--text2);
  letter-spacing: 1px; text-transform: uppercase;
}
.ap-divider {
  height: 1px; background: var(--border); margin: 5px 12px 3px;
}

/* Элемент пользователя */
.ap-user-item {
  padding: 8px 15px; cursor: pointer;
  display: flex; align-items: center; gap: 10px;
  transition: background .12s;
}
.ap-user-item:hover { background: rgba(255,70,85,.07); }
.ap-user-item.sugg  { background: rgba(255,70,85,.04); }
.ap-ava {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--surface2); border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0;
  overflow: hidden; color: var(--text2);
}
.ap-info { flex: 1; min-width: 0; }
.ap-name {
  font-weight: 600; font-size: 13px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ap-name mark {
  background: rgba(255,70,85,.22); color: var(--primary);
  border-radius: 2px; padding: 0 1px;
}
.ap-sub { font-size: 11px; color: var(--text2); }

/* Алфавитный список */
.ap-alpha-list { overflow-y: auto; flex: 1; padding-bottom: 10px; overscroll-behavior: contain; }
/* Вся панель тоже перехватывает скролл */
.author-panel { overscroll-behavior: contain; }
.ap-alpha-letter {
  padding: 9px 15px 3px;
  font-size: 10px; font-weight: 700; color: var(--primary);
  letter-spacing: 2px; text-transform: uppercase;
  position: sticky; top: 0; background: var(--surface); z-index: 1;
}
.ap-empty {
  padding: 24px 15px; color: var(--text2);
  font-size: 12px; text-align: center;
}

/* ── Profile modal ── */
.profile-overlay { position:fixed; inset:0; background:rgba(0,0,0,.78); z-index:500; display:flex; align-items:center; justify-content:center; padding:20px; }
.profile-modal { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:28px 24px; max-width:400px; width:100%; position:relative; max-height:90vh; overflow-y:auto; }
.pm-close { position:absolute; top:10px; right:12px; background:transparent; border:none; color:var(--text2); font-size:20px; cursor:pointer; line-height:1; padding:4px 6px; }
.pm-close:hover { color:var(--text); }
.pm-avatar { width:68px; height:68px; border-radius:50%; overflow:hidden; background:var(--surface2); display:flex; align-items:center; justify-content:center; font-size:32px; margin:0 auto 12px; border:2px solid var(--border); }
.pm-name { font-size:17px; font-weight:800; text-align:center; margin-bottom:4px; }
.pm-sub  { font-size:12px; color:var(--text2); text-align:center; margin-bottom:16px; }
.pm-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.pm-stat { background:var(--surface2); border:1px solid var(--border); border-radius:var(--r); padding:9px 11px; }
.pm-stat-lbl { font-size:10px; color:var(--text2); letter-spacing:.5px; text-transform:uppercase; margin-bottom:3px; }
.pm-stat-val { font-size:15px; font-weight:700; }

/* ── Changelog tab ── */
.cl-type-btn {
  padding: 6px 14px; border-radius: 20px; border: 1px solid var(--border);
  background: transparent; color: var(--text2); cursor: pointer;
  font-size: 12px; font-weight: 600; transition: .15s;
}
.cl-type-btn:hover { border-color: var(--primary); color: var(--primary); }
.cl-type-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }

.cl-post-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r); padding: 14px 15px; margin-bottom: 9px;
  transition: border-color .15s;
}
.cl-post-card:hover { border-color: rgba(255,70,85,.4); }
.cl-post-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 10px; margin-bottom: 8px;
}
.cl-post-title { font-weight: 700; font-size: 14px; line-height: 1.3; }
.cl-post-meta  { font-size: 11px; color: var(--text2); margin-bottom: 7px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.cl-post-body  { font-size: 13px; color: var(--text); line-height: 1.6; white-space: pre-wrap; }
.cl-post-actions { display:flex; align-items:center; gap:3px; flex-shrink:0; }
.cl-post-action {
  background: transparent; border: none; color: var(--text2);
  cursor: pointer; font-size: 15px; padding: 2px 4px; flex-shrink:0;
  transition: color .13s; line-height:1;
}
.cl-post-edit:hover { color: var(--primary); }
.cl-post-del:hover { color: var(--red); }
.cl-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700;
}
.cl-badge-update { background:rgba(59,130,246,.15); color:#60a5fa; border:1px solid rgba(59,130,246,.4); }
.cl-badge-new    { background:rgba(34,197,94,.12);  color:var(--green); border:1px solid var(--green); }
.cl-badge-fix    { background:rgba(249,115,22,.12); color:var(--orange); border:1px solid var(--orange); }
.cl-badge-event  { background:rgba(168,85,247,.15); color:#c084fc; border:1px solid rgba(168,85,247,.4); }
.cl-badge-alert  { background:rgba(239,68,68,.12);  color:var(--red); border:1px solid var(--red); }

/* ── Analytics tab ── */
.pulse { --pulse-cyan:#55d6ff; --pulse-violet:#b493ff; --pulse-green:#56e39f; --pulse-amber:#ffbe5c; color:var(--text); }
.pulse-hero { position:relative; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; overflow:hidden; margin-bottom:14px; padding:26px 28px; border:1px solid rgba(85,214,255,.22); border-radius:18px; background:radial-gradient(circle at 78% 10%,rgba(180,147,255,.16),transparent 30%),radial-gradient(circle at 5% 100%,rgba(85,214,255,.12),transparent 34%),linear-gradient(135deg,#101c2e,#0c1422 65%); box-shadow:0 18px 50px rgba(0,0,0,.2); }
.pulse-hero::after { content:""; position:absolute; right:24%; bottom:-42px; width:150px; height:150px; border:1px solid rgba(85,214,255,.13); border-radius:50%; box-shadow:0 0 0 24px rgba(85,214,255,.025),0 0 0 48px rgba(180,147,255,.025); pointer-events:none; }
.pulse-kicker { color:var(--pulse-cyan); font-size:10px; font-weight:900; letter-spacing:.18em; }
.pulse-hero h2 { margin:7px 0 6px; font-size:clamp(26px,3vw,42px); line-height:1; letter-spacing:-.035em; }
.pulse-hero p { max-width:760px; margin:0; color:#aabbd2; font-size:13px; line-height:1.55; }
.pulse-period { position:relative; z-index:1; display:grid; min-width:190px; padding-left:18px; border-left:1px solid rgba(255,255,255,.12); }
.pulse-period span,.pulse-period small { color:var(--text2); font-size:10px; }
.pulse-period strong { margin:2px 0; font-size:20px; }
.pulse-period-meter { height:4px; margin-top:8px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.08); }.pulse-period-meter i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--pulse-cyan),var(--pulse-violet)); transition:width .35s ease; }
.pulse-scoreboard { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-bottom:10px; }
.pulse-metric { display:flex; align-items:center; gap:13px; min-width:0; padding:16px; border:1px solid var(--border); border-radius:14px; color:inherit; background:linear-gradient(145deg,rgba(20,33,53,.98),rgba(13,23,38,.98)); text-align:left; cursor:pointer; transition:transform .16s,border-color .16s,box-shadow .16s; }
.pulse-metric:hover,.pulse-metric:focus-visible { transform:translateY(-2px); border-color:rgba(85,214,255,.42); box-shadow:0 12px 30px rgba(0,0,0,.22); outline:none; }
.pulse-metric>span:last-child { display:grid; min-width:0; }
.pulse-metric__icon { display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:11px; font-size:17px; }
.pulse-metric__icon.audience { color:var(--pulse-cyan); background:rgba(85,214,255,.1); }
.pulse-metric__icon.active { color:#5ee7c0; background:rgba(94,231,192,.1); }
.pulse-metric__icon.content { color:var(--pulse-violet); background:rgba(180,147,255,.1); }
.pulse-metric__icon.revenue { color:var(--pulse-green); background:rgba(86,227,159,.1); }
.pulse-metric__icon.result { color:var(--pulse-amber); background:rgba(255,190,92,.1); }
.pulse-metric small { overflow:hidden; color:#90a2bb; font-size:10px; font-weight:700; letter-spacing:.035em; text-overflow:ellipsis; white-space:nowrap; }
.pulse-metric strong { margin:3px 0 4px; font-size:23px; line-height:1; letter-spacing:-.025em; }
.pulse-metric em { color:var(--text2); font-size:10px; font-style:normal; }
.pulse-metric em.is-up { color:var(--pulse-green); }.pulse-metric em.is-down { color:#ff7d88; }.pulse-metric em.is-flat { color:var(--text2); }
.pulse-grid { display:grid; gap:10px; margin-bottom:10px; }.pulse-grid--charts { grid-template-columns:minmax(0,1.65fr) minmax(310px,.7fr); }.pulse-grid--lists { grid-template-columns:1fr 1fr; }
.pulse-panel { min-width:0; padding:18px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(155deg,rgba(18,30,49,.98),rgba(12,21,35,.98)); }
.pulse-panel__head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }.pulse-panel__head small { color:#758aa5; font-size:9px; font-weight:900; letter-spacing:.14em; }.pulse-panel__head h3 { margin:4px 0 0; font-size:15px; }.pulse-panel__head>strong { color:var(--pulse-amber); font-size:18px; }
.pulse-legend { display:flex; gap:12px; color:var(--text2); font-size:10px; }.pulse-legend span { display:flex; align-items:center; gap:5px; }.pulse-legend i { width:16px; height:3px; border-radius:3px; background:var(--c); }
.pulse-chart-wrap { height:220px; }.pulse-hint { margin:8px 0 0; color:#71849d; font-size:10px; text-align:center; }
.pulse-donut-layout { display:grid; grid-template-columns:145px minmax(120px,1fr); align-items:center; gap:14px; }
.pulse-donut { position:relative; display:grid; place-items:center; width:140px; aspect-ratio:1; padding:0; border:0; border-radius:50%; color:var(--text); background:conic-gradient(var(--pulse-amber) 0 25%,var(--pulse-cyan) 25% 50%,var(--pulse-violet) 50% 75%,#71849d 75%); cursor:pointer; transition:transform .18s,box-shadow .18s; }.pulse-donut:hover,.pulse-donut:focus-visible { transform:scale(1.025); box-shadow:0 0 0 3px rgba(85,214,255,.2); outline:none; }.pulse-donut::after { content:""; position:absolute; inset:17px; border-radius:50%; background:#101b2c; box-shadow:inset 0 0 0 1px rgba(255,255,255,.05); }.pulse-donut span { position:relative; z-index:1; display:grid; text-align:center; }.pulse-donut strong { color:var(--text); font-size:17px; }.pulse-donut small { color:var(--text2); font-size:9px; }
.pulse-donut--income { background:conic-gradient(#56e39f 0 34%,#55d6ff 34% 67%,#b493ff 67%); }
.pulse-breakdown { display:grid; gap:8px; }.pulse-breakdown button { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:7px; padding:3px; border:0; border-radius:5px; color:var(--text2); background:none; font-size:10px; text-align:left; cursor:pointer; }.pulse-breakdown button:hover,.pulse-breakdown button:focus-visible { color:var(--text); background:rgba(85,214,255,.05); outline:1px solid rgba(85,214,255,.25); }.pulse-breakdown i { width:8px; height:8px; border-radius:3px; background:var(--c); }.pulse-breakdown strong { color:var(--text); font-size:10px; }
.pulse-link { padding:4px 0; border:0; color:var(--pulse-cyan); background:none; font-size:10px; font-weight:700; cursor:pointer; }.pulse-link:hover { text-decoration:underline; }.pulse-stars { color:var(--pulse-amber); font-size:20px; }
.pulse-history-panel { margin-bottom:10px; }.pulse-history-note { color:var(--text2); font-size:9px; }.pulse-history { display:grid; gap:6px; }.pulse-history-row { position:relative; display:grid; grid-template-columns:minmax(100px,1.1fr) repeat(4,minmax(90px,1fr)) 24px; align-items:center; gap:12px; overflow:hidden; width:100%; padding:11px 12px; border:1px solid rgba(139,163,193,.13); border-radius:10px; color:var(--text); background:rgba(7,14,25,.3); text-align:left; cursor:pointer; transition:border-color .15s,background .15s; }.pulse-history-row:hover,.pulse-history-row:focus-visible { border-color:rgba(85,214,255,.35); background:rgba(85,214,255,.04); outline:none; }.pulse-history-row::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--history-tone,#71849d); }.pulse-history-month b { display:block; font-size:11px; text-transform:capitalize; }.pulse-history-month small { color:var(--text2); font-size:9px; }.pulse-history-cell { display:grid; gap:2px; }.pulse-history-cell small { color:#71849d; font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.pulse-history-cell strong { font-size:11px; }.pulse-history-result { color:var(--history-tone,#71849d); }.pulse-history-row>i { color:#60748f; font-size:12px; }
.pulse-feed { display:grid; gap:7px; }.pulse-feed-item { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid rgba(139,163,193,.13); border-radius:10px; background:rgba(7,14,25,.28); }.pulse-feed-item__icon { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; color:var(--pulse-violet); background:rgba(180,147,255,.1); }.pulse-feed-item--win .pulse-feed-item__icon { color:var(--pulse-amber); background:rgba(255,190,92,.1); }.pulse-feed-item b { display:block; overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.pulse-feed-item p { margin:3px 0 0; color:var(--text2); font-size:9px; }.pulse-feed-item time,.pulse-feed-item>strong { color:#71849d; font-size:9px; font-weight:700; white-space:nowrap; }.pulse-empty { padding:28px 12px; color:var(--text2); font-size:11px; text-align:center; }
.pulse-detail-dialog { position:fixed; inset:50% auto auto 50%; width:min(620px,calc(100vw - 30px)); max-height:min(78vh,720px); margin:0; padding:0; overflow:auto; transform:translate(-50%,-50%); border:1px solid var(--border); border-radius:16px; color:var(--text); background:#101a2a; box-shadow:0 28px 90px rgba(0,0,0,.65); }.pulse-detail-dialog::backdrop { background:rgba(3,8,15,.78); backdrop-filter:blur(4px); }.pulse-detail-dialog header { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; gap:14px; padding:18px 20px; border-bottom:1px solid var(--border); background:#101a2a; }.pulse-detail-dialog h3 { margin:0; }.pulse-detail-dialog button { border:0; color:var(--text2); background:none; cursor:pointer; }.pulse-detail-dialog button:hover,.pulse-detail-dialog button:focus-visible { color:var(--text); outline:none; }.pulse-detail-body { padding:20px; color:#aabbd2; font-size:12px; line-height:1.65; }
.pulse-celebration { position:fixed; right:22px; bottom:22px; z-index:700; display:grid; grid-template-columns:42px minmax(0,1fr) 24px; align-items:start; gap:12px; width:min(390px,calc(100vw - 32px)); padding:16px; border:1px solid rgba(86,227,159,.35); border-radius:15px; color:var(--text); background:linear-gradient(145deg,rgba(19,34,49,.98),rgba(11,21,34,.98)); box-shadow:0 22px 70px rgba(0,0,0,.58),0 0 32px rgba(86,227,159,.09); animation:pulse-celebration-in .34s cubic-bezier(.2,.8,.2,1); }.pulse-celebration__icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; color:var(--pulse-amber); background:rgba(255,190,92,.1); font-size:20px; }.pulse-celebration small { color:var(--pulse-green); font-size:9px; font-weight:900; letter-spacing:.14em; }.pulse-celebration b { display:block; margin:4px 0; font-size:13px; }.pulse-celebration p { margin:0; color:var(--text2); font-size:10px; line-height:1.45; }.pulse-celebration button { display:grid; place-items:center; width:24px; height:24px; padding:0; border:0; color:var(--text2); background:none; cursor:pointer; }.pulse-celebration.is-leaving { opacity:0; transform:translateY(8px); transition:.2s; }@keyframes pulse-celebration-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pulse-celebration{animation:none}.pulse-metric,.pulse-donut{transition:none}}
@media(max-width:1350px){.pulse-scoreboard{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1150px){.pulse-scoreboard{grid-template-columns:repeat(2,1fr)}.pulse-grid--charts{grid-template-columns:1fr}.pulse-donut-layout{grid-template-columns:160px 1fr}}
@media(max-width:700px){.pulse-hero{display:block;padding:20px}.pulse-period{margin-top:18px;padding:12px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.1)}.pulse-scoreboard,.pulse-grid--lists{grid-template-columns:1fr}.pulse-grid{gap:8px}.pulse-metric{padding:13px}.pulse-panel{padding:14px}.pulse-donut-layout{grid-template-columns:1fr}.pulse-donut{margin:auto}.pulse-chart-wrap{height:190px}.pulse-legend{display:none}.pulse-celebration{right:16px;bottom:16px}.pulse-history-note{display:none}.pulse-history-row{grid-template-columns:1fr 1fr 22px;gap:8px}.pulse-history-month{grid-column:1/-2}.pulse-history-row>i{grid-column:3;grid-row:1}.pulse-history-cell.is-secondary{display:none}}

.analytics-sticky-nav {
  position: sticky;
  top: 54px;
  z-index: 90;
  margin-left: -24px;
  margin-right: -24px;
  padding: 12px 24px 14px;
  background: rgba(8,15,27,.97);
  box-shadow: 0 8px 18px rgba(0,0,0,.22);
  backdrop-filter: blur(10px);
}
.ad-sticky-controls {
  position: sticky;
  top: calc(54px + var(--analytics-sticky-nav-height, 66px));
  z-index: 89;
  margin-left: -24px;
  margin-right: -24px;
  padding: 10px 24px;
  background: rgba(8,15,27,.97);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 8px 18px rgba(0,0,0,.18);
  backdrop-filter: blur(10px);
}
@media (max-width:700px) {
  .analytics-sticky-nav,
  .ad-sticky-controls { margin-left:-24px; margin-right:-24px; padding-left:24px; padding-right:24px; }
}
.an-section    { width:100%; min-width:0; margin-bottom:34px; }
.an-cards      { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin-bottom: 16px; }
.an-card       { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 14px 16px; }
.activity-return-funnel{display:grid;gap:14px;margin-top:22px}.activity-return-head{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:0 2px}.activity-return-head .form-title{margin:0}.activity-return-head p{margin:5px 0 0;color:var(--text2);font-size:12px}.activity-return-head>span{padding:5px 8px;border:1px solid rgba(79,195,247,.25);border-radius:999px;color:#4fc3f7;font-size:9px;font-weight:900;letter-spacing:.13em}.activity-insight-panel{position:relative;overflow:hidden;padding:17px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(145deg,rgba(18,27,44,.96),rgba(12,19,32,.96))}.activity-insight-panel::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--activity-accent,#4fc3f7)}.activity-retention-panel{--activity-accent:#a78bfa}.activity-actions-panel{--activity-accent:#ff4655}.activity-version-panel{--activity-accent:#4fc3f7}.activity-insight-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.activity-insight-title>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid color-mix(in srgb,var(--activity-accent) 55%,transparent);border-radius:8px;color:var(--activity-accent);font-size:10px;font-weight:900}.activity-insight-title strong,.activity-insight-title small{display:block}.activity-insight-title strong{color:var(--text1);font-size:13px}.activity-insight-title small{margin-top:3px;color:var(--text2);font-size:10px;font-weight:500}.activity-retention-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.activity-retention-card{min-height:110px;padding:14px;border:1px solid rgba(167,139,250,.2);border-radius:10px;background:rgba(167,139,250,.055)}.activity-retention-card small,.activity-retention-card strong,.activity-retention-card span{display:block}.activity-retention-card small{color:#bdaaff;font-size:10px;font-weight:900;letter-spacing:.12em}.activity-retention-card strong{margin:8px 0 6px;color:#f2edff;font-size:28px;line-height:1}.activity-retention-card span{color:var(--text2);font-size:10px}.activity-product-funnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.activity-product-funnel article{position:relative;min-width:0;padding:13px;border:1px solid rgba(255,70,85,.18);border-radius:10px;background:rgba(255,70,85,.045)}.activity-product-funnel article:not(:last-child)::after{content:"›";position:absolute;right:-14px;top:50%;color:rgba(255,70,85,.65);font-size:22px;transform:translateY(-50%)}.activity-product-funnel small,.activity-product-funnel strong,.activity-product-funnel span,.activity-product-funnel em{display:block}.activity-product-funnel small{color:#ff7a87;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.activity-product-funnel strong{margin:8px 0 3px;color:#fff;font-size:25px;line-height:1}.activity-product-funnel span{color:var(--text1);font-size:10px;font-weight:800}.activity-product-funnel em{margin-top:8px;color:var(--text2);font-size:9px;font-style:normal}.activity-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.activity-version-grid article{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 14px;padding:13px 15px;border:1px solid rgba(79,195,247,.18);border-radius:10px;background:rgba(79,195,247,.045)}.activity-version-grid span{grid-row:1/3;color:#71dcff;font-size:12px;font-weight:900}.activity-version-grid strong{color:#fff;font-size:23px;line-height:1}.activity-version-grid small{color:var(--text2);font-size:9px}.activity-insight-note{margin:10px 1px 0;color:var(--text2);font-size:9px;line-height:1.45}@media(max-width:900px){.activity-product-funnel{grid-template-columns:1fr}.activity-product-funnel article:not(:last-child)::after{content:"↓";right:16px;top:auto;bottom:-17px;z-index:2}.activity-retention-grid{grid-template-columns:1fr}.activity-version-grid{grid-template-columns:1fr}}@media(max-width:620px){.activity-return-head{align-items:flex-start;flex-direction:column}.activity-return-head>span{display:none}.activity-insight-panel{padding:14px}.activity-insight-title small{line-height:1.4}}
.nu-chart-card {
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.nu-chart-card.is-chart-focus[data-nu-card-mode="registrations"] {
  border-color: rgba(34,197,94,.72);
  background: linear-gradient(135deg, rgba(34,197,94,.13), var(--surface) 72%);
  box-shadow: 0 0 0 1px rgba(34,197,94,.12), 0 10px 26px rgba(34,197,94,.08);
  transform: translateY(-1px);
}
.nu-chart-card.is-chart-focus[data-nu-card-mode="registrations"] .an-val { color: #45dc7c; }
.nu-chart-card.is-chart-focus[data-nu-card-mode="registrations"] .an-lbl { color: #7ee8a4; }
.nu-chart-card.is-chart-focus[data-nu-card-mode="deletions"] {
  border-color: rgba(226,232,240,.9);
  background: linear-gradient(135deg, rgba(226,232,240,.105), var(--surface) 74%);
  box-shadow: 0 0 0 1px rgba(226,232,240,.13), 0 10px 26px rgba(0,0,0,.2);
  transform: translateY(-1px);
}
.nu-chart-card.is-chart-focus[data-nu-card-mode="deletions"] .an-lbl { color: #dbe5f3; }
.an-val        { font-size: 26px; font-weight: 800; color: var(--primary); margin-bottom: 4px; line-height: 1.1; }
.an-lbl        { font-size: 11px; color: var(--text2); letter-spacing: .4px; }
.an-chart-box  { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 16px 16px 10px; overflow: visible; }

.lineup-rank-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin:18px 0 10px; }
.lineup-rank-head p { margin:4px 0 0; color:var(--text2); font-size:12px; }
.lineup-agent-rank { border:1px solid var(--border); border-radius:10px; background:var(--surface); overflow:hidden; }
.lineup-agent-rank + .lineup-agent-rank { margin-top:7px; }
.lineup-agent-rank summary { list-style:none; display:grid; grid-template-columns:42px minmax(130px,1fr) auto 22px; gap:11px; align-items:center; min-height:58px; padding:8px 13px; cursor:pointer; }
.lineup-agent-rank summary::-webkit-details-marker { display:none; }
.lineup-agent-rank summary:hover { background:rgba(79,195,247,.045); }
.lineup-agent-rank[open] summary { border-bottom:1px solid var(--border); background:linear-gradient(90deg,rgba(255,70,90,.08),transparent 42%); }
.lineup-agent-rank__place { color:var(--primary); font-size:11px; font-weight:900; letter-spacing:.1em; }
.lineup-agent-rank__name { color:var(--text); font-size:15px; font-weight:800; }
.lineup-agent-rank__meta { color:var(--text2); font-size:11px; margin-top:2px; }
.lineup-agent-rank__views { text-align:right; color:var(--orange); font-size:16px; font-weight:900; font-variant-numeric:tabular-nums; }
.lineup-agent-rank__views small { display:block; color:var(--text2); font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.lineup-agent-rank__chevron { color:var(--text2); transition:transform .18s ease; }
.lineup-agent-rank[open] .lineup-agent-rank__chevron { transform:rotate(180deg); }
.lineup-agent-top { padding:5px 12px 9px; }
.lineup-agent-top__row { width:100%; border:0; border-bottom:1px solid rgba(122,151,180,.13); background:transparent; color:inherit; display:grid; grid-template-columns:30px minmax(0,1fr) minmax(75px,auto) 72px; gap:10px; align-items:center; padding:10px 4px; text-align:left; cursor:pointer; }
.lineup-agent-top__row:last-child { border-bottom:0; }
.lineup-agent-top__row:hover { background:rgba(79,195,247,.05); }
.lineup-agent-top__index { color:var(--text2); font-size:11px; font-weight:800; text-align:center; }
.lineup-agent-top__title { min-width:0; color:var(--text); font-size:13px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lineup-agent-top__map { justify-self:start; border:1px solid var(--border); border-radius:999px; padding:3px 8px; color:var(--text2); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.lineup-agent-top__views { color:var(--primary); font-size:12px; font-weight:900; text-align:right; font-variant-numeric:tabular-nums; }
.lineup-rank-empty { border:1px dashed var(--border); border-radius:10px; padding:22px; color:var(--text2); font-size:13px; text-align:center; }
@media (max-width:700px) {
  .lineup-agent-rank summary { grid-template-columns:34px minmax(100px,1fr) auto 18px; padding-inline:9px; }
  .lineup-agent-top__row { grid-template-columns:24px minmax(0,1fr) 58px; }
  .lineup-agent-top__map { display:none; }
}
.an-legend     { display: flex; gap: 16px; margin-bottom: 10px; flex-wrap: wrap; }
.an-leg-item   { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--text2); }
.an-leg-dot    { width: 22px; height: 3px; border-radius: 2px; flex-shrink: 0; }
.an-loading    { animation: an-pulse 1s ease-in-out infinite alternate; }
.an-live       { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600; color: var(--green); letter-spacing: .3px; }
.an-live-dot   { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 0 rgba(34,197,94,.6); animation: an-live-pulse 1.6s ease-out infinite; }
@keyframes an-live-pulse { 0% { box-shadow: 0 0 0 0 rgba(34,197,94,.55); } 70% { box-shadow: 0 0 0 7px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
.an-chart-wrap { position:relative; width:100%; height:clamp(168px,12vw,190px); min-height:0; }
.an-chart-wrap>svg { display:block; width:100%; height:100%; min-height:0; shape-rendering:geometricPrecision; text-rendering:optimizeLegibility; }
@media (max-width:700px) { .an-chart-box { padding:13px 10px 9px; } .an-chart-wrap { height:168px; } }
.an-tip        { position: absolute; pointer-events: none; z-index: 20; background: var(--bg); border: 1px solid var(--border2, var(--border)); border-radius: 8px; padding: 8px 11px; font-size: 12px; color: var(--text); box-shadow: 0 8px 24px rgba(0,0,0,.5); white-space: nowrap; transition: opacity .08s; }
.an-tip-date   { font-size: 11px; color: var(--text2); margin-bottom: 5px; font-weight: 600; }
.an-tip-row    { display: flex; align-items: center; gap: 7px; margin-top: 2px; }
.an-tip-dot    { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.an-tip-val    { font-weight: 700; margin-left: auto; padding-left: 10px; }
@keyframes an-pulse { from { opacity: .4; } to { opacity: 1; } }

/* ── Map Stats Panel ── */
.mp-map-row, .mp-agent-row, .mp-lineup-row {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; cursor: pointer;
  border-left: 2px solid transparent;
  transition: background .12s, border-color .12s;
}
.mp-map-row:hover, .mp-agent-row:hover, .mp-lineup-row:hover { background: var(--surface2); }
.mp-map-row.active, .mp-agent-row.active { border-left-color: var(--primary); background: rgba(255,70,85,.08); }
.mp-lineup-row.active { border-left-color: var(--primary); background: rgba(255,70,85,.08); outline: 1px solid rgba(255,70,85,.3); }
.mp-row-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--text); }
.mp-count-badge { font-size: 11px; font-weight: 700; color: var(--primary); background: rgba(255,70,85,.12); border: 1px solid rgba(255,70,85,.2); border-radius: 4px; padding: 1px 6px; flex-shrink: 0; }
.mp-chevron { color: var(--text2); font-size: 14px; flex-shrink: 0; }
.mp-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.mp-agent-count { font-size: 11px; color: var(--text2); flex-shrink: 0; }
.mp-ability { font-size: 10px; color: var(--text2); flex-shrink: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 86px; }
.mp-date { font-size: 10px; color: var(--text2); flex-shrink: 0; white-space: nowrap; }
.mp-empty { padding: 24px 12px; font-size: 12px; color: var(--text2); text-align: center; }
.mp-lineup-row { gap: 5px; }
.dc-map-zone { position: relative; border-radius: 6px; overflow: hidden; margin-bottom: 16px; background: #0e1016; }
@keyframes mpSlideIn { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
/* ── Lineup Detail Overlay ── */
#lineup-detail-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.78); z-index: 600; display: none; align-items: center; justify-content: center; padding: 20px; }
.ld-card { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; max-width: 680px; width: 100%; max-height: 90vh; overflow-y: auto; }
.ld-screenshots { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; }
.ld-screenshots img { height: 110px; width: auto; border-radius: 6px; object-fit: cover; cursor: pointer; border: 1px solid var(--border); flex-shrink: 0; }
.ld-shotlist { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.ld-shotitem { position: relative; }
.ld-shotitem img { height: 80px; width: auto; border-radius: 5px; object-fit: cover; border: 1px solid var(--border); display: block; }
.ld-shotitem .rm { position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;background:var(--red);border:none;color:#fff;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1; }
.ld-map-zone { position: relative; border-radius: 6px; overflow: hidden; margin-bottom: 16px; background: #0e1016; min-height: 80px; }

/* ── Analytics sub-tabs ── */
.an-tab-btn { padding: 8px 16px; border-radius: 20px; border: 1px solid var(--border); background: transparent; color: var(--text2); cursor: pointer; font-size: 12px; font-weight: 600; transition: .15s; white-space: nowrap; }
.an-tab-btn:hover { border-color: var(--primary); color: var(--primary); }
.an-tab-btn.active { background: var(--primary); border-color: var(--primary); color: #fff; }

/* VPS analytics — compact infrastructure passport */
.vps-an-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.vps-an-head p { margin:6px 0 0; color:var(--text2); font-size:12px; }
.vps-an-source { padding:5px 9px; border:1px solid var(--border); border-radius:999px; color:var(--text2); font-size:10px; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.vps-an-card { position:relative; display:grid; grid-template-columns:minmax(220px,.8fr) minmax(430px,1.7fr) minmax(190px,.6fr); gap:22px; align-items:center; overflow:hidden; padding:22px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(105deg,rgba(79,195,247,.08),transparent 28%),var(--surface); }
.vps-an-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:#22c55e; }
.vps-an-identity { display:flex; align-items:center; gap:14px; min-width:0; }
.vps-an-machine { display:grid; place-items:center; flex:0 0 52px; width:52px; height:52px; border:1px solid rgba(79,195,247,.28); border-radius:12px; color:#4fc3f7; background:rgba(79,195,247,.08); font-size:22px; }
.vps-an-kicker { margin-bottom:5px; color:#4fc3f7; font-size:9px; font-weight:800; letter-spacing:.12em; }
.vps-an-identity h3 { margin:0; color:var(--text); font-size:19px; }
.vps-an-identity h3 span { margin-left:6px; color:var(--text2); font-family:monospace; font-size:11px; font-weight:500; }
.vps-an-status { display:flex; align-items:center; gap:6px; margin-top:7px; color:#22c55e; font-size:11px; font-weight:700; }
.vps-an-status i { width:7px; height:7px; border-radius:50%; background:currentColor; box-shadow:0 0 10px currentColor; }
.vps-an-specs { display:grid; grid-template-columns:repeat(2,minmax(150px,1fr)); gap:15px 20px; padding:0 22px; border-inline:1px solid var(--border); }
.vps-an-specs div { min-width:0; }
.vps-an-specs small,.vps-an-renewal small { display:block; margin-bottom:5px; color:var(--text2); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.vps-an-specs strong { display:block; overflow:hidden; color:var(--text); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.vps-an-renewal strong { display:block; color:#22c55e; font-size:22px; line-height:1.05; }
.vps-an-renewal > span { display:block; margin-top:5px; color:var(--text2); font-family:monospace; font-size:11px; }
.vps-an-meter { height:4px; margin:11px 0; overflow:hidden; border-radius:999px; background:var(--border); }
.vps-an-meter i { display:block; width:0; height:100%; border-radius:inherit; background:#22c55e; transition:width .35s ease; }
.vps-an-renewal a { color:#4fc3f7; font-size:11px; font-weight:700; text-decoration:none; }
.vps-an-renewal a:hover { text-decoration:underline; }
.vps-an-card.is-warning::before,.vps-an-card.is-warning .vps-an-meter i { background:#f59e0b; }
.vps-an-card.is-warning .vps-an-renewal strong { color:#f59e0b; }
.vps-an-card.is-urgent::before,.vps-an-card.is-urgent .vps-an-meter i { background:var(--primary); }
.vps-an-card.is-urgent .vps-an-renewal strong { color:var(--primary); }
.vps-an-note { display:flex; align-items:center; gap:10px; margin-top:12px; padding:12px 14px; border:1px solid rgba(34,197,94,.2); border-radius:10px; color:var(--text2); background:rgba(34,197,94,.05); font-size:11px; line-height:1.45; }
.vps-an-note i { color:#22c55e; font-size:16px; }
.vps-an-note strong { color:var(--text); }
.vps-an-note.is-urgent { border-color:rgba(255,70,85,.35); background:rgba(255,70,85,.07); }
.vps-an-note.is-urgent i { color:var(--primary); }
@media (max-width:1050px) {
  .vps-an-card { grid-template-columns:1fr 1fr; }
  .vps-an-specs { grid-column:1/-1; grid-row:2; padding:18px 0 0; border-inline:0; border-top:1px solid var(--border); }
}
@media (max-width:650px) {
  .vps-an-head,.vps-an-card { display:flex; flex-direction:column; align-items:stretch; }
  .vps-an-source { align-self:flex-start; }
  .vps-an-specs { grid-template-columns:1fr; width:100%; }
  .vps-an-renewal { padding-top:16px; border-top:1px solid var(--border); }
}
@media (prefers-reduced-motion:reduce) { .vps-an-meter i { transition:none; } }

.site-online-button {
  display: inline-flex; align-items: center; gap: 7px; min-height: 34px; margin-left: auto;
  padding: 7px 13px; border: 1px solid rgba(34,197,94,.38); border-radius: 20px;
  background: rgba(34,197,94,.045); color: var(--green); font: inherit;
  font-size: 12px; font-weight: 700; cursor: pointer;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.site-online-button:hover, .site-online-button.active {
  border-color: var(--green); background: rgba(34,197,94,.11); color: #58e78c;
}
.site-online-button:active { transform: translateY(1px); }
.site-online-button__dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--green);
  box-shadow: 0 0 0 0 rgba(34,197,94,.55); animation: an-live-pulse 1.6s ease-out infinite;
}
.site-online-button strong { min-width: 1ch; color: #83f5aa; font-size: 13px; }
.site-live-panel {
  display: grid; grid-template-columns: minmax(230px, .72fr) minmax(360px, 1.28fr);
  gap: 1px; margin-bottom: 14px; overflow: hidden;
  border: 1px solid rgba(34,197,94,.28); border-radius: var(--r); background: rgba(34,197,94,.2);
}
.site-live-panel__main, .site-live-panel__signal {
  min-width: 0; padding: 20px 22px;
  background: linear-gradient(135deg, rgba(34,197,94,.075), var(--surface) 58%);
}
.site-live-panel__eyebrow, .site-live-panel__signal-head, .site-live-panel__legend {
  display: flex; align-items: center; gap: 8px; color: var(--text2);
  font-size: 10px; font-weight: 700; letter-spacing: 1px;
}
.site-live-panel__pulse {
  width: 7px; height: 7px; border-radius: 50%; background: var(--green);
  box-shadow: 0 0 12px rgba(34,197,94,.85);
}
.site-live-panel__value {
  margin-top: 8px; color: #5cec8d; font-size: clamp(44px, 5vw, 68px);
  font-weight: 900; line-height: .95; letter-spacing: -3px;
}
.site-live-panel h3 { margin: 8px 0 4px; color: var(--text1); font-size: 17px; }
.site-live-panel p { margin: 0; color: var(--text2); font-size: 11px; line-height: 1.55; }
.site-live-panel__today {
  margin-top: 14px; color: var(--text2); font-size: 11px;
}
.site-live-panel__today strong { color: #83f5aa; font: 800 13px monospace; }
.site-live-panel__signal { display: flex; flex-direction: column; justify-content: space-between; }
.site-live-panel__signal-head { justify-content: space-between; }
.site-live-panel__signal-head span:last-child { color: var(--green); letter-spacing: 0; font-weight: 600; }
.site-live-bars {
  display: flex; align-items: end; gap: 5px; height: 74px; margin: 16px 0 13px; padding-top: 10px;
  border-bottom: 1px solid rgba(34,197,94,.28);
  background: repeating-linear-gradient(to bottom, transparent 0 20px, rgba(111,137,177,.08) 20px 21px);
}
.site-live-bars span {
  flex: 1; min-width: 4px; max-width: 18px; border-radius: 2px 2px 0 0;
  background: linear-gradient(to top, #16a34a, #5cec8d);
  box-shadow: 0 0 9px rgba(34,197,94,.2); transition: height .35s ease;
}
.site-live-bars span.is-empty { background: rgba(111,137,177,.12); box-shadow: none; }
.site-live-panel__legend { justify-content: space-between; letter-spacing: 0; font-weight: 500; }
.site-live-panel__legend i {
  display: inline-block; width: 6px; height: 6px; margin-right: 4px;
  border-radius: 50%; background: var(--green);
}
.site-presence-list-panel {
  overflow: hidden; border: 1px solid var(--border); border-radius: var(--r); background: var(--surface);
}
.site-presence-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start;
}
.site-presence-list-panel__head {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 14px 16px; border-bottom: 1px solid var(--border);
}
.site-presence-list-panel__head strong { display: block; color: var(--text1); font-size: 12px; letter-spacing: .6px; }
.site-presence-list-panel__head div span { display: block; margin-top: 3px; color: var(--text2); font-size: 10px; }
.site-presence-list-panel__head > span {
  padding: 5px 9px; border: 1px solid rgba(34,197,94,.3); border-radius: 14px;
  color: #83f5aa; background: rgba(34,197,94,.08); font-size: 10px; font-weight: 800;
}
.site-presence-list { max-height: 360px; overflow-y: auto; }
.site-presence-history-panel { margin-top: 0; }
.site-presence-user {
  display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 11px;
  min-height: 58px; padding: 8px 16px; border-bottom: 1px solid rgba(111,137,177,.12);
  cursor: pointer; transition: background .15s ease, border-color .15s ease;
}
.site-presence-user:hover, .site-presence-user:focus-visible {
  outline: none; background: rgba(79,195,247,.07); box-shadow: inset 3px 0 0 var(--primary);
}
.site-presence-user:last-child { border-bottom: 0; }
.site-presence-user__avatar {
  display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
  color: #b8f7cd; background: linear-gradient(135deg, #123824, #17263d); font-size: 12px; font-weight: 900;
}
.site-presence-user__identity { min-width: 0; }
.site-presence-user__identity strong, .site-presence-user__identity span {
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.site-presence-user__identity strong { color: var(--text1); font-size: 12px; }
.site-presence-user__identity span { margin-top: 4px; color: var(--text2); font-size: 10px; }
.site-presence-user__seen { display: flex; align-items: center; gap: 6px; color: var(--text2); font-size: 10px; white-space: nowrap; }
.site-presence-user__seen i { width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 8px rgba(34,197,94,.7); }
.site-presence-user.is-offline { opacity: .72; }
.site-presence-user.is-offline .site-presence-user__seen i { background: var(--text2); box-shadow: none; }
.site-presence-empty { padding: 28px 16px; color: var(--text2); font-size: 11px; text-align: center; }
.site-presence-empty.is-error { color: var(--red); }
.presence-profile-overlay {
  display: none; position: fixed; inset: 0; z-index: 6000; padding: 28px;
  align-items: center; justify-content: center; background: rgba(3,8,18,.82);
}
.presence-profile-overlay.open { display: flex; }
.presence-profile-dialog {
  position: relative; width: min(980px, 96vw); max-height: 92vh; overflow-y: auto;
  padding: 20px; border: 1px solid var(--border2); border-radius: 14px;
  background: var(--bg); box-shadow: 0 28px 90px rgba(0,0,0,.55);
}
.presence-profile-close {
  position: sticky; z-index: 2; top: 0; float: right; width: 36px; height: 36px;
  margin: 0 0 8px 12px; border: 1px solid var(--border); border-radius: 50%;
  color: var(--text1); background: var(--surface2); cursor: pointer; font-size: 15px;
}
.presence-profile-close:hover { color: #fff; border-color: var(--primary); background: rgba(255,70,85,.18); }
body.presence-profile-open { overflow: hidden; }
@media (max-width: 700px) {
  .presence-profile-overlay { padding: 8px; }
  .presence-profile-dialog { width: 100%; max-height: 96vh; padding: 12px; }
}
@media (max-width: 850px) {
  .site-live-panel { grid-template-columns: 1fr; }
  .site-online-button { margin-left: 0; }
  .site-presence-grid { grid-template-columns: 1fr; }
}
.training-an-head {
  display: flex; align-items: end; justify-content: space-between; gap: 16px;
  margin-bottom: 14px;
}
.training-an-head p { margin: 5px 0 0; color: var(--text2); font-size: 12px; }
.training-depth-cards { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.training-depth-card { position: relative; overflow: hidden; }
.training-depth-card::after {
  content: ""; position: absolute; right: -24px; bottom: -34px; width: 76px; height: 76px;
  border: 1px solid rgba(79,195,247,.16); transform: rotate(45deg);
}
.training-depth-card small { display: block; margin-top: 9px; color: var(--text2); font-size: 10px; }
.training-an-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.training-chart-title {
  display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 18px;
}
.training-chart-title .dlabel { margin: 0 0 4px; }
.training-chart-title small { color: var(--text2); font-size: 10px; }
.training-chart-title > strong { color: #4fc3f7; font: 800 13px monospace; white-space: nowrap; }
.training-depth-bars, .training-category-bars { display: grid; gap: 15px; }
.training-metric-label {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-bottom: 6px; color: var(--text1); font-size: 12px; font-weight: 700;
}
.training-metric-label strong { color: var(--training-color, #4fc3f7); font: 800 15px monospace; }
.training-metric-track {
  height: 9px; overflow: hidden; border: 1px solid rgba(111,137,177,.24);
  background: #08111e;
}
.training-metric-track i {
  display: block; height: 100%; background:
    linear-gradient(90deg, color-mix(in srgb, var(--training-color) 65%, #111827), var(--training-color));
  box-shadow: 0 0 14px color-mix(in srgb, var(--training-color) 45%, transparent);
  transition: width .38s ease;
}
.training-metric-row > small {
  display: block; margin-top: 5px; color: var(--text2); font-size: 9px; text-align: right;
}
.training-an-note {
  display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 11px 13px;
  border: 1px solid rgba(79,195,247,.18); color: var(--text2); font-size: 10px;
}
.training-an-note i { color: #4fc3f7; }
@media (max-width: 1000px) {
  .training-depth-cards { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .training-an-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .training-an-head { align-items: start; flex-direction: column; }
  .training-depth-cards { grid-template-columns: 1fr; }
}
.notif-an-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.notif-an-sub{font-size:12px;color:var(--text2)}
.notif-funnel{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:10px;margin-bottom:14px}.notif-funnel>i{color:var(--text2);font-style:normal}.notif-stage{position:relative;background:linear-gradient(135deg,var(--surface),#0b1728);border:1px solid var(--border);border-radius:12px;padding:15px 16px;overflow:hidden}.notif-stage span{position:absolute;right:10px;top:7px;color:rgba(79,195,247,.18);font:700 24px monospace}.notif-stage b{display:block;color:#4fc3f7;font:800 25px monospace}.notif-stage small{color:var(--text2)}
.notif-an-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:14px}.notif-category-list{display:grid;gap:10px;margin-top:12px}.notif-category{display:grid;grid-template-columns:minmax(150px,1fr) minmax(100px,2fr) 54px;gap:12px;align-items:center}.notif-category b,.notif-category small{display:block}.notif-category small{font-size:10px;color:var(--text2);margin-top:3px}.notif-category strong{text-align:right;font-family:monospace;color:#4fc3f7}.notif-meter{height:6px;background:#19253a;border-radius:9px;overflow:hidden}.notif-meter i{display:block;height:100%;background:linear-gradient(90deg,#4fc3f7,#2ed47a);border-radius:inherit}
.notif-advice{border-left:3px solid var(--border);padding:10px 12px;margin-top:10px;background:rgba(255,255,255,.02)}.notif-advice b,.notif-advice span{display:block}.notif-advice span{font-size:11px;color:var(--text2);margin-top:4px;line-height:1.45}.notif-advice.warn{border-color:#ffb020}.notif-advice.good{border-color:#2ed47a}.notif-table-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.notif-table-head span{font-size:10px;color:var(--text2)}.notif-table-wrap{overflow:auto}.notif-table{width:100%;border-collapse:collapse;font-size:12px}.notif-table th{text-align:left;color:var(--text2);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:8px;border-bottom:1px solid var(--border)}.notif-table td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top}.notif-table td small{display:block;color:var(--text2);max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.notif-chip{padding:3px 7px;border:1px solid var(--border);border-radius:12px;color:#8ed8f8;font-size:10px}
@media(max-width:900px){.notif-funnel{grid-template-columns:1fr 1fr}.notif-funnel>i{display:none}.notif-an-grid{grid-template-columns:1fr}}

/* ── New-user detail modal ── */
#nu-user-modal { display:none; position:fixed; inset:0; z-index:3000; background:rgba(0,0,0,.7); align-items:center; justify-content:center; }
#nu-user-modal.open { display:flex; }
.nu-modal-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:460px; max-width:95vw; max-height:88vh; overflow-y:auto; padding:24px; position:relative; }
.nu-field { margin-bottom:12px; }
.nu-field-lbl { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--text2); margin-bottom:3px; }
.nu-field-val { font-size:13px; color:var(--text); word-break:break-all; }
.nu-user-row { display:flex; align-items:center; gap:10px; padding:9px 12px; background:var(--surface); border:1px solid var(--border); border-radius:8px; margin-bottom:6px; cursor:pointer; transition:.15s; }
.nu-user-row:hover { border-color:var(--primary); background:var(--surface2); }
.nu-user-avatar { width:34px; height:34px; border-radius:50%; background:var(--primary); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; color:#fff; flex-shrink:0; }

/* ── Map Style theme buttons ── */
.ms-theme-btn { padding: 5px 13px; border-radius: 20px; border: 2px solid transparent; cursor: pointer; font-size: 12px; font-weight: 700; color: #000; transition: all .15s; opacity: .6; }
.ms-theme-btn:hover { opacity: .9; transform: scale(1.05); }
.ms-theme-btn.active { opacity: 1; border-color: rgba(255,255,255,.9); box-shadow: 0 0 0 2px rgba(255,255,255,.3); }
.ms-theme-btn[data-theme="white"] { color: #333; }
.ab-theme-btn { padding: 5px 13px; border-radius: 20px; border: 2px solid transparent; cursor: pointer; font-size: 12px; font-weight: 700; transition: all .15s; opacity: .6; }
.ab-theme-btn:hover { opacity: .9; transform: scale(1.05); }
.ab-theme-btn.active { opacity: 1; border-color: rgba(255,255,255,.9); box-shadow: 0 0 0 2px rgba(255,255,255,.3); }

/* ── Logs tab ── */
.log-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; margin-bottom: 8px; transition: border-color .15s; }
.log-card:hover { border-color: rgba(255,70,85,.35); }
.log-head { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px; cursor: pointer; user-select: none; }
.log-type { flex-shrink: 0; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
.log-type-flutter { background: rgba(59,130,246,.15); color: #60a5fa; border: 1px solid rgba(59,130,246,.4); }
.log-type-dart    { background: rgba(249,115,22,.15);  color: var(--orange); border: 1px solid var(--orange); }
.log-type-caught  { background: rgba(239,68,68,.15); color: #f87171; border: 1px solid rgba(239,68,68,.45); }
.log-type-web     { background: rgba(14,165,233,.15);  color: #7dd3fc; border: 1px solid rgba(14,165,233,.45); }
.log-type-manual  { background: rgba(168,85,247,.15);  color: #c084fc; border: 1px solid rgba(168,85,247,.4); }
.log-msg  { flex: 1; min-width: 0; font-size: 13px; color: var(--text); line-height: 1.4; word-break: break-word; }
.log-hint { margin: 6px 0 2px; padding: 7px 9px; border: 1px solid rgba(250,204,21,.28); border-radius: 7px; background: rgba(250,204,21,.08); color: #facc15; font-size: 12px; line-height: 1.45; }
.log-quick { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 6px; }
.log-quick span { max-width: 520px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 2px 7px; border: 1px solid rgba(77,195,255,.22); border-radius: 999px; background: rgba(77,195,255,.08); color: var(--text2); font-size: 11px; }
.log-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 11px; color: var(--text2); margin-top: 4px; }
.log-group-badge { display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(255,70,85,.35);background:rgba(255,70,85,.12);color:#ff8b95;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800; }
.log-users { display:flex;gap:5px;flex-wrap:wrap;margin-top:7px; }
.log-users span { max-width: 240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:2px 7px; border-radius:999px; background:rgba(139,92,246,.12); border:1px solid rgba(139,92,246,.3); color:#c4b5fd; font-size:11px; }
.log-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.log-del { background: transparent; border: none; color: var(--text2); cursor: pointer; font-size: 16px; padding: 2px 4px; line-height: 1; transition: color .13s; }
.log-del:hover { color: var(--red); }
.log-stack-toggle { background: transparent; border: 1px solid var(--border); color: var(--text2); border-radius: 4px; font-size: 11px; padding: 2px 7px; cursor: pointer; white-space: nowrap; transition: .13s; }
.log-stack-toggle:hover { border-color: var(--primary); color: var(--primary); }
.log-mark-fixed { border-color:rgba(34,197,94,.45); color:#86efac; }.log-mark-fixed:hover { border-color:#22c55e; color:#dcfce7; }.log-fixed-badge { display:inline-flex; margin-right:7px; padding:2px 7px; border:1px solid rgba(34,197,94,.48); border-radius:999px; color:#86efac; background:rgba(34,197,94,.1); font-size:10px; white-space:nowrap; }
.log-stack { display: none; border-top: 1px solid var(--border); padding: 10px 14px; background: var(--bg); }
.log-stack.open { display: block; }
.log-stack pre { font-size: 11px; color: var(--text2); white-space: pre-wrap; word-break: break-all; line-height: 1.5; margin: 0; }
.logs-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.diagnostic-investigation { margin:18px 0; padding:22px; border:1px solid rgba(56,189,248,.32); border-radius:16px; background:linear-gradient(145deg,rgba(10,22,38,.98),rgba(16,18,29,.98)); box-shadow:0 24px 70px rgba(0,0,0,.28); }
.diagnostic-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }.diagnostic-head h3 { margin:6px 0 0; font-size:18px; line-height:1.35; overflow-wrap:anywhere; }.diagnostic-kicker { color:#38bdf8; font-size:10px; font-weight:800; letter-spacing:.12em; }
.diagnostic-summary { display:grid; grid-template-columns:repeat(4,minmax(90px,1fr)); gap:10px; margin:18px 0; }.diagnostic-summary div { padding:13px; border:1px solid var(--border); border-radius:10px; background:rgba(255,255,255,.025); }.diagnostic-summary b,.diagnostic-summary span { display:block; }.diagnostic-summary b { color:#e8f7ff; font-size:22px; }.diagnostic-summary span { color:var(--text2); font-size:11px; margin-top:3px; }
.diagnostic-grid { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:10px; }.diagnostic-grid label,.diagnostic-note { color:var(--text2); font-size:11px; font-weight:700; }.diagnostic-grid input,.diagnostic-grid select,.diagnostic-note textarea { width:100%; margin-top:6px; padding:10px; border:1px solid var(--border); border-radius:8px; background:var(--surface2); color:var(--text); font:inherit; }.diagnostic-note { display:block; margin-top:12px; }.diagnostic-note textarea { resize:vertical; font-size:13px; line-height:1.5; }.diagnostic-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin:12px 0 18px; }.diagnostic-codex-copy { border-color:rgba(56,189,248,.65); color:#7dd3fc; background:rgba(56,189,248,.1); }.diagnostic-codex-copy:hover { border-color:#38bdf8; color:#e8f7ff; }
.diagnostic-columns { display:grid; grid-template-columns:1fr 1fr 1.35fr; gap:12px; }.diagnostic-columns section { min-width:0; padding:14px; border:1px solid var(--border); border-radius:10px; background:rgba(255,255,255,.02); }.diagnostic-columns h4 { margin:0 0 9px; font-size:12px; color:var(--text); }.diagnostic-columns p { color:var(--text2); font-size:11px; white-space:pre-wrap; overflow-wrap:anywhere; }.diagnostic-user { display:block; width:100%; margin:5px 0; padding:8px 9px; text-align:left; border:1px solid var(--border); border-radius:7px; background:var(--surface2); color:#7dd3fc; cursor:pointer; }.diagnostic-user:hover { border-color:#38bdf8; }.diagnostic-mono { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }.diagnostic-timeline { margin:0; padding-left:20px; }.diagnostic-timeline li { padding:0 0 11px 5px; color:#38bdf8; }.diagnostic-timeline b,.diagnostic-timeline span { display:block; }.diagnostic-timeline b { color:var(--text); font-size:12px; }.diagnostic-timeline span { color:var(--text2); font-size:10px; margin-top:2px; }
.user-diagnostic-history { margin:14px 0; padding:14px; border:1px solid rgba(56,189,248,.25); border-radius:10px; background:rgba(56,189,248,.035); }.user-diagnostic-row { display:grid; grid-template-columns:auto 1fr auto; gap:9px; align-items:start; padding:9px 0; border-bottom:1px solid var(--border); }.user-diagnostic-row:last-child { border-bottom:0; }.user-diagnostic-row p { margin:0; color:var(--text); font-size:12px; overflow-wrap:anywhere; }.user-diagnostic-row small { color:var(--text2); }
@media(max-width:900px){.diagnostic-grid{grid-template-columns:1fr 1fr}.diagnostic-columns{grid-template-columns:1fr}.diagnostic-summary{grid-template-columns:1fr 1fr}}@media(max-width:560px){.diagnostic-investigation{padding:14px}.diagnostic-grid{grid-template-columns:1fr}.diagnostic-head{flex-direction:column}.user-diagnostic-row{grid-template-columns:1fr}}
.logs-filter-row { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.logs-section-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:16px 20px; padding:6px; width:max-content; max-width:calc(100% - 40px); border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.logs-section-tabs button { border:1px solid transparent; border-radius:8px; padding:9px 15px; background:transparent; color:var(--text2); font-size:12px; font-weight:800; cursor:pointer; }
.logs-section-tabs button:hover { color:var(--text); background:var(--surface2); }
.logs-section-tabs button.active { color:#fff; border-color:rgba(255,70,85,.55); background:var(--primary); box-shadow:0 5px 16px rgba(255,70,85,.18); }
.logs-section[hidden] { display:none !important; }
#logs-section-errors { margin:16px 20px; }
.admin-audit-panel { margin-bottom:18px; padding:16px; border:1px solid var(--border); border-radius:var(--r); background:var(--surface); }
.admin-audit-cards { display:flex; flex-direction:column; gap:9px; max-height:520px; overflow:auto; padding-right:3px; }
.admin-audit-card { flex:0 0 auto; }
.admin-audit-card .log-head { cursor:default; }
.cron-panel { margin: 16px 20px 16px; border: 1px solid var(--border); border-radius: var(--r); background: var(--surface); overflow: hidden; }
.cron-panel summary { list-style: none; cursor: pointer; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--text); font-size: 13px; font-weight: 700; }
.cron-panel summary::-webkit-details-marker { display: none; }
.cron-panel summary .cron-chevron { transition: transform .18s ease; color: var(--text2); }
.cron-panel[open] summary .cron-chevron { transform: rotate(180deg); }
.cron-panel-body { border-top: 1px solid var(--border); padding: 12px 16px 16px; }

/* ── Notifications test tab ── */
.notif-grid  { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 12px; }
.notif-card  { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); padding: 16px 18px; transition: border-color .15s; }
.notif-card:hover { border-color: rgba(255,70,85,.4); }
.nc-header   { display: flex; align-items: center; gap: 13px; }
.nc-icon     { font-size: 30px; line-height: 1; flex-shrink: 0; }
.nc-title    { font-weight: 700; font-size: 14px; margin-bottom: 3px; }
.nc-desc     { font-size: 12px; color: var(--text2); line-height: 1.4; }
.nc-status   { font-size: 12px; margin-top: 8px; min-height: 18px; line-height: 1.4; }
.notif-cat-row { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; }
.notif-cat-btn { border:1px solid var(--border); background:var(--surface); color:var(--text2); border-radius:var(--r); padding:9px 14px; cursor:pointer; font-size:13px; font-weight:700; transition:.15s; }
.notif-cat-btn.active { background:var(--primary); border-color:var(--primary); color:#fff; }
.notif-section { display:none; }
.notif-section.active { display:block; }
.nb-editor { display:grid; grid-template-columns:minmax(320px,1fr) 360px; gap:18px; align-items:start; margin:0 0 22px; }
.nb-toolbar { display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 10px; }
.nb-tool { min-width:34px; height:34px; border-radius:8px; border:1px solid var(--border); background:var(--surface2); color:var(--text); cursor:pointer; font-weight:700; display:flex; align-items:center; justify-content:center; }
.nb-tool.active { background:var(--primary); border-color:var(--primary); color:#fff; }
.nb-phone { width:320px; aspect-ratio:9/16; background:#07111d; border:1px solid var(--border2); border-radius:24px; padding:14px; box-shadow:0 18px 50px rgba(0,0,0,.35); }
.nb-screen { height:100%; border-radius:18px; background:#0f1923; border:1px solid rgba(255,255,255,.08); overflow:hidden; display:flex; flex-direction:column; }
.nb-screen-head { padding:12px 14px; display:flex; align-items:center; justify-content:space-between; color:#fff; border-bottom:1px solid rgba(255,255,255,.08); font-size:13px; font-weight:700; }
.nb-preview-body { flex:1; padding:16px; overflow:auto; position:relative; }
.nb-preview-text { margin-bottom:10px; line-height:1.35; word-break:break-word; }
.nb-preview-button { position:absolute; transform:translate(-50%,-50%); width:calc(100% - 32px); justify-content:center; cursor:grab; touch-action:none; }
.nb-preview-button:active { cursor:grabbing; }
.nb-rich { min-height:150px; background:var(--bg); border:1px solid var(--border); border-radius:var(--r); padding:10px 12px; color:var(--text); line-height:1.45; outline:none; overflow:auto; }
.nb-rich:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(255,70,85,.15); }
.nb-pages { display:flex; gap:6px; align-items:center; margin-top:8px; flex-wrap:wrap; }
.nb-page-btn { border:1px solid var(--border); background:var(--surface2); color:var(--text2); border-radius:8px; padding:6px 10px; cursor:pointer; font-size:12px; }
.nb-page-btn.active { color:#fff; background:var(--primary); border-color:var(--primary); }
.nb-blocks { display:flex; gap:6px; align-items:center; margin:8px 0 10px; flex-wrap:wrap; }
.nb-block-btn { padding:6px 10px; border-radius:999px; border:1px solid var(--border); background:var(--surface2); color:var(--text2); cursor:pointer; font-size:12px; font-weight:700; }
.nb-block-btn.active { background:rgba(255,70,85,.16); color:#fff; border-color:var(--primary); }
.nb-block-action { padding:6px 10px; border-radius:8px; border:1px solid var(--border2); background:var(--surface2); color:var(--text); cursor:pointer; font-size:12px; font-weight:700; }
.bn-editor { display:grid; grid-template-columns:minmax(320px,1fr) 360px; gap:18px; align-items:start; margin:0 0 20px; }
.bn-row { display:grid; grid-template-columns:1fr 1fr 90px 34px; gap:8px; align-items:center; margin-top:8px; }
.bn-preview-card { margin:18px 14px; padding:14px; border-radius:14px; background:#111c2b; border:1px solid rgba(255,255,255,.1); box-shadow:0 12px 28px rgba(0,0,0,.28); }
.bn-preview-title { color:#fff; font-size:18px; font-weight:900; margin-bottom:4px; }
.bn-preview-sub { color:#8ea0b8; font-size:12px; margin-bottom:12px; }
.bn-preview-row { display:flex; align-items:center; gap:10px; padding:9px; border-radius:10px; background:#0b1420; border:1px solid rgba(255,255,255,.08); margin-top:8px; }
.bn-preview-avatar { width:38px; height:38px; border-radius:50%; background:#26384f; display:flex; align-items:center; justify-content:center; color:#ff4655; font-weight:900; border:1px solid rgba(255,70,85,.45); overflow:hidden; }
@media (max-width: 920px) { .nb-editor { grid-template-columns:1fr; } .nb-phone { width:min(320px,100%); } }
.ac-card { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:10px 12px; display:flex; align-items:center; gap:10px; transition:.15s; }
.ac-card:hover { border-color:var(--border2); }
.ac-dot { width:28px; height:28px; border-radius:50%; flex-shrink:0; transition:.2s; }
.ac-picker { width:26px; height:26px; border:none; border-radius:6px; cursor:pointer; padding:2px; background:var(--surface2); flex-shrink:0; }
.ms-sw { width:34px; height:34px; border-radius:8px; border:2px solid rgba(255,255,255,.2); cursor:pointer; transition:.15s; flex-shrink:0; }
.ms-sw:hover { transform:scale(1.12); border-color:rgba(255,255,255,.6); }
.ms-sw.active { outline:3px solid #fff; outline-offset:2px; border-color:transparent; }
.nc-status.ok  { color: var(--green); }
.nc-status.err { color: var(--red); }

/* Убираем красную рамку на textarea описания в слотах (баги 1+2) */
#add-slots-container .ftextarea:focus,
#add-slots-container .ftextarea:focus-visible {
  border-color: var(--border) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(255,255,255,.07) !important;
}
#add-slots-container .ftextarea:invalid,
#add-slots-container .ftextarea:-moz-ui-invalid,
#add-slots-container .ftextarea:user-invalid {
  border-color: var(--border) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* ── Desc Template Panel ─────────────────────────────────── */
#desc-template-panel {
  position: fixed; top: 0; right: 0; bottom: 0; width: 300px;
  background: var(--surface); border-left: 1px solid var(--border);
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.16,1,.3,1);
  will-change: transform; z-index: 480;
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: -6px 0 24px rgba(0,0,0,.35);
}
#desc-template-panel.open { transform: translateX(0); }
body.desc-panel-open #add-slots-container { padding-right: 316px; transition: padding-right .2s ease; }
@media (max-width: 1180px) {
  body.desc-panel-open #add-slots-container { padding-right: 0; }
  #desc-template-panel { width: min(300px, calc(100vw - 24px)); top: 72px; bottom: 12px; right: 12px; border: 1px solid var(--border); border-radius: var(--r); box-shadow: 0 18px 48px rgba(0,0,0,.5); }
}
.dtp-header { padding: 14px 14px 10px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
.dtp-title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.dtp-title { font-size: 10px; font-weight: 700; color: var(--text2); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 10px; }
.dtp-title-row .dtp-title { margin-bottom: 0; }
.dtp-close {
  width: 28px; height: 28px; border-radius: 6px; border: 1px solid var(--border);
  background: var(--surface2); color: var(--text2); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 18px; line-height: 1; transition: .15s;
}
.dtp-close:hover { color: var(--primary); border-color: var(--primary); }
.dtp-fselect {
  width: 100%; background: var(--surface2); border: 1px solid var(--border);
  border-radius: var(--r); color: var(--text); padding: 7px 11px;
  font-size: 13px; outline: none; font-family: inherit; cursor: pointer;
}
.dtp-fselect:focus { border-color: var(--primary); }
.dtp-list { flex: 1; overflow-y: auto; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.dtp-empty { padding: 24px 14px; text-align: center; color: var(--text2); font-size: 13px; line-height: 1.5; }
.dtp-card { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--r); padding: 10px 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.dtp-card:hover { border-color: var(--primary); background: rgba(255,70,85,.06); }
.dtp-card-map { font-size: 10px; font-weight: 700; color: var(--primary); letter-spacing: .8px; text-transform: uppercase; margin-bottom: 4px; }
.dtp-card-text { font-size: 13px; color: var(--text); line-height: 1.45; margin-bottom: 7px; }
.dtp-card-actions { display: flex; gap: 5px; justify-content: flex-end; }
.dtp-card-btn { background: transparent; border: 1px solid var(--border); color: var(--text2); border-radius: 5px; padding: 3px 9px; font-size: 11px; cursor: pointer; transition: .13s; }
.dtp-card-btn:hover { border-color: var(--primary); color: var(--primary); }
.dtp-card-btn.dtp-del:hover { border-color: var(--red); color: var(--red); }
.dtp-edit-form { background: var(--bg); border-radius: var(--r); margin-top: 8px; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.dtp-edit-ta { width: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: 5px; color: var(--text); padding: 7px 10px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 60px; outline: none; box-sizing: border-box; }
.dtp-edit-ta:focus { border-color: var(--primary); }
.dtp-edit-row { display: flex; gap: 6px; }
.dtp-add-section { border-top: 1px solid var(--border); padding: 10px; flex-shrink: 0; display: flex; flex-direction: column; gap: 7px; }
.dtp-add-label { font-size: 10px; font-weight: 700; color: var(--text2); letter-spacing: 1px; text-transform: uppercase; }

/* ── Messenger ───────────────────────────────────────────── */
#tab-messages { height:calc(100vh - 80px); min-height:620px; box-sizing:border-box; overflow:hidden; background:radial-gradient(circle at 75% 18%,rgba(54,99,155,.07),transparent 34%); }
.msg-messenger { --msg-red:#ff4655; --msg-ink:#080e19; height:100%; min-height:0; max-width:1440px; margin:0 auto; display:grid; grid-template-columns:390px minmax(0,1fr); border:1px solid rgba(135,158,192,.20); border-radius:16px; overflow:hidden; background:var(--surface); box-shadow:0 22px 60px rgba(0,0,0,.22); }
.msg-dialogs-pane { min-width:0; min-height:0; display:flex; flex-direction:column; border-right:1px solid rgba(135,158,192,.18); background:linear-gradient(180deg,rgba(20,30,48,.98),rgba(14,23,38,.98)); overflow:hidden; }
.msg-dialogs-head { padding:19px 16px 11px; }
.msg-inbox-title { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:15px; }
.msg-inbox-kicker { display:block; margin-bottom:3px; color:#7588a6; font:700 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.16em; text-transform:uppercase; }
.msg-dialogs-head h3 { margin:0; color:var(--text); font-size:20px; line-height:1.05; letter-spacing:-.02em; }
.msg-live-pill { display:flex; align-items:center; gap:6px; color:#89a0bf; font-size:10px; font-weight:700; }
.msg-live-pill i { width:6px; height:6px; border-radius:50%; background:#38d996; box-shadow:0 0 0 4px rgba(56,217,150,.09); }
.msg-search-box { height:40px; display:flex; align-items:center; gap:9px; padding:0 12px; border:1px solid rgba(135,158,192,.20); border-radius:10px; background:rgba(8,14,25,.44); color:#6f829f; transition:border-color .15s,box-shadow .15s; }
.msg-search-box:focus-within { border-color:rgba(255,70,85,.72); box-shadow:0 0 0 3px rgba(255,70,85,.08); }
.msg-search-box > span { font-size:22px; line-height:1; transform:rotate(-18deg); }
.msg-dialogs-head .msg-search-box input { width:100%; min-width:0; padding:0; border:0; border-radius:0; background:transparent; color:var(--text); outline:none; font-size:12px; }
.msg-filter-row { display:flex; gap:7px; width:100%; max-width:100%; overflow-x:auto; overflow-y:hidden; padding:0 15px 10px; border-bottom:1px solid rgba(135,158,192,.14); scrollbar-width:thin; scrollbar-color:rgba(79,195,247,.75) rgba(135,158,192,.12); overscroll-behavior-x:contain; }
.msg-filter-row::-webkit-scrollbar { height:6px; }
.msg-filter-row::-webkit-scrollbar-track { background:rgba(135,158,192,.10); border-radius:999px; }
.msg-filter-row::-webkit-scrollbar-thumb { background:rgba(79,195,247,.72); border-radius:999px; }
.msg-filter-row .an-tab-btn { padding:6px 10px; font-size:10px; flex:0 0 auto; max-width:none; border-radius:999px; white-space:nowrap; }
.msg-dialog-list { flex:1 1 auto; min-height:0; height:0; overflow-y:scroll; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--border2) transparent; }
.msg-dialog-item { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:11px; align-items:center; min-height:67px; padding:10px 14px; border-bottom:1px solid rgba(135,158,192,.10); cursor:pointer; transition:background .14s,transform .14s; }
.msg-dialog-item:hover { background:rgba(255,255,255,.038); }
.msg-dialog-item:focus-visible { outline:2px solid var(--msg-red); outline-offset:-2px; }
.msg-dialog-item.active { background:linear-gradient(90deg,rgba(255,70,85,.14),rgba(55,92,136,.10)); }
.msg-dialog-item.active::before { content:""; position:absolute; inset:9px auto 9px 0; width:3px; border-radius:0 3px 3px 0; background:var(--msg-red); box-shadow:0 0 15px rgba(255,70,85,.45); }
.msg-dialog-item.unread { background-color:rgba(255,70,85,.045); }
.msg-dialog-avatar { width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:linear-gradient(145deg,#293a59,#17243b); border:1px solid rgba(151,174,210,.12); color:#e5f1ff; font-weight:900; font-size:13px; letter-spacing:-.03em; }
.msg-dialog-item.active .msg-dialog-avatar { border-color:rgba(255,70,85,.38); }
.msg-dialog-main { min-width:0; }
.msg-dialog-name-row { display:flex; align-items:center; gap:6px; margin-bottom:4px; }
.msg-dialog-name { color:var(--text); font-size:13px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.msg-dialog-category { color:#7185a4; font:700 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.06em; text-transform:uppercase; }
.msg-dialog-preview { color:#8295b2; font-size:11px; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.msg-dialog-side { align-self:start; display:flex; flex-direction:column; align-items:flex-end; gap:7px; color:var(--text2); font-size:9px; white-space:nowrap; }
.msg-unread-dot { min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--primary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:900; }
.msg-list-footer { display:flex; align-items:center; justify-content:center; gap:6px; min-height:31px; padding:0 10px; border-top:1px solid rgba(135,158,192,.12); color:#607390; font-size:9px; }
.msg-list-footer span { padding:2px 5px; border:1px solid rgba(135,158,192,.18); border-radius:4px; color:#8194b0; font:700 8px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace; }
.msg-list-footer i { width:1px; height:11px; margin:0 3px; background:rgba(135,158,192,.16); }
.msg-chat-pane { min-width:0; min-height:0; height:100%; display:block !important; overflow:hidden; background-color:var(--msg-ink); background-image:linear-gradient(rgba(108,136,174,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(108,136,174,.025) 1px,transparent 1px); background-size:32px 32px; }
.msg-chat-content { height:100%; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto auto; overflow:hidden; padding:0 16px 14px; box-sizing:border-box; }
.msg-chat-header { flex-shrink:0; min-height:68px; margin:0 -16px 0 !important; padding:12px 18px !important; border-bottom:1px solid rgba(135,158,192,.16); background:rgba(17,26,42,.96); backdrop-filter:blur(12px); }
.msg-chat-content #msg-thread-scroll { min-height:0; height:auto !important; max-height:none !important; overflow-y:auto !important; margin:0 -2px 12px !important; padding:18px 4px 8px !important; border-top:0 !important; }
.msg-chat-placeholder { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; color:var(--text2); text-align:center; }
.msg-placeholder-mark { position:relative; width:76px; height:62px; margin-bottom:10px; border:1px solid rgba(255,70,85,.35); background:linear-gradient(145deg,rgba(255,70,85,.14),rgba(26,50,79,.10)); clip-path:polygon(0 0,100% 0,100% 75%,70% 75%,55% 100%,55% 75%,0 75%); }
.msg-placeholder-mark::before { content:""; position:absolute; inset:-10px 12px 10px -12px; border:1px solid rgba(112,140,180,.14); clip-path:inherit; }
.msg-placeholder-mark i { position:relative; z-index:1; display:inline-block; width:6px; height:6px; margin:25px 3px 0; border-radius:50%; background:#ff6875; box-shadow:0 0 12px rgba(255,70,85,.5); }
.msg-placeholder-kicker { margin-top:4px; color:#7185a4; font:700 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.14em; }
.msg-chat-placeholder b { color:#edf4ff; font-size:20px; letter-spacing:-.02em; }
.msg-chat-placeholder small { color:#7185a4; font-size:12px; line-height:1.55; }
.msg-placeholder-hint { margin-top:15px; color:#5e718d; font-size:10px; }
.msg-placeholder-hint span { display:inline-block; margin-right:6px; padding:4px 7px; border:1px solid rgba(135,158,192,.18); border-radius:5px; color:#91a4c0; font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace; }
.msg-mobile-back { display:none; }
@media(max-width:1000px){ .msg-messenger{grid-template-columns:330px minmax(0,1fr);} }
@media(max-width:700px){
  #tab-messages { height:calc(100dvh - 66px); min-height:480px; padding:8px !important; }
  .msg-messenger{height:100%;min-height:0;grid-template-columns:1fr;overflow:hidden;border-radius:12px}
  .msg-dialogs-pane{height:100%;border-right:0}
  .msg-chat-pane{display:none !important;height:100%}
  .msg-chat-content{height:100%}
  .msg-messenger.has-active .msg-dialogs-pane{display:none}
  .msg-messenger.has-active .msg-chat-pane{display:block !important}
  .msg-mobile-back{display:flex;width:34px;height:34px;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--text);cursor:pointer}
  .msg-list-footer{display:none}
}
@media(prefers-reduced-motion:reduce){ .msg-dialog-item,.msg-search-box{transition:none} }

/* ── Two-column list layout ── */
#tab-list { min-height: 0; display: block; overflow: visible; }
#tab-list .lineups-sticky-top { position: static; flex-shrink: 0; }
#map-panel { flex-shrink: 0; }
.list-two-col { display: flex; gap: 12px; align-items: flex-start; margin-top: 14px; min-height: 0; overflow: visible; }
.list-panel {
  width: 290px; flex-shrink: 0;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r);
  display: flex; flex-direction: column; overflow: hidden;
  position: sticky; top: 76px; max-height: calc(100vh - 90px);
}
.list-panel-top { padding: 10px 10px 8px; flex-shrink: 0; border-bottom: 1px solid var(--border); }
.list-panel-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 6px; scrollbar-width: thin; scrollbar-color: var(--border2) transparent; }
.list-panel-scroll::-webkit-scrollbar { width: 4px; }
.list-panel-scroll::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }
.list-panel-count { padding: 6px 10px; font-size: 11px; color: var(--text2); border-top: 1px solid var(--border); flex-shrink: 0; }
.list-search-wrap { position: relative; }
.list-search-wrap .bi { position: absolute; left: 9px; top: 50%; transform: translateY(-50%); color: var(--text2); font-size: 13px; pointer-events: none; }
.list-search { width: 100%; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); padding: 7px 10px 7px 30px; font-size: 13px; outline: none; font-family: inherit; }
.list-search:focus { border-color: rgba(255,70,85,.5); }
.lineup-filter-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) 30px; gap: 6px; margin-top: 7px; }
.lineup-filter-select { min-width: 0; width: 100%; height: 30px; padding: 0 25px 0 8px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface2); color: var(--text2); color-scheme: dark; font: 600 11px/1 inherit; outline: none; cursor: pointer; text-overflow: ellipsis; }
.lineup-filter-select option { background: #111827; color: #d7e0ef; }
.lineup-filter-select:hover, .lineup-filter-select:focus { border-color: rgba(82,191,243,.6); color: var(--text); }
.lineup-filter-select.is-active { border-color: rgba(82,191,243,.7); background: rgba(82,191,243,.09); color: #7dd3fc; }
.lineup-filter-reset { width: 30px; height: 30px; padding: 0; border: 1px solid var(--border); border-radius: 6px; background: var(--surface2); color: var(--text2); cursor: pointer; font-size: 14px; }
.lineup-filter-reset:hover { border-color: var(--primary); color: var(--primary); }
.editor-panel { flex: 1; min-width: 0; min-height: 480px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r); display: block; overflow: visible; }
.list-two-col.multi-selection .editor-panel { animation: bulk-panel-fade .24s ease-out both; }
.list-two-col.multi-selection .editor-empty { animation: bulk-empty-fade .28s ease-out both; }
@keyframes bulk-panel-fade { from { opacity: .72; } to { opacity: 1; } }
@keyframes bulk-empty-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  .list-two-col.multi-selection .editor-panel,
  .list-two-col.multi-selection .editor-empty { animation: none; }
}
.editor-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 24px; color: var(--text2); text-align: center; min-height: 0; }
.editor-empty i { font-size: 52px; opacity: .28; margin-bottom: 14px; display: block; }
.editor-empty p { font-size: 14px; }
#editor-content { padding: 0; min-width: 0; min-height: 0; overflow: visible; }
.editor-columns { display: grid; grid-template-columns: 55% 45%; gap: 0; min-height: 100%; overflow: visible; }
.editor-columns > * { min-height: 0; }
.editor-main { padding: 20px; border-right: 1px solid var(--border); overflow: visible; min-height: 0; max-height: none; }
.editor-audit {
  background: var(--bg);
  border-left: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 76px;
  height: auto;
  max-height: none;
  min-height: 0;
  overflow: hidden;
}

/* Keep lineup media and controls reachable in narrow browser windows/zoom. */
@media (max-width: 1180px) {
  .list-two-col { flex-direction: column; }
  .list-panel {
    position: relative;
    top: auto;
    width: 100%;
    max-height: 360px;
  }
  .editor-panel { width: 100%; }
  .editor-columns { grid-template-columns: minmax(0, 1fr); }
  .editor-main { border-right: 0; }
  .editor-audit {
    position: relative;
    top: auto;
    border-left: 0;
    border-top: 1px solid var(--border);
  }
}
.audit-log-wrap {
  flex: 0 0 auto;
  height: min(50%, 320px);
  overflow-y: auto;
  padding: 14px 16px;
  min-height: 0;
  max-height: 320px;
  border-bottom: 1px solid var(--border);
  scrollbar-width: thin;
  scrollbar-color: var(--border2) transparent;
}
.audit-actions {
  display: none !important;
}
.audit-title { font-size: 11px; font-weight: 700; color: var(--text2); letter-spacing: 1px; text-transform: uppercase; margin-bottom: 12px; }
.audit-item { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.audit-item:last-child { border-bottom: none; }
.audit-action { font-size: 12px; font-weight: 600; color: var(--text); }
.audit-action.approved { color: var(--green); }
.audit-action.rejected { color: #ef4444; }
.audit-action.archived { color: #f59e0b; }
.audit-action.edited   { color: var(--primary); }
.audit-action.restored { color: var(--text2); }
.audit-action.deleted  { color: #ef4444; }
.audit-meta { font-size: 11px; color: var(--text2); }
.audit-changes { font-size: 11px; color: var(--text2); background: rgba(255,255,255,.04); border-radius: 4px; padding: 4px 8px; margin-top: 4px; white-space: pre-wrap; word-break: break-word; }
.audit-empty { color: var(--text2); font-size: 12px; text-align: center; padding: 32px 0; }
.editor-action-pin {
  position: sticky;
  top: 54px;
  z-index: 110;
  background: linear-gradient(180deg, var(--surface) 0%, var(--surface) 88%, rgba(17,24,39,0) 100%);
  padding-top: 20px;
  margin: -20px 0 16px;
  box-shadow: 0 12px 18px rgba(5, 10, 22, .36);
}
.editor-detail-head { display: flex; align-items: flex-start; gap: 12px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--border); }
.editor-primary-actions { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); gap: 8px; margin: -4px 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.editor-primary-actions .btn { justify-content: center; font-size: 12px; padding: 8px 10px; min-width: 0; }
.editor-save-row { margin: -8px 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.lcard.selected { background: rgba(255,70,85,.06); border-color: var(--primary) !important; box-shadow: 0 0 0 1px rgba(255,70,85,.18); }
.lcard-compact .lcard-head { padding: 10px 12px; }
.lcard-compact .ltitle { font-size: 13px; }
.lcard-compact .lmeta { font-size: 11px; }
.lcard-compact .lcard-head { cursor: pointer; }
.sova-charge-range{width:100%;height:24px;margin:0;appearance:none;background:transparent;cursor:ew-resize}
.sova-charge-range::-webkit-slider-runnable-track{height:18px;border:2px solid rgba(245,250,255,.9);border-radius:0;background:linear-gradient(90deg,#68ddc5 0 var(--charge,100%),rgba(122,139,149,.34) var(--charge,100%) 100%);box-shadow:inset 0 0 0 3px rgba(3,15,24,.38)}
.sova-charge-range::-webkit-slider-thumb{appearance:none;width:5px;height:24px;margin-top:-5px;border:0;border-radius:0;background:#f8ffff;box-shadow:0 0 6px rgba(255,255,255,.85)}
.sova-charge-range::-moz-range-track{height:18px;border:2px solid rgba(245,250,255,.9);border-radius:0;background:rgba(122,139,149,.34)}
.sova-charge-range::-moz-range-progress{height:18px;background:#68ddc5}
.sova-charge-range::-moz-range-thumb{width:5px;height:24px;border:0;border-radius:0;background:#f8ffff}
.sova-charge-range.is-max::-webkit-slider-runnable-track{background:linear-gradient(90deg,#ff4655 0 var(--charge,100%),rgba(122,139,149,.34) var(--charge,100%) 100%)}
.sova-charge-range.is-max::-moz-range-progress{background:#ff4655}
.duel-suggestions{margin:18px 0 24px;padding:14px;border:1px solid rgba(80,214,255,.28);border-radius:12px;background:linear-gradient(135deg,rgba(80,214,255,.07),rgba(255,70,85,.025) 58%,transparent)}
.duel-suggestions-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.duel-suggestions-head .dlabel{margin:0 0 4px;color:#50d6ff}.duel-suggestions-head p{margin:0;color:var(--text2);font-size:12px}
.duel-suggestions-count{display:grid;place-items:center;min-width:34px;height:26px;padding:0 9px;border:1px solid rgba(80,214,255,.38);border-radius:999px;color:#50d6ff;font:800 12px monospace;background:rgba(80,214,255,.08)}
.duel-suggestions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:9px;max-height:430px;overflow:auto;padding-right:4px}.duel-suggestions-empty{grid-column:1/-1;padding:22px;border:1px dashed var(--border);border-radius:9px;color:var(--text2);font-size:12px;text-align:center}
.duel-suggestion-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"score context action" "score versus action";align-items:center;gap:7px 12px;padding:11px;border:1px solid var(--border);border-radius:9px;background:rgba(11,18,32,.82)}
.duel-suggestion-score{grid-area:score;display:grid;place-items:center;width:55px;height:55px;border:1px solid rgba(80,214,255,.32);border-radius:50%;background:radial-gradient(circle,rgba(80,214,255,.12),transparent 68%)}.duel-suggestion-score b{color:#50d6ff;font:800 15px monospace}.duel-suggestion-score span{margin-top:-8px;color:var(--text2);font-size:8px;text-transform:uppercase;letter-spacing:.5px}
.duel-suggestion-context{grid-area:context;min-width:0;display:grid;gap:2px}.duel-suggestion-context b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text1)}.duel-suggestion-context span{font:10px monospace;color:var(--text2)}
.duel-suggestion-versus{grid-area:versus;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.duel-suggestion-versus strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.duel-suggestion-versus i{color:var(--primary);font:900 10px monospace;font-style:normal}
.duel-suggestion-actions{grid-area:action;display:grid;gap:6px;min-width:142px}.duel-suggestion-use,.duel-suggestion-dismiss{width:100%;border-radius:7px;font-weight:800;cursor:pointer;transition:border-color .15s,background .15s,color .15s,transform .15s}.duel-suggestion-use{border:1px solid rgba(80,214,255,.48)!important;background:#10283a!important;color:#8de8ff!important;font-size:11px!important;padding:8px 10px!important;box-shadow:none!important}.duel-suggestion-use:hover{border-color:#50d6ff!important;background:#15374d!important;color:#d8f8ff!important;transform:translateY(-1px)}.duel-suggestion-dismiss{border:1px solid rgba(255,70,85,.38);background:rgba(255,70,85,.08);color:#ff8993;font-size:10px;padding:7px 9px}.duel-suggestion-dismiss:hover{border-color:#ff4655;background:rgba(255,70,85,.16);color:#ffd7da;transform:translateY(-1px)}.duel-suggestion-use:disabled,.duel-suggestion-dismiss:disabled{cursor:wait;opacity:.55;transform:none}
.duel-picked-card{height:100%;display:grid;place-items:center;padding:12px;background:radial-gradient(circle at 50% 20%,rgba(80,214,255,.1),transparent 58%)}.duel-picked-card-inner{width:min(100%,520px);display:grid;grid-template-columns:minmax(150px,42%) minmax(0,1fr);grid-template-areas:"media kicker" "media title" "media meta" "media change";gap:7px 14px;padding:12px;border:1px solid rgba(80,214,255,.4);border-radius:11px;background:rgba(11,18,32,.9);box-shadow:0 12px 35px rgba(0,0,0,.22)}.duel-picked-kicker{grid-area:kicker;display:flex;align-items:center;justify-content:space-between;color:#50d6ff;font:800 10px monospace;letter-spacing:.7px;text-transform:uppercase}.duel-picked-kicker span{color:var(--green)}.duel-picked-title{grid-area:title;overflow-wrap:anywhere;color:var(--text1);font-size:18px;line-height:1.2}.duel-picked-meta{grid-area:meta;display:flex;gap:6px;flex-wrap:wrap}.duel-picked-meta span{padding:4px 7px;border:1px solid var(--border);border-radius:999px;color:var(--text2);font-size:10px}.duel-picked-change{grid-area:change;justify-self:start;border:0;background:none;color:#7ddcf8;font-size:11px;cursor:pointer;padding:2px 0}.duel-picked-change:hover{text-decoration:underline}.duel-picked-media{grid-area:media;min-width:0;height:150px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#070b13}.duel-picked-media video,.duel-picked-media img{width:100%;height:100%;display:block;object-fit:cover}.duel-picked-media-empty{height:100%;display:grid;place-items:center;padding:12px;text-align:center;color:var(--text2);font-size:11px}.duel-picked-shots{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;height:100%;padding:3px}.duel-picked-shots img{border-radius:5px;cursor:pointer}.duel-picked-shots img:first-child:last-child{grid-column:1/-1}.duel-picked-shots img:first-child:nth-last-child(2){grid-column:span 2}
@media(max-width:1100px){.duel-picked-card-inner{grid-template-columns:1fr;grid-template-areas:"media" "kicker" "title" "meta" "change"}.duel-picked-media{height:120px}}
@media(max-width:760px){.duel-suggestions-grid{grid-template-columns:1fr}.duel-suggestion-card{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"score context" "versus versus" "action action"}.duel-suggestion-use{width:100%}}

/* ── Poll editor: live mobile preview ── */
.poll-editor-layout {
  display: grid;
  grid-template-columns: minmax(560px, 900px) 380px;
  gap: 28px;
  align-items: start;
  margin-bottom: 28px;
}
.poll-editor-form { width: 100%; margin: 0; }
.poll-preview-panel {
  position: sticky;
  top: 76px;
  display: grid;
  justify-items: center;
  padding: 14px 16px 18px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background:
    linear-gradient(145deg, rgba(255,70,85,.055), transparent 34%),
    var(--surface);
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
}
.poll-preview-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 13px;
  color: var(--text2);
  font: 800 9px/1 monospace;
  letter-spacing: 1.15px;
  text-transform: uppercase;
}
.poll-preview-live { display: inline-flex; align-items: center; gap: 5px; color: #ff7c87; }
.poll-preview-live i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 0 0 4px rgba(255,70,85,.1);
}
.poll-phone {
  width: 328px;
  min-height: 600px;
  overflow: hidden;
  position: relative;
  border: 7px solid #05080e;
  border-radius: 33px;
  background: #080d17;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.12),
    0 25px 55px rgba(0,0,0,.48),
    inset 0 0 0 1px rgba(255,255,255,.025);
}
.poll-phone::before {
  content: "";
  position: absolute;
  z-index: 4;
  top: 7px;
  left: 50%;
  width: 78px;
  height: 19px;
  border-radius: 20px;
  transform: translateX(-50%);
  background: #020408;
}
.poll-phone-status {
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 19px;
  color: #e9edf5;
  font: 700 9px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.poll-phone-appbar {
  height: 47px;
  display: grid;
  grid-template-columns: 28px 1fr 28px;
  align-items: center;
  padding: 0 13px;
  border-bottom: 1px solid rgba(255,255,255,.055);
  color: #edf1f8;
}
.poll-phone-appbar strong { text-align: center; font-size: 14px; letter-spacing: .1px; }
.poll-phone-appbar i { color: #8791a4; font-size: 14px; }
.poll-phone-body {
  min-height: 498px;
  padding: 18px 13px 30px;
  background:
    radial-gradient(circle at 88% 8%, rgba(255,70,85,.08), transparent 30%),
    #080d17;
}
.poll-preview-card {
  padding: 18px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 17px;
  background: #111827;
  box-shadow: 0 12px 24px rgba(0,0,0,.25);
}
.poll-preview-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.poll-preview-kicker span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: rgba(255,70,85,.14);
  color: var(--primary);
  font-size: 17px;
}
.poll-preview-kicker b {
  color: var(--primary);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 1px;
}
.poll-preview-kicker em {
  margin-left: auto;
  padding: 4px 6px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 999px;
  color: #7c879a;
  font: 800 7px/1 monospace;
  font-style: normal;
  letter-spacing: .45px;
  white-space: nowrap;
}
.poll-preview-kicker em.is-admins {
  border-color: rgba(255,70,85,.28);
  background: rgba(255,70,85,.08);
  color: #ff7d88;
}
.poll-preview-card h3 {
  margin: 0;
  color: #f0f3f8;
  font-size: 19px;
  line-height: 1.22;
  font-weight: 850;
  overflow-wrap: anywhere;
}
.poll-preview-card p {
  margin: 8px 0 17px;
  color: #7f8a9e;
  font-size: 12px;
  line-height: 1.42;
  overflow-wrap: anywhere;
}
.poll-preview-card p:empty { display: none; }
.poll-preview-options { display: grid; gap: 8px; }
.poll-preview-option {
  min-height: 47px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  background: #192236;
  color: #e5e9f1;
  font-size: 12px;
  font-weight: 750;
  overflow-wrap: anywhere;
}
.poll-preview-option i { color: #667287; font-size: 11px; }
.poll-preview-card small {
  display: block;
  margin-top: 14px;
  color: #677287;
  font-size: 9px;
  text-align: center;
}
.poll-phone-home {
  position: absolute;
  bottom: 7px;
  left: 50%;
  width: 92px;
  height: 3px;
  border-radius: 4px;
  transform: translateX(-50%);
  background: rgba(255,255,255,.55);
}
.poll-preview-note {
  margin: 14px 0 0;
  color: var(--text2);
  font-size: 10px;
  text-align: center;
}

.poll-library { margin-top: 26px; }
.poll-library-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.poll-library-head p { margin: 6px 0 0; color: var(--text2); font-size: 12px; }
.poll-search {
  width: min(310px, 100%);
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 13px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
}
.poll-search i { color: var(--text2); }
.poll-search input {
  width: 100%;
  padding: 11px 0;
  border: 0;
  outline: 0;
  color: var(--text1);
  background: transparent;
}
.poll-folders { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 10px; }
.poll-folder {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 9px;
  color: var(--text2);
  background: var(--surface);
  cursor: pointer;
}
.poll-folder b {
  min-width: 22px;
  padding: 2px 6px;
  border-radius: 999px;
  color: var(--text2);
  background: var(--surface2);
  font: 700 10px monospace;
}
.poll-folder.active {
  color: var(--text1);
  border-color: rgba(255,70,85,.55);
  background: rgba(255,70,85,.08);
}
.poll-folder.active i, .poll-folder.active b { color: var(--primary); }
#poll-list-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  align-items: start;
  gap: 12px;
}
.poll-admin-card {
  display: flex;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface);
  flex-direction: column;
}
.poll-admin-card.is-active { border-color: rgba(255,70,85,.5); }
.poll-admin-title {
  overflow: hidden;
  color: var(--text1);
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.poll-admin-description {
  overflow: hidden;
  margin-top: 3px;
  color: var(--text2);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.poll-admin-meta { margin-top: 7px; color: var(--text2); font-size: 10px; }
.poll-leader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
  padding: 10px 11px;
  border-radius: 8px;
  background: var(--surface2);
}
.poll-leader span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.poll-results-details { margin-top: 8px; }
.poll-results-details summary {
  padding: 7px 2px;
  color: var(--text2);
  font-size: 11px;
  cursor: pointer;
  user-select: none;
}
.poll-results-details[open] summary { color: var(--text1); }
.poll-admin-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.poll-admin-actions .btn {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  font-size: 11px;
}
.poll-delete-btn { color: #ff8791 !important; border-color: rgba(255,70,85,.32) !important; }
.poll-empty {
  grid-column: 1 / -1;
  padding: 30px 22px;
  border: 1px dashed var(--border);
  border-radius: 10px;
  color: var(--text2);
  text-align: center;
}
@media (max-width: 700px) {
  .poll-library-head { align-items: stretch; flex-direction: column; }
  .poll-search { width: 100%; }
  #poll-list-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 1280px) {
  .poll-editor-layout { grid-template-columns: minmax(480px, 1fr) 350px; gap: 18px; }
  .poll-phone { width: 310px; }
}
@media (max-width: 980px) {
  .poll-editor-layout { grid-template-columns: 1fr; }
  .poll-preview-panel { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  .poll-preview-live i { box-shadow: none; }
}
.billing-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.billing-admin-head p{margin:7px 0 0;color:var(--text2);font-size:12px}.billing-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.billing-admin-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:10px}.billing-admin-toolbar .finput{width:210px}.billing-admin-toolbar span{color:var(--text2);font-size:11px}.billing-admin-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}.billing-admin-table{width:100%;border-collapse:collapse;min-width:900px}.billing-admin-table th,.billing-admin-table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.billing-admin-table th{position:sticky;top:0;background:var(--surface2);color:var(--text2);font-size:10px;letter-spacing:.07em;text-transform:uppercase}.billing-admin-table td{font-size:12px}.billing-admin-table td strong,.billing-admin-table td small{display:block}.billing-admin-table td small{margin-top:4px;color:var(--text2);font-size:10px}.billing-admin-state{text-align:center!important;color:var(--text2);padding:36px!important}.billing-admin-error{color:var(--red)!important}.billing-status{display:inline-flex;padding:5px 8px;border:1px solid var(--border);border-radius:999px;font-size:10px;font-weight:800}.billing-status-succeeded{color:var(--green);border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.09)}.billing-status-pending{color:#fbbf24;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.09)}.billing-status-requires_review{color:#fb923c;border-color:rgba(251,146,60,.4);background:rgba(251,146,60,.1)}.billing-status-failed,.billing-status-reversed{color:var(--red);border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.09)}@media(max-width:900px){.billing-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-admin-toolbar{align-items:flex-start;flex-direction:column}}
.billing-health-grid{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px}.billing-health-grid>div{min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px}.billing-health-grid span{color:var(--text2);font-size:10px}.billing-health-grid strong{font-size:14px}.billing-health-grid small{grid-column:1/-1;margin-top:4px;color:var(--text2);font-size:9px}.billing-health-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(34,197,94,.1)}.billing-health-dot.warn{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.1)}.billing-admin-toolbar #billing-export{margin-left:auto}.billing-review-note{max-width:260px;color:#fb923c!important;line-height:1.35}.billing-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px}.billing-pagination span{color:var(--text2);font-size:11px}@media(max-width:900px){.billing-health-grid{grid-template-columns:1fr 1fr}.billing-admin-toolbar #billing-export{margin-left:0}}@media(max-width:560px){.billing-health-grid{grid-template-columns:1fr}}
.billing-mode-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:620px;margin:0 0 18px;padding:5px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.billing-mode-nav button{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 16px;border:0;border-radius:8px;background:transparent;color:var(--text2);font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.billing-mode-nav button.active{background:var(--accent);color:#07101b;box-shadow:0 5px 18px rgba(56,189,248,.18)}.billing-mode-nav button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.billing-page-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 12px}.billing-page-title span{color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.12em}.billing-page-title h3{margin:3px 0 2px;font-size:16px}.billing-page-title p{margin:0;color:var(--text2);font-size:11px}.billing-page-title>strong{padding:6px 10px;border:1px solid rgba(56,189,248,.35);border-radius:999px;color:var(--accent);font-size:10px;letter-spacing:.12em}.billing-page-title.test span,.billing-page-title.test>strong{color:#f59e0b}.billing-page-title.test>strong{border-color:rgba(245,158,11,.4)}@media(max-width:560px){.billing-mode-nav{grid-template-columns:1fr}.billing-page-title{align-items:flex-start}.billing-page-title p{max-width:260px}}
/* Credentials and expiration registry */
.expiry-nav-badge{margin-left:auto;min-width:19px;height:19px;padding:0 6px;border-radius:10px;background:#ff4655;color:#fff;font-size:10px;font-weight:800;line-height:19px;text-align:center}
.expiry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}
.expiry-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.expiry-head p{margin:7px 0 0;color:var(--text2);font-size:13px;line-height:1.5}
.expiry-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.expiry-summary article{position:relative;overflow:hidden;padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.expiry-summary article::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--tone)}
.expiry-summary article[data-tone="danger"]{--tone:#ff4655}.expiry-summary article[data-tone="warning"]{--tone:#f5a524}.expiry-summary article[data-tone="unknown"]{--tone:#8b93a7}.expiry-summary article[data-tone="ok"]{--tone:#36c98f}
.expiry-summary strong{display:block;color:var(--tone);font-size:28px;line-height:1}.expiry-summary span{display:block;margin-top:8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}.expiry-summary small{display:block;margin-top:5px;color:var(--text2);font-size:10px}
.expiry-callout{display:flex;align-items:center;gap:12px;padding:13px 15px;margin-bottom:22px;border:1px solid rgba(54,201,143,.25);border-radius:10px;background:rgba(54,201,143,.06)}
.expiry-callout i{color:#36c98f;font-size:21px}.expiry-callout strong,.expiry-callout span{display:block}.expiry-callout strong{font-size:12px}.expiry-callout span{margin-top:2px;color:var(--text2);font-size:11px}
.service-circuit{margin:0 0 22px;padding:15px;border:1px solid #283248;border-radius:12px;background:#0d1421}
.service-circuit-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.service-circuit-head strong,.service-circuit-head span{display:block}.service-circuit-head strong{font-size:12px;text-transform:uppercase;letter-spacing:.7px}.service-circuit-head span{margin-top:3px;color:var(--text2);font-size:10px}
.service-circuit-line{position:relative;display:grid;grid-template-columns:repeat(6,minmax(100px,1fr));gap:10px}.service-circuit-line::before{content:"";position:absolute;left:7%;right:7%;top:10px;height:1px;background:#2a3448}
.service-node{position:relative;padding-top:24px;text-align:center}.service-node i{position:absolute;z-index:1;top:4px;left:50%;width:13px;height:13px;border:3px solid #0d1421;border-radius:50%;background:#7f899d;transform:translateX(-50%);box-shadow:0 0 0 1px #3b465d}.service-node.is-ok i{background:#36c98f;box-shadow:0 0 12px rgba(54,201,143,.55)}.service-node.is-error i{background:#ff4655;box-shadow:0 0 12px rgba(255,70,85,.5)}.service-node.is-waiting i{background:#f5a524}
.service-node strong,.service-node span,.service-node small{display:block}.service-node strong{font-size:10px}.service-node span{margin-top:3px;color:var(--text2);font-size:9px}.service-node.is-ok span{color:#55dca9}.service-node.is-error span{color:#ff6c78}.service-node.is-waiting span{color:#f5b54c}.service-node small{margin-top:3px;color:#68738a;font:8px monospace}
.expiry-groups{display:grid;gap:20px;transition:opacity .2s ease}.expiry-groups.is-refreshing{opacity:.55}
.expiry-group{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.expiry-group-title{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.018);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}
.expiry-group-title small{min-width:22px;padding:3px 7px;border-radius:9px;background:var(--surface2);color:var(--text2);text-align:center}
.expiry-item{border-bottom:1px solid var(--border);animation:expiry-in .22s ease both}.expiry-item:last-child{border-bottom:0}
.expiry-item-main{display:grid;grid-template-columns:74px minmax(230px,1.5fr) minmax(135px,.8fr) 126px auto;align-items:center;gap:14px;padding:14px 16px}
.expiry-status{width:max-content;padding:5px 8px;border-radius:6px;background:#252a35;color:#aab0be;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.expiry-item-critical .expiry-status,.expiry-item-expired .expiry-status,.expiry-item-missing .expiry-status{background:rgba(255,70,85,.14);color:#ff6572}.expiry-item-warning .expiry-status{background:rgba(245,165,36,.14);color:#f5b54c}.expiry-item-ok .expiry-status{background:rgba(54,201,143,.13);color:#4cd9a2}
.expiry-name strong,.expiry-name small,.expiry-due strong,.expiry-due small{display:block}.expiry-name strong,.expiry-due strong{font-size:12px}.expiry-name small,.expiry-due small{margin-top:4px;color:var(--text2);font-size:10px;line-height:1.35}
.expiry-presence{color:#72d6aa;font-size:10px;font-weight:700}.expiry-presence.is-missing{color:#ff6572}
.expiry-form{display:grid;grid-template-columns:180px 180px 190px minmax(230px,1fr) auto;align-items:end;gap:12px;padding:14px 16px 16px 104px;border-top:1px dashed var(--border);background:rgba(0,0,0,.12)}
.expiry-form[hidden]{display:none}.expiry-form label>span{display:block;margin-bottom:6px;color:var(--text2);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.expiry-configured{display:flex!important;align-items:center;gap:8px;min-height:38px}.expiry-configured span{margin:0!important;text-transform:none!important;font-size:10px!important}.expiry-configured input{accent-color:#36c98f}
.expiry-form-actions{display:flex;gap:7px}.expiry-loading{padding:32px;border:1px dashed var(--border);border-radius:12px;color:var(--text2);font-size:12px;text-align:center}.expiry-error{color:#ff6572}
.expiry-checked{margin-top:14px;color:var(--text2);font-size:10px;text-align:right}
.expiry-history{margin-top:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.expiry-history summary{padding:13px 15px;cursor:pointer;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.expiry-history summary span{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:8px;background:var(--surface2);color:var(--text2);font-size:9px}.expiry-history[open] summary{border-bottom:1px solid var(--border)}
.expiry-history-row{display:grid;grid-template-columns:125px minmax(190px,1fr) minmax(260px,2fr);gap:12px;padding:11px 15px;border-bottom:1px solid var(--border);align-items:center}.expiry-history-row:last-child{border-bottom:0}.expiry-history-row span,.expiry-history-row small{color:var(--text2);font-size:10px}.expiry-history-row strong{font-size:11px}
@keyframes expiry-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (max-width:1100px){.expiry-summary{grid-template-columns:repeat(2,1fr)}.expiry-item-main{grid-template-columns:70px 1fr 140px auto}.expiry-presence{display:none}.expiry-form{grid-template-columns:repeat(2,1fr);padding-left:16px}.expiry-notes{grid-column:1/-1}.service-circuit-line{grid-template-columns:repeat(3,1fr)}.service-circuit-line::before{display:none}}
@media (max-width:720px){.expiry-head{display:block}.expiry-head .btn{margin-top:12px}.expiry-summary{grid-template-columns:1fr 1fr}.expiry-item-main{grid-template-columns:66px 1fr auto}.expiry-due{grid-column:2}.expiry-form{grid-template-columns:1fr}.expiry-notes{grid-column:auto}}
@media (prefers-reduced-motion:reduce){.expiry-item{animation:none}.expiry-groups{transition:none}}
.admin-user-search{position:relative;display:flex;align-items:center;min-height:46px;margin-bottom:6px;border:1px solid rgba(80,214,255,.34);border-radius:10px;background:linear-gradient(180deg,rgba(23,35,55,.96),rgba(15,25,41,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.025);transition:border-color .16s ease,box-shadow .16s ease}
.admin-user-search:focus-within{border-color:#50d6ff;box-shadow:0 0 0 3px rgba(80,214,255,.12),inset 0 1px 0 rgba(255,255,255,.04)}
.admin-user-search>i{margin-left:14px;color:#6f89aa;font-size:14px;pointer-events:none}
.admin-user-search input{width:100%;min-width:0;padding:12px 42px 12px 11px;border:0;outline:0;background:transparent;color:var(--text);font:600 14px/1.3 inherit}
.admin-user-search input::placeholder{color:#70839f;font-weight:500}
.admin-user-search input::-webkit-search-cancel-button{display:none}
.admin-user-search button{position:absolute;right:9px;display:none;width:28px;height:28px;padding:0;border:0;border-radius:7px;background:rgba(255,255,255,.06);color:#a9b8cc;cursor:pointer;font-size:20px;line-height:1}
.admin-user-search.has-value:not(.is-loading) button{display:grid;place-items:center}
.admin-user-search-spinner{position:absolute;right:15px;display:none;width:16px;height:16px;border:2px solid rgba(80,214,255,.2);border-top-color:#50d6ff;border-radius:50%;animation:admin-user-search-spin .65s linear infinite}
.admin-user-search.is-loading .admin-user-search-spinner{display:block}
.admin-user-search-hint{min-height:16px;margin:0 2px 10px;color:#70839f;font-size:10px;line-height:1.4}
@keyframes admin-user-search-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.admin-user-search,.admin-user-search-spinner{transition:none;animation:none}}

/* Version cards are populated dynamically, so the grid must handle any release count. */
.activity-version-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.activity-version-grid article.is-current{border-color:rgba(52,211,153,.42);background:rgba(52,211,153,.07)}
.activity-version-grid article.is-current span{color:#54e6ad}

.ci-review-reminder{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:13px 15px;border:1px solid #29485c;border-radius:8px;background:#10202b}.ci-review-reminder>div{display:flex;align-items:center;gap:11px}.ci-review-reminder>div>i{color:#62d2f4;font-size:18px}.ci-review-reminder span strong,.ci-review-reminder span small{display:block}.ci-review-reminder span strong{color:var(--text);font-size:11px}.ci-review-reminder span small{margin-top:3px;color:var(--text2);font-size:9px}.ci-review-reminder.soon{border-color:#755828;background:#292112}.ci-review-reminder.soon>div>i{color:#f2b84b}.ci-review-reminder.overdue{border-color:#71333a;background:#29161a}.ci-review-reminder.overdue>div>i{color:#ff6673}@media(max-width:700px){.ci-review-reminder{align-items:stretch;flex-direction:column}.ci-review-reminder .btn{justify-content:center}}

/* Market radar */
.ci-shell{max-width:1120px;margin:auto}.ci-head{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:22px 24px;border:1px solid #27465c;border-radius:11px;background:linear-gradient(120deg,#101d2a,var(--surface) 58%,#171c27);box-shadow:inset 3px 0 #39bde8}.ci-head span{color:#62d2f4;font-size:10px;font-weight:900;letter-spacing:.15em}.ci-head h2{margin:5px 0;color:var(--text);font-size:22px}.ci-head p{margin:0;color:var(--text2);font-size:12px}.ci-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.ci-summary article{padding:14px 16px;border:1px solid var(--border);border-top:2px solid #39bde8;border-radius:8px;background:var(--surface)}.ci-summary article.risk{border-top-color:#ff5b68}.ci-summary article.growth{border-top-color:#f2b84b}.ci-summary article.partner{border-top-color:#3ed6ad}.ci-summary small,.ci-summary strong{display:block}.ci-summary small{color:var(--text2);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.ci-summary strong{margin-top:7px;color:var(--text);font-size:22px}.ci-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.ci-toolbar>.finput{max-width:260px}.ci-filters{display:flex;gap:6px}.ci-filters button{padding:8px 11px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text2);font-size:10px;cursor:pointer}.ci-filters button.active{border-color:#39bde8;color:#8de5ff;background:#102535}.ci-list{display:grid;gap:10px}.ci-card{padding:16px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.ci-card-top{display:grid;grid-template-columns:1.1fr .8fr 1.4fr 36px;gap:10px;align-items:end}.ci-field span{display:block;margin-bottom:6px;color:var(--text2);font-size:9px;font-weight:800;text-transform:uppercase}.ci-card-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:11px}.ci-score{display:flex;gap:8px;align-items:center}.ci-score input{width:100%;accent-color:#39bde8}.ci-score output{min-width:18px;color:var(--text);font-weight:800}.ci-notes{margin-top:10px}.ci-remove{width:35px;height:35px;border:1px solid #51323b;border-radius:7px;background:#241418;color:#ff7d87;cursor:pointer}.ci-signal{display:inline-block;margin-top:10px;padding:4px 7px;border-radius:20px;background:#192431;color:#8da2b5;font-size:9px;font-weight:800}.ci-signal.hot{background:#352314;color:#f2b84b}.ci-empty{display:none;place-items:center;padding:45px;border:1px dashed var(--border);color:var(--text2);text-align:center}.ci-empty.visible{display:grid}.ci-empty i{font-size:28px;color:#3d7895}.ci-empty strong{margin-top:8px;color:var(--text)}.ci-empty span{margin-top:5px;font-size:10px}.ci-actions{position:sticky;bottom:12px;display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:rgba(14,18,26,.94);backdrop-filter:blur(12px)}.ci-actions span{margin-right:auto;color:var(--text2);font-size:11px}@media(max-width:900px){.ci-summary{grid-template-columns:repeat(2,1fr)}.ci-card-top,.ci-card-grid{grid-template-columns:1fr 1fr}.ci-card-top .ci-remove{grid-column:2;grid-row:1}.ci-toolbar{align-items:stretch;flex-direction:column}.ci-toolbar>.finput{max-width:none}.ci-filters{overflow:auto}}

/* Twitch channel priority: the list order is the live-player selection order. */
.streamer-row{position:relative;grid-template-columns:42px minmax(140px,.8fr) minmax(220px,1.4fr) 80px 34px 36px;transition:border-color .16s,opacity .16s,transform .16s}.streamer-row.is-dragging{opacity:.42;transform:scale(.995)}
.streamer-row.is-drop-before:before,.streamer-row.is-drop-after:after{content:"";position:absolute;left:8px;right:8px;height:2px;border-radius:2px;background:#a970ff;box-shadow:0 0 10px rgba(169,112,255,.75)}.streamer-row.is-drop-before:before{top:-7px}.streamer-row.is-drop-after:after{bottom:-7px}
.streamer-drag-handle{align-self:center;display:flex;align-items:center;justify-content:center;gap:1px;width:38px;height:34px;border:1px solid #513876;border-radius:7px;color:#b98aff;background:#1b1328;cursor:grab}.streamer-drag-handle:active{cursor:grabbing}.streamer-drag-handle i{font-size:13px}.streamer-drag-handle b{font-size:10px}
.streamer-order-actions{display:grid;gap:3px;align-self:center}.streamer-order-actions button{display:grid;place-items:center;width:30px;height:16px;padding:0;border:1px solid #423159;border-radius:4px;color:#b98aff;background:#191524;cursor:pointer;font-size:9px}.streamer-order-actions button:hover:not(:disabled){border-color:#9146ff;background:#251938}.streamer-order-actions button:disabled{opacity:.28;cursor:default}
@media(max-width:850px){.streamer-row{grid-template-columns:42px 1fr 34px 36px}.streamer-row .streamer-field-url{grid-column:2/5}.streamer-row .streamer-enabled{grid-column:2}.streamer-order-actions{grid-column:3;grid-row:1}.streamer-remove{grid-column:4;grid-row:1}}@media(prefers-reduced-motion:reduce){.streamer-row{transition:none}}

/* Per-lineup reward receipt */
.lineup-reward-field{position:relative;overflow:hidden}.lineup-reward-field::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#52d7ff}.lineup-reward-value{display:flex;align-items:center;justify-content:space-between;gap:10px}.lineup-reward-open{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid rgba(82,215,255,.4);border-radius:7px;background:#102738;color:#78e4ff;font:800 12px/1 inherit;cursor:pointer}.lineup-reward-open:hover{border-color:#78e4ff;background:#153247}.lineup-reward-open:focus-visible{outline:2px solid #78e4ff;outline-offset:2px}.lineup-reward-state{font-size:11px;font-weight:800}.lineup-reward-state.yes{color:#54e6ad}.lineup-reward-state.no{color:#ff7d87}.lineup-reward-state.wait{color:#f2b84b}
.reward-receipt-backdrop{position:fixed;inset:0;z-index:10080;display:grid;place-items:center;padding:20px;background:rgba(3,8,17,.82);backdrop-filter:blur(7px)}.reward-receipt{width:min(570px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;border:1px solid #2d7189;border-radius:18px;background:#0d1929;box-shadow:0 24px 80px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.04)}.reward-receipt-head{display:flex;justify-content:space-between;gap:18px;padding:22px 22px 16px}.reward-receipt-head small{display:block;color:#6f89aa;font-size:9px;font-weight:900;letter-spacing:.13em}.reward-receipt-head h3{margin:5px 0 0;color:#75e5f7;font-size:20px}.reward-receipt-close{width:34px;height:34px;border:1px solid #30445f;border-radius:9px;background:#111e30;color:#aebed2;cursor:pointer;font-size:20px}.reward-receipt-body{padding:0 22px 22px}.reward-receipt-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.reward-receipt-summary article,.reward-receipt-lines{border:1px solid #263d58;border-radius:10px;background:#101d2f}.reward-receipt-summary article{padding:12px}.reward-receipt-summary span,.reward-receipt-comment span{display:block;color:#8194ad;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.reward-receipt-summary strong{display:block;margin-top:6px;font-size:15px}.reward-receipt-summary strong.yes{color:#54e6ad}.reward-receipt-summary strong.no{color:#ff7d87}.reward-receipt-lines{padding:9px 12px}.reward-receipt-line{display:flex;justify-content:space-between;gap:16px;padding:7px 0;color:#9cadc2;font-size:11px}.reward-receipt-line+ .reward-receipt-line{border-top:1px solid rgba(129,148,173,.12)}.reward-receipt-line b.yes{color:#54e6ad}.reward-receipt-line b.no{color:#ff7d87}.reward-receipt-line b.wait{color:#f2b84b}.reward-receipt-total{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:14px;border:1px solid rgba(82,215,255,.38);border-radius:10px;background:#102738}.reward-receipt-total span{color:#9cadc2;font-size:11px}.reward-receipt-total strong{color:#75e5f7;font-size:22px}.reward-receipt-comment{margin-top:12px;padding:12px;border:1px solid #263d58;border-radius:10px;background:#111c2d}.reward-receipt-comment p{margin:7px 0 0;color:#c3cfdf;font-size:12px;line-height:1.5;white-space:pre-wrap}@media(max-width:560px){.reward-receipt-summary{grid-template-columns:1fr}.reward-receipt-backdrop{padding:10px}.reward-receipt-head,.reward-receipt-body{padding-left:15px;padding-right:15px}}
/* Project data map — a circuit-board view of code and runtime data. */
.data-map-page{--dm-cyan:#50d6ff;--dm-mint:#45c8a0;--dm-red:#ff5d69;max-width:1420px;margin:0 auto;padding-bottom:60px}
.data-map-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:18px;padding:8px 2px 20px;border-bottom:1px solid var(--border)}
.data-map-kicker,.data-map-section-head span{color:var(--dm-cyan);font:800 10px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}
.data-map-hero h1{margin:7px 0 8px;font-size:clamp(26px,4vw,44px);line-height:1.05;letter-spacing:-.035em}.data-map-hero p{max-width:790px;margin:0;color:var(--text2);font-size:13px;line-height:1.65}.data-map-hero p strong{color:var(--text)}
.data-map-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px 14px;min-width:280px;color:var(--text2);font-size:10px}.data-map-legend span{display:flex;align-items:center;gap:6px}.dm-dot{width:8px;height:8px;border-radius:50%;background:#6f8cab}.dm-dot--truth{background:var(--dm-mint);box-shadow:0 0 10px rgba(69,200,160,.55)}.dm-dot--copy{background:var(--dm-cyan)}.dm-dot--risk{background:var(--dm-red);box-shadow:0 0 10px rgba(255,93,105,.55)}
.data-map-alert{display:flex;gap:13px;align-items:flex-start;margin:18px 0 24px;padding:15px 17px;border:1px solid rgba(255,93,105,.42);border-left:4px solid var(--dm-red);border-radius:12px;background:linear-gradient(100deg,rgba(255,93,105,.11),rgba(255,93,105,.025));color:#ffc1c6}.data-map-alert>i{font-size:20px}.data-map-alert strong,.data-map-alert span{display:block}.data-map-alert strong{margin-bottom:4px;font-size:12px}.data-map-alert span{color:#bd9299;font-size:11px;line-height:1.55}.data-map-alert code{color:#ffdce0;font:10px ui-monospace,SFMono-Regular,Consolas,monospace}
.data-map-section{margin-top:18px;padding:20px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,rgba(20,32,50,.96),rgba(11,20,33,.98));box-shadow:0 20px 55px rgba(0,0,0,.13)}.data-map-section-head{margin-bottom:14px}.data-map-section-head h2{margin:6px 0 0;font-size:20px;letter-spacing:-.015em}
.data-map-canvas{overflow-x:auto;border:1px solid rgba(111,140,171,.22);border-radius:13px;background-color:#0a1321;background-image:linear-gradient(rgba(80,214,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(80,214,255,.035) 1px,transparent 1px);background-size:24px 24px}.data-map-canvas svg{display:block;width:100%;min-width:920px;height:auto}.data-map-canvas--runtime{background-image:radial-gradient(circle at 50% 42%,rgba(69,200,160,.07),transparent 40%),linear-gradient(rgba(80,214,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(80,214,255,.035) 1px,transparent 1px)}
.dm-node rect{fill:#111e30;stroke:#35506d;stroke-width:1.5}.dm-node--truth rect{stroke:#45c8a0;filter:url(#dm-glow)}.dm-node--copy rect{stroke:#50d6ff}.dm-node--risk rect{stroke:#ff5d69;stroke-width:2}.dm-node-tag{fill:#7890aa;font:800 10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.2px}.dm-node--truth .dm-node-tag{fill:#65ddba}.dm-node--risk .dm-node-tag{fill:#ff7c86}.dm-node-title{fill:#eef6ff;font:700 17px system-ui,sans-serif}.dm-node-copy{fill:#8496aa;font:11px system-ui,sans-serif}.dm-arrow-label{fill:#7890aa;font:10px ui-monospace,SFMono-Regular,Consolas,monospace}.dm-arrow-label--risk{fill:#ff7c86}
.dm-device-boundary rect{fill:rgba(80,214,255,.018);stroke:rgba(80,214,255,.34);stroke-width:1.5;stroke-dasharray:9 7}.dm-device-boundary text{fill:#72dfff;font:800 10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}.dm-device-boundary text+text{fill:#607993;font-size:9px;text-anchor:end}
.dm-node,.dm-device-boundary{cursor:pointer;outline:none}.dm-node rect,.dm-device-boundary rect{transition:stroke .16s ease,fill .16s ease,filter .16s ease}.dm-node:hover rect,.dm-node:focus-visible rect,.dm-node.is-selected rect{stroke:#fff;fill:#172a41;filter:drop-shadow(0 0 7px rgba(80,214,255,.42))}.dm-device-boundary:hover rect,.dm-device-boundary:focus-visible rect,.dm-device-boundary.is-selected rect{stroke:#fff;fill:rgba(80,214,255,.055)}
.dm-detail-backdrop{position:fixed;inset:0;z-index:10120;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(3,8,16,.78);backdrop-filter:blur(5px);opacity:0;transition:opacity .18s ease}.dm-detail-backdrop[hidden]{display:none}.dm-detail-backdrop.is-open{opacity:1}.dm-detail{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:26px;background:linear-gradient(160deg,#111f32,#091321);border:1px solid #315371;border-radius:20px;box-shadow:0 28px 90px rgba(0,0,0,.58),0 0 0 1px rgba(80,214,255,.06);transform:translateY(18px) scale(.985);transition:transform .18s ease}.dm-detail-backdrop.is-open .dm-detail{transform:none}.dm-detail header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--border)}.dm-detail header span{color:#65ddba;font:800 10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}.dm-detail h2{margin:7px 0 0;font-size:25px}.dm-detail header button{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border:1px solid var(--border2);border-radius:9px;background:var(--surface2);color:var(--text);font-size:22px;cursor:pointer}.dm-detail-purpose{margin:18px 0;color:#bcc9d8;font-size:13px;line-height:1.65}.dm-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dm-detail-grid section{padding:14px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.018)}.dm-detail-grid h3{margin:0 0 9px;color:#7f95ad;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.dm-detail-grid ul{display:grid;gap:7px;margin:0;padding-left:17px}.dm-detail-grid li,.dm-detail-grid p{margin:0;color:#c6d2df;font-size:11px;line-height:1.5}.dm-detail-grid code{color:#7fe1ff;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.dm-detail-warning{margin-top:12px;padding:13px 14px;border:1px solid rgba(255,93,105,.35);border-left:3px solid #ff5d69;border-radius:9px;background:rgba(255,93,105,.08);color:#f1b4ba;font-size:11px;line-height:1.55}.dm-detail-warning::before{content:'ВАЖНО';display:block;margin-bottom:4px;color:#ff7c86;font-size:9px;font-weight:900;letter-spacing:.12em}
.data-map-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.data-map-notes article{padding:13px 14px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.018)}.data-map-notes article.is-risk{border-color:rgba(255,93,105,.3)}.data-map-notes b{display:block;margin-bottom:5px;font-size:11px}.data-map-notes p{margin:0;color:var(--text2);font-size:10px;line-height:1.5}
.data-map-table-wrap{overflow-x:auto;margin-top:14px}.data-map-table{width:100%;min-width:800px;border-collapse:collapse;font-size:11px}.data-map-table th{padding:9px 12px;border-bottom:1px solid var(--border2);color:#71849a;text-align:left;text-transform:uppercase;letter-spacing:.08em;font-size:9px}.data-map-table td{padding:13px 12px;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:top}.data-map-table tbody tr:last-child td{border-bottom:0}.data-map-table td:first-child{color:var(--text)}.dm-status{display:inline-flex;padding:4px 7px;border-radius:6px;background:rgba(111,140,171,.13);color:#9eb1c6;font-size:9px;font-weight:800}.dm-status--truth{background:rgba(69,200,160,.12);color:#65ddba}.dm-status--copy{background:rgba(80,214,255,.11);color:#73ddff}.dm-status--risk{background:rgba(255,93,105,.11);color:#ff8992}
@media(max-width:800px){.data-map-hero{display:block}.data-map-legend{justify-content:flex-start;min-width:0;margin-top:16px}.data-map-section{padding:13px}.data-map-notes{grid-template-columns:1fr}.data-map-canvas svg{min-width:860px}}
@media(max-width:620px){.dm-detail-backdrop{padding:12px}.dm-detail{max-height:calc(100vh - 24px);padding:18px;border-radius:15px}.dm-detail-grid{grid-template-columns:1fr}.dm-detail h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.dm-node--truth rect{filter:none}}
/* Opera retains blurred compositor surfaces aggressively in this long-lived
   SPA. Preserve layout and colour while avoiding renderer/GPU exhaustion. */
html.opera-browser *,html.opera-browser *::before,html.opera-browser *::after{
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  animation:none!important;
  filter:none!important;
  transition:none!important;
  will-change:auto!important;
}
