:root{/* FE-04: единая z-index-шкала (значения=прежние => порядок сохранён; централизация магических чисел) */--z-actionbar:5;--z-skeleton:7;--z-tabs:10;--z-toolbar:25;--z-dropdown:40;--z-menu:50;--z-backdrop:55;--z-sticky:60;--z-accent:70;--z-drawer:80;--z-preview:90;--z-popover:95;--z-progress:200;--z-modal:500;--z-modal-top:520;--z-toast:550;--z-overlay:1000;--z-overlay-top:1001;--z-max:9999;}
/* L2 Control — operations console. Isolated from the player cabinet. */
.admin-body,.admin-auth-body{
  --bg-base:#070a0f;--bg-subtle:#0b1017;--bg-surface:#101720;--bg-elevated:#151e29;--bg-hover:#1a2532;
  --border-subtle:#202b38;--border-strong:#2d3a49;--text-primary:#f0f4f8;--text-secondary:#a4b0bf;--text-muted:#718092;
  --accent:#5ba5f7;--accent-hover:#86c0ff;--accent-soft:rgba(91,165,247,.12);--success:#49c98b;--warning:#e5ae5c;--danger:#f06d78;--info:#71b5ec;
  --focus:0 0 0 3px rgba(91,165,247,.27);--sidebar:260px;--topbar:64px;
  background:var(--bg-base);color:var(--text-primary);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;
}
html[data-color-mode="light"] .admin-body,html[data-color-mode="light"] .admin-auth-body{
  --bg-base:#f3f6f9;--bg-subtle:#edf1f5;--bg-surface:#fff;--bg-elevated:#f7f9fb;--bg-hover:#edf4fa;
  --border-subtle:#dce3ea;--border-strong:#c8d2dd;--text-primary:#14202b;--text-secondary:#526374;--text-muted:#748494;
  --accent:#176fc1;--accent-hover:#0e5597;--accent-soft:rgba(23,111,193,.09);--success:#187d53;--warning:#92621a;--danger:#b73949;--info:#176d9f;
  --focus:0 0 0 3px rgba(23,111,193,.20);color-scheme:light;
}
.admin-body::before,.admin-body::after,.admin-auth-body::before,.admin-auth-body::after{background:var(--bg-base);opacity:1}
.admin-body h1,.admin-body h2,.admin-body h3,.admin-body .page-title,.admin-body .brand .bt,.admin-body .balance .amt,.admin-auth-body h1,.admin-auth-body .brand .bt{font-family:Inter,system-ui,sans-serif}
.admin-body code,.admin-body pre,.admin-body .tabular{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}
.admin-body :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible,.admin-auth-body :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent-hover);outline-offset:2px;box-shadow:var(--focus)!important}
.admin-body .skip-link,.admin-auth-body .skip-link{background:var(--accent);color:#06121d}

/* Shell and navigation */
.admin-shell{background:var(--bg-base)}
.admin-shell .sidebar{width:var(--sidebar);flex-basis:var(--sidebar);padding:14px 12px 12px;background:#090e14;border-right:1px solid var(--border-subtle);backdrop-filter:none;transition:width .2s ease,flex-basis .2s ease;overflow-x:hidden}
html[data-color-mode="light"] .admin-shell .sidebar{background:#f9fbfc}
.admin-brand{min-height:56px;padding:7px 9px 15px;gap:10px;border-bottom:1px solid var(--border-subtle)}
.admin-brand .em{width:30px;height:30px;filter:none}
.admin-brand .bt{font-size:14px;font-weight:800;letter-spacing:.08em;white-space:nowrap}
.admin-brand .bt small{margin-top:2px;color:var(--text-muted);font-size:8px;letter-spacing:.2em}
.admin-build{margin-left:auto;padding:3px 6px;border:1px solid var(--border-strong);border-radius:5px;color:var(--text-muted);font:700 8px/1 Inter,sans-serif;letter-spacing:.08em}
.admin-environment{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 8px;margin:14px 5px 8px;padding:9px 10px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);font-size:10px;white-space:nowrap}
.admin-environment>span{grid-row:1/3;width:7px;height:7px;border-radius:50%;background:var(--success)}
.admin-environment b{font-size:10px;font-weight:700}.admin-environment small{color:var(--text-muted);font-size:9px}
.admin-nav{display:flex;flex:1;flex-direction:column;min-height:0}
.admin-nav .nav-label{padding:16px 10px 6px;color:var(--text-muted);font-size:9px;letter-spacing:.13em;white-space:nowrap}
.admin-shell .admin-nav a{min-height:40px;margin:1px 0;padding:9px 10px;border:1px solid transparent;border-radius:7px;color:var(--text-secondary);font-size:12px;font-weight:600;gap:10px;transition:background-color .12s,border-color .12s,color .12s}
.admin-shell .admin-nav a:hover{transform:none;color:var(--text-primary);background:var(--bg-surface);border-color:var(--border-subtle)}
.admin-shell .admin-nav a.active{color:var(--text-primary);background:var(--accent-soft);border-color:rgba(91,165,247,.20)}
.admin-shell .admin-nav a.active::before{left:-1px;top:8px;bottom:8px;width:2px;background:var(--accent);box-shadow:none}
.admin-shell .admin-nav a svg{width:17px;height:17px;color:var(--text-muted);opacity:1}
.admin-shell .admin-nav a.active svg{color:var(--accent)}
.admin-nav .nav-sep{margin:auto 7px 8px}
.admin-nav .leave-console{color:var(--text-muted)}
.admin-side-foot{min-height:54px;margin-top:8px;padding:10px 8px 0;border-top:1px solid var(--border-subtle);align-items:center;gap:8px;white-space:nowrap}
.admin-side-foot>svg{width:16px;height:16px;color:var(--success)}
.admin-side-foot>span{font-size:10px;font-weight:700}.admin-side-foot small{font-size:8px;letter-spacing:.07em}
.sidebar-collapse{width:30px;height:30px;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}
.sidebar-collapse:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-collapse svg{width:16px;height:16px}
.sidebar-collapsed .admin-shell .sidebar{width:76px;flex-basis:76px;padding-left:10px;padding-right:10px}
.sidebar-collapsed .admin-brand{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed .admin-brand .bt,.sidebar-collapsed .admin-build,.sidebar-collapsed .admin-environment,.sidebar-collapsed .admin-nav .nav-label,.sidebar-collapsed .admin-side-foot>span,.sidebar-collapsed .admin-side-foot>svg{display:none}
.sidebar-collapsed .admin-shell .admin-nav a{justify-content:center;padding:9px}.sidebar-collapsed .admin-shell .admin-nav a>span{display:none}
.sidebar-collapsed .admin-shell .admin-nav a:hover>span{display:block;position:fixed;left:66px;z-index:var(--z-preview);padding:7px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-elevated);box-shadow:0 12px 30px rgba(0,0,0,.35);white-space:nowrap;color:var(--text-primary)}
.sidebar-collapsed .admin-side-foot{justify-content:center}.sidebar-collapsed .sidebar-collapse{margin:0}.sidebar-collapsed .sidebar-collapse svg{transform:scaleX(-1)}

/* Top bar */
.admin-body .topbar{height:var(--topbar);padding:0 24px;gap:9px;background:rgba(7,10,15,.91);border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(14px)}
html[data-color-mode="light"] .admin-body .topbar{background:rgba(255,255,255,.91)}
.admin-breadcrumbs{display:flex;align-items:center;gap:7px;min-width:190px;color:var(--text-muted);font-size:11px;white-space:nowrap}
.admin-breadcrumbs a:hover{color:var(--accent-hover)}.admin-breadcrumbs span{display:flex}.admin-breadcrumbs span svg{width:12px;height:12px}.admin-breadcrumbs b{overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary);font-weight:600}
.command-trigger{width:min(340px,30vw);height:36px;margin-left:12px;padding:0 9px 0 11px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-subtle);color:var(--text-muted);font-size:11px;cursor:pointer}
.command-trigger:hover{border-color:var(--accent);color:var(--text-secondary)}.command-trigger>span{display:flex;align-items:center;gap:8px}.command-trigger svg{width:15px;height:15px}
kbd{min-width:22px;padding:2px 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--bg-elevated);color:var(--text-muted);font:700 10px/1.4 Inter,sans-serif;text-align:center}
.admin-live-state{height:32px;padding:0 9px;display:flex;align-items:center;gap:7px;border:1px solid var(--border-subtle);border-radius:7px;color:var(--text-secondary);font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.admin-live-state:hover{border-color:var(--success)}.admin-live-state i{width:7px;height:7px;border-radius:50%;background:var(--success)}
.admin-body .icon-button{width:36px;height:36px;border-radius:7px}.admin-body .icon-button:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--border-subtle)}
.admin-alert-link{position:relative}.admin-alert-link::after{content:"";width:6px;height:6px;position:absolute;right:6px;top:6px;border:2px solid var(--bg-base);border-radius:50%;background:var(--warning)}
.profile-menu{position:relative;margin-left:2px}.profile-menu>summary{height:44px;padding:0 4px;display:flex;align-items:center;gap:8px;border-radius:8px;list-style:none;cursor:pointer}.profile-menu>summary::-webkit-details-marker{display:none}.profile-menu>summary:hover{background:var(--bg-hover)}
.admin-body .avatar{width:31px;height:31px;border-radius:8px;background:var(--accent-soft);box-shadow:none;color:var(--accent-hover);font-size:11px}
.admin-body .topbar-login{display:flex;flex-direction:column;color:var(--text-primary);font-size:11px;font-weight:650}.admin-body .topbar-login small{color:var(--text-muted);font-size:8px;font-weight:700;letter-spacing:.08em}
.profile-popover{width:230px;position:absolute;right:0;top:48px;z-index:var(--z-popover);padding:7px;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-elevated);box-shadow:0 24px 70px rgba(0,0,0,.45)}
.profile-popover>div{padding:10px;border-bottom:1px solid var(--border-subtle)}.profile-popover strong,.profile-popover span{display:block}.profile-popover strong{font-size:12px}.profile-popover span{margin-top:2px;color:var(--text-muted);font-size:9px}
.profile-popover a,.profile-popover button{width:100%;min-height:36px;padding:8px 10px;display:flex;align-items:center;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:11px;text-align:left;cursor:pointer}.profile-popover a:hover,.profile-popover button:hover{background:var(--bg-hover);color:var(--text-primary)}.profile-popover form{margin:0;border-top:1px solid var(--border-subtle)}

/* Main composition */
.admin-content{max-width:1680px;padding:30px clamp(22px,2.5vw,42px) 52px}
.admin-body .page-heading{align-items:flex-end;margin-bottom:22px}.admin-body .page-title{margin-bottom:6px;font-size:26px;font-weight:720;letter-spacing:-.025em}.admin-body .page-sub{max-width:720px;color:var(--text-secondary);font-size:12px}.admin-body .eyebrow{margin-bottom:6px;color:var(--accent);font-size:9px;letter-spacing:.15em}
.admin-body .page-actions{justify-content:flex-end}.admin-body .grid{gap:16px}.admin-body .card+.card{margin-top:16px}
.admin-body .card{padding:20px;overflow:visible;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:11px;box-shadow:0 12px 34px rgba(0,0,0,.10)}
.admin-body .card::before{display:none}.admin-body .card-head{margin-bottom:15px}.admin-body .card-head h2,.admin-body .section-table-head h2{font-size:14px;font-weight:700;letter-spacing:-.01em}
.admin-body .card-kicker{margin-bottom:4px;color:var(--text-muted);font-size:8px;letter-spacing:.13em}.admin-body .card-description{margin-top:5px;font-size:11px;line-height:1.55}.admin-body .helper{font-size:10px}
.section-table-head{min-height:64px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-subtle)}
.table-card>.section-table-head{margin:-20px -20px 0}.admin-body .table-card{padding:0;overflow:hidden}.admin-body .table-card>.section-table-head{margin:0}
.text-action,.mono-link{color:var(--accent-hover);font-weight:600}.text-action:hover,.mono-link:hover{text-decoration:underline;text-underline-offset:3px}.mono-link{font-size:11px}

/* Buttons, forms, filters */
.admin-body .btn{min-height:38px;padding:8px 14px;border-radius:7px;font-size:11px;font-weight:700;box-shadow:none}.admin-body .btn-sm{min-height:32px;padding:6px 10px;font-size:10px}.admin-body .btn-primary{background:var(--accent);color:#061421}.admin-body .btn-primary:hover{background:var(--accent-hover)}
.admin-body .btn-ghost{background:var(--bg-elevated);border-color:var(--border-strong)}.admin-body .btn-ghost:hover{background:var(--bg-hover);border-color:var(--accent)}
.admin-body .btn-danger{background:rgba(240,109,120,.12);border-color:rgba(240,109,120,.42);color:#ffb8be}.admin-body .btn-danger:hover{background:rgba(240,109,120,.20)}
html[data-color-mode="light"] .admin-body .btn-danger{color:var(--danger)}
.admin-body .field{margin-bottom:13px}.admin-body .field label,.admin-body .field-label{margin-bottom:5px;color:var(--text-secondary);font-size:10px;font-weight:650}
.admin-body input,.admin-body select,.admin-body textarea{min-height:40px;padding:8px 11px;border-color:var(--border-strong);border-radius:7px;background:var(--bg-subtle);font-size:12px}.admin-body textarea{min-height:100px}.admin-body input::placeholder,.admin-body textarea::placeholder{color:var(--text-muted)}
.admin-body input:hover,.admin-body select:hover,.admin-body textarea:hover{border-color:#3b4b5d}.admin-body input:focus,.admin-body select:focus,.admin-body textarea:focus{border-color:var(--accent)}
.admin-body input[type="checkbox"],.admin-body input[type="radio"]{width:17px;height:17px;min-height:0}.admin-body .check-label{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:11px}
.filterbar,.filter-bar{display:flex;align-items:flex-end;gap:10px;margin-bottom:16px;padding:14px 16px;box-shadow:none!important}.filterbar .field,.filter-bar .field{min-width:150px;margin:0}.filterbar .grow{flex:1;min-width:230px}.filterbar.audit-filter{flex-wrap:wrap}.audit-filter .field{flex:1}
.period-nav{display:flex;gap:2px;padding:3px;overflow:auto;border:1px solid var(--border-subtle);border-radius:7px;background:var(--bg-subtle)}.period-nav a{min-height:30px;padding:6px 9px;display:flex;align-items:center;border-radius:5px;color:var(--text-muted);font-size:10px;font-weight:650;white-space:nowrap}.period-nav a:hover{color:var(--text-primary)}.period-nav a.active{background:var(--bg-elevated);color:var(--accent-hover);box-shadow:0 1px 0 var(--border-strong)}
.custom-range,.raw-settings{margin:0 0 16px;color:var(--text-secondary)}.custom-range>summary,.raw-settings>summary,.range-disclosure>summary{width:max-content;padding:7px 0;cursor:pointer;color:var(--accent-hover);font-size:10px;font-weight:650}.custom-period{display:flex;align-items:flex-end;gap:10px;margin:7px 0 0;padding:13px}.custom-period .field{max-width:170px;margin:0}.custom-period .label{margin-left:auto}
.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0}.permission-grid label{min-height:47px;padding:8px 9px;border-color:var(--border-subtle);border-radius:7px;background:var(--bg-subtle)}.permission-grid label:has(input:checked){border-color:rgba(91,165,247,.45);background:var(--accent-soft)}.permission-grid label strong{display:block;color:var(--text-primary);font-size:10px}.permission-grid label small{display:block;color:var(--text-muted);font-size:8px}
.editor-form{gap:13px}.code-editor{min-height:380px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.create-panel{margin-bottom:16px}.create-panel>summary{list-style:none;cursor:pointer;font-size:12px;font-weight:700}.create-panel>summary::before{content:"+";margin-right:8px;color:var(--accent)}.create-panel[open]>summary{margin-bottom:18px}.create-panel[open]>summary::before{content:"−"}
.form-section{padding:14px 0 2px;border-top:1px solid var(--border-subtle)}.form-section:first-of-type{border-top:0;padding-top:2px}.form-section-title{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:11px}.field-hint{display:block;margin-top:4px;color:var(--text-muted);font-size:10.5px;line-height:1.4}
/* ===== Dashboard redesign (UI/UX TZ v1.0) ===== */
.freshness{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);font-weight:600}.freshness svg{width:14px;height:14px}.freshness.is-stale{color:var(--warning)}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}.kpi-grid-ops{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.kpi-card{display:flex;flex-direction:column;gap:10px;padding:18px;min-height:118px;background:linear-gradient(160deg,var(--bg-surface),color-mix(in srgb,var(--bg-surface) 74%,transparent));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform .16s,border-color .16s}
.kpi-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 38%,transparent)}
.kpi-card.is-warning{border-color:color-mix(in srgb,var(--warning) 42%,transparent)}.kpi-card.is-success .kpi-value{color:var(--success)}.kpi-card.is-danger .kpi-value{color:var(--danger)}
.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kpi-label{color:var(--text-secondary);font-size:11px;font-weight:650;letter-spacing:.02em}
.kpi-value{font-size:30px;font-weight:750;letter-spacing:-.03em;line-height:1}
.kpi-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:auto}
.kpi-ctx{color:var(--text-muted);font-size:11px}
.kpi-delta{font-size:11px;font-weight:750;padding:2px 7px;border-radius:999px;white-space:nowrap}
.kpi-delta.is-good{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}
.kpi-delta.is-bad{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,transparent)}
.kpi-delta.is-flat{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 12%,transparent)}
.kpi-status.warning{font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--warning);border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);border-radius:999px;padding:2px 6px}
.spark{width:90px;height:24px;flex:0 0 auto;overflow:visible;animation:l2spark-in .5s ease both}
.spark-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.spark-area{opacity:.9}
.spark .spark-g0{stop-color:var(--accent);stop-opacity:.3}.spark .spark-g1{stop-color:var(--accent);stop-opacity:0}
.spark-dot{fill:var(--accent);stroke:var(--bg-surface);stroke-width:1.1}
.spark-good .spark-line{stroke:var(--success)}.spark-good .spark-dot{fill:var(--success)}.spark-good .spark-g0{stop-color:var(--success)}
.spark-bad .spark-line{stroke:var(--danger)}.spark-bad .spark-dot{fill:var(--danger)}.spark-bad .spark-g0{stop-color:var(--danger)}
.spark-flat .spark-line{stroke:var(--text-muted)}.spark-flat .spark-dot{fill:var(--text-muted)}.spark-flat .spark-g0{stop-color:var(--text-muted)}
@keyframes l2spark-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.spark{animation:none;transform:none}}
.attention-count.is-clear{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}
.attention-queue{display:flex;flex-direction:column;gap:8px}
.attn-row{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border-subtle);border-left-width:3px;border-radius:var(--radius-md);background:var(--bg-elevated);transition:transform .14s,border-color .14s}
.attn-row:hover{transform:translateX(2px)}
.attn-row.is-danger{border-left-color:var(--danger)}.attn-row.is-warning{border-left-color:var(--warning)}.attn-row.is-info{border-left-color:var(--info)}
.attn-sev{font-size:10px;font-weight:800;letter-spacing:.06em;padding:3px 7px;border-radius:6px;background:var(--bg-hover);color:var(--text-secondary)}
.attn-row.is-danger .attn-sev{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}
.attn-row.is-warning .attn-sev{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,transparent)}
.attn-icon{display:inline-flex;color:var(--text-secondary)}.attn-icon svg{width:18px;height:18px}
.attn-body{min-width:0}.attn-body strong{display:block;font-size:13px}.attn-body small{color:var(--text-muted);font-size:11px}
.attn-cta{color:var(--accent-hover);font-size:11px;font-weight:700;white-space:nowrap}
.activity-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:11px;width:100%;padding:10px 6px;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit}
.activity-row:last-child{border-bottom:0}.activity-row:hover{background:var(--bg-surface)}
.activity-type{display:inline-flex;color:var(--text-muted)}.activity-type svg{width:17px;height:17px}
.activity-main{min-width:0}.activity-main strong{display:block;font-size:12.5px;font-weight:650}.activity-main small{color:var(--text-muted);font-size:11px}
.activity-result-dot{width:8px;height:8px;border-radius:50%;background:var(--success)}
.activity-result-dot.failed,.activity-result-dot.denied{background:var(--danger)}
.activity-row time{color:var(--text-muted);font-size:11px;white-space:nowrap}
.health-panel{display:flex;flex-wrap:wrap;gap:20px 26px;padding:14px 18px;margin-top:16px}
.health-chip{display:flex;align-items:center;gap:9px}
.health-chip small{display:block;color:var(--text-muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.health-chip strong{font-size:12.5px}
.health-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.health-dot.is-ok{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 20%,transparent)}
.health-dot.is-bad{background:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb,var(--warning) 20%,transparent)}
.drawer-overlay{position:fixed;inset:0;z-index:var(--z-drawer);background:rgba(0,0,0,.5);opacity:0;transition:opacity .18s;display:flex;justify-content:flex-end}
.drawer-overlay.open{opacity:1}
.drawer-panel{width:min(460px,92vw);height:100%;background:var(--bg-surface);border-left:1px solid var(--border-strong);box-shadow:-30px 0 80px -40px #000;display:flex;flex-direction:column;transform:translateX(24px);transition:transform .2s}
.drawer-overlay.open .drawer-panel{transform:none}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px;border-bottom:1px solid var(--border-subtle)}
.drawer-head h3{margin:4px 0 0;font-size:16px;word-break:break-word}
.drawer-body{padding:12px 20px;flex:1;overflow-y:auto}
.drawer-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--border-subtle);font-size:13px}
.drawer-row span{color:var(--text-muted)}.drawer-row b{text-align:right;word-break:break-word;font-weight:600}
.drawer-foot{padding:16px 20px;border-top:1px solid var(--border-subtle)}
@media(max-width:1279px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1023px){.attn-row{grid-template-columns:auto 1fr;row-gap:6px}.attn-icon{display:none}.attn-cta{grid-column:2}}
@media(max-width:600px){.kpi-grid{grid-template-columns:1fr}}

