@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
/* Windows не рисует флаги стран и подставляет вместо них код — «RU», «GB».
   Noto Color Emoji отдаёт нормальные флаги везде, где шрифта нет. */
@import url('https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap');

:root {
    --bg-deep: #07090f;
    --bg-surface: #0d1117;
    --bg-card: rgba(22,27,40,0.65);
    --bg-hover: rgba(30,38,55,0.8);
    --primary: #00d2ff;
    --primary-dim: rgba(0,210,255,0.12);
    --gold: #f59e0b;
    --gold-dim: rgba(245,158,11,0.12);
    --danger: #ef4444;
    --danger-dim: rgba(239,68,68,0.12);
    --ice: #60a5fa;
    --ice-dim: rgba(96,165,250,0.12);
    --warn: #f97316;
    --warn-dim: rgba(249,115,22,0.12);
    --success: #22c55e;
    --success-dim: rgba(34,197,94,0.12);
    --owner: #a855f7;
    --text: #e2e8f0;
    --text-dim: #64748b;
    --text-muted: #475569;
    --border: rgba(255,255,255,0.06);
    --border-focus: rgba(0,210,255,0.4);
    --shadow: 0 4px 24px rgba(0,0,0,0.4);
    --radius: 12px;
    --radius-sm: 8px;
    --radius-xs: 6px;
    --transition: 0.2s cubic-bezier(.4,0,.2,1);
}

*{margin:0;padding:0;box-sizing:border-box}
body{
    font-family:'Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
    background:var(--bg-deep);color:var(--text);
    overflow-x:hidden;min-height:100vh;
    background-image:
        radial-gradient(ellipse 80% 50% at 20% 40%, rgba(0,210,255,0.07) 0%, transparent 70%),
        radial-gradient(ellipse 60% 40% at 80% 20%, rgba(99,102,241,0.06) 0%, transparent 70%),
        radial-gradient(ellipse 50% 60% at 60% 80%, rgba(168,85,247,0.05) 0%, transparent 70%),
        radial-gradient(ellipse 40% 30% at 10% 90%, rgba(34,197,94,0.04) 0%, transparent 70%);
    background-attachment:fixed;
}
.mono{font-family:'JetBrains Mono',monospace;font-size:0.85em}

/* ─── Login ─── */
.login-container{display:flex;justify-content:center;align-items:center;height:100vh;padding:20px;background:radial-gradient(ellipse at 30% 20%,rgba(0,210,255,0.1),transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(168,85,247,0.08),transparent 50%)}
.login-card{width:100%;max-width:380px;padding:48px 36px;text-align:center}
.logo{font-size:1.8rem;font-weight:700;letter-spacing:3px;background:linear-gradient(135deg,var(--primary),var(--owner));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:6px}
.subtitle{color:var(--text-dim);margin-bottom:32px;font-size:0.85rem;letter-spacing:1px}

/* ─── Glass Card ─── */
.glass{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 2px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.03)}

/* ─── Inputs ─── */
input,select,textarea{
    width:100%;padding:10px 14px;background:rgba(0,0,0,0.3);border:1px solid var(--border);
    border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:0.9rem;
    outline:none;transition:border var(--transition);
}
input:focus,select:focus,textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-dim)}
textarea{resize:vertical;min-height:80px}
/* Native <option> uses OS-default colors — force the dark theme everywhere */
select{color-scheme:dark}
select option,select optgroup{background-color:#1a1f2e;color:#e2e8f0}
select option:checked,select option:hover{background-color:#2a3142;color:#fff}

/* ─── Bots Registry — mobile-adaptive grid ─── */
.bots-registry-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));
    gap:16px;
}
.bots-registry-grid > .glass{min-width:0;overflow-wrap:anywhere}
.bot-registry-header{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-bottom:12px}
.bot-card-identity{display:flex;gap:10px;align-items:flex-start;flex:1 1 180px;min-width:0}
.bot-card-details{flex:1;min-width:0}
.bot-card-title{font-size:1.1em;font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.bot-card-name{flex:1 1 100px;min-width:0}
.bot-card-status{flex:1 1 120px;min-width:0;text-align:right}
@media (max-width:680px){
    .bots-registry-grid{grid-template-columns:1fr;gap:12px}
    .bots-registry-grid > .glass{padding:12px !important;border-radius:10px !important}
    .bots-registry-grid > .glass .btn{padding:6px 10px;font-size:.78rem}
    .modal-overlay > .glass{max-width:96% !important;max-height:90vh !important;padding:16px !important}
}

/* ─── Buttons ─── */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 20px;border:none;border-radius:var(--radius-sm);
    font-family:inherit;font-weight:600;font-size:0.85rem;cursor:pointer;
    transition:all var(--transition);color:#fff;
    /* Фон обязателен прямо здесь: без него кнопка без модификатора —
       белый текст на прозрачном, то есть невидимый. */
    background:linear-gradient(135deg,#0ea5e9,#6366f1);
}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
.btn-primary{background:linear-gradient(135deg,#0ea5e9,#6366f1)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(14,165,233,0.3)}
.btn-danger{background:var(--danger)}
.btn-danger:hover{background:#dc2626}
.btn-success{background:var(--success)}
.btn-success:hover{background:#16a34a}
.btn-warn{background:var(--warn)}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-dim)}
.btn-ghost:hover{border-color:var(--text-dim);color:var(--text)}
.btn-sm{padding:6px 12px;font-size:0.78rem;border-radius:var(--radius-xs)}
.btn-icon{width:32px;height:32px;padding:0;border-radius:var(--radius-xs);background:transparent;border:1px solid var(--border);color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center}
.btn-icon:hover{border-color:var(--primary);color:var(--primary)}

/* ─── Layout ─── */
.dashboard-container{display:flex;height:100vh}
.sidebar{
    width:220px;min-width:220px;
    background:linear-gradient(180deg, rgba(13,17,23,0.98) 0%, rgba(10,12,18,0.99) 100%);
    border-right:1px solid var(--border);padding:20px 12px;
    display:flex;flex-direction:column;gap:4px;
    box-shadow:2px 0 20px rgba(0,0,0,0.3);
}
.sidebar .logo{font-size:1.2rem;margin-bottom:24px;padding:0 12px;text-align:left}
.project-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:3px;margin:0 8px 14px;padding:3px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-hover)}
.project-switcher-item{padding:7px 8px;border-radius:calc(var(--radius-sm) - 3px);color:var(--text-dim);font-size:.76rem;font-weight:700;text-align:center;text-decoration:none;transition:color var(--transition),background var(--transition)}
.project-switcher-item:hover{color:var(--text)}
.project-switcher-item.active{background:var(--primary-dim);color:var(--primary)}
.project-switcher-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.main-content{flex:1;overflow-y:auto;padding:28px 32px}

/* ─── Nav Items ─── */
.nav-item{
    display:flex;align-items:center;gap:10px;
    padding:10px 14px;border-radius:var(--radius-sm);
    color:var(--text-dim);text-decoration:none;font-size:0.88rem;font-weight:500;
    cursor:pointer;transition:all var(--transition);position:relative;
}
.nav-item svg,.nav-item i{width:18px;height:18px;flex-shrink:0}
.nav-item:hover{background:var(--bg-hover);color:var(--text)}
.nav-item.active{background:var(--primary-dim);color:var(--primary)}
.admin-links-label{margin:14px 14px 6px;padding-top:14px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.nav-badge{
    position:absolute;right:10px;min-width:20px;height:20px;
    background:var(--danger);color:#fff;border-radius:10px;
    font-size:0.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;
}

/* ─── Header ─── */
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.page-title{font-size:1.5rem;font-weight:700;letter-spacing:-0.5px}
.status-pill{
    display:flex;align-items:center;gap:8px;padding:8px 16px;
    border-radius:20px;font-size:0.78rem;font-weight:500;
}

/* ─── Bento Grid ─── */
.bento{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.bento-wide{grid-column:span 2}
.stat-card{padding:20px 24px;display:flex;flex-direction:column;gap:6px}
.stat-label{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim)}
.stat-value{font-size:2rem;font-weight:700;font-family:'JetBrains Mono',monospace}
.stat-trend{font-size:0.75rem;font-weight:500}
.stat-trend.up{color:var(--success)}
.stat-trend.down{color:var(--danger)}

/* ─── Status Dot ─── */
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.status-dot.online{background:var(--success);box-shadow:0 0 8px var(--success)}
.status-dot.offline{background:var(--danger)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.status-dot.online{animation:pulse 2s ease-in-out infinite}

/* ─── Badges ─── */
.badge{
    display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;
    font-size:0.7rem;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;
}
.badge-vip{background:var(--gold-dim);color:var(--gold)}
.badge-admin{background:var(--primary-dim);color:var(--primary)}
.badge-owner{background:rgba(168,85,247,0.12);color:var(--owner)}
.badge-ban{background:var(--danger-dim);color:var(--danger)}
.badge-frozen{background:var(--ice-dim);color:var(--ice)}
.badge-pending{background:var(--warn-dim);color:var(--warn)}
.badge-lv{background:rgba(255,255,255,0.05);color:var(--text-dim)}

/* ─── Table ─── */
.data-table{width:100%;border-collapse:separate;border-spacing:0}
.data-table th{
    text-align:left;padding:10px 14px;font-size:0.72rem;font-weight:600;
    text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);
    border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-surface);z-index:1;
}
.data-table td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:0.88rem;vertical-align:middle}
.data-table tr{transition:background var(--transition)}
.data-table tbody tr:hover{background:var(--bg-hover);cursor:pointer}

/* ─── Bot Card ─── */
.bot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.bot-card{padding:24px;display:flex;flex-direction:column;gap:12px}
.bot-card-header{display:flex;align-items:center;gap:14px}
.bot-avatar{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-hover);display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.bot-meta h3{font-size:1rem;font-weight:600}
.bot-meta p{font-size:0.8rem;color:var(--text-dim)}
.bot-stats-row{display:flex;gap:20px;font-size:0.82rem;color:var(--text-dim)}
.bot-actions{display:flex;gap:8px;margin-top:auto}

/* ─── Chat ─── */
.chat-layout{display:flex;height:calc(100vh - 120px);overflow:hidden}
.chat-sidebar{width:280px;border-right:1px solid var(--border);display:flex;flex-direction:column}
.chat-search{padding:12px}
.chat-list{flex:1;overflow-y:auto}
.chat-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background var(--transition);border-bottom:1px solid var(--border)}
.chat-item:hover,.chat-item.active{background:var(--bg-hover)}
.chat-item-avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-hover);display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:600;flex-shrink:0}
.chat-item-info{flex:1;min-width:0}
.chat-item-name{font-size:0.85rem;font-weight:600}
.chat-item-preview{font-size:0.75rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-item-time{font-size:0.7rem;color:var(--text-muted);flex-shrink:0}
.chat-main{flex:1;display:flex;flex-direction:column}
.chat-messages{flex:1;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.msg{max-width:65%;padding:10px 14px;border-radius:12px;font-size:0.88rem;line-height:1.5}
.msg-in{align-self:flex-start;background:rgba(255,255,255,0.05);border-bottom-left-radius:4px}
.msg-out{align-self:flex-end;background:linear-gradient(135deg,#0ea5e9,#6366f1);color:#fff;border-bottom-right-radius:4px}
.msg-time{font-size:0.65rem;color:var(--text-muted);margin-top:4px}
.chat-input-bar{padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center}
.chat-input-bar input{flex:1}
.chat-empty{flex:1;display:flex;justify-content:center;align-items:center;color:var(--text-muted);font-size:0.9rem}
.chat-header-bar{padding:16px;border-bottom:1px solid rgba(255,255,255,0.05);display:flex;align-items:center;justify-content:space-between;gap:12px}
.chat-back-btn{display:none}

/* ─── Drawer (side panel) ─── */
.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:50;opacity:0;pointer-events:none;transition:opacity var(--transition)}
.drawer-overlay.open{opacity:1;pointer-events:auto}
.drawer{
    position:fixed;top:0;right:-520px;width:min(480px,100vw);height:100vh;
    background:var(--bg-surface);border-left:1px solid var(--border);
    z-index:51;transition:right 0.3s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;padding:24px;
}
.drawer.open{right:0}
.drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.drawer-section{margin-bottom:20px}
.drawer-section-title{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:10px}
.drawer-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:0.85rem}
.drawer-row-label{color:var(--text-dim)}
.drawer-actions{display:flex;flex-wrap:wrap;gap:6px}

/* ─── Pending Card ─── */
.pending-card{padding:20px;margin-bottom:12px}
.pending-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.pending-info h3{font-size:0.95rem;font-weight:600}
.pending-info p{font-size:0.8rem;color:var(--text-dim)}
.pending-progress{height:6px;background:rgba(255,255,255,0.05);border-radius:3px;overflow:hidden;margin:10px 0}
.pending-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:3px;transition:width 0.5s ease}
.pending-actions{display:flex;gap:8px;margin-top:12px}

/* ─── System Metrics ─── */
.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.metric-card{padding:18px}
.metric-bar{height:6px;background:rgba(255,255,255,0.05);border-radius:3px;overflow:hidden;margin:10px 0}
.metric-fill{height:100%;border-radius:3px;transition:width 1s ease}
.metric-label{font-size:0.75rem;color:var(--text-dim);font-weight:500}
.metric-value{font-size:1.1rem;font-weight:700;font-family:'JetBrains Mono',monospace}

/* ─── Log Stream ─── */
.log-stream{max-height:400px;overflow-y:auto;padding:16px;font-family:'JetBrains Mono',monospace;font-size:0.75rem;line-height:1.8}
.log-line{padding:2px 0;border-bottom:1px solid rgba(255,255,255,0.02)}
.log-error{color:var(--danger)}
.log-warn{color:var(--warn)}
.log-info{color:var(--text-dim)}

/* ─── Filter Bar ─── */
.filter-bar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;align-items:center}
.filter-bar input{max-width:300px}
.filter-bar select{max-width:180px}
.filter-count{font-size:0.8rem;color:var(--text-dim);margin-left:auto}