/* Tables and data */
.table-scroll,.table-wrap{width:100%;overflow:auto}.admin-body .tbl,.admin-body .table-wrap table{width:100%;border-collapse:separate;border-spacing:0}.admin-body .tbl th,.admin-body .table-wrap th{padding:10px 12px;position:sticky;top:0;z-index:1;background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);text-align:left;font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.admin-body .tbl td,.admin-body .table-wrap td{padding:12px;border-bottom:1px solid var(--border-subtle);font-size:11px;vertical-align:middle}.admin-body .tbl tbody tr:last-child td,.admin-body .table-wrap tbody tr:last-child td{border-bottom:0}.admin-body .tbl tbody tr:hover td,.admin-body .table-wrap tbody tr:hover td{background:var(--bg-hover)}
.admin-body tr[data-row-href]{cursor:pointer}.admin-body tr[data-row-href]:focus-visible td{background:var(--accent-soft)}.density-compact .tbl td,.density-compact .table-wrap td{padding-top:8px;padding-bottom:8px}.density-compact .tbl th,.density-compact .table-wrap th{padding-top:7px;padding-bottom:7px}
.table-subtext{margin-top:3px;color:var(--text-muted);font-size:9px}.amount-cell{font-weight:700;color:var(--text-primary)}.role-label{text-transform:capitalize}
.admin-body .badge{padding:4px 7px;border-radius:5px;font-size:8px;letter-spacing:.02em}.admin-body .badge::before{width:5px;height:5px}.admin-body .badge-ok{background:rgba(73,201,139,.10)}.admin-body .badge-wait{background:rgba(229,174,92,.10)}.admin-body .badge-danger{background:rgba(240,109,120,.10)}.admin-body .badge-info{background:rgba(113,181,236,.10)}
.admin-body .empty{padding:34px 20px;font-size:11px}.admin-body .empty.compact{padding:24px 18px}.admin-body .empty strong{font-size:12px}.admin-body .empty svg{width:25px;height:25px}
.admin-body .alert{position:relative;margin-bottom:16px;padding:12px 38px 12px 14px;border-radius:8px;font-size:11px}.alert-close{position:absolute;right:7px;top:7px;width:26px;height:26px;border:0;border-radius:5px;background:transparent;color:currentColor;font-size:18px;cursor:pointer}.alert-close:hover{background:rgba(255,255,255,.07)}
.pager{margin-top:16px}.pager-meta{font-size:10px}.pager .disabled{opacity:.42;cursor:not-allowed}
.admin-body .tabs{position:sticky;top:76px;z-index:var(--z-tabs);margin-bottom:16px;padding:4px;border-color:var(--border-subtle);border-radius:8px;background:rgba(11,16,23,.92);backdrop-filter:blur(10px)}html[data-color-mode="light"] .admin-body .tabs{background:rgba(237,241,245,.92)}.admin-body .tabs a{min-height:34px;padding:7px 10px;border-radius:5px;font-size:9px}.admin-body .tabs a:hover{background:var(--bg-hover);color:var(--accent-hover)}
.config-list{gap:0}.config-row{padding:9px 0;border-color:var(--border-subtle);font-size:11px}.config-row dt,.config-row>span{color:var(--text-muted)}.config-row dd{font-weight:600}.config-row form{margin:0}
.audit-details summary{color:var(--accent-hover);font-size:9px}.audit-details pre{max-width:620px;max-height:340px;margin:9px 0 0;padding:12px;border:1px solid var(--border-subtle);border-radius:7px;background:var(--bg-subtle);font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow:auto}

/* Dashboard */
.dashboard-toolbar{min-height:70px;margin-bottom:16px;padding:13px 16px!important;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;box-shadow:none!important}.dashboard-toolbar>div:first-child{display:flex;align-items:center;gap:12px;min-width:0}.toolbar-label{color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.range-disclosure{position:relative}.range-disclosure>summary{padding:6px 8px;border-radius:6px}.range-disclosure[open]>summary{background:var(--bg-hover)}.range-form{width:310px;position:absolute;right:0;top:38px;z-index:var(--z-toolbar);padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:9px;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg-elevated);box-shadow:0 22px 50px rgba(0,0,0,.35)}.range-form .field{margin:0}.range-form .btn{grid-column:1/3}
.report-meta{display:flex;align-items:center;gap:8px;padding-left:16px;border-left:1px solid var(--border-subtle)}.report-meta>span:last-child{display:flex;flex-direction:column}.report-meta strong{font-size:10px}.report-meta small{color:var(--text-muted);font-size:8px}
.ops-signal{width:8px;height:8px;display:inline-block;border-radius:50%;background:var(--warning);flex:0 0 auto}.ops-signal.is-ok{background:var(--success)}.ops-signal.is-fail{background:var(--danger)}
.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.admin-body .metric-card{min-height:120px;padding:16px;position:relative;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface);box-shadow:none;transition:border-color .12s,background-color .12s}.admin-body a.metric-card:hover{border-color:var(--accent);background:var(--bg-hover)}.admin-body a.metric-card::after{content:"↗";position:absolute;right:14px;top:12px;color:var(--text-muted);font-size:11px}.metric-label{padding-right:22px;color:var(--text-secondary);font-size:10px;font-weight:650}.admin-body .metric-card .metric-num{font:720 25px/1.1 Inter,sans-serif;letter-spacing:-.04em}.admin-body .metric-card .metric-caption{color:var(--text-muted);font-size:9px}.admin-body .metric-card.warning .metric-num{color:var(--warning)}.admin-body .metric-card.success .metric-num{color:var(--success)}
.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:16px}.attention-card,.recent-activity{padding:0!important;overflow:hidden!important}.attention-list,.activity-list{display:grid}.attention-item,.activity-list>a{min-height:62px;padding:11px 16px;display:grid;align-items:center;gap:11px;border-bottom:1px solid var(--border-subtle)}.attention-item{grid-template-columns:34px 1fr auto}.attention-item:last-child,.activity-list>a:last-child{border-bottom:0}.attention-item:hover,.activity-list>a:hover{background:var(--bg-hover)}.attention-item>span{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--accent-soft);color:var(--accent)}.attention-item>span svg{width:15px;height:15px}.attention-item.is-warning>span{background:rgba(229,174,92,.10);color:var(--warning)}.attention-item.is-danger>span{background:rgba(240,109,120,.10);color:var(--danger)}.attention-item strong,.attention-item small{display:block}.attention-item strong{font-size:11px}.attention-item small{margin-top:2px;color:var(--text-muted);font-size:9px}.attention-item>b,.attention-count{min-width:25px;height:25px;padding:0 7px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font-size:9px}
.healthy-state{min-height:160px;padding:24px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary)}.healthy-state>span{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:rgba(73,201,139,.10);color:var(--success)}.healthy-state svg{width:18px}.healthy-state strong,.healthy-state small{display:block}.healthy-state strong{color:var(--text-primary);font-size:12px}.healthy-state small{margin-top:3px;font-size:9px}
.activity-list>a{grid-template-columns:8px 1fr auto}.activity-result{width:7px;height:7px;border-radius:50%;background:var(--success)}.activity-result.failed,.activity-result.denied{background:var(--danger)}.activity-list strong,.activity-list small{display:block}.activity-list strong{font-size:10px}.activity-list small{margin-top:2px;color:var(--text-muted);font-size:9px}.activity-list time{color:var(--text-muted);font-size:8px;white-space:nowrap}
.workspace-strip{min-height:60px;margin-top:16px;padding:12px 16px!important;display:flex;align-items:center;gap:0;box-shadow:none!important}.workspace-strip>div{min-width:145px;padding:0 18px;border-right:1px solid var(--border-subtle);display:flex;align-items:center;gap:8px}.workspace-strip>div:first-child{padding-left:0}.workspace-strip small,.workspace-strip strong{display:block}.workspace-strip small{color:var(--text-muted);font-size:8px;text-transform:uppercase;letter-spacing:.06em}.workspace-strip strong{font-size:10px}.workspace-strip>a{margin-left:auto;color:var(--accent-hover);font-size:10px;font-weight:650}

/* Detail screens and operational modules */
.identity{margin-bottom:16px;padding:18px!important}.identity-avatar{border-color:var(--border-strong);border-radius:9px;background:var(--accent-soft);color:var(--accent-hover)}.identity-meta{gap:24px}.identity-meta span{font-size:9px}.identity-meta b{font-size:10px}.admin-body .balance .amt{font-size:27px}.admin-body .gold{color:var(--warning)}
.danger-zone{border-color:rgba(240,109,120,.34)!important;background:linear-gradient(180deg,var(--bg-surface),rgba(240,109,120,.025))!important}.sensitive-actions{margin-bottom:16px}.role-cards{margin-bottom:16px}.access-note{margin-top:16px}.promo-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.promo-actions form{margin:0}
.media-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.media-grid figure{padding:7px;border-color:var(--border-subtle);border-radius:8px}.media-grid img{border-radius:5px}.media-grid figcaption{font-size:9px}.upload-panel{margin-top:16px}.article-card{padding:25px!important}.article-card h1{font-family:Inter,sans-serif;font-size:28px}
.support-admin-grid{grid-template-columns:minmax(0,1.5fr) minmax(270px,.5fr);align-items:start}.admin-chatlog{min-height:430px;border-radius:8px}.admin-body .msg{border-radius:9px;font-size:11px}.admin-body .msg-user{background:var(--accent-soft);border-bottom-right-radius:3px}.admin-body .msg-op{border-bottom-left-radius:3px}.admin-body .msg-note{border-color:rgba(229,174,92,.35);background:rgba(229,174,92,.06)}
.support-summary{margin-bottom:16px;display:grid;grid-template-columns:160px 160px 1fr;gap:10px}.summary-stat,.summary-note{min-height:62px;padding:12px 14px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-surface)}.summary-stat{display:flex;align-items:center;justify-content:space-between}.summary-stat span{color:var(--text-muted);font-size:9px}.summary-stat strong{font-size:20px}.summary-stat.has-warning strong{color:var(--warning)}.summary-note{display:flex;align-items:center;justify-content:flex-end;gap:9px}.summary-note strong,.summary-note small{display:block}.summary-note strong{font-size:10px}.summary-note small{margin-top:2px;color:var(--text-muted);font-size:8px}.priority{padding:4px 7px;border-radius:5px;background:var(--bg-elevated);color:var(--text-secondary);font-size:8px;font-weight:750;text-transform:uppercase}.priority-urgent{background:rgba(240,109,120,.12);color:var(--danger)}.priority-high{background:rgba(229,174,92,.12);color:var(--warning)}
.settings-grid,.settings-editor-grid{margin-bottom:16px}.integrations-card{margin-top:16px}.secret-rotation{margin-top:16px}.raw-settings{margin-top:16px}.config-preview{color:var(--text-secondary);font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}
.payment-hero{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:18px}.copy-line{display:flex;align-items:center;gap:9px;margin:5px 0 12px}.copy-line code{max-width:min(620px,60vw);overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);font-size:13px;white-space:nowrap}.payment-total{text-align:right}.payment-total span,.payment-total strong{display:block}.payment-total span{color:var(--text-muted);font-size:9px;text-transform:uppercase}.payment-total strong{margin-top:4px;font-size:25px}.payment-detail-grid{margin-bottom:16px}.payment-timeline{margin:0;padding:0;list-style:none}.payment-timeline li{min-height:47px;position:relative;padding:0 0 14px 27px}.payment-timeline li:not(:last-child)::before{content:"";width:1px;position:absolute;left:7px;top:12px;bottom:-2px;background:var(--border-strong)}.payment-timeline li>span{width:15px;height:15px;position:absolute;left:0;top:1px;border:3px solid var(--bg-surface);border-radius:50%;background:var(--text-muted);box-shadow:0 0 0 1px var(--border-strong)}.payment-timeline li.is-done>span{background:var(--success)}.payment-timeline li.is-danger>span{background:var(--danger)}.payment-timeline strong,.payment-timeline time{display:block}.payment-timeline strong{font-size:10px}.payment-timeline time{margin-top:2px;color:var(--text-muted);font-size:9px}.page-footer-actions{margin-top:16px;display:flex;justify-content:flex-end}