/* Users workspace */
.users-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.users-toolbar input{flex:1 1 240px;max-width:340px}
.users-toolbar select{flex:0 1 220px;width:auto;min-width:180px}
.users-toolbar .btn{min-height:40px;white-space:nowrap}
.users-list-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--text-dim);font-size:.78rem;margin-bottom:9px}
.users-table-wrap{overflow-x:auto}
.users-table{min-width:940px}
.users-table th{padding:13px 16px}
.users-table td{padding:14px 16px;line-height:1.4}
.users-table td:first-child{min-width:180px}
.users-table td:nth-child(3){min-width:175px}
.users-table td:nth-child(5){min-width:155px}
.users-table td strong{font-weight:600}
.users-table tbody tr:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:var(--bg-hover)}
.users-status{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.users-subline{display:block;margin-top:3px;color:#91a0b7;font-size:.76rem;line-height:1.35}
.users-id{display:block;margin-top:2px;color:var(--text-dim);font-size:.7rem}
.users-quiet{color:var(--text-dim)}
.users-expired{color:#e9a3a3}
.users-empty{text-align:center;padding:34px 16px !important;color:#a4b1c4}
.users-empty .btn{margin-left:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.user-profile-head{display:flex;gap:13px;align-items:center;padding:4px 0 18px;border-bottom:1px solid var(--border);margin-bottom:17px}
.user-profile-avatar{width:48px;height:48px;flex:none;border-radius:14px;background:var(--primary-dim);color:var(--primary);display:grid;place-items:center;font-size:1.2rem;font-weight:700}
.user-profile-identity{min-width:0;display:flex;flex-direction:column;gap:2px}
.user-profile-identity strong{font-size:1.08rem;overflow-wrap:anywhere}
.user-profile-identity span{color:#9daec4;font-size:.78rem;overflow-wrap:anywhere}
.user-profile-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:12px;overflow:hidden;margin-bottom:22px}
.user-profile-highlights>div{background:#151c29;padding:13px 11px;display:flex;flex-direction:column;gap:4px}
.user-profile-highlights small{font-size:.7rem;color:#9daec4}
.user-profile-highlights strong{font-size:1.1rem;font-family:'JetBrains Mono',monospace}
.drawer .drawer-row{gap:18px;align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.035);padding:8px 0}
.drawer .drawer-row>span:last-child,.drawer .drawer-row>strong:last-child{max-width:62%;text-align:right;overflow-wrap:anywhere}
.drawer .drawer-row-label{flex:1;min-width:0;color:#93a2b8}
.user-profile-date{display:block;color:#91a0b7;font-size:.73rem;margin-top:3px}
.user-profile-link{background:none;border:0;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.user-profile-link:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.user-profile-loading{padding:32px 0;color:#a4b1c4;text-align:center;font-size:.88rem}
.user-profile-loading .btn{margin-left:8px}

/* ─── Confirm Dialog ─── */
.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:100;display:flex;justify-content:center;align-items:center}
.confirm-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;max-width:400px;width:90%;text-align:center}
.confirm-box h3{margin-bottom:8px;font-size:1.1rem}
.confirm-box p{color:var(--text-dim);font-size:0.88rem;margin-bottom:24px}
.confirm-buttons{display:flex;gap:10px;justify-content:center}

/* ─── Tooltips ─── */
[data-tooltip]{position:relative}
[data-tooltip]::after{
    content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
    background:rgba(0,0,0,0.92);color:#fff;padding:6px 12px;border-radius:6px;
    font-size:0.72rem;white-space:nowrap;opacity:0;pointer-events:none;
    transition:opacity 0.15s;z-index:99;font-weight:400;
}
[data-tooltip]:hover::after{opacity:1}

/* ─── Skeleton ─── */
.skeleton{background:linear-gradient(90deg,var(--bg-hover) 25%,rgba(255,255,255,0.04) 50%,var(--bg-hover) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ─── Scrollbar ─── */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.08);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.15)}

/* ─── Animations ─── */
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.animate-in{animation:fadeIn 0.3s ease forwards}
@keyframes slideIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}

/* ─── Mobile topbar (hidden on desktop) ─── */
.mobile-topbar{display:none}
.sidebar-backdrop{display:none}
.hamburger{background:transparent;border:none;cursor:pointer;display:flex;flex-direction:column;justify-content:space-around;width:32px;height:28px;padding:4px}
.hamburger span{display:block;height:2px;width:100%;background:var(--text);border-radius:2px;transition:all var(--transition)}
.dashboard-container.sidebar-open .hamburger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.dashboard-container.sidebar-open .hamburger span:nth-child(2){opacity:0}
.dashboard-container.sidebar-open .hamburger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ─── Settings tabs (per bot) ─── */
.settings-block{margin-top:24px;padding:24px}
.settings-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:0;flex-wrap:wrap}
.settings-tab{background:transparent;border:none;color:var(--text-dim);padding:12px 20px;font-family:inherit;font-size:0.95rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition);white-space:nowrap}
.settings-tab:hover{color:var(--text);background:rgba(255,255,255,0.03)}
.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--primary-dim)}
.settings-panel{animation:fadeIn 0.3s ease}
.settings-header{margin-bottom:20px}
.settings-header h2{font-size:1.15rem;margin-bottom:6px}
.settings-header p{color:var(--text-dim);font-size:0.85rem}
.settings-section-title{grid-column:1/-1;font-size:0.9rem;color:var(--primary);margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);font-weight:600;letter-spacing:0.5px}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.setting-card{background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all var(--transition)}
.setting-card:hover{border-color:var(--border-focus);background:rgba(255,255,255,0.04)}
.setting-card-full{grid-column:1/-1}
.setting-label{display:block;font-size:0.85rem;font-weight:500;margin-bottom:8px;color:var(--text)}
.setting-card input,.setting-card textarea{width:100%;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font-family:inherit;font-size:0.9rem;transition:border-color var(--transition);resize:vertical}
.setting-card textarea{min-height:80px;font-family:'JetBrains Mono',monospace;font-size:0.8rem;line-height:1.5}
.setting-card input:focus,.setting-card textarea:focus{outline:none;border-color:var(--border-focus)}
.setting-hint{font-size:0.75rem;color:var(--text-muted);margin-top:6px;line-height:1.4}
.settings-grid{align-items:start}
.settings-fold-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}
.settings-summary{cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.settings-summary::marker{color:var(--primary)}
.settings-summary:focus-visible{outline:2px solid var(--primary);outline-offset:5px;border-radius:3px}
.settings-disclosure[open]>.settings-summary{margin-bottom:14px}
.settings-block .settings-navigation{margin:20px 0 16px;display:grid;gap:12px}
.settings-block .settings-nav-group{display:grid;grid-template-columns:145px minmax(0,1fr);gap:12px;align-items:start}
.settings-block .settings-nav-label{padding-top:12px;font-size:.75rem;color:var(--text-dim)}
.settings-block .settings-tabs{margin:0;padding:0;border:0;gap:6px;flex-wrap:wrap;overflow:visible;min-width:0}
.settings-block .settings-tab{margin:0;padding:10px 14px;border:1px solid transparent;border-radius:8px;font-size:.85rem}
.settings-block .settings-tab.active{border-color:var(--border-focus)}
.settings-block .settings-tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.settings-block .settings-header p{line-height:1.6}
.settings-block .setting-hint{color:#94a3b8;line-height:1.6;overflow-wrap:anywhere}
.settings-block .settings-summary{display:flex;gap:8px;align-items:baseline;list-style:none;min-height:1.5em;line-height:1.5}
.settings-block .settings-summary::-webkit-details-marker{display:none}
.settings-block .settings-summary::before{content:'›';flex:none;color:var(--primary);font-size:1.1em;transition:transform .15s}
.settings-block .settings-disclosure[open]>.settings-summary::before{transform:rotate(90deg)}
.settings-block .setting-card input:not([type=checkbox]):not([type=radio]),.settings-block .setting-card select,.settings-block .setting-card textarea{max-width:100%;min-width:0}
.settings-block .setting-card input[type=checkbox],.settings-block .setting-card input[type=radio]{width:16px;min-width:16px;height:16px;margin:0;flex:none;padding:0;accent-color:var(--primary)}
.settings-block .setting-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:.8rem}
.vip-plan{padding:14px;border:1px solid var(--border);border-radius:10px;margin-bottom:12px}
.vip-plan-fields{display:grid;grid-template-columns:80px 70px repeat(2,minmax(0,1fr));gap:12px}
.vip-plan-prices,.casino-streak-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.casino-streak-fields{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}
.vip-plan-fields>label,.vip-plan-prices>label,.casino-streak-fields>label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:.75rem;color:#94a3b8}
.vip-plan-actions{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);flex-wrap:wrap}
.vip-plan-preview{flex:1 1 140px;font-size:.8rem;color:#94a3b8}
.settings-table-scroll{max-width:100%;overflow-x:auto;margin-top:6px}
.settings-table-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.settings-tools{margin:18px 0;min-width:0}
.settings-tools>input{max-width:640px}
.settings-scope{display:block;width:fit-content;max-width:100%;margin-top:12px;padding:7px 10px;border:1px solid var(--border-focus);border-radius:8px;font-size:.78rem;line-height:1.5;color:var(--text)}
.settings-search-results{max-height:360px;overflow:auto;margin:8px 0;padding:12px;border:1px solid var(--border-focus);border-radius:10px;background:var(--bg-surface)}
.settings-search-results>p{font-size:.8rem;color:#94a3b8;padding:4px}
.settings-search-results>button{display:flex;justify-content:space-between;gap:12px;align-items:baseline;width:100%;padding:12px 8px;background:none;border:0;border-bottom:1px solid var(--border);color:var(--text);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.settings-search-results>button span{color:#94a3b8;font-size:.75rem;flex:none}
.settings-search-results>button:hover,.settings-search-results>button:focus-visible{background:var(--primary-dim);outline:1px solid var(--primary)}
.settings-drafts,.settings-read-error,.settings-operation-preview{padding:14px;margin:12px 0;border:1px solid var(--warn);border-radius:10px;font-size:.85rem;line-height:1.6}
.settings-drafts>div,.settings-operation-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.settings-operation-preview ul{padding-left:22px;margin:8px 0}
.settings-operation-result{margin:12px 0;font-size:.85rem;overflow-wrap:anywhere}
.settings-feedback{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.75rem;line-height:1.5;margin-top:8px;color:#94a3b8}
.settings-feedback.saved{color:var(--success)}
.settings-feedback.error{color:#fca5a5}
.settings-feedback.dirty{color:#fcd34d}
.settings-block section.setting-card>.setting-label{font-size:.85rem;line-height:1.5;min-height:1.5em;margin-bottom:14px}
.settings-found{outline:2px solid var(--primary);outline-offset:4px;scroll-margin:20px}
.settings-operation-actions button{white-space:normal}
.bot-rules-editor{min-width:0;border:1px solid var(--border);border-radius:10px;padding:14px}
.bot-rules-editor>summary{font-size:.9rem;font-weight:600;cursor:pointer}
.bot-rules-editor>label{display:block;margin-top:14px;font-size:.85rem;line-height:1.5}
.bot-rules-editor>label>span{color:#94a3b8;font-size:.8rem}
.bot-rules-editor textarea{display:block;width:100%;max-width:100%;min-width:0;margin-top:6px;line-height:1.5}
.settings-block .settings-feedback button{white-space:normal}
@media(max-width:600px){.settings-search-results>button{flex-direction:column;gap:4px}.settings-scope{display:block}}
.payment-method-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--border);margin-top:6px}
.payment-method-row>span,.payment-method-row>code{overflow-wrap:anywhere;min-width:0}
.payment-method-row input{max-width:100%}
.settings-legacy{font-size:.72rem;font-weight:400;color:var(--warn,#f59e0b)}

/* Settings workspaces share the same disclosure and navigation language. */
.sidebar button.nav-item{width:100%;text-align:left;font-family:inherit;font-size:inherit;border:0;background:transparent;color:var(--text-dim)}
.sidebar button.nav-item:hover{background:rgba(255,255,255,.04);color:var(--text)}
.sidebar button.nav-item.active{background:var(--primary-dim);color:var(--primary)}
.settings-subtitle{font-size:.72em;color:var(--text-dim);font-weight:400;margin-left:6px}
.settings-workspace{min-width:0;margin-bottom:24px}
.settings-workspace .settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.settings-workspace .settings-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-workspace .setting-card{min-width:0}
.settings-workspace .setting-card-full{grid-column:1/-1}
.settings-group{border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.018);margin:12px 0;overflow:hidden}
.settings-group>summary{cursor:pointer;padding:18px 20px;font-size:.96rem;font-weight:600;list-style:none;display:flex;align-items:center;gap:12px}
.settings-group>summary::before{content:'›';font-size:1.35rem;line-height:1;color:var(--primary);transition:transform .15s}
.settings-group[open]>summary::before{transform:rotate(90deg)}
.settings-group>summary::-webkit-details-marker{display:none}
.settings-group>summary:hover{background:rgba(14,165,233,.05)}
.settings-group>summary:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.settings-group>.setting-hint{margin:0 20px 16px}
.settings-group>.settings-grid{padding:0 20px 20px}
.settings-destinations{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;margin:18px 0}
.settings-destination{position:relative;min-width:0;padding:17px 36px 17px 16px;text-align:left;font:inherit;color:var(--text);border:1px solid var(--border);border-radius:12px;background:linear-gradient(130deg,rgba(14,165,233,.07),rgba(99,102,241,.025));cursor:pointer;transition:border-color .15s,background .15s}
.settings-destination:hover{border-color:var(--primary);background:rgba(14,165,233,.09)}
.settings-destination:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.settings-destination strong{display:block;font-size:.85rem;margin-bottom:7px}
.settings-destination span{display:block;font-size:.75rem;line-height:1.5;color:var(--text-dim)}
.settings-destination>b{position:absolute;right:15px;top:18px;color:var(--primary);font-weight:400}
.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}
.workspace-heading h1{font-size:1.65rem;margin:6px 0 8px}
.workspace-heading p{color:var(--text-dim);font-size:.88rem;line-height:1.6;max-width:640px}
.workspace-eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--primary)}
.workspace-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:6px;border:1px solid var(--border);background:rgba(0,0,0,.16);border-radius:12px;margin-bottom:20px}
.workspace-tabs button{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-dim);padding:11px 16px;font:inherit;font-size:.84rem;cursor:pointer}
.workspace-tabs button.active{color:var(--primary);border-color:rgba(14,165,233,.2);background:var(--primary-dim)}
.workspace-tabs button:hover,.workspace-tabs button:focus-visible{color:var(--text);outline:1px solid var(--primary)}
.workspace-notice{padding:14px;border:1px solid var(--warn);border-radius:10px;margin:12px 0;color:var(--warn)}
@media(max-width:768px){
  .settings-block .settings-nav-group{grid-template-columns:minmax(0,1fr);gap:6px}
  .settings-block .settings-nav-label{padding-top:0}
  .settings-block .settings-tab{flex:1 1 145px;white-space:normal;text-align:left}
  .settings-block .settings-collapse-header{gap:12px;align-items:flex-start!important}
  .settings-block .settings-collapse-header>span{flex:none}
  .vip-plan-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vip-plan-title{grid-column:span 2}
  .workspace-heading{align-items:flex-start;flex-wrap:wrap}
  .workspace-heading h1{font-size:1.35rem}
  .settings-subtitle{display:block;margin:5px 0 0}
  .settings-group>summary{padding:15px 14px}
  .settings-group>.setting-hint{margin:0 14px 14px}
  .settings-group>.settings-grid{padding:0 12px 14px;gap:10px}
  .workspace-tabs button{flex:1 1 130px;padding:10px 8px}
  .settings-workspace .setting-card{overflow-x:auto}
}

@media(max-width:600px){.settings-workspace .settings-price-grid{grid-template-columns:minmax(0,1fr)}}

/* ─── Responsive ─── */
@media(max-width:768px){
    .dashboard-container{flex-direction:column;height:auto;min-height:100vh}
    .mobile-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(13,17,23,0.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
    .mobile-logo{font-size:1.1rem;font-weight:700;letter-spacing:2px;background:linear-gradient(135deg,var(--primary),var(--owner));-webkit-background-clip:text;-webkit-text-fill-color:transparent;flex:1}
    .mobile-topbar .status-pill{padding:4px 8px;background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:999px}
    .sidebar{position:fixed;top:0;left:0;height:100vh;width:260px;z-index:100;transform:translateX(-100%);transition:transform var(--transition);box-shadow:8px 0 32px rgba(0,0,0,0.6);overflow-y:auto}
    .dashboard-container.sidebar-open .sidebar{transform:translateX(0)}
    .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:90;animation:fadeIn 0.2s ease}
    .main-content{padding:16px;width:100%}
    .bento,.dashboard-cards{grid-template-columns:1fr !important}
    .bento-wide{grid-column:span 1}
    .chat-sidebar{width:100%}
    .chat-layout{height:calc(100vh - 130px);position:relative;flex-direction:row}
    .chat-layout .chat-sidebar{width:100%;flex-shrink:0;border-right:none}
    .chat-layout .chat-main{position:absolute;inset:0;background:var(--bg-surface);transform:translateX(100%);transition:transform var(--transition);z-index:5}
    .chat-layout.has-active-chat .chat-main{transform:translateX(0)}
    .chat-layout.has-active-chat .chat-sidebar{visibility:hidden}
    .chat-back-btn{display:inline-flex !important;font-size:1.2rem;padding:6px 10px}
    .chat-header-bar{padding:12px}
    .chat-messages{padding:12px !important}
    .msg{max-width:90% !important}
    .drawer{width:100%;max-width:100%}
    .bot-grid{grid-template-columns:1fr !important}
    .pending-media-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr)) !important}
    .queue-settings-grid{grid-template-columns:1fr}
    .settings-grid{grid-template-columns:1fr}
    .page-header{flex-wrap:wrap;gap:12px}
    .page-title{font-size:1.2rem !important}
    .settings-tabs{overflow-x:auto;flex-wrap:nowrap}
    .settings-tab{padding:10px 14px;font-size:0.85rem}
    table{font-size:0.8rem}
    .lightbox-overlay img,.lightbox-overlay video{max-width:95vw !important;max-height:80vh !important}
}
@media(min-width:769px){
    .mobile-topbar{display:none !important}
}