/* Dialogs and command palette */
body.dialog-open{overflow:hidden}.command-dialog,.confirm-dialog{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:start center;padding:10vh 16px 30px}.command-dialog[hidden],.confirm-dialog[hidden]{display:none}.dialog-backdrop{position:absolute;inset:0;border:0;background:rgba(2,5,8,.72);backdrop-filter:blur(5px);cursor:default}
.command-panel{width:min(620px,100%);max-height:min(680px,78vh);position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-elevated);box-shadow:0 34px 100px rgba(0,0,0,.58)}
.command-input-wrap{height:60px;padding:0 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-subtle)}.command-input-wrap>svg{width:19px;color:var(--text-muted)}.command-input-wrap input{flex:1;min-height:0;padding:0;border:0;background:transparent;font-size:14px;box-shadow:none!important}.command-input-wrap>kbd{margin-left:auto}.command-results{padding:8px;overflow:auto}.command-group>span{display:block;padding:7px 9px;color:var(--text-muted);font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.command-group>a,.command-search-actions>a{min-height:48px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;border-radius:7px;color:var(--text-secondary)}.command-group>a:hover,.command-group>a.is-selected,.command-search-actions>a:hover,.command-search-actions>a.is-selected{background:var(--accent-soft);color:var(--text-primary)}.command-group>a span{font-size:11px;font-weight:650}.command-group>a small{color:var(--text-muted);font:9px ui-monospace,monospace}.command-empty{padding:14px 10px;color:var(--text-muted);font-size:10px}.command-search-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px 0 0;border-top:1px solid var(--border-subtle)}.command-search-actions>a{justify-content:center;min-height:38px;border:1px solid var(--border-subtle);font-size:9px}.command-help{min-height:38px;padding:7px 16px;display:flex;align-items:center;gap:18px;border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:8px}.command-help span{display:flex;align-items:center;gap:4px}
.confirm-dialog{place-items:center;padding:18px}.confirm-panel{width:min(470px,100%);position:relative;padding:22px;display:grid;grid-template-columns:40px 1fr;gap:13px;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg-elevated);box-shadow:0 34px 100px rgba(0,0,0,.58)}.confirm-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:rgba(240,109,120,.10);color:var(--danger)}.confirm-icon svg{width:19px}.confirm-panel h2{font-size:16px}.confirm-panel p{margin:7px 0 0;color:var(--text-secondary);font-size:11px;line-height:1.6}.confirm-actions{grid-column:1/3;margin-top:7px;display:flex;justify-content:flex-end;gap:8px}.toast-region{position:fixed;right:18px;bottom:18px;z-index:var(--z-toast);display:grid;gap:8px}

/* Admin authentication */
.admin-auth-body{background:#070a0f}.admin-auth-body .auth::before{background:radial-gradient(600px 380px at 50% 20%,rgba(91,165,247,.08),transparent 70%)}.admin-auth-body .auth-card{max-width:430px;padding:0;background:transparent;border:0;box-shadow:none}.admin-auth-body .admin-brand{justify-content:center;border:0}.admin-auth-body .auth-form{padding:24px;border:1px solid var(--border-strong);border-radius:11px;background:var(--bg-surface);box-shadow:0 24px 80px rgba(0,0,0,.34)}.admin-auth-body .admin-auth-heading h1{font-size:23px}.admin-auth-body .admin-auth-heading p{font-size:11px}.admin-access-label{color:var(--text-muted);font-size:8px}.admin-auth-note{font-size:10px}

@media (max-width:1440px){.admin-content{padding-left:28px;padding-right:28px}.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1280px){.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}.command-trigger{width:min(290px,28vw)}.settings-grid,.settings-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1024px){
  .sidebar-collapsed .admin-shell .sidebar,.admin-shell .sidebar{width:var(--sidebar);flex-basis:var(--sidebar);left:calc(var(--sidebar) * -1 - 12px);padding:14px 12px}.sidebar-collapsed .admin-brand{justify-content:flex-start;padding:7px 9px 15px}.sidebar-collapsed .admin-brand .bt,.sidebar-collapsed .admin-build,.sidebar-collapsed .admin-environment,.sidebar-collapsed .admin-nav .nav-label,.sidebar-collapsed .admin-side-foot>span,.sidebar-collapsed .admin-side-foot>svg{display:initial}.sidebar-collapsed .admin-shell .admin-nav a{justify-content:flex-start;padding:9px 10px}.sidebar-collapsed .admin-shell .admin-nav a>span{display:inline}.sidebar-collapsed .admin-shell .admin-nav a:hover>span{position:static;padding:0;border:0;background:transparent;box-shadow:none}.sidebar-collapse{display:none}
  .admin-shell .sidebar.open{left:0}.admin-body .burger{display:inline-flex}.command-trigger{width:220px;margin-left:0}.admin-breadcrumbs{min-width:0}.admin-live-state span{display:none}.support-admin-grid{grid-template-columns:1fr}.admin-body .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .admin-body{--topbar:58px}.admin-body .topbar{padding:0 13px}.admin-content{padding:21px 16px 40px}.admin-breadcrumbs{display:none}.command-trigger{width:auto;flex:1;max-width:300px}.command-trigger kbd{display:none}.admin-body .topbar-login{display:none}.admin-live-state{display:none}
  .admin-body .page-heading{align-items:stretch;flex-direction:column;gap:13px}.admin-body .page-title{font-size:23px}.admin-body .page-actions{justify-content:flex-start}.admin-body .g2,.admin-body .g3,.settings-grid,.settings-editor-grid{grid-template-columns:1fr}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-toolbar{grid-template-columns:1fr auto}.dashboard-toolbar>div:first-child{align-items:flex-start;flex-direction:column}.report-meta{grid-column:1/3;padding:10px 0 0;border-left:0;border-top:1px solid var(--border-subtle)}.range-form{right:0}.workspace-strip{align-items:stretch;flex-wrap:wrap}.workspace-strip>div{min-width:50%;padding:8px 12px;border-bottom:1px solid var(--border-subtle)}.workspace-strip>div:first-child{padding-left:12px}.workspace-strip>a{width:100%;margin:10px 12px 0}
  .support-summary{grid-template-columns:1fr 1fr}.summary-note{grid-column:1/3;justify-content:flex-start}.filterbar,.filter-bar{align-items:stretch;flex-direction:column}.filterbar .field,.filter-bar .field,.filterbar .grow{min-width:0}.admin-body .responsive-table,.admin-body .responsive-table tbody,.admin-body .responsive-table tr,.admin-body .responsive-table td{display:block;width:100%}.admin-body .responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.admin-body .responsive-table tr{padding:9px 0;border-bottom:1px solid var(--border-subtle)}.admin-body .responsive-table tr:last-child{border-bottom:0}.admin-body .responsive-table td{min-height:34px;padding:6px 13px;display:flex;align-items:center;justify-content:space-between;gap:16px;border:0;text-align:right}.admin-body .responsive-table td::before{content:attr(data-label);color:var(--text-muted);font-size:8px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;text-align:left}.admin-body .responsive-table td[colspan]{justify-content:center}.admin-body .responsive-table td[colspan]::before{display:none}.admin-body .responsive-table tbody tr:hover td{background:transparent}.admin-body .tabs{top:66px}.media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:480px){
  .admin-content{padding:18px 11px 34px}.admin-body .topbar{gap:5px;padding:0 8px}.command-trigger span{font-size:0}.command-trigger span::after{content:"Поиск";font-size:10px}.density-toggle{display:none}.admin-alert-link{display:none}.admin-body .page-title{font-size:21px}.admin-body .card{padding:16px;border-radius:9px}.admin-body .table-card{padding:0}.admin-metrics{grid-template-columns:1fr 1fr;gap:8px}.admin-body .metric-card{min-height:108px;padding:13px}.admin-body .metric-card .metric-num{font-size:21px}.dashboard-toolbar{padding:13px!important}.period-nav{width:100%;max-width:calc(100vw - 54px)}.range-form{width:min(310px,calc(100vw - 30px));right:-8px}.dashboard-columns{gap:12px}.attention-item,.activity-list>a{padding-left:12px;padding-right:12px}.activity-list>a{grid-template-columns:8px 1fr}.activity-list time{grid-column:2}.workspace-strip>div{min-width:100%;border-right:0}.payment-hero{align-items:flex-start;flex-direction:column}.payment-total{text-align:left}.copy-line{align-items:stretch;flex-direction:column}.copy-line code{max-width:100%;overflow-wrap:anywhere;white-space:normal}.permission-grid{grid-template-columns:1fr}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.command-dialog{padding:7vh 9px 20px}.command-search-actions{grid-template-columns:1fr}.confirm-panel{padding:18px}.profile-popover{right:-4px}.pager{flex-wrap:wrap}.pager-meta{width:100%;order:-1;text-align:center}
}
@media (max-width:390px){.admin-content{padding-left:8px;padding-right:8px}.admin-body .topbar{padding-left:6px;padding-right:6px}.command-trigger{max-width:none}.admin-metrics{grid-template-columns:1fr}.admin-body .metric-card{min-height:102px}.admin-body .page-actions>.btn{width:100%}.admin-body .responsive-table td{padding-left:11px;padding-right:11px}.profile-menu{margin-left:0}.profile-menu>summary{padding:0}.command-help{display:none}}
@media (max-width:360px){.admin-body .page-title{font-size:20px}.admin-body .icon-button{width:34px}.admin-body .avatar{width:29px;height:29px}.admin-body .card{padding:14px}.admin-body .table-card{padding:0}.period-nav{max-width:calc(100vw - 46px)}}
@media (prefers-reduced-motion:reduce){.admin-shell .sidebar{transition:none}}

/* Finance operations */
.payment-page-actions{display:flex;gap:8px}.payment-toolbar{min-height:68px;margin-bottom:14px;padding:12px 15px!important;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:none!important}.payment-toolbar>div{min-width:0}.payment-toolbar .toolbar-label{display:block;margin-bottom:7px}.payment-toolbar .report-meta{flex:0 0 auto}.payment-filter-panel{margin-bottom:12px;padding:0!important;overflow:visible!important;box-shadow:none!important}.payment-filterbar{margin:0;padding:14px}.advanced-payment-filters{border-top:1px solid var(--border-subtle)}.advanced-payment-filters>summary{width:max-content;padding:11px 14px;display:flex;align-items:center;gap:7px;color:var(--accent-hover);cursor:pointer;font-size:9px;font-weight:700}.advanced-payment-filters>summary svg{width:14px}.advanced-filter-grid{padding:0 14px 14px;display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.advanced-filter-grid .field{margin:0}.active-filter-chips{margin:0 0 12px;display:flex;flex-wrap:wrap;gap:7px}.active-filter-chips a{min-height:28px;padding:5px 8px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-surface);color:var(--text-secondary);font-size:9px}.active-filter-chips a:hover{border-color:var(--accent);color:var(--text-primary)}.active-filter-chips a>span[aria-hidden]{color:var(--text-muted);font-size:13px}.payment-stats{margin-bottom:14px}.stats-loading,.stats-empty{min-height:72px;padding:14px 16px!important;display:flex;align-items:center;gap:13px;box-shadow:none!important}.stats-loading strong,.stats-loading small{display:block}.stats-loading strong{font-size:10px}.stats-loading small{margin-top:3px;color:var(--text-muted);font-size:9px}.loading-bar{width:34px;height:34px;position:relative;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-subtle);overflow:hidden}.loading-bar::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--accent-soft),transparent);animation:stats-shimmer 1.2s infinite}.payment-stats-group+.payment-stats-group{margin-top:10px}.payment-stats-heading{margin:0 1px 7px;display:flex;align-items:center;justify-content:space-between}.payment-stats-heading strong{font-size:11px}.payment-stats-heading span{color:var(--text-muted);font-size:9px}.payment-kpi-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:7px;overflow:auto;padding-bottom:2px}.payment-kpi{min-height:92px;padding:12px!important;display:flex;flex-direction:column;justify-content:space-between;box-shadow:none!important}.payment-kpi .metric-label{font-size:8px}.payment-kpi .metric-num{font-size:16px!important;white-space:nowrap}.payment-kpi small{color:var(--text-muted);font-size:7.5px}.stats-error{margin:0}.payment-table-card{margin-bottom:12px}.payment-table th a{color:inherit}.payment-table th a:hover{color:var(--accent-hover)}.payment-table tbody tr[role=link]{cursor:pointer}.id-cell{display:flex;align-items:center;gap:5px;white-space:nowrap}.id-cell code{max-width:112px;overflow:hidden;text-overflow:ellipsis}.copy-icon{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer}.copy-icon:hover,.copy-icon:focus-visible{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text-primary)}.row-action{color:var(--accent-hover);font-size:9px;font-weight:650;white-space:nowrap}.webhook-log-card{margin-top:16px}.webhook-log-card .table-scroll{max-height:540px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.payment-timeline-detailed{max-height:520px;overflow:auto}.payment-timeline-detailed small{display:block;margin-top:3px;color:var(--text-muted);font-size:8px}.provider-capability-note{align-items:flex-start}.provider-capability-note>svg{width:18px;flex:0 0 auto}.provider-capability-note strong,.provider-capability-note span{display:block}.provider-capability-note span{margin-top:3px}@keyframes stats-shimmer{to{transform:translateX(100%)}}
@media (max-width:1280px){.advanced-filter-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}.payment-kpi-grid{grid-template-columns:repeat(4,minmax(135px,1fr))}}
@media (max-width:768px){.payment-toolbar{align-items:stretch;flex-direction:column}.payment-toolbar .report-meta{padding:9px 0 0;border-top:1px solid var(--border-subtle);border-left:0}.advanced-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-kpi-grid{grid-template-columns:repeat(2,minmax(135px,1fr))}.payment-table tbody tr[role=link]{cursor:default}}
@media (max-width:480px){.payment-page-actions{width:100%;flex-direction:column}.payment-page-actions .btn{width:100%}.advanced-filter-grid{grid-template-columns:1fr}.payment-kpi-grid{grid-template-columns:1fr 1fr}.payment-filter-panel{overflow:hidden!important}}

/* Finance workspace: production journal and an explicitly isolated TEST lab. */
.finance-workspace{margin:0 0 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.finance-view{min-height:72px;padding:12px 14px;display:grid;grid-template-columns:38px 1fr 16px;align-items:center;gap:11px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface);color:var(--text-secondary);transition:border-color .12s,background-color .12s}
.finance-view:hover,.finance-view.active{border-color:var(--accent);background:var(--bg-hover);color:var(--text-primary)}
.finance-view>svg{width:15px;color:var(--text-muted)}.finance-view strong,.finance-view small{display:block}.finance-view strong{color:var(--text-primary);font-size:11px}.finance-view small{margin-top:3px;color:var(--text-muted);font-size:9px}
.finance-view-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--accent-soft);color:var(--accent)}.finance-view-icon svg{width:18px}.finance-view-icon.warning{background:rgba(229,174,92,.10);color:var(--warning)}.finance-view-icon.success{background:rgba(73,201,139,.10);color:var(--success)}.finance-view-icon.sandbox{background:rgba(161,119,255,.12);color:#bba0ff}
.sandbox-console{margin-bottom:14px;padding:18px!important;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(460px,1.28fr);align-items:center;gap:24px;border-color:rgba(161,119,255,.35)!important;background:linear-gradient(135deg,var(--bg-surface),rgba(128,91,210,.07))!important}
.sandbox-console-copy h2{margin:2px 0 7px;font-size:16px}.sandbox-console-copy p{max-width:610px;color:var(--text-secondary);font-size:10px;line-height:1.55}.sandbox-console-copy .chips{margin-top:11px}
.sandbox-create-form{margin:0;padding:14px;display:grid;grid-template-columns:minmax(160px,1fr) 150px;gap:10px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-subtle)}.sandbox-create-form .field{margin:0}.sandbox-create-form .sandbox-reason{grid-column:1/3}.sandbox-create-form .btn{grid-column:1/3;justify-self:start}
.sandbox-detail{grid-template-columns:minmax(260px,.78fr) minmax(440px,1.22fr)}.sandbox-transition-form{margin:0;padding:14px;display:grid;grid-template-columns:200px minmax(240px,1fr);align-items:end;gap:10px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-subtle)}.sandbox-transition-form .field{margin:0}.sandbox-transition-form .btn{grid-column:1/3;justify-self:start}
.sandbox-terminal{padding:14px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-subtle)}.sandbox-terminal .state-icon{margin:0}.sandbox-terminal strong{font-size:11px}.sandbox-terminal p{margin-top:3px;color:var(--text-muted);font-size:9px}
.environment-pill{width:max-content;margin-top:4px;padding:3px 5px;display:block;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-muted);font-size:7px;font-weight:800;letter-spacing:.08em}.environment-pill.is-test{border-color:rgba(161,119,255,.35);background:rgba(161,119,255,.09);color:#bba0ff}.environment-pill.is-production{border-color:rgba(73,201,139,.25);color:var(--success)}
.payment-technical-log>summary{list-style:none;cursor:pointer}.payment-technical-log>summary::-webkit-details-marker{display:none}.payment-technical-log>summary:hover{background:var(--bg-hover)}.payment-technical-log[open]>summary .label{color:var(--accent-hover)}
@media (max-width:980px){.finance-workspace{grid-template-columns:1fr}.sandbox-console,.sandbox-detail{grid-template-columns:1fr}.sandbox-create-form,.sandbox-transition-form{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.sandbox-create-form,.sandbox-transition-form{grid-template-columns:1fr}.sandbox-create-form .sandbox-reason,.sandbox-create-form .btn,.sandbox-transition-form .btn{grid-column:1}.sandbox-terminal{grid-template-columns:36px 1fr}.sandbox-terminal .btn{grid-column:1/3}.finance-view{min-height:64px}.payment-technical-log>summary{align-items:flex-start;flex-direction:column}}
/* Active-filter chips (UI/UX TZ §10.1) */
.admin-body .filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 16px}
.admin-body .filter-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;line-height:1;transition:border-color .14s,color .14s}
.admin-body .filter-chip:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--text-primary)}
.admin-body .filter-chip b{color:var(--text-muted);font-weight:650}
.admin-body .filter-chip svg{width:13px;height:13px;opacity:.7}
.admin-body .filter-chip.is-clear{color:var(--accent-hover);border-style:dashed}
.admin-body .filter-chip.is-clear:hover{background:var(--accent-soft)}
/* Empty-state CTA (UI/UX TZ §9.1) */
.admin-body .empty .empty-cta{margin-top:12px}
/* Sticky form action bar for long editors (UI/UX TZ §10.2) */
.admin-body .editor-form .form-actionbar{position:sticky;bottom:0;z-index:var(--z-actionbar);display:flex;justify-content:flex-end;gap:10px;margin:20px -22px -22px;padding:14px 22px;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);border-top:1px solid var(--border-subtle);backdrop-filter:blur(8px);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
/* Navigation progress bar — perceived-performance feedback on server-rendered navigations (UI/UX TZ §12) */
.admin-body .route-progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-hover));box-shadow:0 0 8px color-mix(in srgb,var(--accent) 60%,transparent);z-index:var(--z-progress);opacity:0;pointer-events:none;border-radius:0 2px 2px 0}
.admin-body.is-navigating .route-progress{opacity:1;width:88%;transition:width 9s cubic-bezier(.08,.7,.2,1)}
@media (prefers-reduced-motion:reduce){.admin-body.is-navigating .route-progress{transition:none;width:40%}}
/* Sidebar actionable badge (UI/UX TZ §4.1) */
.admin-body .nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;line-height:1;flex:0 0 auto}
.admin-body .sidebar-collapsed .nav-badge{position:absolute;top:5px;right:5px;min-width:15px;height:15px;font-size:8px}
.admin-body .admin-nav a{position:relative}