/* ─── Speedometer & Enhanced Queue UI ─── */
.speed-card {
    background: linear-gradient(135deg, rgba(0, 210, 255, 0.1), rgba(168, 85, 247, 0.1)) !important;
    border: 1px solid var(--border-focus) !important;
}
.speed-value {
    font-size: 2.5rem;
    font-weight: 800;
    text-shadow: 0 0 20px var(--primary-dim);
}
.speed-unit {
    font-size: 0.9rem;
    color: var(--text-dim);
    margin-left: 8px;
    font-weight: 500;
}

/* Custom Range Slider */
input[type=range].slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.1);
    border-radius: 5px;
    outline: none;
    margin: 15px 0;
}
input[type=range].slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    height: 18px;
    width: 18px;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    box-shadow: 0 0 10px rgba(0,210,255,0.5);
    border: 2px solid var(--primary);
    transition: transform 0.1s ease-in-out;
}
input[type=range].slider::-webkit-slider-thumb:hover {
    transform: scale(1.2);
}

.queue-settings-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 20px;
    margin-top: 20px;
}
@media (max-width: 1024px) {
    .queue-settings-grid {
        grid-template-columns: 1fr;
    }
}

.setting-item {
    background: rgba(255,255,255,0.02);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    transition: all var(--transition);
}
.setting-item:hover {
    border-color: var(--border-focus);
    background: rgba(255,255,255,0.03);
}

/* === Pending media grid (заявки) === */
.pending-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
    max-height: 360px;
    overflow-y: auto;
    padding: 4px;
}
.pending-media-thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.pending-media-thumb:hover {
    transform: translateY(-2px) scale(1.02);
    border-color: var(--primary);
    box-shadow: 0 8px 24px rgba(0,210,255,0.18);
}
.pending-media-thumb img,
.pending-media-thumb video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pending-media-thumb .media-badge {
    position: absolute;
    bottom: 6px;
    right: 6px;
    background: rgba(0,0,0,0.7);
    color: #fff;
    font-size: 0.7rem;
    padding: 2px 6px;
    border-radius: 4px;
    backdrop-filter: blur(4px);
}
.pending-media-thumb .media-file-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 2.2rem;
    opacity: 0.6;
}

/* === Lightbox === */
.lightbox-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.92);
    backdrop-filter: blur(12px);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    animation: fadeIn .2s ease;
}
.lightbox-content {
    max-width: 92vw;
    max-height: 88vh;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.6);
    object-fit: contain;
}
.lightbox-close {
    position: absolute;
    top: 20px;
    right: 24px;
    background: rgba(255,255,255,0.1);
    color: #fff;
    border: none;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 1.4rem;
    cursor: pointer;
    transition: background .15s;
}
.lightbox-close:hover { background: var(--danger); }
@keyframes fadeIn { from { opacity:0 } to { opacity:1 } }