/* ============================================================
   MODERN 2.0 — premium console polish (visual-only, scoped .admin-body)
   Glass surfaces · tinted depth · gradient accents · glow interactions · motion.
   Appended last so it layers over base component styles. No layout/size changes,
   text colors untouched (AC-15 contrast preserved), reduced-motion guarded.
   ============================================================ */

/* Frosted top bar with gradient hairline */
.admin-body .topbar{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-base) 80%,transparent),color-mix(in srgb,var(--bg-base) 66%,transparent));-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border-bottom:1px solid var(--border-subtle);border-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 34%,transparent),transparent) 1}
.admin-body .admin-live-state{transition:border-color .18s ease,box-shadow .18s ease}
.admin-body .admin-live-state:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 14%,transparent)}
.admin-body .admin-live-state i{box-shadow:0 0 8px color-mix(in srgb,var(--success) 70%,transparent)}
.admin-body .avatar{transition:transform .18s ease,box-shadow .18s ease}
.admin-body .avatar:hover{transform:translateY(-1px);box-shadow:0 0 0 3px var(--accent-soft),0 8px 20px -10px color-mix(in srgb,var(--accent) 80%,transparent)}

/* Sidebar: deeper frosted glass, glowing active pill */
.admin-body .sidebar{background:linear-gradient(185deg,color-mix(in srgb,var(--bg-subtle) 92%,transparent),color-mix(in srgb,var(--bg-base) 98%,transparent));-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%)}
.admin-body .nav a{transition:background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.admin-body .nav a:hover{transform:translateX(2px)}
.admin-body .nav a.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent),0 8px 20px -14px color-mix(in srgb,var(--accent) 65%,transparent)}
.admin-body .nav a.active::before{box-shadow:0 0 14px color-mix(in srgb,var(--accent) 75%,transparent)}
.admin-body .brand .em{transition:filter .2s ease}
.admin-body .brand:hover .em{filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 45%,transparent))}

/* Cards: layered tinted depth, top sheen, hover lift + accent ring */
.admin-body .card{position:relative;background:linear-gradient(168deg,color-mix(in srgb,var(--bg-surface) 96%,var(--accent) 4%),var(--bg-surface) 60%);box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 5%,transparent),0 18px 40px -28px rgba(0,0,0,.7),0 4px 14px -10px rgba(0,0,0,.5);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.admin-body .card:hover{border-color:color-mix(in srgb,var(--accent) 24%,var(--border-subtle));box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent),0 26px 60px -30px rgba(0,0,0,.78),0 0 0 1px color-mix(in srgb,var(--accent) 9%,transparent)}
.admin-body .table-card:hover,.admin-body .sandbox-console:hover{transform:none}

/* KPI cards: signature surface, radial sheen, hover glow ring */
.admin-body .kpi-card{position:relative;overflow:hidden;background:linear-gradient(158deg,color-mix(in srgb,var(--bg-elevated) 94%,var(--accent) 6%),var(--bg-surface) 68%);box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent),0 20px 44px -30px rgba(0,0,0,.72);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.admin-body .kpi-card::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s ease;background:radial-gradient(420px 170px at 88% -22%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%)}
.admin-body .kpi-card:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 8%,transparent),0 30px 60px -28px rgba(0,0,0,.8),0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.admin-body .kpi-card:hover::after{opacity:1}
.admin-body .kpi-card.is-warning::after{background:radial-gradient(420px 170px at 88% -22%,color-mix(in srgb,var(--warning) 24%,transparent),transparent 70%)}
.admin-body .kpi-value{font-variant-numeric:tabular-nums}

/* Buttons: gradient primary with inset highlight + lift, glass ghost */
.admin-body .btn{transition:transform .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.admin-body .btn-primary{background:linear-gradient(180deg,var(--accent-hover),var(--accent));box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 32%,transparent),0 10px 22px -14px color-mix(in srgb,var(--accent) 90%,transparent)}
.admin-body .btn-primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 36%,transparent),0 14px 30px -12px color-mix(in srgb,var(--accent) 95%,transparent)}
.admin-body .btn-primary:active{transform:translateY(0)}
.admin-body .btn-ghost{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.admin-body .btn-ghost:hover{transform:translateY(-1px)}

/* Tables: gradient sticky header, accent-tinted row hover */
.admin-body .tbl th,.admin-body .table-wrap th{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-subtle) 97%,transparent),var(--bg-subtle));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.admin-body .tbl tbody tr,.admin-body .table-wrap tbody tr{transition:background-color .12s ease}
.admin-body .tbl tbody tr:hover td,.admin-body .table-wrap tbody tr:hover td{background:color-mix(in srgb,var(--accent) 6%,var(--bg-hover))}

/* Badges, chips: soft ring + glass */
.admin-body .badge{box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 16%,transparent)}
.admin-body .filter-chip{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}

/* Attention rows: glass + colored glow on hover */
.admin-body .attn-row{background:linear-gradient(120deg,var(--bg-elevated),color-mix(in srgb,var(--bg-elevated) 88%,transparent));transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.admin-body .attn-row:hover{box-shadow:0 12px 30px -22px rgba(0,0,0,.8)}
.admin-body .attn-row.is-danger:hover{box-shadow:0 14px 32px -20px color-mix(in srgb,var(--danger) 55%,transparent)}
.admin-body .attn-row.is-warning:hover{box-shadow:0 14px 32px -20px color-mix(in srgb,var(--warning) 50%,transparent)}

/* Drawer: stronger frosted glass */
.admin-body .drawer-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 96%,transparent),var(--bg-surface));-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%)}
.admin-body .drawer-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:color-mix(in srgb,#000 46%,transparent)}

/* Live health dot: gentle pulse */
.admin-body .health-dot.is-ok{animation:l2pulse 2.8s ease-in-out infinite}

/* Modern thin scrollbars (admin only) */
.admin-body ::-webkit-scrollbar{width:10px;height:10px}
.admin-body ::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 34%,transparent);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
.admin-body ::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 46%,transparent);background-clip:padding-box}
.admin-body ::-webkit-scrollbar-track{background:transparent}

/* Accent text selection */
.admin-body ::selection{background:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--text-primary)}

/* Polished page entrance (no sticky descendants animated → headers stay pinned) */
@keyframes l2pulse{0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 22%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--success) 7%,transparent)}}
@keyframes l2fadeup{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.admin-body .content .page-heading{animation:l2fadeup .34s ease both}
.admin-body .content .kpi-grid{animation:l2fadeup .44s ease both}
@media (prefers-reduced-motion:reduce){
  .admin-body .content .page-heading,.admin-body .content .kpi-grid,.admin-body .health-dot.is-ok{animation:none}
  .admin-body .card,.admin-body .kpi-card,.admin-body .attn-row,.admin-body .btn,.admin-body .nav a,.admin-body .avatar{transition:none}
}

/* ============================================================
   MODERN 2.0 — pass 2: inputs · command palette · keycaps · tabs · pager · login
   Visual-only, admin-scoped (admin.css loads only on admin pages), WCAG-safe.
   ============================================================ */

/* Inputs: smooth focus glow + subtle surface lift (mouse & keyboard) */
.admin-body input,.admin-body select,.admin-body textarea,.admin-auth-body input{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
.admin-body input:focus,.admin-body select:focus,.admin-body textarea:focus,.admin-auth-body input:focus{background:var(--bg-surface);box-shadow:0 0 0 3px var(--accent-soft)}
.admin-body input[type="checkbox"],.admin-body input[type="radio"],.admin-auth-body input[type="checkbox"]{accent-color:var(--accent)}
.admin-body .permission-grid label{transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}
.admin-body .permission-grid label:has(input:checked){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.admin-body .period-nav a.active{box-shadow:0 1px 0 var(--border-strong),inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}

/* Modern physical keycaps */
.admin-body kbd,.command-input-wrap>kbd,.command-help kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:2px 6px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;background:linear-gradient(180deg,var(--bg-elevated),var(--bg-subtle));color:var(--text-secondary);font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;box-shadow:0 1px 0 color-mix(in srgb,#000 40%,transparent)}

/* Command trigger: interactive glow */
.admin-body .command-trigger{transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.admin-body .command-trigger:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border-subtle));box-shadow:0 0 0 3px var(--accent-soft)}

/* Command palette + confirm dialog: elevated frosted glass */
.admin-body .command-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 96%,var(--accent) 4%),var(--bg-elevated));-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);box-shadow:0 40px 120px -30px rgba(0,0,0,.7),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent)}
.admin-body .command-input-wrap>svg{color:var(--accent)}
.admin-body .command-group>a,.admin-body .command-search-actions>a{transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}
.admin-body .command-group>a.is-selected,.admin-body .command-search-actions>a.is-selected{box-shadow:inset 2px 0 0 0 var(--accent)}
.admin-body .dialog-backdrop{background:color-mix(in srgb,#02040a 66%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.admin-body .confirm-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 96%,transparent),var(--bg-elevated));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 40px 120px -30px rgba(0,0,0,.7)}

/* Tabs: glass + clear active accent */
.admin-body .tabs{-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%)}
.admin-body .tabs a{transition:background-color .14s ease,color .14s ease,box-shadow .14s ease}
.admin-body .tabs a[aria-current],.admin-body .tabs a[aria-current="page"],.admin-body .tabs a.active{background:var(--accent-soft);color:var(--accent-hover);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}

/* Pager: button-like with hover lift */
.admin-body .pager a,.admin-body .pager .disabled{min-height:34px;padding:6px 12px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-subtle);border-radius:7px;background:var(--bg-elevated);font-size:11px;font-weight:650;transition:border-color .14s ease,background-color .14s ease,color .14s ease,transform .14s ease}
.admin-body .pager a:hover{border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent-hover);transform:translateY(-1px)}

/* Range/date popover: frosted */
.admin-body .range-form,.admin-body .profile-popover{-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 94%,transparent),var(--bg-elevated))}

/* Admin login: premium glass card with accent crown + ambient glow */
.admin-auth-body .auth::before{background:radial-gradient(720px 440px at 50% 10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 72%)}
.admin-auth-body .auth-form{position:relative;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 94%,var(--accent) 6%),var(--bg-surface));box-shadow:0 44px 130px -44px rgba(0,0,0,.62),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent)}
.admin-auth-body .auth-form::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.admin-auth-body .brand .em,.admin-auth-body .admin-brand svg{filter:drop-shadow(0 0 16px color-mix(in srgb,var(--accent) 40%,transparent))}
/* Theme switcher — admin glass refinement */
.admin-body .theme-switch{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in srgb,var(--bg-subtle) 82%,transparent)}
.admin-body .theme-opt.is-active{box-shadow:0 1px 0 var(--border-strong),inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 0 12px -4px color-mix(in srgb,var(--accent) 60%,transparent)}
/* ===== Section transitions — cross-document View Transitions (admin only) =====
   admin.css loads only on admin pages, so navigation:auto is naturally scoped to
   admin→admin navigations. Shell (sidebar/topbar) stays put; content slides+fades.
   Unsupported browsers ignore these rules entirely (graceful, zero breakage). */
@view-transition{navigation:auto}
.admin-body .sidebar{view-transition-name:l2-sidebar}
.admin-body .topbar{view-transition-name:l2-topbar}
.admin-body .admin-content{view-transition-name:l2-content}
@keyframes l2vt-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes l2vt-in{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}
::view-transition-old(l2-content){animation:l2vt-out .18s cubic-bezier(.4,0,1,1) both}
::view-transition-new(l2-content){animation:l2vt-in .34s cubic-bezier(.16,.84,.28,1) both}
@supports (view-transition-name:none){.admin-body .content .page-heading,.admin-body .content .kpi-grid{animation:none}}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.001s!important;animation-delay:0s!important}}
/* ===== Table skeleton loading — shown while a list reloads (filter/pager/period) ===== */
.admin-body .table-card{position:relative}
@keyframes l2shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes l2skel-in{from{opacity:0}to{opacity:1}}
.admin-body .skeleton-overlay{position:absolute;inset:0;z-index:var(--z-skeleton);display:flex;flex-direction:column;gap:13px;padding:18px;overflow:hidden;background:color-mix(in srgb,var(--bg-surface) 88%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:inherit;animation:l2skel-in .15s ease}
.admin-body .skeleton-row{display:flex;gap:16px;align-items:center;padding:0 2px}
.admin-body .skeleton-row.skeleton-head{padding-bottom:9px;margin-bottom:3px;border-bottom:1px solid var(--border-subtle)}
.admin-body .skeleton-bar{flex:1;height:13px;border-radius:6px;background:linear-gradient(90deg,var(--bg-hover) 25%,color-mix(in srgb,var(--bg-hover) 55%,var(--accent-soft)) 45%,var(--bg-hover) 65%);background-size:200% 100%;animation:l2shimmer 1.25s linear infinite}
.admin-body .skeleton-head .skeleton-bar{height:8px;opacity:.6}
.admin-body .skeleton-row .skeleton-bar:first-child{flex:1.7}
.admin-body .skeleton-row .skeleton-bar:nth-child(2){flex:1.2}
.admin-body .skeleton-row .skeleton-bar:last-child{flex:.55}
@media (prefers-reduced-motion:reduce){.admin-body .skeleton-bar{animation:none}.admin-body .skeleton-overlay{animation:none}}
/* ===== Toast notifications — bottom-right stack, per-type accent, glass ===== */
.admin-body .toast-region{max-width:min(384px,calc(100vw - 32px))}
.admin-body .toast{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:11px;padding:13px 12px 13px 14px;border:1px solid var(--border-strong);border-left-width:3px;border-radius:11px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 96%,transparent),var(--bg-elevated));box-shadow:0 24px 60px -28px rgba(0,0,0,.75),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);opacity:0;transform:translateX(18px) scale(.98);transition:opacity .24s ease,transform .24s cubic-bezier(.16,.84,.28,1)}
.admin-body .toast.is-in{opacity:1;transform:none}
.admin-body .toast.is-out{opacity:0;transform:translateX(18px) scale(.98)}
.admin-body .toast-ico{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:7px;flex:0 0 auto}
.admin-body .toast-ico svg{width:16px;height:16px}
.admin-body .toast-body{padding-top:3px;color:var(--text-primary);font-size:12px;line-height:1.5;word-break:break-word}
.admin-body .toast-close{width:24px;height:24px;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:color .14s ease,background-color .14s ease}
.admin-body .toast-close:hover{color:var(--text-primary);background:var(--bg-hover)}
.admin-body .toast-close svg{width:14px;height:14px}
.admin-body .toast-success{border-left-color:var(--success)}.admin-body .toast-success .toast-ico{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}
.admin-body .toast-error{border-left-color:var(--danger)}.admin-body .toast-error .toast-ico{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}
.admin-body .toast-warning{border-left-color:var(--warning)}.admin-body .toast-warning .toast-ico{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,transparent)}
.admin-body .toast-info{border-left-color:var(--info)}.admin-body .toast-info .toast-ico{color:var(--info);background:color-mix(in srgb,var(--info) 14%,transparent)}
@media (prefers-reduced-motion:reduce){.admin-body .toast{transition:opacity .2s ease}.admin-body .toast.is-in,.admin-body .toast.is-out{transform:none}}
/* ===== Inline form validation — field error under control, red highlight + shake ===== */
.admin-body input.is-invalid,.admin-body select.is-invalid,.admin-body textarea.is-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent);animation:l2shake .32s ease}
.admin-body .field-error{display:flex;align-items:center;gap:6px;margin-top:6px;color:var(--danger);font-size:10.5px;line-height:1.4}
.admin-body .field-error svg{width:13px;height:13px;flex:0 0 auto}
@keyframes l2shake{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-3px)}40%,60%{transform:translateX(3px)}}
@media (prefers-reduced-motion:reduce){.admin-body input.is-invalid,.admin-body select.is-invalid,.admin-body textarea.is-invalid{animation:none}}
/* ===== Custom accent presets (admin) — override theme accent; default = gold ===== */
html[data-accent="amber"]{--accent:#e0a34a;--accent-hover:#f2bd70;--accent-soft:rgba(224,163,74,.14);--focus:0 0 0 3px rgba(224,163,74,.26)}
html[data-accent="emerald"]{--accent:#4ecb8a;--accent-hover:#77e2a8;--accent-soft:rgba(78,203,138,.14);--focus:0 0 0 3px rgba(78,203,138,.26)}
html[data-accent="teal"]{--accent:#45c4be;--accent-hover:#70ddd7;--accent-soft:rgba(69,196,190,.14);--focus:0 0 0 3px rgba(69,196,190,.26)}
html[data-accent="sky"]{--accent:#5fb0e8;--accent-hover:#88c9f6;--accent-soft:rgba(95,176,232,.14);--focus:0 0 0 3px rgba(95,176,232,.26)}
html[data-accent="violet"]{--accent:#a98bef;--accent-hover:#c4aff8;--accent-soft:rgba(169,139,239,.15);--focus:0 0 0 3px rgba(169,139,239,.28)}
html[data-accent="rose"]{--accent:#ef7a97;--accent-hover:#f7a2b6;--accent-soft:rgba(239,122,151,.15);--focus:0 0 0 3px rgba(239,122,151,.28)}
/* Accent picker popover + swatches */
.admin-body .accent-menu{position:relative;display:inline-flex}
.admin-body .accent-menu>summary{list-style:none;cursor:pointer}
.admin-body .accent-menu>summary::-webkit-details-marker{display:none}
.admin-body .accent-menu[open]>summary{color:var(--accent-hover);background:var(--bg-hover);border-color:var(--border-subtle)}
.admin-body .accent-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:var(--z-accent);width:max-content;padding:12px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border:1px solid var(--border-strong);border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 96%,transparent),var(--bg-elevated));box-shadow:0 30px 80px -34px rgba(0,0,0,.7);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);animation:l2skel-in .16s ease}
.admin-body .accent-swatch{width:26px;height:26px;min-height:0;padding:0;border-radius:50%;border:2px solid transparent;background:var(--sw,var(--accent));cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.3);transition:transform .14s ease,box-shadow .14s ease}
.admin-body .accent-swatch:hover{transform:scale(1.12)}
.admin-body .accent-swatch.is-active{border-color:var(--text-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--sw) 55%,transparent)}
/* ===== Row hover preview — floating field summary (pointer-events none) ===== */
.admin-body .row-preview{position:fixed;z-index:var(--z-preview);max-width:340px;padding:12px 14px;display:grid;gap:7px;border:1px solid var(--border-strong);border-radius:11px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 97%,transparent),var(--bg-elevated));box-shadow:0 26px 70px -30px rgba(0,0,0,.8),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);pointer-events:none;opacity:0;transform:translateY(6px) scale(.98);transition:opacity .16s ease,transform .16s ease}
.admin-body .row-preview.is-in{opacity:1;transform:none}
.admin-body .row-preview-row{display:grid;grid-template-columns:minmax(60px,38%) 1fr;gap:12px;align-items:baseline;font-size:11.5px}
.admin-body .row-preview-label{color:var(--text-muted);font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-body .row-preview-row b{color:var(--text-primary);font-weight:600;word-break:break-word}
.admin-body .row-preview-hint{margin-top:2px;padding-top:8px;border-top:1px solid var(--border-subtle);color:var(--accent-hover);font-size:10px;font-weight:650}
@media (prefers-reduced-motion:reduce){.admin-body .row-preview{transition:opacity .12s ease}.admin-body .row-preview.is-in{transform:none}}
/* ===== Keyboard shortcuts cheat sheet ===== */
.admin-body .hotkey-help{position:fixed;inset:0;z-index:var(--z-modal-top);display:grid;place-items:center;padding:24px}
.admin-body .hotkey-help[hidden]{display:none}
.admin-body .hotkey-panel{position:relative;width:min(620px,100%);max-height:82vh;overflow:auto;padding:20px 22px;border:1px solid var(--border-strong);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 96%,transparent),var(--bg-elevated));box-shadow:0 40px 120px -30px rgba(0,0,0,.7),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);animation:l2skel-in .18s ease}
.admin-body .hotkey-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.admin-body .hotkey-head h2{font-size:16px}
.admin-body .hotkey-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}
.admin-body .hotkey-cols section h3{margin-bottom:10px;color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.admin-body .hotkey-cols section h3 span{margin-left:6px;font-weight:600;letter-spacing:0;text-transform:none;opacity:.7}
.admin-body .hotkey-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:30px;padding:3px 0}
.admin-body .hotkey-row b{font-weight:600;font-size:12px}
.admin-body .hotkey-keys{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted)}
.admin-body .hotkey-keys em{font-style:normal;font-size:9px;opacity:.6;margin:0 2px}
@media (max-width:560px){.admin-body .hotkey-cols{grid-template-columns:1fr}}
/* ===== Back-to-top floating button ===== */
.admin-body .to-top{position:fixed;right:20px;bottom:20px;z-index:var(--z-sticky);width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:50%;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 94%,transparent),var(--bg-elevated));color:var(--text-secondary);cursor:pointer;box-shadow:0 18px 40px -18px rgba(0,0,0,.8),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .22s ease,transform .22s cubic-bezier(.16,.84,.28,1),color .15s ease,border-color .15s ease}
.admin-body .to-top.is-visible{opacity:1;transform:none;pointer-events:auto}
.admin-body .to-top:hover{color:var(--accent-hover);border-color:color-mix(in srgb,var(--accent) 45%,transparent);transform:translateY(-2px)}
.admin-body .to-top svg{width:19px;height:19px}
@media (max-width:768px){.admin-body .to-top{right:14px;bottom:14px}}
@media (prefers-reduced-motion:reduce){.admin-body .to-top{transition:opacity .2s ease}.admin-body .to-top.is-visible,.admin-body .to-top:hover{transform:none}}
/* ============================================================
   LIGHT THEME depth + polish — dark-tuned Modern 2.0 shadows are invisible on
   white, leaving cards flat/washed. Give the light theme proper soft blue-grey
   elevation so surfaces lift off the canvas. (Scoped html[data-color-mode=light].)
   ============================================================ */