/* Mobile-adaptive queue stats */
@media (max-width: 680px) {
  .queue-stats-grid { grid-template-columns: 1fr !important; }
  .queue-settings-grid { grid-template-columns: 1fr !important; }
}

  

/* Пока Vue не отрисовал приложение, страница пуста: иначе на долю секунды
   видно всю разметку разом — вкладки, модалки и панели одним списком. */
[v-cloak] { display: none !important; }

/* Флаги (язык юзера, страна прокси) — только этим элементам подменяем шрифт,
   чтобы не трогать остальную типографику. */
.flag { font-family: 'Noto Color Emoji', 'Segoe UI Emoji', 'Apple Color Emoji', sans-serif; }
.language-flag { width:21px;height:14px;flex-shrink:0;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.16);vertical-align:middle; }
.country-flag { width:20px;height:15px;display:inline-block;object-fit:contain;flex-shrink:0;vertical-align:middle;border-radius:2px; }

/* Фабрика ботов: живая панель процесса */
@keyframes farm-spin { to { transform: rotate(360deg); } }
.farm-spin { display:inline-block; animation: farm-spin 2s linear infinite; }
@keyframes farm-blink { 0%,100% { opacity:1; } 50% { opacity:.25; } }
.farm-live { color:#4ade80; font-weight:600; animation: farm-blink 1.2s ease-in-out infinite; }

/* ── Сносы по дням (вкладка Боты) ── */
.bans { margin-top:14px; display:flex; flex-direction:column; gap:14px; }
.bans .dim { color:var(--text-dim); }
.bans .mono { font-family:'JetBrains Mono',monospace; font-size:.92em; }
.bans-filters { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.ban-seg-group { display:inline-flex; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; }
.ban-seg-group button { background:none; border:0; color:var(--text-dim); padding:6px 12px; font:inherit; font-size:.82em; cursor:pointer; transition:background var(--transition),color var(--transition); }
.ban-seg-group button + button { border-left:1px solid var(--border); }
.ban-seg-group button:hover { color:var(--text); }
.ban-seg-group button.on { background:var(--primary-dim); color:var(--primary); font-weight:600; }
.ban-chips { display:flex; gap:6px; flex-wrap:wrap; }
.ban-chip { background:none; border:1px solid var(--border); color:var(--text-dim); border-radius:999px; padding:4px 10px; font:inherit; font-size:.78em; cursor:pointer; transition:all var(--transition); }
.ban-chip b { color:var(--text); font-weight:600; margin-left:2px; }
.ban-chip:hover { color:var(--text); border-color:rgba(255,255,255,.15); }
.ban-chip.on { background:var(--primary-dim); border-color:var(--border-focus); color:var(--primary); }
.ban-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:5px; vertical-align:middle; flex-shrink:0; }

.ban-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; }
.ban-tile { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; }
.ban-tile.hot { border-color:rgba(239,68,68,.35); background:var(--danger-dim); }
.ban-tile.hot .ban-num { color:var(--danger); }
.ban-tile.warn .ban-num { color:var(--warn); }
.ban-num { font-size:1.6em; font-weight:600; line-height:1.1; font-variant-numeric:tabular-nums; }
.ban-cap { font-size:.75em; color:var(--text-dim); margin-top:4px; }
.ban-delta { font-size:.72em; margin-top:4px; color:var(--text-dim); }
.ban-tile.hot .ban-delta { color:var(--danger); }