html[data-color-mode="light"] .admin-body{--bg-base:#eaeef4}
html[data-color-mode="light"] .admin-body .card{background:#fff;border-color:#e4e9f0;box-shadow:0 1px 2px rgba(20,33,61,.05),0 12px 26px -14px rgba(20,33,61,.16)}
html[data-color-mode="light"] .admin-body .card:hover{border-color:color-mix(in srgb,var(--accent) 34%,#e4e9f0);box-shadow:0 2px 5px rgba(20,33,61,.06),0 18px 36px -14px rgba(20,33,61,.22)}
html[data-color-mode="light"] .admin-body .kpi-card{background:linear-gradient(160deg,#fff, #fbfcfe);box-shadow:0 1px 2px rgba(20,33,61,.05),0 14px 30px -16px rgba(20,33,61,.18)}
html[data-color-mode="light"] .admin-body .kpi-card:hover{box-shadow:0 3px 8px rgba(20,33,61,.08),0 22px 44px -18px rgba(20,33,61,.24),0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}
html[data-color-mode="light"] .admin-body .table-card{box-shadow:0 1px 2px rgba(20,33,61,.05),0 14px 30px -18px rgba(20,33,61,.15)}
html[data-color-mode="light"] .admin-body .tbl th,html[data-color-mode="light"] .admin-body .table-wrap th{background:linear-gradient(180deg,#f6f8fb,#eef2f7)}
html[data-color-mode="light"] .admin-body .tbl tbody tr:hover td,html[data-color-mode="light"] .admin-body .table-wrap tbody tr:hover td{background:color-mix(in srgb,var(--accent) 6%,#f5f8fc)}
html[data-color-mode="light"] .admin-body .topbar{background:rgba(255,255,255,.82);border-bottom:1px solid #e4e9f0}
html[data-color-mode="light"] .admin-body .attn-row{background:#fff;box-shadow:0 1px 2px rgba(20,33,61,.04)}
html[data-color-mode="light"] .admin-body .attn-row:hover{box-shadow:0 10px 24px -16px rgba(20,33,61,.24)}
html[data-color-mode="light"] .admin-body .toast,html[data-color-mode="light"] .admin-body .row-preview,html[data-color-mode="light"] .admin-body .command-panel,html[data-color-mode="light"] .admin-body .confirm-panel,html[data-color-mode="light"] .admin-body .hotkey-panel,html[data-color-mode="light"] .admin-body .accent-popover,html[data-color-mode="light"] .admin-body .range-form,html[data-color-mode="light"] .admin-body .profile-popover,html[data-color-mode="light"] .admin-body .drawer-panel{background:#fff;box-shadow:0 24px 56px -22px rgba(20,33,61,.3),0 4px 12px -6px rgba(20,33,61,.1)}
html[data-color-mode="light"] .admin-body .to-top{background:#fff;box-shadow:0 10px 26px -8px rgba(20,33,61,.28)}
html[data-color-mode="light"] .admin-body .btn-primary{color:#fff}
html[data-color-mode="light"] .admin-body .kpi-card::after{background:radial-gradient(420px 170px at 88% -22%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%)}
/* ===== Round 2 — KPI hero typography + vibrant light primary buttons ===== */
.admin-body .kpi-value{font-size:33px;font-weight:780;letter-spacing:-.035em}
.admin-body .kpi-card{padding:19px 20px}
html[data-color-mode="light"] .admin-body .btn-primary{background:linear-gradient(180deg,#2b83e2,#176fc1);color:#fff;box-shadow:inset 0 1px 0 0 rgba(255,255,255,.28),0 8px 18px -8px rgba(23,111,193,.55)}
html[data-color-mode="light"] .admin-body .btn-primary:hover{background:linear-gradient(180deg,#3a90ec,#1c78cc);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.32),0 12px 24px -8px rgba(23,111,193,.6)}
html[data-color-mode="light"] .admin-body .admin-nav a.active{background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent)}
/* ===== Bold hero KPIs — colored icon chips + larger numbers ===== */
.admin-body .kpi-card{min-height:140px;padding:20px 22px;gap:12px}
.admin-body .kpi-top{display:flex;align-items:center;gap:11px}
.admin-body .kpi-top .kpi-delta,.admin-body .kpi-top .kpi-status{margin-left:auto}
.admin-body .kpi-icon{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.admin-body .kpi-icon svg{width:21px;height:21px}
.admin-body .kpi-label{font-size:12px;font-weight:600;color:var(--text-secondary)}
.admin-body .kpi-value{font-size:40px;font-weight:800;letter-spacing:-.045em;line-height:1}
.admin-body .kpi-users .kpi-icon{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}
.admin-body .kpi-revenue .kpi-icon{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--success) 24%,transparent)}
.admin-body .kpi-pending .kpi-icon{background:color-mix(in srgb,var(--warning) 17%,transparent);color:var(--warning);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warning) 26%,transparent)}
.admin-body .kpi-tickets .kpi-icon{background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--info) 24%,transparent)}
.admin-body .kpi-card.is-warning .kpi-icon{background:color-mix(in srgb,var(--warning) 18%,transparent);color:var(--warning)}
@media (max-width:1200px){.admin-body .kpi-value{font-size:34px}}
/* ===== Empty states — intentional, centered, with a badge (was bare) ===== */
.admin-body .attention-card{display:flex;flex-direction:column}
.admin-body .attention-card .attention-queue{flex:1}
.admin-body .healthy-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:15px;min-height:230px;padding:36px 24px}
.admin-body .healthy-state>span{width:60px;height:60px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success);box-shadow:0 0 0 9px color-mix(in srgb,var(--success) 6%,transparent)}
.admin-body .healthy-state>span svg{width:27px;height:27px}
.admin-body .healthy-state>div{max-width:340px}
.admin-body .healthy-state strong{display:block;font-size:15px;margin-bottom:5px}
.admin-body .healthy-state small{display:block;color:var(--text-muted);font-size:12px;line-height:1.55}
/* Generic empty states (list pages) — centered composition */
.admin-body .empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:44px 24px;color:var(--text-secondary)}
.admin-body .empty svg{width:30px;height:30px;opacity:.5;color:var(--text-muted)}
/* ===== AC-15 WCAG AA contrast fixes (all verified >=4.5:1 on their surfaces) ===== */
.admin-body{--text-muted:#808ea0}
html[data-color-mode="light"] .admin-body,html[data-color-mode="light"] .admin-auth-body{--text-muted:#5c6a79}
html[data-color-mode="light"] .admin-body .btn-primary{background:linear-gradient(180deg,#1a72c8,#176fc1)}
html[data-color-mode="light"] .admin-body .btn-primary:hover{background:linear-gradient(180deg,#1c74ca,#1a72c8)}
/* AC-20/CSP: swatch colors via CSS (inline style="--sw" is blocked by style-src) */
.admin-body .accent-swatch[data-accent-set="default"]{--sw:#5ba5f7}
.admin-body .accent-swatch[data-accent-set="amber"]{--sw:#e0a34a}
.admin-body .accent-swatch[data-accent-set="emerald"]{--sw:#4ecb8a}
.admin-body .accent-swatch[data-accent-set="teal"]{--sw:#45c4be}
.admin-body .accent-swatch[data-accent-set="sky"]{--sw:#5fb0e8}
.admin-body .accent-swatch[data-accent-set="violet"]{--sw:#a98bef}
.admin-body .accent-swatch[data-accent-set="rose"]{--sw:#ef7a97}
/* Row action clusters (edit/toggle/delete) in table cells */
.admin-body .row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
.admin-body .row-actions form{margin:0}

/* Admin ops enhancements — activity filters §22, balance preview §27, DataTable §56, tabs §24 */
.admin-body .activity-filters{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}
.admin-body .af-chip{padding:5px 12px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:background .13s,border-color .13s,color .13s}
.admin-body .af-chip:hover{color:var(--text-primary);border-color:var(--border-strong)}
.admin-body .af-chip.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}
.admin-body .balance-preview{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 14px;padding:11px 14px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface)}
.admin-body .balance-preview span{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.admin-body .balance-preview b{font-size:16px;font-weight:800;color:var(--text-primary)}
.admin-body .balance-preview .bp-arrow{color:var(--text-muted);font-size:14px}
.admin-body .balance-preview .is-pos{color:var(--success,#13966f)}
.admin-body .balance-preview .is-neg{color:var(--danger,#d14343)}
.admin-body .balance-preview .bp-result{color:var(--accent-hover)}
.admin-body table[data-datatable] th.is-sortable{cursor:pointer;user-select:none;white-space:nowrap}
.admin-body table[data-datatable] th.is-sortable::after{content:"";display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid currentColor;opacity:.28}
.admin-body table[data-datatable] th.is-sortable:hover{color:var(--text-primary)}
.admin-body table[data-datatable] th[aria-sort="ascending"]::after{opacity:.9;border-top:0;border-bottom:4px solid currentColor}
.admin-body table[data-datatable] th[aria-sort="descending"]::after{opacity:.9}
.admin-body table[data-datatable] th.is-sortable:focus-visible{outline:2px solid var(--accent-hover);outline-offset:-2px}
.admin-body .dt-toolbar{display:flex;justify-content:flex-end;margin-left:auto}
.admin-body .dt-cols{position:relative}
.admin-body .dt-cols>summary{list-style:none;cursor:pointer}
.admin-body .dt-cols>summary::-webkit-details-marker{display:none}
.admin-body .dt-cols-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:var(--z-dropdown);min-width:196px;padding:8px;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-elevated);box-shadow:0 18px 44px rgba(0,0,0,.28)}
.admin-body .dt-cols-title{padding:4px 8px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.admin-body .dt-col-opt{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;font-size:13px;color:var(--text-secondary);cursor:pointer}
.admin-body .dt-col-opt:hover{background:var(--bg-hover);color:var(--text-primary)}
.admin-body .dt-col-opt input{accent-color:var(--accent)}
.admin-body nav.tabs a.is-active{color:var(--text-primary);background:var(--accent-soft);border-color:var(--accent)}

/* Config safety — production diff preview (§54) */
.admin-body .config-diff{margin:0 0 14px;padding:11px 13px;border:1px solid color-mix(in srgb,#b77916 42%,var(--border-subtle));border-radius:10px;background:color-mix(in srgb,#b77916 8%,var(--bg-surface))}
.admin-body .config-diff-head{display:flex;align-items:center;gap:9px;margin-bottom:8px;font-size:13px;color:var(--text-primary)}
.admin-body .config-diff-head strong{font-weight:700}
.admin-body .cfg-env{padding:2px 8px;border-radius:5px;background:#b77916;color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em}
.admin-body .config-diff-list{display:flex;flex-direction:column;gap:5px}
.admin-body .cfg-row{display:grid;grid-template-columns:minmax(88px,auto) minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;font-size:12.5px}
.admin-body .cfg-k{color:var(--text-secondary);font-weight:600}
.admin-body .cfg-old{color:var(--text-muted);text-decoration:line-through;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-body .cfg-arrow{color:var(--text-muted)}
.admin-body .cfg-new{color:var(--accent-hover);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Catalog / promo client filters + promo summary (§39/§42/§43) */
.admin-body .cf-count{margin-left:auto;color:var(--text-muted);font-size:12.5px;white-space:nowrap}
.admin-body .cf-count b{color:var(--text-primary);font-weight:700}
.admin-body .promo-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.admin-body .promo-summary .summary-stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-elevated)}
.admin-body .promo-summary .summary-stat span{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.admin-body .promo-summary .summary-stat strong{font-size:22px;font-weight:800;color:var(--text-primary)}
.admin-body .cf-empty{margin-top:4px}
@media (max-width:900px){.admin-body .promo-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* A11y — light-theme contrast fixes to reach WCAG AA (§77) */
html[data-color-mode="light"] .admin-body .eyebrow{color:#0d5aa6}
html[data-color-mode="light"] .admin-body .admin-nav a.active,
html[data-color-mode="light"] .admin-body .admin-nav a.active>span{color:#0d5aa6}
html[data-color-mode="light"] .admin-body .badge-ok{color:#0f6b46;background:rgba(24,125,83,.12)}

/* Audit detail — structured before→after diff + copy (§50/§51) */
.admin-body .audit-detail-body{display:flex;flex-direction:column}
.admin-body .audit-diff-cap{margin:0 0 6px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}
.admin-body .audit-diff{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;padding:9px 11px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface)}
.admin-body .ad-row{display:flex;flex-wrap:wrap;gap:3px 12px;align-items:baseline;font-size:12px}
.admin-body .ad-k{min-width:120px;color:var(--text-secondary);font-weight:700}
.admin-body .ad-vals{display:flex;flex-direction:column;gap:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.admin-body .ad-old{color:#ff8b8b}
.admin-body .ad-new{color:#5ce0a0}
html[data-color-mode="light"] .admin-body .ad-old{color:#b3261e}
html[data-color-mode="light"] .admin-body .ad-new{color:#0f6b46}
.admin-body .audit-copy{align-self:flex-start;margin-top:6px}

/* Support composer — visual reply / internal-note mode switch (§31) */
.admin-body .chat-compose{display:flex;flex-direction:column;gap:12px}
.admin-body .compose-mode{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface);align-self:flex-start}
.admin-body .cm-opt{position:relative;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:7px;font-size:13px;font-weight:650;color:var(--text-secondary);cursor:pointer;transition:background .13s,color .13s}
.admin-body .cm-opt svg{width:15px;height:15px}
.admin-body .cm-opt input{position:absolute;opacity:0;width:0;height:0}
.admin-body .cm-opt:has(input:checked){background:var(--accent-soft);color:var(--accent-hover)}
.admin-body .cm-opt.cm-internal:has(input:checked){background:color-mix(in srgb,#b77916 18%,transparent);color:#e0a83a}
html[data-color-mode="light"] .admin-body .cm-opt.cm-internal:has(input:checked){color:#8a5a12}
.admin-body .cm-opt:has(input:focus-visible){outline:2px solid var(--accent-hover);outline-offset:1px}
.admin-body .chat-compose:has(.cm-internal input:checked) textarea{border-color:color-mix(in srgb,#b77916 45%,var(--border-subtle));background:color-mix(in srgb,#b77916 6%,var(--bg-elevated))}
.admin-body .compose-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-body .compose-hint{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px}
.admin-body .compose-hint svg{width:14px;height:14px;flex:none}
.admin-body .ch-note,.admin-body .lbl-note{display:none}
.admin-body .chat-compose:has(.cm-internal input:checked) .ch-reply{display:none}
.admin-body .chat-compose:has(.cm-internal input:checked) .ch-note{display:inline-flex}
.admin-body .chat-compose:has(.cm-internal input:checked) .lbl-reply{display:none}
.admin-body .chat-compose:has(.cm-internal input:checked) .lbl-note{display:inline}
.admin-body .chat-compose:has(.cm-internal input:checked) [data-compose-submit]{background:#8a5a12;border-color:#8a5a12;color:#fff}

/* Ticket workspace — player context panel (§30) */
.admin-body .support-thread .chat-compose{align-items:stretch}
.admin-body .support-thread .chat-compose .field{flex:none;min-width:0}
.admin-body .support-thread .chat-compose textarea{min-height:130px;max-height:360px;resize:vertical}
.admin-body .support-thread .compose-mode{margin:0;min-inline-size:0;max-width:100%;flex-wrap:wrap}
.admin-body .support-thread .cm-opt{min-width:0;min-height:44px;flex:1 1 160px}
.admin-body .support-thread .cm-opt>span{display:flex;gap:7px;align-items:center;white-space:normal}
.admin-body .support-thread .cm-opt svg{flex:none}
.admin-body .support-thread .compose-recovery{margin:0;font-size:13px;line-height:1.6;color:var(--text-secondary);overflow-wrap:anywhere}
.admin-body .support-thread .compose-hint>span{align-items:center;gap:6px}
.admin-body .support-thread .ch-reply{display:inline-flex}
.admin-body .support-thread .chat-compose:has(.cm-internal input:checked) .ch-reply{display:none}
.admin-body .support-thread .msg{white-space:normal;font-size:14px;line-height:1.6;flex-shrink:0}
.admin-body .support-thread .msg-body{white-space:pre-wrap;overflow-wrap:anywhere}
.admin-body .support-thread .msg-meta{font-size:11px;line-height:1.5}
.admin-body .support-thread .support-current{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 16px;font-size:13px;color:var(--text-secondary)}
.admin-body .support-thread .tc-head>div{min-width:0}
.admin-body .support-thread .tc-login{overflow-wrap:anywhere}
.admin-body .support-thread .tc-list>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.admin-body .support-thread .tc-list dd{min-width:0;overflow-wrap:anywhere}
.admin-body .support-thread .tc-balance{flex-wrap:wrap}
.admin-body .support-thread .support-routing .compose-recovery{margin-bottom:12px}
.admin-body .support-thread .support-conflict-confirm{display:flex;align-items:flex-start;gap:10px;margin:12px 0 16px;font-size:13px;line-height:1.6;cursor:pointer}
.admin-body .support-thread .support-conflict-confirm input{flex:none;width:18px;height:18px;min-height:18px;margin:2px 0 0}
.admin-body .support-thread .support-conflict-confirm span{min-width:0;overflow-wrap:anywhere}
.admin-body .cms-library{min-width:0}
.admin-body .finance-approvals{display:grid;gap:16px;min-width:0}
.admin-body .finance-approvals .card{margin:0;min-width:0}
.admin-body .finance-approvals .finance-policy,.admin-body .finance-approvals .finance-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}
.admin-body .finance-approvals .finance-policy dt{color:var(--text-secondary);font-size:13px}
.admin-body .finance-approvals .finance-policy dd{margin:6px 0 0;overflow-wrap:anywhere}
.admin-body .finance-approvals .finance-decision{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-subtle)}
.admin-body .finance-approvals .finance-id,.admin-body .finance-approvals .finance-reason{overflow-wrap:anywhere;white-space:pre-wrap}
.admin-body .finance-approvals .field{min-width:0;flex:none}
.admin-body .cms-library .cms-filters{display:flex;flex-wrap:wrap;align-items:end}
.admin-body .cms-library .cms-filters .field{min-width:0;flex:1 1 150px}
.admin-body .cms-library .cms-filters .grow{flex-basis:260px}
@media(max-width:768px){.admin-body .cms-library .cms-filters{align-items:stretch}.admin-body .cms-library .cms-filters .field{flex:0 1 auto;width:100%}}
.admin-body .cms-library .table-subtext{overflow-wrap:anywhere}
.admin-body .cms-library .pager{flex-wrap:wrap;gap:12px}
.admin-body .cms-library .pager form{margin:0}
.admin-body .cms-seo-workbench{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px;margin-top:8px;min-width:0}
.admin-body .cms-search-preview,.admin-body .cms-readiness{min-width:0;padding:18px;border:1px solid var(--border-subtle);border-radius:14px;background:color-mix(in srgb,var(--bg-surface) 84%,transparent)}
.admin-body .cms-search-preview{box-shadow:0 16px 34px rgba(0,0,0,.12)}
.admin-body .cms-search-url{margin-top:12px;color:var(--success);font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.admin-body .cms-search-preview h3{margin:5px 0 7px;color:var(--accent-hover);font-size:20px;line-height:1.25;font-weight:650;overflow-wrap:anywhere}
.admin-body .cms-search-preview p{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.55;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.admin-body .cms-readiness-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-body .cms-readiness ul{display:grid;gap:8px;margin:14px 0;padding:0;list-style:none}
.admin-body .cms-readiness li{position:relative;padding-left:22px;color:var(--text-secondary);font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.admin-body .cms-readiness li::before{position:absolute;left:0;top:0;font-weight:800}
.admin-body .cms-readiness li.is-ok::before{content:'✓';color:var(--success)}
.admin-body .cms-readiness li.is-warning::before{content:'!';color:var(--warning)}
.admin-body .cms-readiness li.is-error::before{content:'×';color:var(--danger)}
@media(max-width:860px){.admin-body .cms-seo-workbench{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.admin-body .cms-search-preview,.admin-body .cms-readiness{padding:14px}.admin-body .cms-search-preview h3{font-size:18px}}
.admin-body .support-side{display:flex;flex-direction:column;gap:16px}
.admin-body .ticket-context .tc-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.admin-body .tc-avatar{width:44px;height:44px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);color:var(--accent-hover);font-size:18px;font-weight:800}
.admin-body .tc-login{display:block;font-size:16px;font-weight:700;margin:2px 0 6px}
.admin-body .tc-badges{display:flex;flex-wrap:wrap;gap:5px}
.admin-body .tc-balance{display:flex;align-items:baseline;gap:8px;padding:11px 14px;margin-bottom:12px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface)}
.admin-body .tc-balance .label{color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.admin-body .tc-balance b{font-size:22px;font-weight:800;margin-left:auto}
.admin-body .tc-unit{color:var(--text-muted);font-size:11px}
.admin-body .tc-list{margin:0 0 14px}
.admin-body .tc-list>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-subtle);font-size:13px}
.admin-body .tc-list>div:last-child{border-bottom:0}
.admin-body .tc-list dt{color:var(--text-muted)}
.admin-body .tc-list dd{margin:0;color:var(--text-primary);font-weight:600;text-align:right}
.admin-body .ticket-context .btn svg{width:15px;height:15px}

/* Manual issuance preview (§41) */
.admin-body .issue-panel summary{color:var(--danger,#d14343)}
.admin-body .issue-preview{display:flex;align-items:center;gap:10px;margin:2px 0 12px;padding:11px 14px;border:1px solid color-mix(in srgb,var(--danger,#d14343) 40%,var(--border-subtle));border-radius:10px;background:color-mix(in srgb,var(--danger,#d14343) 7%,var(--bg-surface))}
.admin-body .issue-preview span{color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.admin-body .issue-preview b{font-weight:700;color:var(--text-primary)}

/* RBAC matrix — staff × permissions (§46) */
.admin-body .rbac-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.admin-body .rbac-search{display:flex;align-items:center;gap:8px;min-width:220px;max-width:320px;padding:0 12px;min-height:38px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-surface)}
.admin-body .rbac-search svg{width:16px;height:16px;color:var(--text-muted);flex:none}
.admin-body .rbac-search input{border:0;background:transparent;min-height:auto;box-shadow:none;width:100%;color:var(--text-primary)}
.admin-body .rbac-search input:focus{outline:none;box-shadow:none}
.admin-body .rbac-legend{color:var(--text-muted);font-size:12px}
.admin-body .rbac-scroll{overflow:auto;max-height:72vh;border:1px solid var(--border-subtle);border-radius:12px}
.admin-body .rbac-matrix{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}
.admin-body .rbac-matrix th,.admin-body .rbac-matrix td{padding:8px 10px;border-bottom:1px solid var(--border-subtle);white-space:nowrap;text-align:center}
.admin-body .rbac-matrix thead th{position:sticky;top:0;z-index:2;background:var(--bg-elevated);border-bottom:2px solid var(--border-strong)}
.admin-body .rbac-corner,.admin-body .rbac-name{position:sticky;left:0;z-index:1;text-align:left;background:var(--bg-elevated);border-right:1px solid var(--border-strong);min-width:150px}
.admin-body .rbac-matrix thead .rbac-corner{z-index:3}
.admin-body .rbac-col{vertical-align:bottom}
.admin-body .rbac-col span{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--text-secondary);writing-mode:vertical-rl;transform:rotate(180deg)}
.admin-body .rbac-col.rbac-danger{border-top:2px solid #d14343}
.admin-body .rbac-col.rbac-security{border-top:2px solid #b77916}
.admin-body .rbac-col.rbac-read{border-top:2px solid var(--border-strong)}
.admin-body .rbac-name a{font-weight:700;color:var(--text-primary);text-decoration:none}
.admin-body .rbac-name a:hover{color:var(--accent-hover)}
.admin-body .rbac-name .rbac-role{display:block;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}
.admin-body .rbac-yes{color:#3fbf6b;font-weight:800}
html[data-color-mode="light"] .admin-body .rbac-yes{color:#0f6b46}
.admin-body .rbac-no{color:var(--text-muted);opacity:.45}
.admin-body .rbac-matrix tbody tr:hover td,.admin-body .rbac-matrix tbody tr:hover .rbac-name{background:var(--bg-hover)}

/* Module health — derived status (§52) */
.admin-body .mod-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:10px}
.admin-body .mod-summary .summary-stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-elevated)}
.admin-body .mod-summary .summary-stat span{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.admin-body .mod-summary .summary-stat strong{font-size:22px;font-weight:800;color:var(--text-primary)}
.admin-body .mod-summary .is-ok strong{color:#2f9e5e}
html[data-color-mode="light"] .admin-body .mod-summary .is-ok strong{color:#0f6b46}
.admin-body .mod-summary .is-warn strong{color:#c98a1e}
html[data-color-mode="light"] .admin-body .mod-summary .is-warn strong{color:#8a5a12}
.admin-body .mod-summary .is-off strong{color:var(--text-muted)}
.admin-body .mod-health-note{margin:0 0 16px}
.admin-body .mod-health{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:650}
.admin-body .mod-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}
.admin-body .mod-health.is-ok{color:#2f9e5e}
html[data-color-mode="light"] .admin-body .mod-health.is-ok{color:#0f6b46}
.admin-body .mod-health.is-ok .mod-dot{background:#3fbf6b}
.admin-body .mod-health.is-warn{color:#c98a1e}
html[data-color-mode="light"] .admin-body .mod-health.is-warn{color:#8a5a12}
.admin-body .mod-health.is-warn .mod-dot{background:#e0a83a}
.admin-body .mod-health.is-off{color:var(--text-muted)}
.admin-body .mod-health.is-off .mod-dot{opacity:.5}
.admin-body .mod-health-reason{display:block;font-size:11px;color:var(--text-muted);margin-top:2px}
@media (max-width:900px){.admin-body .mod-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ================= ADMIN STORE v2 (appended) ================= */
.admin-body .store-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:18px}
.admin-body .kpi-chip{display:flex;flex-direction:column;gap:3px;padding:13px 15px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}
.admin-body .kpi-chip small{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.admin-body .kpi-chip b{font-size:22px;font-weight:800;letter-spacing:-.02em}
.admin-body .kpi-chip.is-sale b{color:#ff6b6b}
.admin-body .kpi-chip.is-limited b{color:#b18bff}

/* editor: two columns (form + preview) */
.admin-body .editor-2col{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.admin-body .form-sec{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px 16px 16px;margin:0 0 14px}
.admin-body .form-sec legend{padding:0 8px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-hover)}
.admin-body .check-row{display:flex;flex-wrap:wrap;gap:16px;margin:6px 0 4px}
.admin-body .calc-discount{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--success);font-weight:750}
.admin-body .editor-preview{position:sticky;top:16px;display:flex;flex-direction:column;gap:10px}
.admin-body .preview-kicker{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
@media (max-width:900px){.admin-body .editor-2col{grid-template-columns:1fr}.admin-body .editor-preview{position:static;max-width:320px}}

/* self-contained preview card (admin has no .cabinet-body scope) */
.admin-body .editor-preview .product-card{--card-accent:var(--accent);padding:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}
.admin-body .editor-preview .product-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--card-accent) 12%,var(--bg-elevated)),var(--bg-elevated))}
.admin-body .editor-preview .product-media img{width:100%;height:100%;object-fit:cover}
.admin-body .editor-preview .product-media-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--card-accent) 40%,transparent)}
.admin-body .editor-preview .product-media-ph svg{width:40px;height:40px}
.admin-body .editor-preview .badge-stack{position:absolute;top:10px;left:10px;z-index:3;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.admin-body .editor-preview .pbadge{padding:4px 9px;border-radius:7px;font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:#fff}
.admin-body .editor-preview .pbadge--sale{background:linear-gradient(180deg,#ff5b5b,#d92b2b)}
.admin-body .editor-preview .pbadge--hot{background:linear-gradient(180deg,#ff8a3d,#e8600f)}
.admin-body .editor-preview .pbadge--new{background:linear-gradient(180deg,#33c079,#199e5c)}
.admin-body .editor-preview .pbadge--limited{background:linear-gradient(180deg,#9b6bff,#6d3ce0)}
.admin-body .editor-preview .pbadge--best,.admin-body .editor-preview .pbadge--gold{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06}
.admin-body .editor-preview .discount-chip{position:absolute;right:10px;bottom:10px;z-index:3;padding:5px 11px;border-radius:9px;background:linear-gradient(180deg,#ff5b5b,#d92b2b);color:#fff;font-size:15px;font-weight:850}
.admin-body .editor-preview .product-body{padding:14px 15px 15px;display:flex;flex-direction:column;gap:9px}
.admin-body .editor-preview .product-name{margin:0;font-size:15px;font-weight:750}
.admin-body .editor-preview .product-desc{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.5}
.admin-body .editor-preview .price-row{display:flex;align-items:baseline;gap:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}
.admin-body .editor-preview .price-old{font-size:12px;color:var(--text-muted);text-decoration:line-through}
.admin-body .editor-preview .price-new{display:inline-flex;align-items:center;gap:5px;font-size:20px;font-weight:850}
.admin-body .editor-preview .price-new em svg{width:16px;height:16px;color:var(--accent-hover);vertical-align:-2px}

/* table cells */
.admin-body .col-check{width:34px;text-align:center}
.admin-body .cell-product{display:flex;align-items:center;gap:11px}
.admin-body .cell-thumb{flex:0 0 auto;width:42px;height:42px;border-radius:9px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border:1px solid var(--border-subtle);color:var(--text-muted)}
.admin-body .cell-thumb img{width:100%;height:100%;object-fit:cover}
.admin-body .cell-thumb svg{width:18px;height:18px}
.admin-body .cell-product-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-body .cell-product-txt strong{font-weight:700}
.admin-body .cell-price{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.admin-body .cell-price b{font-weight:800}
.admin-body .cell-price s{color:var(--text-muted);font-size:12px}
.admin-body .disc-badge,.admin-body .tag-sale{color:#ff6b6b;font-weight:800;font-size:11px}
.admin-body .promo-tags{display:flex;flex-wrap:wrap;gap:5px}
.admin-body .promo-tags .tag{padding:2px 7px;border-radius:6px;font-size:10px;font-weight:800;background:var(--bg-subtle);border:1px solid var(--border-subtle)}
.admin-body .tag-hot{background:color-mix(in srgb,#ff8a3d 16%,transparent);border-color:transparent}
.admin-body .tag-lim{background:color-mix(in srgb,#9b6bff 16%,transparent);border-color:transparent;color:#c9a0ff}
.admin-body .tag-new{background:color-mix(in srgb,#33c079 16%,transparent);border-color:transparent;color:#4fd598}
.admin-body .mini-bar{display:block;margin-top:5px;height:4px;border-radius:999px;background:var(--bg-subtle);overflow:hidden;position:relative}
.admin-body .mini-bar::before{content:"";position:absolute;inset:0;width:var(--w,0%);background:linear-gradient(90deg,var(--accent),var(--accent-hover))}
.admin-body .cell-period{white-space:nowrap;font-size:12px;color:var(--text-secondary)}
.admin-body .stx{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:750}
.admin-body .stx-active{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}
.admin-body .stx-hidden{background:var(--bg-subtle);color:var(--text-muted)}
.admin-body .stx-scheduled{background:color-mix(in srgb,#6b9bff 16%,transparent);color:#8fb3ff}
.admin-body .stx-expired{background:color-mix(in srgb,var(--warning) 16%,transparent);color:var(--warning)}
.admin-body .stx-out{background:color-mix(in srgb,var(--danger) 16%,transparent);color:#ff8a8a}

/* row overflow menu */
.admin-body .rowmenu{position:relative;display:inline-block}
.admin-body .rowmenu>summary{list-style:none;cursor:pointer}
.admin-body .rowmenu>summary::-webkit-details-marker{display:none}
.admin-body .rowmenu-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-dropdown);min-width:190px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1,var(--bg-elevated));box-shadow:0 20px 44px -18px #000c}
.admin-body .rowmenu-pop>*{width:100%}
.admin-body .rowmenu-pop button,.admin-body .rowmenu-pop a{display:block;width:100%;padding:8px 11px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);font:inherit;font-size:13px;text-align:left;text-decoration:none;cursor:pointer}
.admin-body .rowmenu-pop button:hover,.admin-body .rowmenu-pop a:hover{background:var(--bg-hover,var(--bg-subtle))}
.admin-body .rowmenu-pop .is-danger{color:#ff8a8a}

/* bulk bar */
.admin-body .bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:12px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border-strong));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent) 8%,var(--bg-surface))}
.admin-body .bulk-count{margin-right:auto;font-size:13px;font-weight:700}
.admin-body .bulk-count b{color:var(--accent-hover)}

/* ---- banners manager ---- */
.admin-body .banner-2col{grid-template-columns:minmax(0,1fr) 380px}
@media (max-width:1000px){.admin-body .banner-2col{grid-template-columns:1fr}}
.admin-body .banner-preview-wrap .store-hero{min-height:200px;margin:0;padding:22px 24px}
.admin-body .banner-preview-wrap .hero-title{font-size:24px}
.admin-body .banner-preview-wrap .hero-cta{cursor:default}
.admin-body .banner-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.admin-body .banner-row{--hero-accent:var(--accent);display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border-subtle);border-left:3px solid color-mix(in srgb,var(--hero-accent) 70%,transparent);border-radius:var(--radius-lg);background:var(--bg-surface)}
.admin-body .banner-row.is-dragging{opacity:.5;box-shadow:0 14px 30px -14px #000c}
.admin-body .drag-handle{cursor:grab;color:var(--text-muted);font-weight:800;letter-spacing:-2px;user-select:none}
.admin-body .banner-mini{flex:0 0 auto;width:96px;height:54px;border-radius:9px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--hero-accent) 18%,var(--bg-elevated)),var(--bg-elevated));border:1px solid var(--border-subtle);color:color-mix(in srgb,var(--hero-accent) 55%,transparent)}
.admin-body .banner-mini img{width:100%;height:100%;object-fit:cover}
.admin-body .banner-mini-ph svg{width:20px;height:20px}
.admin-body .banner-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.admin-body .banner-info strong{font-weight:750}
.admin-body .banner-sub{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}
.admin-body .btype{padding:2px 7px;border-radius:6px;background:var(--bg-subtle);font-size:10px;font-weight:800;letter-spacing:.05em}
.admin-body .banner-period{font-size:11.5px;color:var(--text-muted)}
.admin-body .banner-acts{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-left:auto}
@media (max-width:640px){.admin-body .banner-row{flex-wrap:wrap}.admin-body .banner-acts{margin-left:0;width:100%}}

/* ===== ADMIN banner hero preview (self-contained; .store-hero base lives under .cabinet-body) ===== */
.admin-body .banner-preview-wrap .store-hero{--hero-accent:var(--accent);position:relative;display:grid;grid-template-columns:1.3fr .8fr;gap:18px;align-items:center;overflow:hidden;min-height:200px;margin:0;padding:22px 24px;border:1px solid color-mix(in srgb,var(--hero-accent) 26%,var(--border-strong));border-radius:var(--radius-xl);background:linear-gradient(115deg,color-mix(in srgb,var(--hero-accent) 16%,var(--bg-elevated)) 0%,var(--bg-elevated) 46%,color-mix(in srgb,#000 30%,var(--bg-base)) 100%)}
.admin-body .banner-preview-wrap .hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.admin-body .banner-preview-wrap .hero-badge{display:inline-flex;padding:5px 12px;border-radius:999px;background:color-mix(in srgb,var(--hero-accent) 22%,#000);color:var(--accent-hover);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1px solid color-mix(in srgb,var(--hero-accent) 40%,transparent)}
.admin-body .banner-preview-wrap .hero-title{margin:0;font-size:24px;line-height:1.06;font-weight:850;letter-spacing:-.02em}
.admin-body .banner-preview-wrap .hero-sub{margin:0;font-size:15px;font-weight:700;color:var(--accent-hover)}
.admin-body .banner-preview-wrap .hero-desc{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}
.admin-body .banner-preview-wrap .hero-cta{margin-top:4px;cursor:default;pointer-events:none}
.admin-body .banner-preview-wrap .hero-art{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:120px}
.admin-body .banner-preview-wrap .hero-art img{max-width:100%;max-height:170px;object-fit:contain;filter:drop-shadow(0 18px 30px color-mix(in srgb,var(--hero-accent) 45%,transparent))}
.admin-body .banner-preview-wrap .hero-coin{display:flex;align-items:center;justify-content:center;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--hero-accent) 40%,transparent),transparent 70%)}
.admin-body .banner-preview-wrap .hero-coin svg{width:70px;height:70px;color:var(--accent-hover)}
.admin-body .banner-preview-wrap .hero-glow{position:absolute;inset:-20% -10% -20% 20%;z-index:0;background:radial-gradient(circle at 70% 50%,color-mix(in srgb,var(--hero-accent) 30%,transparent),transparent 60%);filter:blur(6px)}
.admin-body .banner-preview-wrap .hero-particles{position:absolute;inset:0;z-index:0;opacity:.5;background-image:radial-gradient(2px 2px at 20% 30%,#fff5,transparent),radial-gradient(2px 2px at 70% 60%,#fff4,transparent),radial-gradient(1px 1px at 40% 80%,#fff6,transparent);background-size:160px 160px}
.admin-body .banner-preview-wrap .store-hero::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;z-index:1;background:linear-gradient(100deg,transparent,color-mix(in srgb,#fff 12%,transparent),transparent);pointer-events:none}
.admin-body .banner-preview-wrap .btn.btn-lg{min-height:44px;padding:0 20px;font-size:14px}
@media (max-width:520px){.admin-body .banner-preview-wrap .store-hero{grid-template-columns:1fr}.admin-body .banner-preview-wrap .hero-art{order:-1;min-height:90px}}

/* ===== ADMIN sortable list (categories, generic) ===== */
.admin-body .sortable-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.admin-body .sortable-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}
.admin-body .sortable-row.is-dragging{opacity:.5;box-shadow:0 14px 30px -14px #000c}
.admin-body .sr-icon{flex:0 0 auto;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--bg-subtle);color:var(--accent-hover)}
.admin-body .sr-icon svg{width:17px;height:17px}
.admin-body .sr-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.admin-body .sr-main strong{font-weight:750}
.admin-body .sr-sub{font-size:12px;color:var(--text-muted)}
.admin-body .sr-tags{display:flex;gap:6px;flex-wrap:wrap}
.admin-body .sr-acts{display:flex;gap:7px;align-items:center;margin-left:auto}
@media (max-width:640px){.admin-body .sortable-row{flex-wrap:wrap}.admin-body .sr-acts{margin-left:0;width:100%}}

/* admin product preview: §9 price consistency (caption + currency word) */
.admin-body .editor-preview .price-row{align-items:baseline;flex-wrap:wrap;gap:6px}
.admin-body .editor-preview .price-cap{flex:1 0 100%;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:-3px}
.admin-body .editor-preview .price-new i{font-style:normal;font-size:11px;font-weight:600;color:var(--text-muted);margin-left:1px}

/* ===== Фикс наложения меню админки на футер (регрессия после добавления пунктов «Баннеры»/«Категории») =====
   .admin-nav имел flex:1 без прокрутки — при нехватке высоты пункты налезали на
   блок «Защищённая сессия». Включаем внутреннюю вертикальную прокрутку меню. */
.admin-shell .admin-nav{overflow-y:auto;overflow-x:hidden}
.admin-shell .admin-nav::-webkit-scrollbar{width:6px}
.admin-shell .admin-nav::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}

/* ===== Store analytics dashboard (ADM-07) ===== */
.admin-body .funnel{display:flex;flex-direction:column;gap:12px}
.admin-body .funnel-step{display:grid;grid-template-columns:240px 1fr auto;align-items:center;gap:14px}
.admin-body .fs-label{font-size:13px;color:var(--text-secondary)}
.admin-body .fs-label em{font-style:normal;color:var(--accent-hover);font-weight:700;margin-left:4px}
.admin-body .funnel-bar{display:block;height:10px;border-radius:999px;background:var(--bg-subtle);position:relative;overflow:hidden}
.admin-body .funnel-bar::before{content:"";position:absolute;inset:0;width:var(--w,2%);border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-hover))}
.admin-body .fs-val{font-size:16px;font-weight:800;min-width:64px;text-align:right}
.admin-body .result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.admin-body .result-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 4px;border-bottom:1px solid var(--border-subtle)}
.admin-body .result-list li:last-child{border-bottom:0}
.admin-body .result-list b{font-weight:800}
.admin-body .stx2{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700}
.admin-body .stx2::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.admin-body .stx2-delivered{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}
.admin-body .stx2-processing{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}
.admin-body .stx2-failed{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}
@media (max-width:640px){.admin-body .funnel-step{grid-template-columns:1fr auto}.admin-body .funnel-step .funnel-bar{grid-column:1/-1;order:3}}

/* ===== Store health guardrails (P2) ===== */
.admin-body .store-alerts{display:flex;flex-direction:column;gap:10px;margin:0 0 18px}
.admin-body .store-alert{display:flex;align-items:flex-start;gap:12px;padding:13px 16px;border-radius:14px;border:1px solid var(--border-subtle);background:var(--bg-subtle)}
.admin-body .store-alert .sa-ico{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:color-mix(in srgb,currentColor 16%,transparent)}
.admin-body .store-alert .sa-ico svg{width:18px;height:18px}
.admin-body .store-alert .sa-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-body .store-alert .sa-body b{font-size:14px;font-weight:700;color:var(--text-primary)}
.admin-body .store-alert .sa-body span{font-size:13px;color:var(--text-secondary)}
.admin-body .store-alert.lv-critical{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:color-mix(in srgb,var(--danger) 8%,var(--bg-subtle))}
.admin-body .store-alert.lv-warning{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,transparent);background:color-mix(in srgb,var(--warning) 8%,var(--bg-subtle))}
.admin-body .store-alert.lv-info{color:var(--accent-hover);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}

/* ===== A/B experiments (P2) ===== */
.admin-body .exp-list{display:flex;flex-direction:column;gap:16px}
.admin-body .exp-card{padding:0;overflow:hidden}
.admin-body .exp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border-subtle)}
.admin-body .exp-head h2{margin:0;font-size:16px}
.admin-body .exp-key{display:block;margin-top:3px;font-size:12px;color:var(--text-secondary)}
.admin-body .exp-variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding:16px 18px}
.admin-body .exp-var{border:1px solid var(--border-subtle);border-radius:14px;padding:13px 14px;background:var(--bg-subtle);display:flex;flex-direction:column;gap:10px}
.admin-body .exp-var.is-winner{border-color:color-mix(in srgb,var(--success) 55%,transparent);background:color-mix(in srgb,var(--success) 7%,var(--bg-subtle))}
.admin-body .ev-top{display:flex;align-items:center;gap:8px}
.admin-body .ev-top>b{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--accent);color:#fff;font-size:13px;font-weight:800}
.admin-body .ev-banner{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.admin-body .ev-win{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--success)}
.admin-body .ev-win svg{width:13px;height:13px}
.admin-body .ev-metrics{display:flex;gap:14px;flex-wrap:wrap}
.admin-body .ev-metrics span{display:flex;flex-direction:column}
.admin-body .ev-metrics small{font-size:11px;color:var(--text-secondary)}
.admin-body .ev-metrics b{font-size:15px;font-weight:800}
.admin-body .ev-weight{margin-left:auto;opacity:.7}
.admin-body .ev-bar{height:8px;border-radius:999px;background:var(--bg-base);overflow:hidden}
.admin-body .ev-bar i{display:block;height:100%;width:var(--w,2%);border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-hover))}
.admin-body .exp-var.is-winner .ev-bar i{background:linear-gradient(90deg,var(--success),color-mix(in srgb,var(--success) 60%,#fff))}
.admin-body .exp-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 18px;border-top:1px solid var(--border-subtle);background:var(--bg-base)}
.admin-body .exp-actions .inline{margin:0}

/* ===== 360° preview admin (preview-360) ===== */
.admin-body .p360-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.admin-body .p360-row{display:flex;flex-direction:column;gap:12px}
.admin-body .p360-row-head{display:flex;align-items:center;gap:12px}
.admin-body .p360-thumb{flex:0 0 auto;width:52px;height:52px;border-radius:12px;overflow:hidden;background:var(--bg-subtle);display:grid;place-items:center;border:1px solid var(--border-subtle)}
.admin-body .p360-thumb img{width:100%;height:100%;object-fit:cover}
.admin-body .p360-thumb span svg{width:20px;height:20px;opacity:.5}
.admin-body .p360-meta{min-width:0}
.admin-body .p360-meta h2{margin:0;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-body .p360-sub{font-size:12px;color:var(--text-secondary)}
.admin-body .p360-has{color:var(--success);font-weight:700}
.admin-body .p360-strip{display:flex;gap:5px;align-items:center;overflow-x:auto;padding-bottom:2px}
.admin-body .p360-strip img{flex:0 0 auto;width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--bg-subtle);border:1px solid var(--border-subtle)}
.admin-body .p360-more{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--text-secondary);padding:0 6px}
.admin-body .p360-form textarea{width:100%;font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;resize:vertical}
.admin-body .p360-actions{display:flex;gap:8px;margin-top:8px}
.admin-body .p360-remove{margin-top:2px}

/* info-alert icon sizing (был не ограничен → растягивался) */
.admin-body .alert-info{display:flex;align-items:flex-start;gap:9px}
.admin-body .alert-info svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.admin-body .alert-info code{background:color-mix(in srgb,var(--text-primary) 10%,transparent);padding:1px 6px;border-radius:6px;font-size:12px}

/* placement chip in catalog table (§18) */
.admin-body .tag-place{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent-hover);font-weight:700}
.admin-body .tag-place-hidden{background:color-mix(in srgb,var(--text-muted) 18%,transparent);color:var(--text-secondary)}

/* P0 reference layouts: intrinsic sizing, readable fields, no data clipping. */
.admin-body .identity>*,.admin-body .identity-main>*,.admin-body .identity-meta>*{min-width:0}
.admin-body .identity>div:first-child{flex:1}
.admin-body .identity-main>div:last-child{flex:1;min-width:0}
.admin-body .identity-avatar{flex-shrink:0}
.admin-body .identity .page-title{overflow-wrap:anywhere;white-space:normal;line-height:1.3}
.admin-body .identity-meta{flex-wrap:wrap;gap:12px 24px}
.admin-body .identity-meta b{overflow-wrap:anywhere}
.admin-body .config-row{font-size:14px;gap:16px}
.admin-body .page-sub,.admin-body .card-description{font-size:14px;line-height:1.55}
.admin-body .field label{font-size:13px;line-height:1.5}
.admin-body .field input:not([type=checkbox]):not([type=radio]),.admin-body .field select{min-height:44px;font-size:14px}
.admin-body .field textarea{font-size:14px;line-height:1.5}
.admin-body .btn{min-height:40px;font-size:13px;line-height:1.4;white-space:normal}
.admin-body .tbl td{overflow-wrap:anywhere}
.admin-body .tbl td>*{min-width:0}
.admin-body .freshness{overflow-wrap:anywhere;white-space:normal}
.admin-body .balance-preview[hidden],.admin-body .issue-preview[hidden]{display:none}
/* The confirmation text can contain an unbroken login or reference ID. Its
   intrinsic width must not enlarge the grid beyond the viewport. */
.admin-body .confirm-panel{min-width:0;grid-template-columns:40px minmax(0,1fr);max-height:calc(100dvh - 36px);overflow-y:auto}
.admin-body .confirm-panel>div{min-width:0}
.admin-body .confirm-panel p{overflow-wrap:anywhere;font-size:14px;line-height:1.55}
@media(max-width:768px){
  .admin-body .field input:not([type=checkbox]):not([type=radio]),.admin-body .field select,.admin-body .field textarea{font-size:16px}
  .admin-body .identity-main{align-items:flex-start}
  .admin-body .identity-meta>span{flex:1 1 140px}
  .admin-body .responsive-table td{flex-wrap:wrap}
  .admin-body .responsive-table td::before{flex:0 0 auto}
}
/* Support delivery is a normal document section, not a popup. Anchor navigation
   must clear the existing sticky topbar on desktop and mobile. */
.admin-body .support-delivery{scroll-margin-top:calc(var(--topbar) + 16px)}
.admin-body .support-delivery .table-subtext{line-height:1.55;white-space:normal;overflow-wrap:anywhere}
.admin-body .support-delivery details{min-width:0;max-width:100%;white-space:normal}
.admin-body .support-delivery summary{min-height:40px;padding-block:10px;line-height:20px;cursor:pointer;white-space:normal}
.admin-body .support-delivery details ul{margin:0;padding-inline-start:18px;line-height:1.55;overflow-wrap:anywhere}
.admin-body .users-search-filters{flex-wrap:wrap}.admin-body .users-search-filters .grow{min-width:0;flex:1 1 240px}.admin-body .users-search-filters input[type=search]{width:100%;min-width:0}.admin-body .users-search-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.admin-body .users-search-chips form{min-width:0;max-width:100%}.admin-body .users-search-chips button{white-space:normal;overflow-wrap:anywhere;text-align:left;max-width:100%}.admin-body .users-search-return{margin:0 0 16px}.admin-body .command-search-actions form{min-width:0;margin:0}.admin-body .command-search-actions form button{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:7px;background:transparent;color:var(--text-secondary);font:inherit;font-size:9px;cursor:pointer;transition:background-color .12s ease,color .12s ease}.admin-body .command-search-actions form button:hover,.admin-body .command-search-actions form button.is-selected{background:var(--accent-soft);color:var(--text-primary)}.admin-body .command-search-actions form button.is-selected{box-shadow:inset 2px 0 0 var(--accent)}
@media(max-width:768px){.admin-body .users-search-filters .grow{flex-basis:auto}}
/* Author display:grid/flex overrides the browser's hidden presentation.
   Keep filtered commands out of both the visual layout and keyboard flow. */
.admin-body .command-dialog [hidden]{display:none}
.admin-body .command-search-actions>a,.admin-body .command-search-actions form button{min-height:44px;font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
/* The hint occupies its own row so all labelled controls share a baseline. */
.admin-body .users-search-filters .users-search-note{flex:0 0 auto;width:100%;color:var(--text-muted);font-size:12px;line-height:1.5}
.admin-body .users-search-filters>.btn{min-height:44px}

/* CMS media library: all cards use intrinsic sizing; previews crop media, not text. */
.admin-body .media-library{display:flex;flex-direction:column;gap:16px;min-width:0}
.admin-body .media-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px}
.admin-body .media-filters .field{flex:1 1 150px;min-width:0}
.admin-body .media-filters .grow{flex-basis:320px}
.admin-body .media-browser{padding:0;overflow:clip}
.admin-body .media-browser>.section-table-head{padding:18px 20px;border-bottom:1px solid var(--border-subtle)}
.admin-body .media-browser>.empty{margin:20px}
.admin-body .media-library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border-subtle)}
.admin-body .media-tile{display:flex;flex-direction:column;min-width:0;background:var(--bg-card);transition:background-color .15s ease,box-shadow .15s ease}
.admin-body .media-tile:hover{background:var(--bg-subtle)}
.admin-body .media-tile.is-selected{box-shadow:inset 0 0 0 2px var(--accent)}
.admin-body .media-preview{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-base)}
.admin-body .media-preview img{width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.admin-body .media-tile:hover .media-preview img{transform:scale(1.025)}
.admin-body .media-preview:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.admin-body .media-tile-body{display:flex;flex:1;min-width:0;flex-direction:column;gap:7px;padding:13px 14px}
.admin-body .media-tile h3{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.4}
.admin-body .media-tile p{margin:0;color:var(--text-muted);font-size:12px}
.admin-body .media-tile-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;min-width:0}
.admin-body .media-tile-foot .badge{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-body .media-tile-foot>a{flex:0 0 auto;font-size:12px;font-weight:700}
.admin-body .media-detail{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(280px,1fr) minmax(280px,1fr);gap:22px;align-items:start}
.admin-body .media-detail>*{min-width:0}
.admin-body .media-detail-preview{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-base)}
.admin-body .media-detail-preview img{width:100%;height:100%;object-fit:contain}
.admin-body .media-detail h2{margin:4px 0 14px;font-size:20px;overflow-wrap:anywhere}
.admin-body .media-detail h3{margin:0;font-size:15px}
.admin-body .media-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 18px}
.admin-body .media-meta>div{min-width:0;padding:10px 11px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-subtle)}
.admin-body .media-meta dt{color:var(--text-muted);font-size:11px}
.admin-body .media-meta dd{margin:3px 0 0;overflow-wrap:anywhere;font-size:13px;font-weight:700}
.admin-body .media-alt-form{display:flex;flex-direction:column;gap:10px}
.admin-body .media-alt-form p{margin:0;font-size:12px;line-height:1.5}
.admin-body .media-alt-form textarea{width:100%;resize:vertical}
.admin-body .media-usage{display:flex;flex-direction:column;gap:13px}
.admin-body .media-usage .section-table-head{padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}
.admin-body .media-usage ul{display:flex;flex-direction:column;gap:7px;margin:0;padding:0;list-style:none}
.admin-body .media-usage li{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:10px;border-radius:9px;background:var(--bg-subtle)}
.admin-body .media-usage li>div{display:flex;min-width:0;flex-direction:column}
.admin-body .media-usage li a,.admin-body .media-usage li strong{overflow-wrap:anywhere;font-size:13px}
.admin-body .media-usage li small{color:var(--text-muted);font-size:11px}
.admin-body .media-unused{display:flex;flex-direction:column;gap:4px;padding:13px;border:1px dashed var(--border-subtle);border-radius:10px}
.admin-body .media-unused span,.admin-body .media-guard-note{margin:0;color:var(--text-secondary);font-size:12px;line-height:1.5}
.admin-body .media-upload{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:24px;scroll-margin-top:calc(var(--topbar) + 16px)}
.admin-body .media-upload form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px}
.admin-body .media-upload .field{min-width:0}
.admin-body .media-upload input[type=file]{max-width:100%}
@media(max-width:1200px){.admin-body .media-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-body .media-detail{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr)}.admin-body .media-usage{grid-column:1/-1}}
@media(max-width:840px){.admin-body .media-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-body .media-detail,.admin-body .media-upload{grid-template-columns:1fr}.admin-body .media-upload form{grid-template-columns:1fr}}
@media(max-width:560px){.admin-body .media-filters{align-items:stretch}.admin-body .media-filters .field{flex:0 1 auto;width:100%}.admin-body .media-library-grid{grid-template-columns:1fr}.admin-body .media-browser>.section-table-head{padding:15px}.admin-body .media-detail{gap:16px}.admin-body .media-tile h3{white-space:normal;overflow-wrap:anywhere}.admin-body .media-tile-foot{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.admin-body .media-tile,.admin-body .media-preview img{transition:none}.admin-body .media-tile:hover .media-preview img{transform:none}}

/* Forum moderation: restrained operations UI with explicit scope and audit reasons. */
.admin-body .forum-scope-bar{display:flex;align-items:center;gap:12px;min-width:0;margin:0 0 16px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface)}
.admin-body .forum-scope-bar>div{min-width:0}.admin-body .forum-scope-bar strong,.admin-body .forum-scope-bar small{display:block}.admin-body .forum-scope-bar strong{font-size:13px}.admin-body .forum-scope-bar small{margin-top:2px;color:var(--text-muted);font-size:11px;line-height:1.45}
.admin-body .forum-scope-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto}
.admin-body .forum-filter{flex-wrap:wrap}.admin-body .forum-filter .field{flex:1 1 220px;max-width:360px}
.admin-body .forum-report-list{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
.admin-body .forum-report-card{display:flex;flex-direction:column;gap:14px;min-width:0;margin:0;overflow:visible}
.admin-body .forum-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0}.admin-body .forum-report-head>div{min-width:0}.admin-body .forum-report-head h2{margin:4px 0 0;font-size:17px;line-height:1.35;overflow-wrap:anywhere}.admin-body .forum-report-head>.badge{flex:0 0 auto}
.admin-body .forum-report-meta{display:flex;flex-wrap:wrap;gap:7px 14px;color:var(--text-muted);font-size:11px}.admin-body .forum-report-meta span{display:inline-flex;align-items:center;gap:5px;min-width:0}.admin-body .forum-report-meta svg{width:14px;height:14px;flex:0 0 auto}.admin-body .forum-report-meta time{margin-left:auto}
.admin-body .forum-report-details{margin:0;padding:10px 12px;border-left:2px solid var(--accent);background:var(--bg-subtle);color:var(--text-secondary);font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.admin-body .forum-post-preview{min-width:0;margin:0;padding:12px 13px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-subtle)}.admin-body .forum-post-preview header{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;color:var(--text-muted);font-size:10px}.admin-body .forum-post-preview strong{color:var(--text-primary);font-size:12px}.admin-body .forum-post-preview p{display:-webkit-box;margin:0;overflow:hidden;color:var(--text-secondary);font-size:13px;line-height:1.55;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:5}
.admin-body .forum-topic-link{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;min-width:0;font-size:12px}.admin-body .forum-topic-link span{color:var(--text-muted)}.admin-body .forum-topic-link a{min-width:0;overflow-wrap:anywhere}
.admin-body .forum-moderation-actions{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:auto;padding-top:2px}.admin-body .forum-action-menu{position:relative;min-width:0}.admin-body .forum-action-menu>summary{list-style:none;cursor:pointer}.admin-body .forum-action-menu>summary::-webkit-details-marker{display:none}.admin-body .forum-action-menu[open]{flex:1 1 100%}.admin-body .forum-action-menu[open]>summary{margin-bottom:8px}.admin-body .forum-action-form{display:grid;grid-template-columns:minmax(150px,.6fr) minmax(220px,1.4fr) auto;align-items:end;gap:10px;min-width:0;padding:12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg-subtle)}.admin-body .forum-action-form label{display:flex;flex-direction:column;gap:5px;min-width:0;color:var(--text-secondary);font-size:11px}.admin-body .forum-action-form select,.admin-body .forum-action-form textarea{width:100%;min-width:0}.admin-body .forum-action-form textarea{min-height:70px;resize:vertical}
.admin-body .forum-scope-fieldset{min-width:0;margin:14px 0;padding:13px;border:1px solid var(--border-subtle);border-radius:9px}.admin-body .forum-scope-fieldset legend{padding:0 6px;font-size:13px;font-weight:700}.admin-body .forum-scope-fieldset>.field-hint{display:block;margin:0 0 10px}.admin-body .forum-scope-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-body .forum-scope-options>label{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:9px;border:1px solid var(--border-subtle);border-radius:7px;background:var(--bg-subtle)}.admin-body .forum-scope-options>label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 48%,var(--border-subtle));background:var(--accent-soft)}.admin-body .forum-scope-options input{margin-top:2px}.admin-body .forum-scope-options span,.admin-body .forum-scope-options strong,.admin-body .forum-scope-options small{display:block;min-width:0;overflow-wrap:anywhere}.admin-body .forum-scope-options strong{font-size:12px}.admin-body .forum-scope-options small{margin-top:2px;color:var(--text-muted);font-size:10px}.admin-body .forum-scope-options>.alert{grid-column:1/-1;margin:0}
.admin-body .forum-scope-fieldset.is-disabled{opacity:.55}.admin-body .forum-scope-fieldset.is-disabled .forum-scope-options{pointer-events:none}
@media(max-width:768px){.admin-body .forum-scope-bar{align-items:flex-start;flex-wrap:wrap}.admin-body .forum-scope-chips{width:100%;justify-content:flex-start;margin-left:24px}.admin-body .forum-action-form{grid-template-columns:1fr}.admin-body .forum-action-form .btn{width:100%}.admin-body .forum-scope-options{grid-template-columns:1fr}}
@media(max-width:480px){.admin-body .forum-report-head{flex-direction:column}.admin-body .forum-report-meta{flex-direction:column}.admin-body .forum-report-meta time{margin-left:0}.admin-body .forum-moderation-actions,.admin-body .forum-action-menu,.admin-body .forum-action-menu>summary{width:100%}.admin-body .forum-scope-chips{margin-left:0}}
@media(prefers-reduced-motion:reduce){.admin-body .forum-action-menu>summary{scroll-behavior:auto}}


/* === Telegram editor === */
.tg-layout{display:grid;grid-template-columns:1fr;gap:18px;margin-bottom:18px}
@media(min-width:1000px){.tg-layout{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start}}
.tg-editor{border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:var(--color-bg-1)}
.tg-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}
.tg-tool{min-width:34px;height:34px;padding:0 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--color-text-primary);cursor:pointer;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}
.tg-tool:hover{background:var(--color-surface-3);border-color:var(--color-border)}
.tg-tool-mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.tg-tool-sep{width:1px;height:22px;background:var(--color-border);margin:0 4px}
.tg-emoji-wrap{position:relative}
.tg-emoji-panel{position:absolute;top:40px;right:0;z-index:var(--z-menu);display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:8px;background:var(--color-surface-1);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.tg-emoji{width:34px;height:34px;border:0;background:transparent;border-radius:8px;font-size:20px;cursor:pointer}
.tg-emoji:hover{background:var(--color-surface-3)}
.tg-editor textarea{width:100%;border:0;background:transparent;color:var(--color-text-primary);padding:12px;font-size:15px;line-height:1.55;resize:vertical;outline:none;min-height:180px;font-family:inherit}
.tg-editor-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-top:1px solid var(--color-border);background:var(--color-surface-2)}
.tg-count{font-variant-numeric:tabular-nums;font-size:13px;color:var(--color-text-tertiary)}
.tg-count.is-over{color:var(--color-error);font-weight:700}
.tg-toggles{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.tg-toggles label{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--color-text-secondary)}
.tg-preview-col{position:sticky;top:16px}
.tg-preview-label{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-tertiary);margin-bottom:8px}
.tg-channel{background:#0e1621;border-radius:16px;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.tg-channel-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.tg-ava{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#e5c784,#b8892f);color:#1a1205;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:14px}
.tg-channel-id{display:flex;flex-direction:column;line-height:1.2}
.tg-ch-name{color:#e9edf0;font-weight:700;font-size:14px}
.tg-ch-sub{color:#7d8b99;font-size:12px}
.tg-bubble{background:#17212b;color:#e9edf0;border-radius:12px;border-top-left-radius:4px;padding:10px 12px}
.tg-preview-cover{margin:-2px -2px 8px;border-radius:10px;overflow:hidden}
.tg-preview-cover img{display:block;width:100%;height:auto;max-height:240px;object-fit:cover}
.tg-preview-body{font-size:15px;line-height:1.5;word-break:break-word;min-height:22px}
.tg-preview-body b{font-weight:700}
.tg-preview-body a{color:#6ab3f3}
.tg-preview-body blockquote{border-left:3px solid #6ab3f3;margin:6px 0;padding:2px 0 2px 10px;color:#c8d2dc}
.tg-preview-body code{background:rgba(255,255,255,.08);padding:1px 5px;border-radius:5px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.tg-preview-empty{color:#6c7a89}
.tg-spoiler-pv{background:#3a4753;color:transparent;border-radius:4px;padding:0 3px;transition:color .15s,background .15s}
.tg-spoiler-pv:hover{background:rgba(255,255,255,.12);color:#e9edf0}
.tg-preview-btn{display:block;margin-top:10px;text-align:center;background:#2b5278;color:#fff;border-radius:8px;padding:9px 12px;font-size:14px;font-weight:600}
.tg-preview-meta{margin-top:8px;text-align:right;font-size:12px;color:#7d8b99}
.tg-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.tg-history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--color-border)}
.tg-history-item:first-child{border-top:0}
.tg-history-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.tg-history-item .row-actions{display:flex;gap:8px;flex-shrink:0}

.perm-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.perm-chips .badge{font-size:10.5px}

/* UI-10: two-col grids size to content (no stretch orphans) */
.admin-body .g2,.admin-body .g3{align-items:start}
/* UI-11: compact row-open chevron */
.admin-body .cell-action{text-align:right}
.admin-body .row-open{padding:6px 8px;line-height:0}
.admin-body .row-open svg{width:16px;height:16px;display:block}
/* UI-11: overflow menu (native <details>, CSP-safe, no JS) */
.admin-body .row-menu{position:relative;display:inline-block}
.admin-body .row-menu>summary{list-style:none;cursor:pointer;user-select:none}
.admin-body .row-menu>summary::-webkit-details-marker{display:none}
.admin-body .row-menu>summary::marker{content:''}
.admin-body .row-menu-btn{font-weight:800;letter-spacing:.06em}
.admin-body .row-menu-pop{position:absolute;right:0;top:calc(100% + 5px);z-index:var(--z-dropdown);min-width:180px;padding:6px;background:var(--bg-elevated,var(--bg-surface));border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 22px 46px -22px rgba(0,0,0,.7)}
.admin-body .row-menu-pop form{margin:0}
.admin-body .row-menu-pop .row-menu-item{width:100%;justify-content:flex-start}
.admin-body .table-wrap:has(.row-menu[open]),.admin-body .table-scroll:has(.row-menu[open]){overflow:visible}