.ban-sec { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 14px; min-width:0; }
.ban-sec-head { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.ban-sec-head h4 { margin:0; font-size:.95em; font-weight:600; }
.ban-sec-head > .dim { font-size:.78em; }
.ban-legend { margin-left:auto; display:flex; gap:12px; flex-wrap:wrap; font-size:.75em; color:var(--text-dim); }

.ban-row { display:grid; grid-template-columns:14px 82px 1fr 36px; gap:10px; align-items:center; padding:5px 6px; border-radius:var(--radius-xs); cursor:pointer; transition:background var(--transition); }
.ban-row:hover, .ban-row.open { background:var(--bg-hover); }
.ban-row.empty { cursor:default; opacity:.45; }
.ban-row.empty:hover { background:none; }
.ban-caret { color:var(--text-dim); font-size:.8em; }
.ban-date { font-size:.85em; white-space:nowrap; }
.ban-date span { color:var(--text-dim); }
.ban-bar { display:flex; height:18px; border-radius:4px; overflow:hidden; background:rgba(255,255,255,.03); }
.ban-bseg { height:100%; transition:width .3s ease; color:rgba(0,0,0,.7); font-size:.7em; font-weight:600; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ban-bseg + .ban-bseg { border-left:1px solid rgba(0,0,0,.35); }
.ban-count { text-align:right; font-weight:600; font-size:.92em; font-variant-numeric:tabular-nums; }
.ban-count.hot { color:var(--danger); }

.ban-day { margin:4px 0 12px 24px; padding:10px 12px; border-left:2px solid var(--border-focus); background:rgba(0,0,0,.18); border-radius:0 var(--radius-xs) var(--radius-xs) 0; }
.ban-culprits { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px; font-size:.78em; }
.ban-culprits-title { color:var(--text-dim); margin-right:2px; }
.ban-culprit { background:var(--warn-dim); color:#fdba74; border:1px solid rgba(249,115,22,.25); border-radius:999px; padding:2px 9px; white-space:nowrap; }
.ban-culprit b { color:#fed7aa; }

.ban-table-wrap { overflow-x:auto; }
.ban-table { width:100%; border-collapse:collapse; font-size:.8em; }
.ban-table th { color:var(--text-dim); font-weight:500; text-align:left; padding:6px 8px; border-bottom:1px solid var(--border); white-space:nowrap; }
.ban-table td { padding:6px 8px; border-bottom:1px solid rgba(255,255,255,.035); vertical-align:middle; }
.ban-table tbody tr:hover td { background:rgba(255,255,255,.025); }
.ban-table .r { text-align:right; font-variant-numeric:tabular-nums; }
.ban-table .nw { white-space:nowrap; }
.ban-table .bad { color:var(--danger); }
.ban-badge { display:inline-block; padding:1px 8px; border-radius:999px; font-size:.92em; background:rgba(255,255,255,.05); }
.ban-badge.unauthorized { background:var(--gold-dim); color:#fcd34d; }
.ban-badge.tg_restricted { background:var(--danger-dim); color:#fca5a5; }
.ban-acc { font-size:.9em; margin-left:4px; }
.ban-type { margin-right:10px; white-space:nowrap; }
.ban-meter { display:flex; align-items:center; gap:8px; }

.ban-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; }
.ban-card { overflow:hidden; }
.ban-kv { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(40px,1fr) 64px; gap:10px; align-items:center; font-size:.82em; padding:4px 6px; margin:0 -6px; border-radius:var(--radius-xs); }
.ban-kv.hot { background:var(--danger-dim); }
.ban-kv-label { display:flex; flex-direction:column; min-width:0; line-height:1.3; }
.ban-kv-main { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ban-note { color:var(--text-dim); font-size:.86em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ban-note.shared { color:#fdba74; }
.ban-kv-val { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ban-mini { height:6px; min-width:50px; flex:1; border-radius:3px; background:rgba(255,255,255,.06); overflow:hidden; }
.ban-mini > div { height:100%; border-radius:3px; }
.ban-more { margin-top:8px; background:none; border:0; color:var(--primary); font:inherit; font-size:.8em; cursor:pointer; padding:2px 0; }
.ban-more:hover { text-decoration:underline; }
.ban-empty { color:var(--text-dim); font-size:.85em; }
@media (max-width:640px) {
  .ban-row { grid-template-columns:12px 64px 1fr 30px; gap:8px; }
  .ban-day { margin-left:0; }
  .ban-legend { margin-left:0; }
}

/* Factory: fixed-size switches and compact cards of independent height. */
.farm-settings{margin-top:18px}
.farm-settings h4{margin:0 0 6px}
.farm-settings-group{margin-top:20px}
.farm-settings-group h5{margin:0 0 10px;font-size:.88rem;color:var(--text)}
.farm-settings-grid{columns:2;column-gap:12px}
.farm-settings-card{break-inside:avoid;display:inline-block;box-sizing:border-box;width:100%;margin:0 0 12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.015)}
.farm-settings-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.farm-settings input[type=checkbox]{width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:1px 0 0;padding:0;box-shadow:none;accent-color:var(--primary)}
.farm-settings-title{flex:1;min-width:0;font-size:.9rem;font-weight:600;line-height:1.4;text-align:left;overflow-wrap:anywhere}
.farm-settings-state{flex:none;font-size:.7rem;line-height:20px;color:var(--text-dim)}
.farm-settings-state.is-on{color:var(--success)}
.farm-settings-help{margin-top:10px;font-size:.78rem;color:var(--text-dim)}
.farm-settings summary{cursor:pointer;line-height:1.4}
.farm-settings-help p{margin:8px 0 0;line-height:1.55;color:var(--text)}
.farm-settings-params{margin-top:10px;font-size:.78rem;color:var(--text-dim)}
.farm-settings-params summary span{font-size:.72rem}
.farm-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:10px}
.farm-settings-field{display:flex;flex-direction:column;gap:5px;min-width:0;line-height:1.4;color:var(--text-dim)}
.farm-settings-field input:not([type=checkbox]),.farm-settings-field textarea{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;text-align:left}
.farm-settings-field.is-wide{grid-column:1/-1}
.farm-settings-field.is-wide input:not([type=checkbox]){max-width:220px}
.farm-settings-field.is-checkbox{flex-direction:row;align-items:center;grid-column:1/-1}
.farm-settings input:disabled,.farm-settings textarea:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1050px){.farm-settings-grid{columns:1}}
@media(max-width:480px){.farm-settings-fields{grid-template-columns:1fr}.farm-settings-card{padding:12px}.farm-settings-state{font-size:.65rem}}

/* One avatar manager per bot: current photo, actions and saved variants. */
.avatar-manager-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:24px}
.avatar-manager{width:100%;max-width:820px;max-height:90vh;overflow:auto;padding:24px;border-radius:18px;box-sizing:border-box}
.avatar-manager-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.avatar-manager-header h3{margin:4px 0 6px;font-size:1.2rem}
.avatar-manager-header p{margin:0;color:var(--text-dim);font-size:.85rem;overflow-wrap:anywhere}
.avatar-eyebrow{font-size:.7rem;color:var(--primary);letter-spacing:.08em;text-transform:uppercase}
.avatar-current{display:grid;grid-template-columns:148px minmax(0,1fr);gap:22px;padding:18px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}
.avatar-current-photo{display:block;width:148px;height:148px;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.04)}
.avatar-current-photo img{width:100%;height:100%;object-fit:contain}
.avatar-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--text-dim)}
.avatar-placeholder span{font-size:2rem}
.avatar-current-controls{min-width:0}.avatar-manager h4{margin:0;font-size:.95rem}
.avatar-caption{font-size:.78rem;line-height:1.5;color:var(--text-dim)}
.avatar-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.avatar-actions .avatar-remove{color:#fca5a5}
.avatar-remove-confirm{margin-top:12px;padding:12px;border:1px solid rgba(248,113,113,.25);border-radius:10px;background:rgba(248,113,113,.06)}
.avatar-remove-confirm p{font-size:.8rem;margin:0 0 10px}.avatar-remove-confirm button{margin-right:6px}
.avatar-rules{margin:16px 0 22px;padding:14px 16px;border-radius:12px;background:rgba(56,189,248,.06);border:1px solid rgba(56,189,248,.12)}
.avatar-rules span{font-size:.8rem;color:var(--primary)}.avatar-rules p{margin:6px 0 0;font-size:.78rem;line-height:1.55;color:var(--text-dim)}
.avatar-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.avatar-section-title>span{font-size:.75rem;color:var(--text-dim)}
.avatar-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.avatar-archive-card{min-width:0;padding:10px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.02)}
.avatar-archive-card>a{display:block}.avatar-archive-card img{display:block;width:100%;aspect-ratio:1;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.03)}
.avatar-archive-info{display:flex;flex-direction:column;gap:4px;margin:10px 0;font-size:.78rem}.avatar-archive-card>button{width:100%}
.avatar-empty{padding:22px;border:1px dashed var(--border);border-radius:12px;color:var(--text-dim);font-size:.85rem;line-height:1.5;text-align:center}
.avatar-error{color:#fca5a5;font-size:.85rem}.avatar-more{margin-top:16px}
@media(max-width:600px){.avatar-manager-overlay{padding:10px}.avatar-manager{padding:16px;max-height:94vh}.avatar-manager-header h3{font-size:1rem}.avatar-current{grid-template-columns:1fr;gap:16px;padding:14px}.avatar-current-photo{width:128px;height:128px;margin:auto}.avatar-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-actions .btn{flex:1 1 140px}.avatar-rules{padding:12px}.avatar-archive-info{font-size:.72rem}}

.profile-tabs{display:flex;gap:8px;margin:0 0 20px}.profile-tabs button{flex:1}
.profile-name-current{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow-wrap:anywhere}
.profile-name-current strong{font-size:1.12rem}.profile-name-field{display:flex;flex-direction:column;gap:7px;font-size:.8rem;color:var(--text-dim);margin:12px 0}
.profile-name-field input,.profile-name-field select,.profile-name-preview input{width:100%;box-sizing:border-box;margin:0;min-width:0}
.profile-name-preview{display:flex;flex-direction:column;gap:7px;padding:14px;border-radius:12px;background:rgba(56,189,248,.05);border:1px solid rgba(56,189,248,.15)}
.profile-name-settings{margin-top:20px;border:1px solid var(--border);padding:16px;border-radius:12px}.profile-name-settings summary{cursor:pointer;font-size:.9rem;font-weight:600}
.profile-shared-badge{display:inline-block;margin-left:8px;padding:3px 8px;border-radius:999px;background:rgba(56,189,248,.08);color:var(--primary);font-size:.65rem;font-weight:400}
.profile-name-toggle{display:flex;align-items:center;gap:10px;font-size:.85rem}.profile-name-toggle input{width:18px;height:18px;margin:0;flex:0 0 18px;accent-color:var(--primary)}
.profile-symbols{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 16px}.profile-symbols button{min-width:36px;font-size:1rem}
.profile-name-history article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.profile-name-history article>div{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}.profile-name-history strong{font-size:.85rem}.profile-name-history button{flex:none}
@media(max-width:600px){.profile-name-settings{padding:12px}.profile-name-current strong{font-size:1rem}.profile-shared-badge{margin:6px 0 0 8px}}

/* Histories keep a stable footprint even after loading thousands of entries. */
.profile-history-scroll{max-height:360px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px}
.profile-symbols{max-height:180px;overflow-y:auto;overscroll-behavior:contain;padding:4px}
@media(max-width:600px){.profile-history-scroll{max-height:300px}}
