: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;}
/* GENERATED by build-css.mjs — edit styles/*.css, NOT this file. */
@layer reset, tokens, base, components, pages, overrides, utilities;

@layer tokens {
/* >>> tokens.css */
/* L2ByEnd cabinet/admin design system — token based, responsive, WCAG-oriented. */
:root{
  /* Dark Command Center: нейтральные графитовые поверхности, прохладный текст,
     золото — сигнал, а не декор (см. ТЗ редизайна §3–§4). */
  --bg-base:#0B0D10;--bg-subtle:#0d1016;--bg-surface:#11151A;--bg-elevated:#151A20;--bg-hover:#1A2027;
  --border-subtle:rgba(255,255,255,.07);--border-strong:rgba(255,255,255,.12);
  --text-primary:#F4F5F7;--text-secondary:#9DA6B3;--text-muted:#828B9A;
  --accent:#D4B465;--accent-hover:#E2C77C;--accent-soft:rgba(212,180,101,.12);
  --success:#47C98A;--warning:#D8A84D;--danger:#E76565;--info:#62A9E8;
  --radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;
  --shadow-sm:0 4px 14px -8px rgba(0,0,0,.5);--shadow-lg:0 8px 24px -12px rgba(0,0,0,.45);
  --focus:0 0 0 3px rgba(212,180,101,.30);
  --sidebar:240px;--topbar:60px;
  --bg-0:var(--bg-base);--bg-1:var(--bg-subtle);--surface-1:var(--bg-surface);--surface-2:var(--bg-elevated);--surface-3:var(--bg-hover);
  --border:var(--border-subtle);--border-2:var(--border-strong);--text:var(--text-primary);--text-2:var(--text-secondary);--text-3:var(--text-muted);
  --gold:var(--accent);--gold-b:var(--accent-hover);--gold-d:#856a39;--green:var(--success);--red:var(--danger);
  --r:var(--radius-md);--r-lg:var(--radius-lg);--r-modal:var(--radius-xl);--shadow:var(--shadow-lg);
  color-scheme:dark;
}
html[data-color-mode="light"]{
  --bg-base:#f1f0ed;--bg-subtle:#e9e7e2;--bg-surface:#faf9f6;--bg-elevated:#ffffff;--bg-hover:#f0ede7;
  --border-subtle:rgba(35,31,25,.10);--border-strong:rgba(35,31,25,.18);
  --text-primary:#191816;--text-secondary:#5f5c56;--text-muted:#858078;
  --accent:#9b7133;--accent-hover:#785420;--accent-soft:rgba(155,113,51,.12);
  --success:#25845a;--warning:#9a671d;--danger:#b93f49;--info:#336f91;
  --shadow-sm:0 8px 24px -18px rgba(44,35,22,.3);--shadow-lg:0 28px 80px -42px rgba(44,35,22,.35);
  --focus:0 0 0 3px rgba(155,113,51,.2);--gold-d:#b38d54;
  color-scheme:light;
}
/* Royal — warmer, gold-forward premium dark. */
html[data-brand-theme="royal"]{
  --bg-base:#0c0906;--bg-subtle:#120d08;--bg-surface:#191109;--bg-elevated:#22160c;--bg-hover:#2b1d10;
  --border-subtle:rgba(226,190,120,.10);--border-strong:rgba(226,190,120,.20);
  --text-primary:#f6efe1;--text-secondary:#b6a684;--text-muted:#847a63;
  --accent:#e2be78;--accent-hover:#f4d79a;--accent-soft:rgba(226,190,120,.15);
  --success:#7bcf9d;--warning:#eabf6a;--danger:#f0838a;--info:#c9a86a;
  --focus:0 0 0 3px rgba(226,190,120,.28);--gold-d:#9c7a3f;
  color-scheme:dark;
}
/* Midnight — cool blue premium dark. */
html[data-brand-theme="midnight"]{
  --bg-base:#070a10;--bg-subtle:#0b0f17;--bg-surface:#10151f;--bg-elevated:#161d2a;--bg-hover:#1b2434;
  --border-subtle:rgba(150,180,255,.08);--border-strong:rgba(150,180,255,.16);
  --text-primary:#eef2fb;--text-secondary:#9aa6bd;--text-muted:#697388;
  --accent:#7ea6e6;--accent-hover:#a6c4f5;--accent-soft:rgba(126,166,230,.14);
  --success:#63cb96;--warning:#e3b55f;--danger:#ee747b;--info:#7ea6e6;
  --focus:0 0 0 3px rgba(126,166,230,.26);--gold-d:#4f6a99;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-height:100%}
body{min-height:100vh;background:var(--bg-base);color:var(--text-primary);font:14px/1.55 'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;position:relative;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(1100px 620px at 85% -8%,rgba(209,173,104,.11),transparent 62%),radial-gradient(800px 660px at -8% 108%,rgba(57,79,106,.09),transparent 64%),linear-gradient(180deg,var(--bg-base),color-mix(in srgb,var(--bg-base) 88%,#000))}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{outline:none}
:focus-visible{box-shadow:var(--focus)!important;border-color:var(--accent)!important}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{margin-bottom:0;color:var(--text-primary);line-height:1.2}
}

@layer base {
/* >>> base.css */
/* Заголовки — sans-serif (Inter), не serif: интерфейс product-first (ТЗ §5). Serif
   остаётся только в логотипе (.brand .bt). */
h1,h2,h3,.display,.page-title,.balance .amt{font-family:'Inter',system-ui,-apple-system,sans-serif;font-weight:700;letter-spacing:-.012em}
.brand .bt{font-family:'Cinzel',Georgia,serif}
button:disabled,.btn.disabled{pointer-events:none;opacity:.48}
.gold{color:var(--accent-hover)}.muted{color:var(--text-secondary)}.dim{color:var(--text-muted)}.green{color:var(--success)}.red{color:var(--danger)}
.tabular{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Application shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar);flex:0 0 var(--sidebar);height:100vh;padding:18px 14px;position:sticky;top:0;display:flex;flex-direction:column;overflow-y:auto;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-subtle) 94%,transparent),color-mix(in srgb,var(--bg-base) 96%,transparent));border-right:1px solid var(--border-subtle);backdrop-filter:blur(14px);z-index:var(--z-sticky)}
.sidebar-mobile-head{display:none;align-items:center;justify-content:space-between;padding:2px 4px 12px;color:var(--text-muted);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.brand{display:flex;align-items:center;gap:11px;padding:7px 9px 20px;min-height:54px}
.brand .em{width:30px;height:30px;flex:0 0 auto;filter:drop-shadow(0 0 14px rgba(209,173,104,.16))}
.brand .bt{font-size:18px;font-weight:700;letter-spacing:.045em}.brand .bt b{color:var(--accent-hover)}
.brand small{display:block;margin-top:1px;color:var(--text-muted);font:700 9px/1.35 'Inter',sans-serif;letter-spacing:.22em;text-transform:uppercase}
.srv-select{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:11px 12px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:12px;font-weight:650;box-shadow:var(--shadow-sm)}
.srv-select>svg{width:18px;height:18px;color:var(--accent);flex:0 0 auto}.srv-select>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srv-select small{display:block;color:var(--text-muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.server-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 12%,transparent);flex:0 0 auto}
.nav-label{padding:8px 11px 6px;color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.nav a{display:flex;align-items:center;gap:11px;min-height:43px;margin-bottom:2px;padding:9px 12px;border-radius:10px;color:var(--text-secondary);font-size:13px;font-weight:550;position:relative;transition:background-color .15s,color .15s,transform .15s}
.nav a svg{width:18px;height:18px;opacity:.82;flex:0 0 auto}.nav a:hover{color:var(--text-primary);background:var(--bg-surface);transform:translateX(1px)}
.nav a.active{color:var(--accent-hover);background:linear-gradient(90deg,var(--accent-soft),transparent)}
.nav a.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:4px;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 48%,transparent)}
.nav a.active svg{opacity:1}.nav-sep{height:1px;margin:13px 7px;background:var(--border-subtle)}
.side-foot{display:flex;align-items:flex-start;gap:10px;margin-top:auto;padding:18px 10px 4px;color:var(--text-secondary);font-size:11px}.side-foot small{display:block;margin-top:3px;color:var(--text-muted)}
.main{display:flex;flex:1;min-width:0;flex-direction:column}
.topbar{height:var(--topbar);display:flex;align-items:center;gap:12px;padding:0 28px;position:sticky;top:0;z-index:var(--z-dropdown);background:color-mix(in srgb,var(--bg-base) 82%,transparent);border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(16px)}
.topbar .sp{margin-left:auto}.topbar-context{display:flex;flex-direction:column}.topbar-context span{color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.topbar-context strong{font-size:13px;font-weight:650}.topbar-login{color:var(--text-secondary);font-size:12px}
.icon-button{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-secondary);cursor:pointer}.icon-button:hover{color:var(--accent-hover);background:var(--bg-surface);border-color:var(--border-subtle)}.icon-button svg{width:19px;height:19px}
.avatar{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--accent-hover),var(--accent));color:#121212;font-size:13px;font-weight:800;box-shadow:0 0 0 3px var(--accent-soft)}
.logout-form{margin:0}.logout-form>input{display:none}.burger{display:none}.sidebar-backdrop{display:none}
.content{width:100%;max-width:1280px;padding:34px 36px 52px}
.admin-content{max-width:none}

/* Page composition */
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.page-title{margin:0 0 5px;font-size:28px;letter-spacing:-.018em}.page-sub{max-width:760px;margin:0;color:var(--text-secondary);font-size:13px}.eyebrow{margin-bottom:7px;color:var(--accent);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.grid{display:grid;gap:18px}.grid>.card+.card{margin-top:0}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:18px}.stack>*+*{margin-top:0}
.card{padding:22px;position:relative;overflow:hidden;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-lg)}
.card::before{content:"";height:1px;position:absolute;inset:0 0 auto;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent)}
.card+.card{margin-top:18px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.card-head h2,.card-head h3,.card-title{font-size:16px}.card-kicker{margin-bottom:4px;color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.card-description{margin:7px 0 0;color:var(--text-secondary);font-size:13px}.label{color:var(--text-secondary);font-size:12px}.helper{margin-top:7px;color:var(--text-muted);font-size:11px}
.ic-round,.state-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:50%;background:var(--accent-soft);color:var(--accent-hover);flex:0 0 auto}.ic-round svg,.state-icon svg{width:20px;height:20px}.ic-round.purple{color:var(--info);border-color:color-mix(in srgb,var(--info) 28%,transparent);background:color-mix(in srgb,var(--info) 12%,transparent)}.state-icon.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 28%,transparent);background:color-mix(in srgb,var(--danger) 11%,transparent);margin:0 auto 15px}
.balance .amt{font-size:31px;font-weight:700}.balance-caption{margin-top:3px;color:var(--text-muted);font-size:11px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric-card{min-height:126px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,var(--bg-surface),color-mix(in srgb,var(--bg-surface) 72%,transparent));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.metric-card .metric-num{font-size:29px;font-weight:750;letter-spacing:-.04em}.metric-card .metric-caption{color:var(--text-secondary);font-size:11px}.metric-card.warning .metric-num{color:var(--warning)}.metric-card.danger .metric-num{color:var(--danger)}.metric-card.success .metric-num{color:var(--success)}
.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.action-card{display:block;min-height:150px;transition:transform .16s,border-color .16s}.action-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 38%,transparent)}.action-card .action-link{display:inline-flex;align-items:center;gap:7px;margin-top:18px;color:var(--accent-hover);font-size:12px;font-weight:750}.action-card .action-link svg{width:15px;height:15px}
.security-callout{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;padding:15px 17px;border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--warning) 8%,transparent)}.security-callout svg{width:20px;height:20px;color:var(--warning);flex:0 0 auto}.security-callout p{margin:3px 0 0;color:var(--text-secondary);font-size:12px}.security-callout .btn{margin-left:auto}
/* >>> shell.css */
/* CABINET — Topbar: breadcrumbs, notifications, profile dropdown (TZ §8) */
.cabinet-body .cabinet-crumbs{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;min-width:0}
.cabinet-body .cabinet-crumbs a{color:var(--text-muted);text-decoration:none;transition:color .15s;white-space:nowrap}
.cabinet-body .cabinet-crumbs a:hover{color:var(--accent)}
.cabinet-body .cabinet-crumbs>span{display:inline-flex;color:var(--text-muted);opacity:.55;flex:none}
.cabinet-body .cabinet-crumbs>span svg{width:15px;height:15px}
.cabinet-body .cabinet-crumbs b{color:var(--text);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cabinet-body .cabinet-notif{color:var(--text-secondary)}
.cabinet-body .cabinet-notif:hover{color:var(--accent);border-color:var(--accent-soft)}
.cabinet-body .profile-menu{position:relative}
.cabinet-body .profile-menu>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:5px 10px 5px 6px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);cursor:pointer;transition:border-color .15s,background .15s;user-select:none}
.cabinet-body .profile-menu>summary::-webkit-details-marker{display:none}
.cabinet-body .profile-menu>summary:hover{border-color:var(--accent-soft);background:var(--surface-3)}
.cabinet-body .profile-menu[open]>summary{border-color:var(--accent);background:var(--surface-3)}
.cabinet-body .profile-menu .topbar-login{display:flex;flex-direction:column;line-height:1.15;color:var(--text);font-weight:650;font-size:13px}
.cabinet-body .profile-menu .topbar-login small{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.cabinet-body .profile-caret{display:inline-flex;color:var(--text-muted);transition:transform .18s}
.cabinet-body .profile-caret svg{width:15px;height:15px}
.cabinet-body .profile-menu[open] .profile-caret{transform:rotate(180deg)}
.cabinet-body .profile-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:var(--z-sticky);min-width:252px;display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--border);border-radius:16px;background:var(--surface-1);box-shadow:0 26px 60px -18px rgba(0,0,0,.55),0 0 0 1px var(--border-soft,var(--border));animation:cabPop .16s ease}
@keyframes cabPop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cabinet-body .profile-popover .profile-id{display:flex;align-items:center;gap:12px;padding:8px 12px 12px;border-bottom:1px solid var(--border-soft,var(--border));margin-bottom:6px}
.cabinet-body .profile-popover .profile-id strong{display:block;font-size:14px}
.cabinet-body .profile-popover .profile-id span{display:block;color:var(--text-muted);font-size:11px}
.cabinet-body .avatar-lg{width:42px;height:42px;font-size:16px;border-radius:12px}
.cabinet-body .profile-popover a,.cabinet-body .profile-popover button{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:var(--text-secondary);font:inherit;font-size:13.5px;font-weight:600;text-align:left;cursor:pointer;transition:background .13s,color .13s;text-decoration:none}
.cabinet-body .profile-popover a svg,.cabinet-body .profile-popover button svg{width:17px;height:17px;color:var(--text-muted);flex:none;transition:color .13s}
.cabinet-body .profile-popover a:hover,.cabinet-body .profile-popover button:hover{background:var(--surface-3);color:var(--text)}
.cabinet-body .profile-popover a:hover svg,.cabinet-body .profile-popover button:hover svg{color:var(--accent)}
.cabinet-body .profile-popover form{margin:6px 0 0;padding-top:6px;border-top:1px solid var(--border-soft,var(--border))}
.cabinet-body .profile-popover form button:hover{background:color-mix(in srgb,var(--danger,#e5484d) 14%,transparent);color:var(--danger,#e5484d)}
.cabinet-body .profile-popover form button:hover svg{color:var(--danger,#e5484d)}

/* CABINET — Custom select: character picker with avatar + level (TZ §12.4) */
.cabinet-body .cs{position:relative}
.cabinet-body .cs>select[data-custom-select]{position:absolute;left:14px;bottom:2px;width:10px;height:1px;padding:0;margin:0;opacity:0;pointer-events:none}
.cabinet-body .cs-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:8px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.cabinet-body .cs-trigger:hover{border-color:var(--accent-soft)}
.cabinet-body .cs.is-open .cs-trigger,.cabinet-body .cs-trigger:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cabinet-body .cs-trigger:disabled{opacity:.55;cursor:not-allowed}
.cabinet-body .cs-trigger .cs-ph{color:var(--text-muted);font-weight:500}
.cabinet-body .cs-caret{margin-left:auto;color:var(--text-muted);transition:transform .18s;flex:none}
.cabinet-body .cs.is-open .cs-caret{transform:rotate(180deg)}
.cabinet-body .cs-av{width:26px;height:26px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:linear-gradient(135deg,var(--accent-hover),var(--accent));color:#231a06;font-size:12px;font-weight:800}
.cabinet-body .cs-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cabinet-body .cs-lv{flex:none;padding:2px 9px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:700}
.cabinet-body .cs-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:var(--z-backdrop);max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--border);border-radius:14px;background:var(--surface-1);box-shadow:0 22px 50px -16px rgba(0,0,0,.5),0 0 0 1px var(--border-soft,var(--border));animation:cabPop .14s ease}
.cabinet-body .cs-opt{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer;transition:background .12s}
.cabinet-body .cs-opt:hover,.cabinet-body .cs-opt:focus-visible{outline:none;background:var(--surface-3)}
.cabinet-body .cs-opt.is-sel{background:var(--accent-soft)}
.cabinet-body .cs-opt.is-sel .cs-name{color:var(--accent)}
.cabinet-body .cs-opt.is-ph{color:var(--text-muted);font-weight:500}

/* CABINET — Telegram notification preferences (TG integration) */
.cabinet-body .tg-toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:12px 0}
.cabinet-body .tg-toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer;transition:border-color .14s,background .14s}
.cabinet-body .tg-toggle:hover{border-color:var(--accent-soft)}
.cabinet-body .tg-toggle input{position:absolute;opacity:0;width:0;height:0}
.cabinet-body .tg-switch{position:relative;flex:none;width:38px;height:22px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);transition:background .16s,border-color .16s}
.cabinet-body .tg-switch::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:transform .16s}
.cabinet-body .tg-toggle input:checked + .tg-switch{background:var(--accent);border-color:var(--accent)}
.cabinet-body .tg-toggle input:checked + .tg-switch::after{transform:translateX(16px)}
.cabinet-body .tg-toggle input:focus-visible + .tg-switch{box-shadow:0 0 0 3px var(--accent-soft)}
.cabinet-body .tg-label{font-size:14px;font-weight:600;color:var(--text)}
.cabinet-body .tg-prefs-actions{margin-top:4px}
.cabinet-body .tg-unlink{margin-top:10px}

/* ===== App Shell (Phase 3): nav-группы, внешние ссылки, командная палитра кабинета ===== */
.nav-group{padding:15px 11px 5px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.nav-ext-label{padding:16px 11px 5px;color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.nav .nav-ext{color:var(--text-muted)}
.nav .nav-ext:hover{color:var(--text-secondary);background:var(--bg-hover)}
.nav .nav-ext svg{opacity:.55}
.nav .nav-ext .ext-arrow{margin-left:auto;font-style:normal;font-size:12px;opacity:.55}
/* Command palette (cabinet) — портировано из общей палитры, scoped .cabinet-body */
.cabinet-body .command-trigger{width:auto;min-width:140px;height:34px;margin-left:14px;padding:0 8px 0 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg-subtle);color:var(--text-muted);font-size:12px;cursor:pointer;transition:border-color .16s,color .16s,box-shadow .16s}
.cabinet-body .command-trigger:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border-strong));color:var(--text-secondary);box-shadow:0 0 0 3px var(--accent-soft)}
.cabinet-body .command-trigger>span{display:flex;align-items:center;gap:8px}
.cabinet-body .command-trigger svg{width:15px;height:15px}
.cabinet-body .command-dialog{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:start center;padding:10vh 16px 30px}
.cabinet-body .command-dialog[hidden]{display:none}
.cabinet-body .command-panel{width:min(600px,100%);max-height:min(680px,78vh);position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:14px;background:var(--bg-elevated);box-shadow:0 34px 90px -30px rgba(0,0,0,.6)}
.cabinet-body .command-input-wrap{height:58px;padding:0 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-subtle)}
.cabinet-body .command-input-wrap>svg{width:18px;color:var(--accent)}
.cabinet-body .command-input-wrap input{flex:1;min-height:0;padding:0;border:0;background:transparent;color:var(--text-primary);font-size:14px;box-shadow:none!important}
.cabinet-body .command-input-wrap>kbd{margin-left:auto}
.cabinet-body .command-results{padding:8px;overflow:auto}
.cabinet-body .command-group>span{display:block;padding:8px 9px 4px;color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.cabinet-body .command-group>a{min-height:44px;padding:8px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:9px;color:var(--text-secondary);text-decoration:none}
.cabinet-body .command-group>a[hidden]{display:none}
.cabinet-body .command-group>a:hover,.cabinet-body .command-group>a.is-selected{background:var(--accent-soft);color:var(--text-primary);box-shadow:inset 2px 0 0 0 var(--accent)}
.cabinet-body .command-group>a span{font-size:13px;font-weight:600}
.cabinet-body .command-group>a small{color:var(--text-muted);font:11px ui-monospace,monospace}
.cabinet-body .command-empty{padding:16px 12px;color:var(--text-muted);font-size:12px}
.cabinet-body .command-help{min-height:38px;padding:8px 16px;display:flex;align-items:center;gap:18px;border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:11px}
.cabinet-body .command-help span{display:flex;align-items:center;gap:5px}
.cabinet-body 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,monospace}
/* тема внутри меню профиля */
.cabinet-body .profile-theme{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-top:1px solid var(--border-subtle);margin-top:4px}
.cabinet-body .profile-theme-label{font-size:12px;color:var(--text-secondary)}
@media (max-width:900px){.cabinet-body .command-trigger{min-width:0}.cabinet-body .command-trigger>span span{display:none}.cabinet-body .command-trigger kbd{display:none}}
@media (max-width:560px){.cabinet-body .command-trigger{width:36px;min-width:36px;flex-shrink:0;margin-left:0;padding:0;justify-content:center}.cabinet-body .command-trigger>span{font-size:0;gap:0}.cabinet-body .cabinet-crumbs{flex:1;overflow:hidden}.cabinet-body .cabinet-crumbs a{min-width:0;overflow:hidden;text-overflow:ellipsis}}
}

@layer components {
/* >>> components.css */
/* Buttons and forms */
.btn{min-height:42px;padding:10px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;white-space:nowrap;color:var(--text-primary);font-size:13px;font-weight:750;cursor:pointer;transition:transform .12s,background-color .12s,border-color .12s,box-shadow .12s}.btn:active{transform:translateY(1px)}.btn svg{width:16px;height:16px}.btn-primary{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#15120d;box-shadow:0 10px 26px -15px color-mix(in srgb,var(--accent) 75%,transparent)}.btn-primary:hover{box-shadow:0 13px 30px -13px color-mix(in srgb,var(--accent) 82%,transparent)}.btn-ghost{background:var(--bg-elevated);border-color:var(--border-strong)}.btn-ghost:hover{border-color:var(--accent);background:var(--bg-hover)}.btn-danger{color:#fff1f2;background:color-mix(in srgb,var(--danger) 19%,transparent);border-color:color-mix(in srgb,var(--danger) 52%,transparent)}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 27%,transparent)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:7px 12px;font-size:12px}.btn.is-loading::after{content:"";width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.field{margin-bottom:15px}.field label,.field-label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:12px;font-weight:550}.required::after{content:" *";color:var(--danger)}
input,select,textarea{width:100%;min-height:44px;padding:10px 13px;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:10px;color:var(--text-primary);font-size:14px}textarea{min-height:110px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--focus)}input[type="checkbox"],input[type="radio"]{width:20px;height:20px;min-height:0;accent-color:var(--accent)}
.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline>input,.inline>select{width:auto;min-width:140px;flex:1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.password-wrap{display:flex;gap:8px}.password-wrap input{flex:1}
.filterbar{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px;padding:16px}.filterbar .field{min-width:160px;margin:0}.filterbar .grow{flex:1;min-width:220px}.filterbar .date-field{min-width:145px}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{min-height:38px;padding:8px 13px;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer}.chip:hover,.chip.active{border-color:var(--accent);color:var(--accent-hover);background:var(--accent-soft)}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:15px 0}.permission-grid label{min-height:44px;padding:10px 11px;display:flex;align-items:center;gap:9px;border:1px solid var(--border-subtle);border-radius:9px;color:var(--text-secondary);font-size:12px;background:var(--bg-subtle)}

/* Data display */
.table-card{padding:0}.table-scroll{width:100%;overflow:auto}.tbl{width:100%;border-collapse:separate;border-spacing:0}.tbl th{padding:11px 13px;position:sticky;top:0;z-index:1;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);text-align:left;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.tbl td{padding:14px 13px;border-bottom:1px solid var(--border-subtle);font-size:13px;vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:color-mix(in srgb,var(--bg-hover) 48%,transparent)}.density-compact .tbl td{padding-top:9px;padding-bottom:9px}.density-compact .tbl th{padding-top:8px;padding-bottom:8px}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.015em}.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge-ok{color:var(--success);background:color-mix(in srgb,var(--success) 13%,transparent)}.badge-wait{color:var(--warning);background:color-mix(in srgb,var(--warning) 12%,transparent)}.badge-danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}.badge-info{color:var(--info);background:color-mix(in srgb,var(--info) 12%,transparent)}
.empty{padding:36px 22px;text-align:center;color:var(--text-secondary)}.empty strong{display:block;margin-bottom:5px;color:var(--text-primary)}.empty svg{width:28px;height:28px;margin-bottom:10px;color:var(--text-muted)}
.alert{margin-bottom:17px;padding:13px 15px;border:1px solid;border-radius:10px;font-size:13px}.alert-ok{color:var(--success);background:color-mix(in srgb,var(--success) 8%,transparent);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.alert-err{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.alert-info{color:var(--info);background:color-mix(in srgb,var(--info) 8%,transparent);border-color:color-mix(in srgb,var(--info) 30%,transparent)}
.stat-box{min-width:130px;flex:1;padding:14px 16px;text-align:center;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:12px}.stat-box .k{color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.stat-box .v{margin-top:4px;font:700 20px 'Inter',sans-serif}.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;color:var(--text-secondary)}.pager-meta{font-size:12px}.backlink{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;color:var(--text-secondary);font-size:12px}.backlink:hover{color:var(--accent-hover)}
.tabs{display:flex;gap:4px;margin-bottom:18px;padding:4px;overflow:auto;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-subtle)}.tabs a{min-height:38px;padding:9px 13px;display:flex;align-items:center;border-radius:8px;color:var(--text-secondary);font-size:12px;font-weight:700;white-space:nowrap}.tabs a:hover{color:var(--text-primary);background:var(--bg-elevated)}
.identity{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.identity-main{display:flex;align-items:center;gap:15px}.identity-avatar{width:54px;height:54px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:15px;background:var(--bg-elevated);color:var(--accent-hover);font-size:19px;font-weight:800}.identity .balance{text-align:right}.identity-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:13px}.identity-meta span{color:var(--text-secondary);font-size:11px}.identity-meta b{display:block;color:var(--text-primary);font-size:12px}.danger-zone{border-color:color-mix(in srgb,var(--danger) 26%,transparent)}.config-preview{max-height:290px;margin:0;overflow:auto;white-space:pre-wrap;color:var(--text-secondary);font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.config-list{display:grid;gap:10px}.config-row{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--border-subtle)}.config-row:last-child{border-bottom:0}.config-row dt{color:var(--text-secondary)}.config-row dd{margin:0;text-align:right;font-weight:650;overflow-wrap:anywhere}
.audit-details summary{cursor:pointer;color:var(--info);font-size:11px}.audit-details pre{max-width:480px;margin:8px 0 0;padding:9px;overflow:auto;border-radius:8px;background:var(--bg-subtle);color:var(--text-secondary);font:11px/1.5 ui-monospace,monospace}

/* Cabinet-specific content */
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.account-card{padding:16px;display:flex;align-items:center;gap:13px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-elevated)}.account-card .account-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--accent-soft);color:var(--accent-hover)}.account-card .account-icon svg{width:18px}.account-card .account-main{min-width:0;flex:1}.account-card strong{display:block;overflow:hidden;text-overflow:ellipsis}.account-card small{color:var(--text-muted)}
.create-account-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--border-subtle)}.referral-field{margin-top:17px}.compact-metrics,.boss-summary{margin-bottom:18px}.wallet-hero{margin-bottom:18px}.finance-grid{margin-bottom:18px}.amount-chips{margin:-3px 0 17px}.payment-methods{margin:0 0 17px;padding:0;border:0}.payment-methods legend{padding:0;margin-bottom:7px}.section-table-head{min-height:72px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border-subtle)}.section-table-head h2{font-size:16px}.history-grid,.sensitive-actions,.security-grid{margin-top:18px}.history-grid .card{margin-top:0}.boss-card{margin-top:18px}.boss-id{display:block;font-size:10px}.check-label{min-height:40px;display:inline-flex;align-items:center;gap:9px;color:var(--text-secondary);cursor:pointer}.notification-settings{padding:17px 20px;border-top:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-subtle) 50%,transparent)}.notification-settings .field{max-width:360px;margin:0}.notification-settings input{max-width:110px}.notification-settings .helper{margin-bottom:0}.attention-card{border-color:color-mix(in srgb,var(--warning) 30%,transparent)}.security-form,.danger-disclosure{margin-top:16px}.setup-steps{padding-left:20px;color:var(--text-secondary);font-size:12px}.telegram-card,.security-events{margin-top:18px}.telegram-link{margin-top:14px}.session-agent{max-width:330px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-subtext{display:block;margin-top:2px;color:var(--text-muted);font-size:10px}.role-label{text-transform:capitalize}.custom-period{display:flex;align-items:flex-end;gap:10px;margin-bottom:18px;padding:12px 16px}.custom-period .field{max-width:170px;margin:0}.custom-period .label{margin-left:auto}.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-quick{margin-top:18px}.custom-range{margin:-6px 0 18px;color:var(--text-secondary)}.custom-range>summary,.raw-settings>summary{width:max-content;padding:7px 0;cursor:pointer;color:var(--info);font-size:11px;font-weight:700}.custom-range .custom-period{margin:7px 0 0}.audit-filter{flex-wrap:wrap}.audit-filter .field{flex:1}.settings-note{margin:17px 0 0}.raw-settings{margin-top:18px}.raw-settings .config-preview{margin-top:8px}.role-cards{margin-bottom:18px}.access-note{margin-top:18px}.permission-grid label span{min-width:0}.permission-grid label strong{display:block;color:var(--text-primary);font-size:11px}.permission-grid label small{display:block;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted);font-size:9px}.auth-switch{text-align:center;margin:14px 0 0;color:var(--text-secondary);font-size:12px}.auth-secondary{margin-top:9px}
.pmgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.pm{min-height:48px;padding:13px;text-align:center;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;font-weight:700;cursor:pointer}.pm:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover)}
.chat-shell{padding:0}.chat-head{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle)}.chatlog{min-height:260px;max-height:520px;padding:22px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;background:color-mix(in srgb,var(--bg-subtle) 54%,transparent)}.msg{max-width:min(76%,620px);padding:10px 13px;border:1px solid var(--border-strong);border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.msg-user{align-self:flex-end;background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent);border-bottom-right-radius:4px}.msg-op{align-self:flex-start;background:var(--bg-elevated);border-bottom-left-radius:4px}.msg-meta{display:block;margin-top:5px;color:var(--text-muted);font-size:9px}.chat-compose{padding:16px 20px;display:flex;align-items:flex-end;gap:10px;border-top:1px solid var(--border-subtle)}.chat-compose .field{flex:1;margin:0}.chat-compose textarea{min-height:46px;max-height:150px}
.session-reauth{margin:14px 0}.session-row-form{min-width:230px;margin-top:8px;display:grid;gap:8px}.session-row-form input{min-width:0}.qr-wrap{width:max-content;max-width:100%;margin:14px auto;padding:9px;border-radius:14px;background:#fff}.qr-wrap img{display:block;max-width:100%;height:auto}.recovery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.recovery-code{padding:9px;text-align:center;border:1px dashed var(--border-strong);border-radius:8px;background:var(--bg-subtle);font:700 12px ui-monospace,monospace;color:var(--accent-hover)}

/* Authentication */
.auth{min-height:100vh;padding:34px 20px;display:flex;align-items:center;justify-content:center}.auth::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(760px 520px at 50% 28%,var(--accent-soft),transparent 66%)}.auth-card{width:100%;max-width:420px}.auth-card>.brand{justify-content:center;padding-bottom:24px}.auth-card>h1{text-align:center;font-size:27px}.auth-card>p{text-align:center}.auth-form{padding:25px}.cabinet-auth-heading,.admin-auth-heading{margin-bottom:20px;text-align:center}.cabinet-auth-heading h1,.admin-auth-heading h1{font-size:28px}.cabinet-auth-heading p,.admin-auth-heading p{max-width:340px;margin:7px auto 0;color:var(--text-secondary);font-size:13px}.admin-auth-card{max-width:450px}.admin-access-label{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:18px;color:var(--text-muted);font-size:9px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.admin-access-label span{width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--accent))}.admin-auth-note{display:flex;align-items:flex-start;gap:9px;margin-top:15px;padding:0 8px;color:var(--text-muted);font-size:11px}.admin-auth-note svg{width:15px;flex:0 0 auto;color:var(--accent)}

/* Admin is denser and calmer, while sharing the same primitives. */
.admin-body,.admin-auth-body{--bg-base:#06090d;--bg-subtle:#090e14;--bg-surface:#0e151d;--bg-elevated:#131d27;--bg-hover:#192633;--border-subtle:rgba(158,200,229,.09);--border-strong:rgba(158,200,229,.16);--text-primary:#edf4f8;--text-secondary:#96a8b6;--text-muted:#627888;--accent:#78adcc;--accent-hover:#b8d9ec;--accent-soft:rgba(120,173,204,.13);--success:#69d3a0;--danger:#f07178;--warning:#dfb66c;--info:#85bfe2;--focus:0 0 0 3px rgba(120,173,204,.22)}
html[data-color-mode="light"] .admin-body,html[data-color-mode="light"] .admin-auth-body{--bg-base:#edf2f5;--bg-subtle:#e4ebef;--bg-surface:#f8fafb;--bg-elevated:#fff;--bg-hover:#eaf1f5;--border-subtle:rgba(29,60,80,.10);--border-strong:rgba(29,60,80,.18);--text-primary:#12202a;--text-secondary:#536978;--text-muted:#788d9a;--accent:#326f94;--accent-hover:#1f5576;--accent-soft:rgba(50,111,148,.11);--success:#27845a;--danger:#bc424b;--warning:#96671e;--info:#236f98;--focus:0 0 0 3px rgba(50,111,148,.18)}
.admin-body::before,.admin-auth-body::before{background:linear-gradient(rgba(126,174,205,.024) 1px,transparent 1px),linear-gradient(90deg,rgba(126,174,205,.024) 1px,transparent 1px),radial-gradient(920px 620px at 88% -10%,rgba(91,151,190,.15),transparent 62%),linear-gradient(180deg,var(--bg-base),color-mix(in srgb,var(--bg-base) 90%,#000));background-size:48px 48px,48px 48px,auto,auto}.admin-shell .sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-subtle) 98%,transparent),color-mix(in srgb,var(--bg-base) 98%,transparent))}.admin-brand .em{width:32px;height:32px}.admin-brand .bt{font-family:'Inter',sans-serif;font-size:15px;letter-spacing:.018em;text-transform:uppercase}.admin-brand small{letter-spacing:.2em}.admin-environment{display:flex;align-items:center;gap:8px;margin:0 8px 17px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--success) 18%,transparent);border-radius:8px;background:color-mix(in srgb,var(--success) 5%,transparent);color:color-mix(in srgb,var(--success) 70%,var(--text-secondary));font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.admin-environment span{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 8px color-mix(in srgb,var(--success) 70%,transparent)}.admin-shell .nav a{border-radius:8px}.admin-shell .card::before{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 38%,transparent),transparent)}.admin-shell .metric-card .metric-num{font-family:'Inter',sans-serif}.admin-side-foot svg{width:17px;color:var(--accent);flex:0 0 auto}.admin-side-foot{color:var(--text-secondary)}
.period-nav{display:flex;align-items:center;gap:4px;overflow:auto;padding:4px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-subtle)}.period-nav a{min-height:34px;padding:7px 10px;border-radius:7px;color:var(--text-secondary);font-size:11px;font-weight:700;white-space:nowrap}.period-nav a:hover,.period-nav a.active{color:var(--text-primary);background:var(--bg-elevated)}

/* CMS, commerce, warehouse and support operations */
.table-wrap{width:100%;overflow:auto}.table-wrap table{width:100%;border-collapse:separate;border-spacing:0}.table-wrap th{padding:11px 13px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}.table-wrap td{padding:13px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.table-wrap tbody tr:last-child td{border-bottom:0}.filter-bar{margin-bottom:18px}.filter-bar .field{margin:0;min-width:190px}.store-grid,.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.product-card,.news-card{display:flex;flex-direction:column;gap:12px}.product-card img,.news-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.product-card h2,.news-card h2{font-size:18px}.product-card p,.news-card p{flex:1}.product-meta{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-top:1px solid var(--border-subtle)}.promo-card,.upload-panel{margin-top:18px}.promo-card{display:flex;align-items:center;justify-content:space-between;gap:20px}.media-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:18px}.media-grid figure{margin:0;padding:8px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-subtle)}.media-grid img{width:100%;aspect-ratio:1;display:block;object-fit:cover;border-radius:7px}.media-grid figcaption{margin-top:7px;overflow:hidden;font-size:10px;text-overflow:ellipsis}.media-grid small{display:block;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.editor-form{display:grid;gap:15px}.editor-form .field{margin:0}.code-editor{min-height:360px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.create-panel{margin-bottom:18px}.create-panel>summary{cursor:pointer;font-weight:750}.create-panel[open]>summary{margin-bottom:18px}.msg-note{align-self:stretch;max-width:100%;border-style:dashed;background:color-mix(in srgb,var(--warning) 7%,transparent)}.admin-chatlog{min-height:420px}.public-news{width:min(1160px,calc(100% - 32px));margin:0 auto;padding:28px 0 60px}.public-news>.brand{width:max-content}.article-page{width:min(900px,calc(100% - 32px))}.article-card{margin-bottom:18px;padding:28px}.article-card h1{font-size:34px;margin:10px 0}.article-cover{width:100%;max-height:440px;object-fit:cover;border-radius:12px;margin-bottom:20px}.article-lead{font-size:17px;color:var(--text-secondary)}.rich-content{font-size:15px;line-height:1.75}.rich-content img{max-width:100%;height:auto;border-radius:10px}.rich-content a,.text-link{color:var(--accent-hover)}.text-link{display:inline-flex;gap:7px;align-items:center;font-weight:700}.text-link svg{width:15px}

@media (max-width:1180px){.metric-grid,.admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding-left:26px;padding-right:26px}}
@media (max-width:1024px){
  .sidebar{position:fixed;left:calc(var(--sidebar) * -1 - 12px);top:0;transition:left .2s ease;box-shadow:18px 0 55px -35px #000}.sidebar.open{left:0}.sidebar-mobile-head{display:flex}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:var(--z-backdrop);border:0;background:rgba(0,0,0,.58);opacity:0;pointer-events:none;transition:opacity .2s}.nav-open .sidebar-backdrop{opacity:1;pointer-events:auto}.nav-open{overflow:hidden}.burger{display:inline-flex}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:780px){
  :root{--topbar:62px}.content{padding:22px 18px 42px}.topbar{padding:0 16px}.topbar-login,.topbar-context span{display:none}.page-heading{align-items:stretch;flex-direction:column;gap:14px}.page-actions{width:100%}.page-actions>.btn{flex:1}.page-title{font-size:24px}.g2,.g3,.quick-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{grid-template-columns:1fr}.filterbar{align-items:stretch;flex-direction:column}.filterbar .field,.filterbar .grow,.filterbar .date-field{min-width:0}.form-grid{grid-template-columns:1fr}.identity{align-items:flex-start;flex-direction:column}.identity .balance{text-align:left}.recovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.security-callout{flex-wrap:wrap}.security-callout .btn{width:100%;margin-left:34px}
  .responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.responsive-table tr{padding:10px 0;border-bottom:1px solid var(--border-subtle)}.responsive-table tr:last-child{border-bottom:0}.responsive-table td{min-height:38px;padding:7px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:0;text-align:right}.responsive-table td::before{content:attr(data-label);color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-align:left}.responsive-table td[colspan]::before{display:none}.responsive-table td[colspan]{justify-content:center}.responsive-table tbody tr:hover td{background:transparent}
  .chatlog{padding:16px}.msg{max-width:88%}.chat-compose{align-items:stretch;flex-direction:column}.chat-compose .btn{width:100%}.custom-period{align-items:stretch;flex-wrap:wrap}.custom-period .label{width:100%;margin-left:0}.audit-filter .field{flex:auto}.section-table-head{align-items:flex-start}.account-card{flex-wrap:wrap}
	.store-grid,.news-grid{grid-template-columns:1fr}.promo-card{align-items:stretch;flex-direction:column}.media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.article-card{padding:18px}.article-card h1{font-size:26px}
}
@media (max-width:480px){
  .content{padding:18px 13px 36px}.topbar{gap:7px;padding:0 11px}.topbar-context strong{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .logout-form .btn{width:40px;padding:0;font-size:0}.topbar .logout-form .btn::after{content:"↗";font-size:16px}.density-toggle{display:none}.card{padding:17px;border-radius:14px}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{min-height:108px;padding:14px}.metric-card .metric-num{font-size:24px}.inline{align-items:stretch;flex-direction:column}.inline>input,.inline>select,.inline>.btn{width:100%;min-width:0}.pmgrid{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.pager{flex-wrap:wrap}.pager-meta{width:100%;order:-1;text-align:center}.balance .amt{font-size:26px}.identity-main{align-items:flex-start}.identity-avatar{width:46px;height:46px}.tabs{margin-left:-4px;margin-right:-4px}.security-callout .btn{margin-left:0}
}
@media (max-width:390px){
  .content{padding-left:10px;padding-right:10px}.topbar{padding-left:8px;padding-right:8px}.card{padding:15px}.page-title{font-size:22px}.metric-card{padding:12px}.tabs{gap:4px}.tabs a{padding-left:9px;padding-right:9px}.msg{max-width:94%}
}
@media (max-width:360px){
  .topbar-context{display:none}.metric-grid{grid-template-columns:1fr}.page-actions{flex-direction:column}.page-actions>.btn{width:100%}.recovery-grid{grid-template-columns:1fr}.ticket-list-item{padding-left:11px;padding-right:11px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Keyboard/WCAG and multi-ticket support */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--accent-hover);outline-offset:3px;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 24%,transparent)}
.skip-link{position:fixed;left:16px;top:12px;z-index:var(--z-max);padding:11px 15px;transform:translateY(-160%);border-radius:8px;background:var(--text-primary);color:var(--bg-base);font-weight:800}.skip-link:focus{transform:translateY(0)}
.support-workspace{grid-template-columns:minmax(270px,340px) minmax(0,1fr);align-items:start}.ticket-sidebar{padding:0;overflow:hidden}.ticket-list{display:grid;max-height:520px;overflow:auto}.ticket-list-item{min-height:68px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.ticket-list-item:hover,.ticket-list-item.active{background:var(--bg-elevated);color:var(--text-primary)}.ticket-list-item.active{box-shadow:inset 3px 0 var(--accent)}.ticket-list-item>span:first-child{min-width:0}.ticket-list-item strong,.ticket-list-item small{display:block}.ticket-list-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-list-item small{margin-top:5px;color:var(--text-muted);font-size:10px}.ticket-list-item>span:last-child{display:flex;align-items:center;gap:6px}.unread-count{min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--danger);color:#fff;font-size:10px}.new-ticket{padding:14px}.new-ticket>summary{list-style:none}.new-ticket>form{margin-top:14px}.ticket-head-actions{display:flex;align-items:center;gap:9px}.ticket-head-actions form{margin:0}.attachment-picker{margin-top:9px}.attachment-link{margin-top:9px;padding:8px 10px;display:flex;align-items:center;gap:7px;border:1px solid var(--border-strong);border-radius:8px;color:var(--accent-hover);background:var(--bg-subtle)}.attachment-link svg{width:16px}.chat-compose input[type=file]{min-height:0;padding:8px;font-size:12px}
@media (max-width:1024px){.support-workspace{grid-template-columns:1fr}.ticket-list{max-height:300px}}
@media (max-width:480px){.ticket-head-actions{align-items:flex-end;flex-direction:column}.chat-head{align-items:flex-start}}

/* Shared accessible confirmation flow; admin.css supplies the console variant. */
body.dialog-open{overflow:hidden}
.confirm-dialog{position:fixed;inset:0;z-index:var(--z-modal);padding:18px;display:grid;grid-template-columns:minmax(0,1fr);place-items:center}
.confirm-dialog[hidden]{display:none}
.dialog-backdrop{position:absolute;inset:0;border:0;background:rgba(2,4,7,.72);backdrop-filter:blur(4px)}
.confirm-panel{width:min(470px,100%);min-width:0;max-width:100%;box-sizing:border-box;max-height:calc(100dvh - 36px);overflow-y:auto;position:relative;padding:22px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-lg)}
.confirm-panel>div{min-width:0}.confirm-panel p,.confirm-panel h2{overflow-wrap:anywhere}.confirm-panel .btn{min-width:0;white-space:normal}
.cabinet-body .confirm-panel{--confirm-danger-bg:#9f2635;--confirm-danger-hover:#861b28;--confirm-primary-bg:#76551f;--confirm-primary-hover:#5e4317}
.cabinet-body .confirm-panel .btn-primary{color:#fff;background:var(--confirm-primary-bg);border-color:var(--confirm-primary-bg)}
.cabinet-body .confirm-panel .btn-primary:hover{color:#fff;background:var(--confirm-primary-hover);border-color:var(--confirm-primary-hover)}
.cabinet-body .confirm-panel .btn-danger{color:#fff;background:var(--confirm-danger-bg);border-color:var(--confirm-danger-bg)}
.cabinet-body .confirm-panel .btn-danger:hover{color:#fff;background:var(--confirm-danger-hover);border-color:var(--confirm-danger-hover)}
.confirm-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}
.confirm-icon svg{width:19px}.confirm-panel h2{font-size:17px}.confirm-panel p{margin:7px 0 0;color:var(--text-secondary);font-size:12px}.confirm-actions{grid-column:1/3;margin-top:8px;display:flex;justify-content:flex-end;gap:9px}
.alert{position:relative;padding-right:40px}.alert-close{position:absolute;right:7px;top:7px;width:26px;height:26px;border:0;border-radius:6px;background:transparent;color:currentColor;font-size:18px;cursor:pointer}.alert-close:hover{background:color-mix(in srgb,currentColor 9%,transparent)}
.toast-region{position:fixed;right:18px;bottom:18px;z-index:var(--z-toast);display:grid;gap:8px}
@media (max-width:480px){.confirm-panel{padding:18px}.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{width:100%}}

/* Theme switcher — segmented control (System · Light · Dark), shared topbar */
.theme-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border-subtle);border-radius:9px;background:var(--bg-subtle)}
.theme-opt{width:30px;height:28px;min-height:0;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease}
.theme-opt svg{width:16px;height:16px}
.theme-opt:hover{color:var(--text-primary)}
.theme-opt:active{transform:scale(.93)}
.theme-opt.is-active{background:var(--bg-elevated);color:var(--accent-hover);box-shadow:0 1px 0 var(--border-strong),inset 0 0 0 1px color-mix(in srgb,var(--accent) 26%,transparent)}
@media (max-width:480px){.theme-switch .theme-opt[data-theme-set="system"]{display:none}}

/* Inventory item cell — icon + name/#id (icons served from /assets/items/{item_id}.png) */
.item-cell{display:flex;align-items:center;gap:10px;min-width:0}
.item-ico{width:38px;height:38px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:8px;background:color-mix(in srgb,var(--text-muted) 12%,transparent);border:1px solid var(--border-subtle);overflow:hidden}
.item-ico img{width:100%;height:100%;object-fit:contain;display:block}
.item-ico.is-broken img{display:none}
.item-ico.is-broken::after{content:"";width:15px;height:15px;border-radius:4px;border:2px solid color-mix(in srgb,var(--text-muted) 45%,transparent)}
.item-label{display:flex;flex-direction:column;min-width:0}
.item-label b{font-weight:650;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item-label small{color:var(--text-muted);font-size:10px;font-variant-numeric:tabular-nums}
/* >>> premium.css */
/* ============================================================
   CABINET REDESIGN — Phase 1: Foundation (Modern Premium Fantasy Gaming UI)
   Scoped to .cabinet-body so the admin console is untouched. TZ §3-7,21-23,37.
   ============================================================ */
.cabinet-body .content{max-width:1520px;padding:30px 40px 72px;margin:0 auto}
@media (max-width:1400px){.cabinet-body .content{padding:26px 30px 56px}}
/* atmospheric premium background */
.cabinet-body::before{background:radial-gradient(1200px 680px at 82% -12%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),radial-gradient(900px 720px at -10% 112%,color-mix(in srgb,var(--info) 9%,transparent),transparent 62%),linear-gradient(180deg,var(--bg-base),color-mix(in srgb,var(--bg-base) 82%,#000))}
/* sidebar premium */
.cabinet-body .sidebar{padding:20px 16px}
.cabinet-body .brand .bt{font-size:19px;letter-spacing:.03em}
.cabinet-body .srv-select{padding:13px 14px;border-radius:14px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 11%,var(--bg-surface)),var(--bg-surface));border-color:color-mix(in srgb,var(--accent) 30%,var(--border-strong));box-shadow:0 12px 30px -18px color-mix(in srgb,var(--accent) 65%,transparent),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent)}
.cabinet-body .srv-select>svg{color:var(--accent-hover)}
/* glowing gold active nav */
.cabinet-body .nav a{min-height:44px;border-radius:12px;font-size:13.5px;font-weight:600}
.cabinet-body .nav a:hover{background:color-mix(in srgb,#fff 5%,transparent);transform:translateX(2px)}
.cabinet-body .nav a.active{color:var(--accent-hover);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 18%,transparent),transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent),0 8px 22px -14px color-mix(in srgb,var(--accent) 75%,transparent)}
.cabinet-body .nav a.active::before{width:3px;box-shadow:0 0 16px color-mix(in srgb,var(--accent) 85%,transparent)}
.cabinet-body .nav a.active svg{color:var(--accent-hover);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 55%,transparent))}
/* premium cards */
.cabinet-body .card{border-radius:14px;box-shadow:0 8px 24px -14px rgba(0,0,0,.45);transition:transform .16s cubic-bezier(.2,0,0,1),border-color .16s ease,box-shadow .16s ease}
/* P2-UI-02: обычные информационные карточки НЕ прыгают на hover — только интерактивные
   (product/inv/boss/action-card имеют свои :hover-правила ниже). Здесь — тихий border. */
.cabinet-body .card:hover{border-color:var(--border-strong)}
.cabinet-body a.card:hover,.cabinet-body .card.is-interactive:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 22%,var(--border-subtle))}
/* gold-gradient primary buttons */
.cabinet-body .btn{min-height:44px;border-radius:12px;font-weight:700;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}
.cabinet-body .btn-sm{min-height:36px;border-radius:10px}
.cabinet-body .btn-primary{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06;box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 45%,transparent),0 12px 26px -14px color-mix(in srgb,var(--accent) 90%,transparent)}
.cabinet-body .btn-primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 0 color-mix(in srgb,#fff 50%,transparent),0 16px 32px -12px color-mix(in srgb,var(--accent) 95%,transparent)}
.cabinet-body .btn-ghost{background:color-mix(in srgb,#fff 6%,transparent);border-color:var(--border-strong)}
.cabinet-body .btn-ghost:hover{background:color-mix(in srgb,#fff 10%,transparent);transform:translateY(-1px)}
/* premium inputs */
.cabinet-body input,.cabinet-body select,.cabinet-body textarea{min-height:46px;border-radius:12px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
.cabinet-body input:focus,.cabinet-body select:focus,.cabinet-body textarea:focus{box-shadow:0 0 0 3px var(--accent-soft)}
.cabinet-body .page-title{font-size:30px;letter-spacing:-.02em}
}

@layer pages {
/* >>> pages/store.css */
/* CABINET — Store (TZ §12, §38): premium product grid, categories, states */
.cabinet-body .store-balance{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border-strong));border-radius:12px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 12%,var(--bg-surface)),var(--bg-surface))}
.cabinet-body .store-balance svg{width:20px;height:20px;color:var(--accent-hover);flex:0 0 auto}
.cabinet-body .store-balance small{display:block;color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.cabinet-body .store-balance b{font-size:15px;font-weight:750;white-space:nowrap}
.cabinet-body .store-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 20px}
.cabinet-body .store-tab{min-height:38px;padding:8px 16px;border:1px solid var(--border-subtle);border-radius:999px;background:color-mix(in srgb,#fff 4%,transparent);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s}
.cabinet-body .store-tab:hover{color:var(--text-primary);border-color:var(--border-strong)}
.cabinet-body .store-tab.is-active{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06;border-color:transparent;box-shadow:0 8px 20px -12px color-mix(in srgb,var(--accent) 80%,transparent)}
.cabinet-body .store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:24px}
.cabinet-body .product-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.cabinet-body .product-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--bg-elevated)),var(--bg-elevated))}
.cabinet-body .product-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.cabinet-body .product-card:hover .product-media img{transform:scale(1.05)}
.cabinet-body .product-media-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--accent) 40%,transparent)}
.cabinet-body .product-media-ph svg{width:44px;height:44px}
.cabinet-body .product-badge{position:absolute;top:12px;left:12px;padding:4px 10px;border-radius:8px;background:color-mix(in srgb,#000 55%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--accent-hover);font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.cabinet-body .product-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1;gap:8px}
.cabinet-body .product-name{font-size:16px;font-weight:700;margin:0}
.cabinet-body .product-desc{color:var(--text-secondary);font-size:12.5px;line-height:1.5;margin:0}
.cabinet-body .product-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 0 6px;border-top:1px solid var(--border-subtle);margin-top:auto}
.cabinet-body .product-price{font-size:20px;font-weight:800;letter-spacing:-.02em}
.cabinet-body .product-price em{font-style:normal;font-size:12px;font-weight:600;color:var(--text-muted)}
.cabinet-body .product-qty{font-size:13px;font-weight:650;color:var(--accent-hover)}
.cabinet-body .product-buy{margin:0;display:flex;flex-direction:column;gap:10px}
.cabinet-body .product-buy .field{margin:0}
.cabinet-body .product-buy .btn svg{width:17px;height:17px}
.cabinet-body .product-buy-xsolla{margin-top:.55rem}
.cabinet-body .xsolla-price-note{display:block;margin:.35rem 0 0;color:var(--text-muted);font-size:.72rem;text-align:center}
.cabinet-body .product-nochar{color:var(--accent-hover);font-size:11.5px;font-weight:600;text-align:center;text-decoration:none}
.cabinet-body .promo-card{background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 8%,var(--bg-surface)),var(--bg-surface))}
.cabinet-body .empty-state{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:44px 24px;text-align:center;color:var(--text-secondary)}
.cabinet-body .empty-state svg{width:34px;height:34px;color:color-mix(in srgb,var(--accent) 45%,transparent)}
.cabinet-body .empty-state strong{font-size:15px}
@media (max-width:560px){.cabinet-body .store-grid{grid-template-columns:1fr}}

/* ================= STOREFRONT v2 (appended) ================= */
.cabinet-body .store-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(60% 40% at 15% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%),
  radial-gradient(50% 45% at 100% 10%,color-mix(in srgb,#6b46ff 9%,transparent),transparent 72%),
  radial-gradient(40% 50% at 50% 100%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 70%)}
.cabinet-body .content>*{position:relative;z-index:1}

/* ---- Hero ---- */
.cabinet-body .store-hero{--hero-accent:var(--accent);position:relative;display:grid;grid-template-columns:1.35fr .9fr;gap:24px;align-items:center;overflow:hidden;min-height:300px;margin:6px 0 22px;padding:34px 38px;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%)}
.cabinet-body .hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:560px}
.cabinet-body .hero-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;background:color-mix(in srgb,var(--hero-accent) 22%,#000);color:var(--accent-hover);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1px solid color-mix(in srgb,var(--hero-accent) 40%,transparent)}
.cabinet-body .hero-title{margin:0;font-size:clamp(26px,3.4vw,40px);line-height:1.05;font-weight:850;letter-spacing:-.02em}
.cabinet-body .hero-sub{margin:0;font-size:clamp(15px,1.6vw,19px);font-weight:700;color:var(--accent-hover)}
.cabinet-body .hero-desc{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.55}
.cabinet-body .btn.btn-lg{min-height:50px;padding:0 26px;font-size:15px;border-radius:var(--radius-lg)}
.cabinet-body .hero-cta{margin-top:6px;box-shadow:0 14px 34px -14px color-mix(in srgb,var(--hero-accent) 90%,transparent)}
.cabinet-body .hero-cta svg{width:18px;height:18px}
.cabinet-body .hero-art{position:relative;z-index:1;align-self:stretch;display:flex;align-items:center;justify-content:center;min-height:180px}
.cabinet-body .hero-art img{max-width:100%;max-height:280px;object-fit:contain;filter:drop-shadow(0 24px 40px color-mix(in srgb,var(--hero-accent) 45%,transparent))}
.cabinet-body .hero-coin{display:flex;align-items:center;justify-content:center;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--hero-accent) 40%,transparent),transparent 70%)}
.cabinet-body .hero-coin svg{width:96px;height:96px;color:var(--accent-hover)}
.cabinet-body .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)}
.cabinet-body .hero-particles{position:absolute;inset:0;z-index:0;opacity:.28;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff5,transparent),radial-gradient(1.5px 1.5px at 70% 60%,#fff4,transparent),radial-gradient(1px 1px at 40% 80%,#fff5,transparent);background-size:200px 200px}
.cabinet-body .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 7%,transparent),transparent);pointer-events:none}
.cabinet-body .hero-anim-glow .hero-glow,.cabinet-body .hero-anim-floating .hero-particles{animation:heroGlow 5s ease-in-out infinite}
.cabinet-body .hero-anim-shimmer::after,.cabinet-body .hero-anim-sweep::after{animation:heroSweep 5.5s ease-in-out infinite}
.cabinet-body .hero-anim-zoom .hero-art img{animation:heroZoom 8s ease-in-out infinite}
.cabinet-body .hero-anim-floating .hero-particles{animation:heroFloat 7s linear infinite}
@keyframes heroGlow{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes heroSweep{0%{left:-60%}60%,100%{left:120%}}
@keyframes heroZoom{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes heroFloat{0%{background-position:0 0}100%{background-position:0 -180px}}

/* ---- Rails / sections ---- */
.cabinet-body .rail-head{display:flex;flex-direction:column;gap:2px;margin:26px 0 14px}
.cabinet-body .rail-head h2{display:flex;align-items:center;gap:9px;margin:0;font-size:20px;font-weight:800;letter-spacing:-.01em}
.cabinet-body .rail-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent-hover);flex:0 0 auto}
.cabinet-body .rail-ico svg{width:17px;height:17px}
.cabinet-body .product-get{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 0 0;font-size:12.5px}
.cabinet-body .get-label{color:var(--text-muted)}
.cabinet-body .get-val{color:var(--text-secondary);font-weight:700}
.cabinet-body .price-cap{flex:1 0 100%;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:-3px}
.cabinet-body .price-new i{font-style:normal;font-size:12px;font-weight:600;color:var(--text-muted);margin-left:1px}
.cabinet-body .rail-head p{margin:0;color:var(--text-muted);font-size:12.5px}
.cabinet-body .store-rail{position:relative}
.cabinet-body .rail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.cabinet-body .store-rails:empty{display:none}

/* ---- Product card v2 ---- */
.cabinet-body .product-card{--card-accent:var(--accent);position:relative;padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.cabinet-body .product-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--card-accent) 32%,var(--border-strong));box-shadow:0 18px 38px -24px color-mix(in srgb,#000 90%,transparent)}
.cabinet-body .product-card.is-out{opacity:.72}
.cabinet-body .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))}
.cabinet-body .product-media img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.cabinet-body .product-card:hover .product-media img{transform:scale(1.06)}
.cabinet-body .media-skel{position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,var(--bg-elevated) 30%,color-mix(in srgb,#fff 6%,var(--bg-elevated)) 50%,var(--bg-elevated) 70%);background-size:200% 100%;animation:skel 1.3s ease-in-out infinite}
@keyframes skel{0%{background-position:180% 0}100%{background-position:-40% 0}}
.cabinet-body .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)}
.cabinet-body .product-media-ph svg{width:44px;height:44px}
.cabinet-body .badge-stack{position:absolute;top:10px;left:10px;z-index:3;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.cabinet-body .pbadge{padding:4px 9px;border-radius:7px;font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:#fff;box-shadow:0 4px 12px -4px #000a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.cabinet-body .pbadge--sale{background:linear-gradient(180deg,#ff5b5b,#d92b2b)}
.cabinet-body .pbadge--hot{background:linear-gradient(180deg,#ff8a3d,#e8600f)}
.cabinet-body .pbadge--new{background:linear-gradient(180deg,#33c079,#199e5c)}
.cabinet-body .pbadge--limited{background:linear-gradient(180deg,#9b6bff,#6d3ce0)}
.cabinet-body .pbadge--best,.cabinet-body .pbadge--gold{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06}
.cabinet-body .pbadge--out{background:linear-gradient(180deg,#6b7280,#4b5563)}
.cabinet-body .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;letter-spacing:-.01em;box-shadow:0 6px 16px -6px #000b}
.cabinet-body .product-body{padding:15px 17px 17px;display:flex;flex-direction:column;flex:1;gap:9px}
.cabinet-body .product-name{font-size:16px;font-weight:750;margin:0;line-height:1.25}
.cabinet-body .product-desc{color:var(--text-secondary);font-size:12.5px;line-height:1.5;margin:0}
.cabinet-body .limited-box{display:flex;flex-direction:column;gap:7px;padding:10px 11px;border-radius:var(--radius-md);background:color-mix(in srgb,#9b6bff 8%,var(--bg-subtle));border:1px solid color-mix(in srgb,#9b6bff 22%,transparent)}
.cabinet-body .limited-stock{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--text-secondary)}
.cabinet-body .limited-stock b{color:var(--text-primary)}
.cabinet-body .limited-bar{display:block;height:6px;border-radius:999px;background:color-mix(in srgb,#fff 8%,transparent);overflow:hidden;position:relative}
.cabinet-body .limited-bar::before{content:"";position:absolute;inset:0;width:var(--w,50%);border-radius:999px;background:linear-gradient(90deg,#9b6bff,#c9a0ff)}
.cabinet-body .countdown{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:750;color:#c9a0ff;font-variant-numeric:tabular-nums}
.cabinet-body .countdown svg{width:14px;height:14px}
.cabinet-body .countdown.is-urgent{color:#ff8a3d}
.cabinet-body .countdown.is-ended{color:var(--text-muted)}
.cabinet-body .price-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;padding:9px 0 2px;border-top:1px solid var(--border-subtle);margin-top:auto}
.cabinet-body .price-old{font-size:13px;color:var(--text-muted);text-decoration:line-through;font-weight:600}
.cabinet-body .price-new{display:inline-flex;align-items:center;gap:5px;font-size:23px;font-weight:850;letter-spacing:-.02em;color:var(--text-primary)}
.cabinet-body .price-new em{font-style:normal}
.cabinet-body .price-new em svg{width:18px;height:18px;color:var(--accent-hover);vertical-align:-3px}
.cabinet-body .product-qty{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--accent-hover)}
.cabinet-body .price-save{font-size:11.5px;font-weight:700;color:var(--success)}
.cabinet-body .product-buy{margin:0;display:flex;flex-direction:column;gap:9px}
.cabinet-body .product-buy .field{margin:0}
.cabinet-body .buy-cta{transition:filter .15s ease,box-shadow .15s ease,transform .1s ease}
.cabinet-body .buy-cta svg{width:17px;height:17px}
.cabinet-body .product-buy.is-ready .buy-cta{box-shadow:0 12px 26px -12px color-mix(in srgb,var(--accent) 85%,transparent)}
.cabinet-body .buy-cta.is-out{cursor:not-allowed}
.cabinet-body .product-nochar{color:var(--accent-hover);font-size:11.5px;font-weight:600;text-align:center;text-decoration:none}

/* ---- Responsive ---- */
@media (max-width:900px){
  .cabinet-body .store-hero{grid-template-columns:1fr;min-height:0;padding:24px;text-align:center}
  .cabinet-body .hero-copy{align-items:center;max-width:none}
  .cabinet-body .hero-art{order:-1;min-height:130px}
  .cabinet-body .hero-art img{max-height:150px}
  .cabinet-body .hero-coin{width:110px;height:110px}
  .cabinet-body .rail-grid,.cabinet-body .store-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
}
@media (max-width:560px){
  .cabinet-body .rail-grid,.cabinet-body .store-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .cabinet-body .store-hero{padding:20px 16px}
  .cabinet-body .hero-title{font-size:23px}
  .cabinet-body .product-body{padding:12px 13px 14px}
  .cabinet-body .price-new{font-size:20px}
}
@media (prefers-reduced-motion:reduce){
  .cabinet-body .store-hero *,.cabinet-body .media-skel,.cabinet-body .product-card,.cabinet-body .product-media img{animation:none!important;transition:none!important}
  .cabinet-body .product-card:hover{transform:none}
}

/* ===== Store 2.0: глобальный получатель в шапке (§9) ===== */
.cabinet-body .store-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.cabinet-body .recipient-picker{display:flex;align-items:center;gap:10px;padding:5px 12px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border-strong));border-radius:12px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 11%,var(--bg-surface)),var(--bg-surface))}
.cabinet-body .recipient-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.cabinet-body .recipient-label svg{width:15px;height:15px;color:var(--accent-hover)}
.cabinet-body .recipient-picker .cs{min-width:200px}
.cabinet-body .recipient-picker .cs-trigger{min-height:42px;border:0;background:transparent;padding:4px 4px;box-shadow:none}
.cabinet-body .recipient-picker .cs.is-open .cs-trigger,.cabinet-body .recipient-picker .cs-trigger:focus-visible{box-shadow:none;border:0}
.cabinet-body a.recipient-empty{text-decoration:none;color:var(--accent-hover);font-weight:700;font-size:13px}
/* smart CTA: «Купить» — solid gold; «Выбрать/Пополнить/Создать» — gold-outline (промежуточный шаг) */
.cabinet-body .buy-cta.is-alt{background:transparent;color:var(--accent-hover);border:1px solid color-mix(in srgb,var(--accent) 48%,var(--border-strong));box-shadow:none}
.cabinet-body .buy-cta.is-alt:hover{background:var(--accent-soft);border-color:var(--accent)}
@media (max-width:560px){.cabinet-body .store-toolbar{justify-content:flex-start}.cabinet-body .recipient-picker{flex:1 1 100%}.cabinet-body .recipient-picker .cs{flex:1}}

/* ===== Store 2.0: success/insufficient + история заказов (BUY-04/07, §11) ===== */
.cabinet-body .history-stack{display:flex;flex-direction:column;gap:18px}
.cabinet-body .purchase-success{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--success) 42%,var(--border-strong));background:linear-gradient(120deg,color-mix(in srgb,var(--success) 10%,var(--bg-surface)),var(--bg-surface));margin-bottom:18px}
.cabinet-body .ps-icon{flex:0 0 auto;display:inline-flex;color:var(--success)}
.cabinet-body .ps-body{flex:1 1 320px;min-width:0}
.cabinet-body .ps-body h2{margin:2px 0 0;font-size:19px}
.cabinet-body .ps-id{color:var(--accent-hover)}
.cabinet-body .ps-meta{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:10px;color:var(--text-secondary);font-size:13px}
.cabinet-body .ps-meta b{color:var(--text-primary)}
.cabinet-body .ps-product{display:flex;align-items:center;gap:12px;margin:12px 0 2px}
.cabinet-body .ps-thumb{width:52px;height:52px;flex:0 0 auto;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--bg-elevated)),var(--bg-elevated));border:1px solid var(--border-subtle)}
.cabinet-body .ps-thumb img{width:100%;height:100%;object-fit:cover}
.cabinet-body .ps-thumb.is-broken img{display:none}
.cabinet-body .ps-thumb-ph svg{width:24px;height:24px;color:var(--accent);opacity:.6}
.cabinet-body .ps-product-txt{display:flex;flex-direction:column;min-width:0}
.cabinet-body .ps-product-txt b{font-size:15px}
.cabinet-body .ps-product-txt small{font-size:12px;color:var(--text-secondary)}
.cabinet-body .ps-row{display:inline-flex;flex-direction:column;gap:2px}
.cabinet-body .ps-row>small{font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted)}
.cabinet-body .ps-code{display:inline-flex;align-items:center;gap:5px}
.cabinet-body .ps-code code{font-family:var(--font-mono,ui-monospace,monospace);font-size:13px;color:var(--text-primary)}
.cabinet-body .purchase-insufficient{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--warning) 42%,var(--border-strong));background:color-mix(in srgb,var(--warning) 8%,var(--bg-surface));margin-bottom:18px}
.cabinet-body .pi-icon{color:var(--warning);display:inline-flex}
.cabinet-body .pi-icon svg{width:24px;height:24px}
.cabinet-body .purchase-insufficient>div{flex:1 1 300px;display:flex;flex-direction:column;gap:2px}
.cabinet-body .purchase-insufficient strong{font-size:15px}
.cabinet-body .purchase-insufficient span{color:var(--text-secondary);font-size:13px}
.cabinet-body .stx2{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}
.cabinet-body .stx2::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto}
.cabinet-body .stx2-delivered{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}
.cabinet-body .stx2-processing{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}
.cabinet-body .stx2-created{background:color-mix(in srgb,var(--info) 15%,transparent);color:var(--info)}
.cabinet-body .stx2-failed{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}
.cabinet-body .stx2-cancelled{background:var(--bg-subtle);color:var(--text-muted)}
.cabinet-body .stx2-refunded{background:color-mix(in srgb,#b992f4 16%,transparent);color:#c9a0ff}
.cabinet-body .order-list{display:flex;flex-direction:column}
.cabinet-body .order-head,.cabinet-body .order-row{display:grid;grid-template-columns:150px 1.7fr 1fr 130px 150px;gap:14px;align-items:center;padding:12px 6px}
.cabinet-body .order-head{color:var(--text-muted);font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border-subtle)}
.cabinet-body .order-row{border-bottom:1px solid var(--border-subtle);transition:background .12s}
.cabinet-body .order-row:last-child{border-bottom:0}
.cabinet-body .order-row:hover{background:color-mix(in srgb,var(--text-primary) 3%,transparent)}
.cabinet-body .order-row.is-extra{display:none}
.cabinet-body .order-list.is-expanded .order-row.is-extra{display:grid}
/* Заказ: короткий код + копирование + дата */
.cabinet-body .ol-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.cabinet-body .ol-code-line{display:inline-flex;align-items:center;gap:5px}
.cabinet-body .ol-code{font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;color:var(--text-secondary);background:color-mix(in srgb,var(--text-muted) 12%,transparent);padding:2px 7px;border-radius:6px}
.cabinet-body .copy-icon{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:12px;padding:2px;line-height:1;border-radius:5px}
.cabinet-body .copy-icon:hover{color:var(--accent)}
.cabinet-body .ol-date{font-size:11px;color:var(--text-muted)}
/* Товар: иконка + название + количество */
.cabinet-body .ol-prod{display:flex;align-items:center;gap:10px;min-width:0}
.cabinet-body .ol-thumb{width:42px;height:42px;flex:0 0 auto;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,var(--bg-elevated)),var(--bg-elevated));border:1px solid var(--border-subtle)}
.cabinet-body .ol-thumb img{width:100%;height:100%;object-fit:cover}
.cabinet-body .ol-thumb.is-broken img{display:none}
.cabinet-body .ol-thumb-ph svg{width:20px;height:20px;opacity:.5;color:var(--accent)}
.cabinet-body .ol-prod-txt{display:flex;flex-direction:column;min-width:0}
.cabinet-body .ol-prod-txt b{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cabinet-body .ol-prod-txt small{font-size:11px;color:var(--text-muted)}
.cabinet-body .ol-rcp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}
.cabinet-body .ol-sum b{font-weight:700}
.cabinet-body .ol-sum em{font-style:normal;font-size:11px;color:var(--text-muted);margin-left:2px}
.cabinet-body .ol-st{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cabinet-body .ol-help{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted);text-decoration:none;padding:3px 9px;border-radius:8px;border:1px solid transparent;transition:color .12s,background .12s}
.cabinet-body .ol-help svg{width:14px;height:14px}
.cabinet-body .ol-help:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.cabinet-body .ol-help.is-failed{color:var(--danger)}
.cabinet-body .ol-help.is-failed:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}
.cabinet-body .order-row [data-label]::before{display:none}
.cabinet-body .order-more-wrap{display:flex;justify-content:center;margin-top:14px}
.cabinet-body .sth-title{display:flex;align-items:center;gap:8px}
.cabinet-body .count-pill{font-size:11px;font-weight:700;color:var(--text-secondary);background:color-mix(in srgb,var(--text-muted) 14%,transparent);padding:2px 9px;border-radius:999px}
@media (max-width:720px){
  .cabinet-body .order-head{display:none}
  .cabinet-body .order-row{grid-template-columns:1fr 1fr;gap:10px 12px;padding:14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:10px}
  .cabinet-body .order-list.is-expanded .order-row.is-extra{display:grid}
  .cabinet-body .order-row .ol-id,.cabinet-body .order-row .ol-prod{grid-column:1/-1}
  .cabinet-body .order-row .ol-prod{font-size:14px}
  .cabinet-body .order-row [data-label]::before{display:block;content:attr(data-label);font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px}
}

/* ===== Store 2.0: resume-to-product баннер + подсветка карточки (BUY-07) ===== */
.cabinet-body .resume-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border-strong));border-radius:var(--radius-lg);background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 12%,var(--bg-surface)),var(--bg-surface));font-size:14px}
.cabinet-body .resume-banner span{color:var(--text-primary)}
.cabinet-body .product-card.is-resume{animation:resumeFlash 2.4s ease}
@keyframes resumeFlash{0%,100%{box-shadow:0 0 0 0 transparent}18%,62%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent),0 18px 42px -20px color-mix(in srgb,var(--accent) 70%,transparent)}}
@media (prefers-reduced-motion:reduce){.cabinet-body .product-card.is-resume{animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 50%,transparent)}}

/* ===== 360° product preview (preview-360) ===== */
.cabinet-body .p360-btn{position:absolute;right:10px;bottom:10px;z-index:3;display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--bg-base) 72%,transparent);backdrop-filter:blur(6px);color:var(--text-primary);font-size:12px;font-weight:800;letter-spacing:.02em;cursor:pointer;transition:background .15s,transform .15s,border-color .15s}
.cabinet-body .p360-btn::before{content:"";width:13px;height:13px;border-radius:50%;border:2px solid var(--accent);border-right-color:transparent;border-bottom-color:transparent;transform:rotate(-45deg)}
.cabinet-body .p360-btn:hover{background:var(--accent);color:#1a1408;border-color:var(--accent);transform:translateY(-1px)}
.cabinet-body .p360-btn:hover::before{border-color:#1a1408;border-right-color:transparent;border-bottom-color:transparent}
.cabinet-body .p360-overlay{position:fixed;inset:0;z-index:var(--z-overlay);display:grid;place-items:center;padding:20px;background:rgba(6,8,12,.82);backdrop-filter:blur(4px)}
.cabinet-body .p360-overlay[hidden]{display:none}
.cabinet-body .p360-modal{position:relative;width:min(560px,94vw);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:20px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cabinet-body .p360-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary);font-size:15px;cursor:pointer}
.cabinet-body .p360-close:hover{color:var(--text-primary);border-color:var(--border-strong)}
.cabinet-body .p360-title{font-size:15px;font-weight:800;color:var(--text-primary);margin:2px 40px 12px 4px}
.cabinet-body .p360-stage{position:relative;aspect-ratio:1/1;max-height:56vh;margin:0 auto;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--accent) 12%,var(--bg-base)),var(--bg-base));cursor:grab;display:grid;place-items:center;outline:none}
.cabinet-body .p360-stage.is-grabbing{cursor:grabbing}
.cabinet-body .p360-stage:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.cabinet-body .p360-img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}
.cabinet-body .p360-hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);padding:5px 12px;border-radius:999px;background:rgba(6,8,12,.6);color:#fff;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none;transition:opacity .3s;animation:p360nudge 1.8s ease-in-out infinite}
.cabinet-body .p360-hint.is-hidden{opacity:0}
@keyframes p360nudge{0%,100%{transform:translateX(-50%)}50%{transform:translateX(calc(-50% + 10px))}}
.cabinet-body .p360-track{margin:14px auto 2px;height:4px;width:70%;border-radius:999px;background:var(--bg-surface);overflow:hidden}
.cabinet-body .p360-track i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-hover));transition:width .05s linear}
@media (prefers-reduced-motion:reduce){.cabinet-body .p360-hint{animation:none}}

/* ===== Catalog sort + de-dup note (§4, §5) ===== */
.cabinet-body .rail-head.catalog-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cabinet-body .store-sort{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);white-space:nowrap}
.cabinet-body .store-sort select{padding:9px 34px 9px 12px;border-radius:11px;border:1px solid var(--border-strong);background:var(--bg-surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%23a0a6b0' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 12px center;color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;-webkit-appearance:none;appearance:none}
.cabinet-body .store-sort select:hover{border-color:var(--accent)}
.cabinet-body .store-sort select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cabinet-body .store-grid.is-allpromoted::after{content:"Все товары показаны выше в подборках.";display:block;grid-column:1/-1;padding:26px;text-align:center;color:var(--text-secondary);font-size:14px;border:1px dashed var(--border-strong);border-radius:16px}

/* ===== Catalog "load more" (§4/§29 lazy reveal) ===== */
.cabinet-body .store-more-wrap{display:flex;justify-content:center;margin-top:22px}
.cabinet-body .store-more-wrap [hidden]{display:none}
.cabinet-body .store-more{min-width:220px;font-weight:700}
.cabinet-body .store-more [data-more-count]{color:var(--text-secondary);font-weight:600}

/* ===== StatusDot (Dark Command Center §25): точка + текст вместо тяжёлых pill ===== */
.cabinet-body .sdot{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--text-secondary);white-space:nowrap}
.cabinet-body .sdot::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 16%,transparent)}
.cabinet-body .sdot-online,.cabinet-body .sdot-delivered,.cabinet-body .sdot-done,.cabinet-body .sdot-success,.cabinet-body .sdot-active{color:var(--success)}
.cabinet-body .sdot-processing,.cabinet-body .sdot-pending,.cabinet-body .sdot-queued,.cabinet-body .sdot-scheduled{color:var(--warning)}
.cabinet-body .sdot-failed,.cabinet-body .sdot-offline,.cabinet-body .sdot-error{color:var(--danger)}
.cabinet-body .sdot-neutral,.cabinet-body .sdot-hidden{color:var(--text-muted)}

/* ===== Store view-tabs (Phase 4 §17): Магазин / Покупки / Промокод ===== */
.cabinet-body .store-viewtabs{display:inline-flex;gap:4px;margin-bottom:18px;padding:4px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-subtle)}
.cabinet-body .store-viewtab{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:0;border-radius:9px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:650;cursor:pointer;transition:background .14s,color .14s}
.cabinet-body .store-viewtab svg{width:16px;height:16px}
.cabinet-body .store-viewtab:hover{color:var(--text-primary)}
.cabinet-body .store-viewtab.is-active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-strong)}
.cabinet-body .vt-count{min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent-soft);color:var(--accent-hover);font-size:10px;font-weight:700}
.cabinet-body [data-storeview-panel][hidden]{display:none}
@media (max-width:560px){.cabinet-body .store-viewtabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:100%}.cabinet-body .store-viewtab{min-width:0;min-height:44px;padding:9px 4px;gap:4px;justify-content:center;font-size:12px}.cabinet-body .store-viewtab svg{display:none}.cabinet-body .store-viewtab .vt-count{padding-inline:4px;font-size:10px}}
/* >>> pages/overview.css */
/* CABINET — Overview hero + metrics (TZ §9) */
.cabinet-body .cab-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;min-height:200px;max-height:320px;padding:28px 30px;margin-bottom:20px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border-subtle));border-radius:20px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 14%,var(--bg-surface)),var(--bg-elevated) 55%,var(--bg-surface));box-shadow:0 24px 60px -32px rgba(0,0,0,.8),inset 0 1px 0 0 color-mix(in srgb,#fff 6%,transparent)}
.cabinet-body .cab-hero::before{content:"";position:absolute;right:-40px;top:-70px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 26%,transparent),transparent 68%);pointer-events:none}
.cabinet-body .cab-hero-body{position:relative;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.cabinet-body .cab-hero-server{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:color-mix(in srgb,#000 25%,transparent);color:var(--text-secondary);font-size:11px;font-weight:650}
.cabinet-body .cab-hero-server .server-dot{width:7px;height:7px}
.cabinet-body .cab-hero-welcome{font-family:'Inter',system-ui,sans-serif;font-size:30px;font-weight:700;letter-spacing:-.015em;line-height:1.16;color:var(--text-primary)}
.cabinet-body .cab-hero-welcome b{color:var(--accent-hover)}
.cabinet-body .cab-hero-char{display:inline-flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:13px;font-weight:600}
.cabinet-body .cab-hero-char svg{width:16px;height:16px;color:var(--accent-hover)}
.cabinet-body .cab-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.cabinet-body .cab-hero-actions .btn svg{width:17px;height:17px}
.cabinet-body .cab-hero-balance{position:relative;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:20px 26px;border-radius:16px;background:color-mix(in srgb,#000 28%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);min-width:200px}
.cabinet-body .cab-hero-balance-label{color:var(--text-muted);font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
.cabinet-body .cab-hero-balance-num{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1.05;color:var(--accent-hover)}
.cabinet-body .cab-hero-balance-coin{color:var(--text-secondary);font-size:12px;font-weight:600}
.cabinet-body .metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.cabinet-body .metric-card{padding:18px 20px;border-radius:16px}
.cabinet-body .metric-card .metric-num{font-size:28px;font-weight:800}
@media (max-width:760px){.cabinet-body .cab-hero{grid-template-columns:1fr}.cabinet-body .cab-hero-balance{align-items:flex-start}}

/* ===== Overview page (Phase 4 §13): identity row, compact alert, characters ===== */
.btn-secondary{background:var(--bg-surface);border-color:var(--border-strong)}
.btn-secondary:hover{border-color:var(--accent);background:var(--bg-hover)}
.cabinet-body .ov-identity{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 22px;margin-bottom:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--bg-surface)),var(--bg-surface));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.cabinet-body .ov-avatar{width:54px;height:54px;flex:0 0 auto;display:grid;place-items:center;border-radius:14px;background:var(--bg-elevated);border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border-strong));color:var(--accent-hover);font-size:22px;font-weight:700}
.cabinet-body .ov-id-main{min-width:0;flex:1 1 200px}
.cabinet-body .ov-id-name{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}
.cabinet-body .ov-id-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px}
.cabinet-body .ov-chip{padding:3px 10px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border-subtle);font-size:12px;font-weight:600;color:var(--text-primary)}
.cabinet-body .ov-chip.is-muted{color:var(--text-secondary);font-weight:500}
.cabinet-body .ov-id-balance{display:flex;flex-direction:column;align-items:flex-end;padding:0 18px;border-left:1px solid var(--border-subtle)}
.cabinet-body .ov-bal-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.cabinet-body .ov-bal-num{font-size:26px;font-weight:700;color:var(--accent-hover);line-height:1.15}
.cabinet-body .ov-bal-coin{font-size:11px;color:var(--text-muted)}
.cabinet-body .ov-id-actions{display:flex;gap:9px;flex-wrap:wrap}
.cabinet-body .ov-alert{display:flex;align-items:center;gap:11px;padding:11px 16px;margin-bottom:16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--warning) 34%,transparent);background:color-mix(in srgb,var(--warning) 8%,var(--bg-surface));color:var(--text-secondary);font-size:13px;text-decoration:none;transition:background .14s}
.cabinet-body .ov-alert:hover{background:color-mix(in srgb,var(--warning) 13%,var(--bg-surface))}
.cabinet-body .ov-alert>svg{width:18px;color:var(--warning);flex:0 0 auto}
.cabinet-body .ov-alert b{color:var(--text-primary)}
.cabinet-body .ov-alert-cta{margin-left:auto;display:inline-flex;align-items:center;gap:3px;color:var(--warning);font-weight:700;white-space:nowrap}
.cabinet-body .ov-alert-cta svg{width:14px;height:14px}
.cabinet-body .ov-chars{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:4px}
.cabinet-body .ov-char{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-subtle)}
.cabinet-body .ov-char .char-avatar{width:42px;height:42px;font-size:17px;border-radius:11px}
.cabinet-body .ov-char-txt{min-width:0}
.cabinet-body .ov-char-txt b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cabinet-body .ov-char-txt .sdot{margin-top:2px;font-size:12px}
@media (max-width:720px){.cabinet-body .ov-identity{gap:12px}.cabinet-body .ov-id-balance{border-left:0;padding:0;align-items:flex-start;width:100%}.cabinet-body .ov-id-actions{width:100%}.cabinet-body .ov-id-actions>.btn{flex:1}}
/* >>> pages/characters.css */
/* CABINET — Characters game-cards (TZ §10) */
.cabinet-body .char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.cabinet-body .char-card{padding:20px;display:flex;flex-direction:column;gap:14px}
.cabinet-body .char-card.is-online{border-color:color-mix(in srgb,var(--success) 30%,var(--border-subtle))}
.cabinet-body .char-top{display:flex;align-items:center;gap:13px}
.cabinet-body .char-avatar{width:48px;height:48px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--bg-elevated);border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border-strong));color:var(--accent-hover);font-family:'Inter',sans-serif;font-size:19px;font-weight:700}
.cabinet-body .char-id{flex:1;min-width:0}
.cabinet-body .char-name{display:block;font-size:17px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cabinet-body .char-acc{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted);font-size:11px;font-weight:600}
.cabinet-body .char-acc svg{width:12px;height:12px}
.cabinet-body .char-status{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:750;letter-spacing:.04em;white-space:nowrap}
.cabinet-body .char-status i{width:6px;height:6px;border-radius:50%}
.cabinet-body .char-status.on{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}
.cabinet-body .char-status.on i{background:var(--success);box-shadow:0 0 8px var(--success)}
.cabinet-body .char-status.off{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 12%,transparent)}
.cabinet-body .char-status.off i{background:var(--text-muted)}
.cabinet-body .char-level{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,transparent)}
.cabinet-body .char-level span{color:var(--text-secondary);font-size:12px;font-weight:600}
.cabinet-body .char-level b{font-size:26px;font-weight:800;color:var(--accent-hover);letter-spacing:-.02em}
.cabinet-body .char-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cabinet-body .char-stats>div{padding:10px;border-radius:10px;background:color-mix(in srgb,#fff 3%,transparent);border:1px solid var(--border-subtle);text-align:center}
.cabinet-body .char-stats span{display:block;color:var(--text-muted);font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.cabinet-body .char-stats b{font-size:16px;font-weight:750}
.cabinet-body .char-actions{margin-top:auto}
.cabinet-body .char-unstuck-off{display:block;text-align:center;color:var(--text-muted);font-size:11px;padding:8px}
.cabinet-body .char-card .inline-confirm>summary{list-style:none}
.cabinet-body .char-card .inline-confirm>summary::-webkit-details-marker{display:none}
.cabinet-body .char-card .confirm-pop{position:static;margin-top:10px;padding:0;border:0;background:none;box-shadow:none;display:flex;flex-direction:column;gap:8px;width:auto}
@media (max-width:560px){.cabinet-body .char-grid{grid-template-columns:1fr}}

/* ===== Characters page (Phase 4 §14): toolbar, segmented view, chips ===== */
.cabinet-body .char-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.cabinet-body .char-count{font-size:13px;color:var(--text-secondary);display:inline-flex;align-items:center;gap:8px}
.seg{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-subtle)}
.seg-opt{min-height:32px;padding:5px 12px;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:7px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:background .14s,color .14s}
.seg-opt svg{width:15px;height:15px}
.seg-opt:hover{color:var(--text-primary)}
.seg-opt.is-active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-strong)}
.cabinet-body .char-chips{display:flex;gap:7px;flex-wrap:wrap}
.cabinet-body .char-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:8px;background:var(--bg-subtle);border:1px solid var(--border-subtle);font-size:11px;font-weight:600;color:var(--text-secondary)}
.cabinet-body .char-chip svg{width:13px;height:13px;opacity:.7}
@media (max-width:640px){.cabinet-body .seg-opt span{display:none}}
/* fix: display:grid перебивает [hidden] — форсируем скрытие неактивного вида (§14) */
.cabinet-body [data-view-grid][hidden],.cabinet-body [data-view-table][hidden]{display:none}
/* >>> pages/balance.css */
/* CABINET — Balance (TZ §11): wallet hero, amount chips, payment methods */
.cabinet-body .wallet-hero{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border-subtle));background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 13%,var(--bg-surface)),var(--bg-elevated) 60%,var(--bg-surface))}
.cabinet-body .wallet-hero::before{content:"";position:absolute;right:-30px;top:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 24%,transparent),transparent 68%);pointer-events:none}
.cabinet-body .wallet-hero .balance .amt{font-size:38px;font-weight:800;letter-spacing:-.03em;color:var(--accent-hover)}
.cabinet-body .wallet-hero .ic-round{width:56px;height:56px;background:linear-gradient(135deg,var(--accent-hover),var(--accent));color:#231a06;box-shadow:0 10px 26px -12px color-mix(in srgb,var(--accent) 80%,transparent)}
.cabinet-body .wallet-hero .ic-round svg{width:26px;height:26px}
.cabinet-body .amount-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
.cabinet-body .chip{min-height:40px;padding:8px 16px;border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,#fff 4%,transparent);color:var(--text-primary);font-size:14px;font-weight:700;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,transform .15s}
.cabinet-body .chip:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);transform:translateY(-1px)}
.cabinet-body .chip.is-active{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06;border-color:transparent;box-shadow:0 8px 18px -10px color-mix(in srgb,var(--accent) 80%,transparent)}
.cabinet-body .pmgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.cabinet-body .pm{display:flex;align-items:center;padding:13px 15px;border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,#fff 3%,transparent);cursor:pointer;font-weight:600;transition:border-color .15s,background-color .15s,box-shadow .15s}
.cabinet-body .pm:hover{border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.cabinet-body .pm:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.cabinet-body .pm span{position:relative;padding-left:26px}
.cabinet-body .pm span::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong)}
.cabinet-body .pm:has(input:checked) span::before{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 38%,transparent 44%)}

/* ===== Balance page (Phase 4 §15/§16): compact header, unavailable, activity ===== */
.cabinet-body .bal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 22px;margin-bottom:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--bg-surface)),var(--bg-surface));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.cabinet-body .bal-header-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.cabinet-body .bal-header-num{display:flex;align-items:baseline;gap:8px;margin-top:3px}
.cabinet-body .bal-header-num b{font-size:32px;font-weight:700;color:var(--accent-hover);line-height:1}
.cabinet-body .bal-header-coin{font-size:13px;color:var(--text-secondary)}
.cabinet-body .bal-header-caption{display:block;margin-top:5px;font-size:11px;color:var(--text-muted)}
.cabinet-body .pay-unavailable{display:flex;gap:13px;padding:16px;border-radius:12px;border:1px dashed var(--border-strong);background:var(--bg-subtle)}
.cabinet-body .pay-unavailable .pu-icon{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--bg-elevated);color:var(--text-muted)}
.cabinet-body .pay-unavailable .pu-icon svg{width:20px;height:20px}
.cabinet-body .pay-unavailable strong{font-size:14px}
.cabinet-body .pay-unavailable p{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}
.cabinet-body .xsolla-balance-form{display:flex;flex-direction:column;gap:14px}
.cabinet-body .coin-packages{display:grid;gap:9px;margin:0;padding:0;border:0}
.cabinet-body .coin-packages .field-label{margin-bottom:7px}
.cabinet-body .coin-package{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:66px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:13px;background:color-mix(in srgb,#fff 3%,transparent);cursor:pointer;transition:border-color .15s,background-color .15s,transform .15s,box-shadow .15s}
.cabinet-body .coin-package:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 50%,var(--border-strong))}
.cabinet-body .coin-package:has(input:checked){border-color:var(--accent);background:linear-gradient(110deg,color-mix(in srgb,var(--accent) 13%,transparent),color-mix(in srgb,#fff 3%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}
.cabinet-body .coin-package-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,var(--accent-hover),var(--accent));color:#231a06;box-shadow:0 8px 20px -12px var(--accent)}
.cabinet-body .coin-package-icon svg{width:19px;height:19px}
.cabinet-body .coin-package-copy{display:flex;flex-direction:column;min-width:0}
.cabinet-body .coin-package-copy strong{font-size:15px;color:var(--text-primary)}
.cabinet-body .coin-package-copy small{margin-top:2px;color:var(--text-muted);font-size:11px}
.cabinet-body .coin-package-price{font-size:16px;font-weight:800;color:var(--accent-hover);white-space:nowrap}
.cabinet-body .coin-package-price small{font-size:10px;font-weight:750;letter-spacing:.04em}
.cabinet-body .xsolla-mode-note{margin:-5px 0 0;padding:8px 10px;border:1px solid color-mix(in srgb,var(--warning) 34%,var(--border-subtle));border-radius:9px;background:color-mix(in srgb,var(--warning) 9%,transparent);color:var(--warning);font-size:11px;text-align:center}
.cabinet-body .payment-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}
.cabinet-body .payment-divider::before,.cabinet-body .payment-divider::after{content:"";height:1px;flex:1;background:var(--border-subtle)}
.cabinet-body .act-tabs{flex-wrap:wrap}
.cabinet-body [data-act-row][hidden]{display:none}
.cabinet-body .act-table td .table-subtext{margin-top:1px;font-family:ui-monospace,monospace}
@media (max-width:480px){.cabinet-body .coin-package{grid-template-columns:auto 1fr}.cabinet-body .coin-package-price{grid-column:2}}
/* >>> pages/security.css */
/* CABINET — Security status summary (TZ §19) */
.cabinet-body .sec-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:20px}
.cabinet-body .sec-status-card{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;border:1px solid var(--border-subtle);border-left-width:3px;border-radius:16px;background:var(--bg-surface)}
.cabinet-body .sec-status-ic{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:11px}
.cabinet-body .sec-status-ic svg{width:21px;height:21px}
.cabinet-body .sec-status-card small{display:block;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px}
.cabinet-body .sec-status-card strong{display:block;font-size:14px;font-weight:700}
.cabinet-body .sec-status-card>div span{display:block;color:var(--text-muted);font-size:11px;line-height:1.4;margin-top:2px}
.cabinet-body .sec-status-card.is-ok{border-left-color:var(--success)}.cabinet-body .sec-status-card.is-ok .sec-status-ic{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.cabinet-body .sec-status-card.is-ok small{color:var(--success)}
.cabinet-body .sec-status-card.is-warn{border-left-color:var(--warning)}.cabinet-body .sec-status-card.is-warn .sec-status-ic{background:color-mix(in srgb,var(--warning) 16%,transparent);color:var(--warning)}.cabinet-body .sec-status-card.is-warn small{color:var(--warning)}
.cabinet-body .sec-status-card.is-info{border-left-color:var(--info)}.cabinet-body .sec-status-card.is-info .sec-status-ic{background:color-mix(in srgb,var(--info) 15%,transparent);color:var(--info)}.cabinet-body .sec-status-card.is-info small{color:var(--info)}
.cabinet-body .sec-status-card.is-muted{border-left-color:var(--border-strong)}.cabinet-body .sec-status-card.is-muted .sec-status-ic{background:color-mix(in srgb,var(--text-muted) 14%,transparent);color:var(--text-muted)}.cabinet-body .sec-status-card.is-muted small{color:var(--text-muted)}
/* >>> pages/bosses.css */
/* CABINET — Raid bosses (TZ §17): status tiles alive/soon/respawning + subscribe */
.cabinet-body .boss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:18px}
.cabinet-body .boss-tile{display:flex;flex-direction:column;gap:11px;padding:16px;border:1px solid var(--border-subtle);border-left-width:3px;border-radius:16px;background:var(--bg-elevated);cursor:pointer;transition:transform .16s,border-color .16s,box-shadow .16s,background-color .16s}
.cabinet-body .boss-tile:hover{transform:translateY(-2px);border-color:var(--border-strong)}
.cabinet-body .boss-tile:has(input:checked){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 6%,var(--bg-elevated))}
.cabinet-body .boss-tile.is-alive{border-left-color:var(--success)}
.cabinet-body .boss-tile.is-soon{border-left-color:var(--warning)}
.cabinet-body .boss-tile.is-dead{border-left-color:var(--text-muted)}
.cabinet-body .boss-tile-top{display:flex;align-items:center;gap:11px}
.cabinet-body .boss-avatar{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:11px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent-hover)}
.cabinet-body .boss-avatar svg{width:21px;height:21px}
.cabinet-body .boss-id-name{flex:1;min-width:0}
.cabinet-body .boss-id-name strong{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cabinet-body .boss-id-name .dim{font-size:10px}
.cabinet-body .boss-badge{padding:4px 9px;border-radius:999px;font-size:10px;font-weight:750;white-space:nowrap}
.cabinet-body .boss-tile.is-alive .boss-badge{color:var(--success);background:color-mix(in srgb,var(--success) 15%,transparent)}
.cabinet-body .boss-tile.is-soon .boss-badge{color:var(--warning);background:color-mix(in srgb,var(--warning) 15%,transparent)}
.cabinet-body .boss-tile.is-dead .boss-badge{color:var(--text-muted);background:color-mix(in srgb,var(--text-muted) 12%,transparent)}
.cabinet-body .boss-timer{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:10px;background:color-mix(in srgb,#000 22%,transparent)}
.cabinet-body .boss-timer span{color:var(--text-muted);font-size:10.5px}
.cabinet-body .boss-timer b{font-size:15px;font-weight:750;color:var(--accent-hover);white-space:nowrap}
.cabinet-body .boss-sub{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px;font-weight:600}
.cabinet-body .boss-sub svg{width:14px;height:14px}
.cabinet-body .boss-tile:has(input:checked) .boss-sub{color:var(--accent-hover)}

/* CABINET — Raid bosses: strong game section with live timers (TZ §17) */
.cabinet-body .rb-head{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;margin-bottom:18px;padding:20px 22px}
.cabinet-body .rb-head-main{min-width:0}
.cabinet-body .rb-head-main h2{margin:9px 0 4px;font-size:22px}
.cabinet-body .rb-head-main p{margin:0;color:var(--text-muted);font-size:13px;max-width:62ch}
.cabinet-body .rb-live{display:inline-flex;align-items:center;gap:8px;padding:4px 11px;border-radius:999px;background:rgba(63,191,107,.12);border:1px solid rgba(63,191,107,.32);color:#3fbf6b;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.cabinet-body .rb-live i{width:7px;height:7px;border-radius:50%;background:#3fbf6b;animation:rbLive 1.6s ease-in-out infinite}
@keyframes rbLive{0%{box-shadow:0 0 0 0 rgba(63,191,107,.5)}70%,100%{box-shadow:0 0 0 6px transparent}}
.cabinet-body .rb-head-stats{display:flex;gap:10px;flex-wrap:wrap}
.cabinet-body .rb-stat{display:flex;flex-direction:column;align-items:center;min-width:92px;padding:10px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}
.cabinet-body .rb-stat b{font-size:20px;font-weight:800;line-height:1;display:inline-flex}
.cabinet-body .rb-stat b svg{width:19px;height:19px}
.cabinet-body .rb-stat small{margin-top:4px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-align:center}
.cabinet-body .rb-stat.is-alive b,.cabinet-body .rb-stat.is-ok b{color:#3fbf6b}
.cabinet-body .rb-stat.is-warn b{color:#e0a83a}
.cabinet-body .boss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;margin-bottom:16px}
.cabinet-body .boss-card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:14px;padding:16px 18px;border:1px solid var(--border);border-radius:16px;background:var(--surface-1);cursor:pointer;overflow:hidden;transition:transform .14s,border-color .14s,box-shadow .14s;--st:#8892a0;--st-soft:rgba(136,146,160,.14)}
.cabinet-body .boss-card.is-alive{--st:#3fbf6b;--st-soft:rgba(63,191,107,.16)}
.cabinet-body .boss-card.is-soon{--st:#e0a83a;--st-soft:rgba(224,168,58,.16)}
.cabinet-body .boss-card.is-dead{--st:#c85c58;--st-soft:rgba(200,92,88,.13)}
.cabinet-body .boss-card::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--st-soft),transparent 58%);pointer-events:none}
.cabinet-body .boss-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--st)}
.cabinet-body .boss-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--st) 42%,var(--border));box-shadow:0 16px 34px -16px rgba(0,0,0,.55)}
.cabinet-body .boss-card.is-watched{border-color:color-mix(in srgb,var(--st) 55%,var(--border))}
.cabinet-body .boss-art{position:relative;width:62px;height:62px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--st) 22%,var(--surface-3)),var(--surface-2));border:1px solid color-mix(in srgb,var(--st) 40%,var(--border));box-shadow:inset 0 0 16px -6px var(--st)}
.cabinet-body .boss-glyph{font-family:'Inter',sans-serif;font-size:22px;font-weight:700;color:var(--st);text-shadow:0 2px 12px var(--st-soft)}
.cabinet-body .boss-main{position:relative;display:flex;flex-direction:column;gap:7px;min-width:0}
.cabinet-body .boss-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cabinet-body .boss-name{margin:0;font-size:16px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cabinet-body .boss-lvl{flex:none;padding:2px 9px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:700}
.cabinet-body .boss-loc{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12.5px}
.cabinet-body .boss-loc svg{width:14px;height:14px;flex:none}
.cabinet-body .boss-state{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--st)}
.cabinet-body .boss-dot{width:8px;height:8px;border-radius:50%;background:var(--st)}
.cabinet-body .boss-card.is-alive .boss-dot{animation:rbLive 1.8s ease-in-out infinite}
.cabinet-body .boss-timer{display:flex;flex-direction:column;gap:1px;margin-top:2px}
.cabinet-body .boss-timer-lbl{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.cabinet-body .boss-timer b{font-size:15px;font-weight:800;color:var(--text)}
.cabinet-body .boss-card.is-alive .boss-timer b{color:var(--st)}
.cabinet-body .boss-sub{grid-column:1/-1;display:flex;align-items:center;margin-top:2px;padding-top:12px;border-top:1px solid var(--border-soft,var(--border))}
.cabinet-body .boss-sub input{position:absolute;opacity:0;pointer-events:none}
.cabinet-body .boss-sub-ui{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border:1px solid var(--border);border-radius:10px;color:var(--text-muted);font-size:12.5px;font-weight:650;transition:background .14s,border-color .14s,color .14s}
.cabinet-body .boss-sub-ui svg{width:15px;height:15px}
.cabinet-body .boss-card:hover .boss-sub-ui{border-color:var(--accent-soft)}
.cabinet-body .boss-sub input:checked + .boss-sub-ui{background:var(--accent);border-color:var(--accent);color:#231a06}
.cabinet-body .boss-sub input:focus-visible + .boss-sub-ui{box-shadow:0 0 0 3px var(--accent-soft)}
.cabinet-body .rb-settings{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;justify-content:space-between;padding:18px 20px}
.cabinet-body .rb-settings-field{min-width:240px}
.cabinet-body .rb-settings-field>label{display:block;margin-bottom:7px;font-size:12px;font-weight:700;color:var(--text-secondary)}
.cabinet-body .rb-settings .inline{display:flex;align-items:center;gap:10px}
.cabinet-body .rb-settings .inline input{width:120px}
.cabinet-body .rb-settings .helper{margin:8px 0 0;color:var(--text-muted);font-size:12px;max-width:54ch}
@media (max-width:560px){.cabinet-body .boss-grid{grid-template-columns:1fr}.cabinet-body .rb-settings{flex-direction:column;align-items:stretch}.cabinet-body .rb-settings .btn{width:100%}}

/* ===== Raid bosses (Phase 4 §19): realtime table, status, in-row switch ===== */
.cabinet-body .rb-table-card{padding:0;overflow:hidden}
.cabinet-body .rb-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}
.cabinet-body .rb-table-head h2{margin:0;font-size:16px}
.cabinet-body .rb-updated{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-muted)}
.cabinet-body .rb-updated.is-stale{color:var(--warning)}
.cabinet-body .rb-live-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 20%,transparent);animation:rbPulse 2s ease-in-out infinite}
.cabinet-body .rb-updated.is-stale .rb-live-dot{background:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb,var(--warning) 20%,transparent)}
@keyframes rbPulse{0%,100%{opacity:1}50%{opacity:.35}}
.cabinet-body .rb-cell-boss{display:inline-flex;align-items:center;gap:11px}
.cabinet-body .boss-glyph2{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border-subtle);font-weight:700;font-size:15px;color:var(--accent-hover)}
.cabinet-body .rb-boss-txt{display:flex;flex-direction:column;min-width:0}
.cabinet-body .rb-boss-txt b{font-size:14px}
.cabinet-body .rb-boss-txt small{color:var(--text-muted);font-size:11px}
.cabinet-body .rb-loc-cell{color:var(--text-secondary)}
.cabinet-body .rb-eta b{font-size:13px}
.cabinet-body .rb-row.is-alive td:first-child{box-shadow:inset 3px 0 0 var(--success)}
.cabinet-body .rb-row.is-soon td:first-child{box-shadow:inset 3px 0 0 var(--warning)}
/* Switch (§11) — подписка прямо в строке */
.cabinet-body .rb-sub{position:relative;display:inline-flex;cursor:pointer;align-items:center}
.cabinet-body .rb-sub input{position:absolute;opacity:0;width:0;height:0}
.cabinet-body .rb-sub-switch{width:38px;height:22px;border-radius:999px;background:var(--bg-hover);border:1px solid var(--border-strong);position:relative;transition:background .16s,border-color .16s}
.cabinet-body .rb-sub-switch::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text-secondary);transition:transform .16s,background .16s}
.cabinet-body .rb-sub input:checked+.rb-sub-switch{background:color-mix(in srgb,var(--accent) 42%,transparent);border-color:var(--accent)}
.cabinet-body .rb-sub input:checked+.rb-sub-switch::after{transform:translateX(16px);background:var(--accent-hover)}
.cabinet-body .rb-sub input:focus-visible+.rb-sub-switch{box-shadow:var(--focus)}
@media (prefers-reduced-motion:reduce){.cabinet-body .rb-live-dot{animation:none}}
/* >>> pages/tickets.css */
/* CABINET — Support center (TZ §18): ticket list + chat bubbles */
.cabinet-body .ticket-list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid transparent;transition:background-color .15s,border-color .15s}
.cabinet-body .ticket-list-item:hover{background:color-mix(in srgb,#fff 4%,transparent)}
.cabinet-body .ticket-list-item.active{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent);border-color:color-mix(in srgb,var(--accent) 26%,transparent)}
.cabinet-body .ticket-list-item strong{display:block;font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cabinet-body .ticket-list-item small{color:var(--text-muted);font-size:10.5px}
.cabinet-body .ticket-list-item.active strong{color:var(--accent-hover)}
.cabinet-body .unread-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:800}
.cabinet-body .chatlog{display:flex;flex-direction:column;gap:12px}
.cabinet-body .msg{max-width:82%;padding:12px 15px;border-radius:16px;font-size:13.5px;line-height:1.5}
.cabinet-body .msg-user{align-self:flex-end;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 18%,var(--bg-elevated)),var(--bg-elevated));border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-bottom-right-radius:5px}
.cabinet-body .msg-op{align-self:flex-start;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-bottom-left-radius:5px}
.cabinet-body .msg-meta{display:block;margin-top:6px;color:var(--text-muted);font-size:10px}
.cabinet-body .attachment-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:var(--accent-hover);font-size:12px;font-weight:600}
.cabinet-body .attachment-link svg{width:14px;height:14px}

/* ===== Support page (Phase 4 §21): message grouping + order context card ===== */
.cabinet-body .msg-meta{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--text-muted);font-size:10px}
.cabinet-body .msg-who{font-weight:700}
.cabinet-body .msg-cont{margin-top:-6px}
.cabinet-body .msg-cont .msg-who{display:none}
.cabinet-body .ticket-order-ctx{display:flex;align-items:center;gap:12px;margin:0 20px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border-subtle));border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--bg-subtle))}
.cabinet-body .toc-ico{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--bg-elevated);color:var(--accent-hover)}
.cabinet-body .toc-ico svg{width:18px;height:18px}
.cabinet-body .toc-title{font-size:13px;font-weight:700}
.cabinet-body .toc-title code{font-family:ui-monospace,monospace;color:var(--accent-hover)}
.cabinet-body .toc-meta{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:3px;color:var(--text-secondary);font-size:12px}
.cabinet-body .toc-meta span{position:relative}
.cabinet-body .toc-meta span+span::before{content:"·";position:absolute;left:-11px;color:var(--text-muted)}

/* ===== Support: order chip in new-ticket form (P1-05) ===== */
.cabinet-body .new-ticket-order{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:9px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--border-subtle));background:color-mix(in srgb,var(--accent) 6%,var(--bg-subtle));font-size:13px;color:var(--text-secondary)}
.cabinet-body .new-ticket-order svg{width:16px;height:16px;color:var(--accent-hover);flex:0 0 auto}
.cabinet-body .new-ticket-order code{font-family:ui-monospace,monospace;color:var(--accent-hover)}
/* >>> pages/news.css */
/* CABINET — News cards (TZ §16) */
.cabinet-body .news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}
.cabinet-body .news-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.cabinet-body .news-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--bg-elevated)),var(--bg-elevated))}
.cabinet-body .news-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.cabinet-body .news-card:hover .news-cover img{transform:scale(1.04)}
.cabinet-body .news-cover-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--accent) 40%,transparent)}
.cabinet-body .news-cover-ph svg{width:40px;height:40px}
.cabinet-body .news-featured-badge{position:absolute;top:14px;left:14px;padding:5px 12px;border-radius:8px;background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06;font-size:11px;font-weight:800;letter-spacing:.04em}
.cabinet-body .news-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1;gap:9px}
.cabinet-body .news-meta{display:flex;align-items:center;gap:10px}
.cabinet-body .news-cat{padding:3px 9px;border-radius:6px;background:var(--accent-soft);color:var(--accent-hover);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.cabinet-body .news-date{color:var(--text-muted);font-size:11px}
.cabinet-body .news-title{font-size:17px;font-weight:700;line-height:1.3;margin:0}
.cabinet-body .news-title a{color:var(--text-primary)}
.cabinet-body .news-title a:hover{color:var(--accent-hover)}
.cabinet-body .news-excerpt{color:var(--text-secondary);font-size:13px;line-height:1.55;margin:0;flex:1}
.cabinet-body .news-cta{align-self:flex-start;margin-top:4px}
.cabinet-body .news-cta svg{width:15px;height:15px}
.cabinet-body .news-featured{grid-column:1/-1}
@media (min-width:900px){.cabinet-body .news-featured{flex-direction:row}.cabinet-body .news-featured .news-cover{aspect-ratio:auto;width:48%;min-height:300px}.cabinet-body .news-featured .news-body{flex:1;justify-content:center;padding:34px}.cabinet-body .news-featured .news-title{font-size:26px}.cabinet-body .news-featured .news-excerpt{font-size:15px}}

/* ===== News page (Phase 4 §20): compact empty state ===== */
.cabinet-body .news-empty-compact,.cabinet-auth-body .news-empty-compact{display:flex;align-items:center;gap:12px;max-width:640px;padding:18px 20px;border:1px dashed var(--border-strong);border-radius:14px;color:var(--text-secondary);font-size:14px}
.cabinet-body .news-empty-compact svg,.cabinet-auth-body .news-empty-compact svg{width:22px;height:22px;color:var(--text-muted);flex:0 0 auto}
.cabinet-body .news-empty-compact strong,.cabinet-auth-body .news-empty-compact strong{color:var(--text-primary)}
/* >>> pages/warehouse.css */
/* CABINET — Warehouse: game inventory grid (TZ §15) */
.cabinet-body .inv-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;padding:18px 20px;margin-bottom:18px}
.cabinet-body .inv-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;flex:1;min-width:0;margin:0}
.cabinet-body .inv-filter .field{min-width:220px}
.cabinet-body .inv-search{position:relative;display:flex;align-items:center;gap:8px;flex:1;min-width:190px;max-width:340px;padding:0 14px;min-height:46px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);transition:border-color .15s,box-shadow .15s}
.cabinet-body .inv-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cabinet-body .inv-search svg{width:17px;height:17px;color:var(--text-muted);flex:none}
.cabinet-body .inv-search input{flex:1;min-width:0;min-height:auto;border:0;background:transparent;padding:0;box-shadow:none;color:var(--text);font-size:14px}
.cabinet-body .inv-search input:focus{outline:none;box-shadow:none}
.cabinet-body .inv-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.cabinet-body .inv-tab{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:9px;color:var(--text-secondary);font-size:13px;font-weight:650;text-decoration:none;transition:background .15s,color .15s}
.cabinet-body .inv-tab svg{width:16px;height:16px}
.cabinet-body .inv-tab:hover{color:var(--text)}
.cabinet-body .inv-tab.is-active{background:var(--accent);color:#231a06}
.cabinet-body .inv-tab.is-active svg{color:#231a06}
.cabinet-body .inv-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;margin-bottom:16px}
.cabinet-body .inv-head h2{margin:0;font-size:20px}
.cabinet-body .inv-sub{margin:4px 0 0;color:var(--text-muted);font-size:12.5px}
.cabinet-body .inv-stats{display:flex;gap:10px}
.cabinet-body .inv-stat{display:flex;flex-direction:column;align-items:center;min-width:74px;padding:8px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}
.cabinet-body .inv-stat b{font-size:18px;font-weight:800;line-height:1}
.cabinet-body .inv-stat small{margin-top:3px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.cabinet-body .inv-stat.is-ench b{color:var(--accent)}
.cabinet-body .inv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cabinet-body .inv-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-1);text-align:center;transition:transform .14s,border-color .14s,box-shadow .14s}
.cabinet-body .inv-card:hover{transform:translateY(-3px);border-color:var(--accent-soft);box-shadow:0 14px 30px -14px rgba(0,0,0,.5)}
.cabinet-body .inv-thumb{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:radial-gradient(circle at 50% 35%,var(--surface-3),var(--surface-2));border:1px solid var(--border)}
.cabinet-body .inv-thumb .item-ico{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.cabinet-body .inv-thumb .item-ico img{width:44px;height:44px;object-fit:contain}
.cabinet-body .inv-ench{position:absolute;top:-6px;left:-6px;padding:2px 7px;border-radius:999px;background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#231a06;font-size:11px;font-weight:800;box-shadow:0 2px 8px -2px rgba(0,0,0,.5)}
.cabinet-body .inv-qty{position:absolute;bottom:-6px;right:-6px;padding:2px 8px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);color:var(--text);font-size:11px;font-weight:800}
.cabinet-body .inv-info{display:flex;flex-direction:column;gap:2px;width:100%}
.cabinet-body .inv-name{font-size:13px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cabinet-body .inv-info small{color:var(--text-muted);font-size:10.5px}
.cabinet-body .inv-card.is-enchanted{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
.cabinet-body .inv-card.is-enchanted .inv-thumb{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:inset 0 0 18px -6px var(--accent-soft),0 0 0 1px var(--accent-soft)}
.cabinet-body .inv-noresults{display:flex;flex-direction:column;align-items:center;gap:6px;padding:44px 20px;color:var(--text-muted)}
.cabinet-body .inv-noresults svg{width:26px;height:26px;opacity:.6}
.cabinet-body .inv-noresults strong{color:var(--text);font-size:15px}
.cabinet-body .inv-empty{margin-top:4px}
@media (max-width:560px){.cabinet-body .inv-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.cabinet-body .inv-tabs{width:100%}.cabinet-body .inv-tab{flex:1;justify-content:center}}

/* ===== Inventory page (Phase 4 §18): head layout, view seg, table, compact empty ===== */
.cabinet-body .inv-head-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cabinet-body .inv-view-seg{flex:0 0 auto}
.cabinet-body .inv-table td .inv-row-cell{display:inline-flex;align-items:center;gap:10px}
.cabinet-body .inv-table .item-ico{width:30px;height:30px;flex:0 0 auto}
.cabinet-body .inv-table .inv-ench-txt{color:var(--accent-hover)}
.cabinet-body .inv-empty-compact{display:flex;align-items:center;gap:10px;margin-top:4px;padding:15px 18px;border:1px dashed var(--border-strong);border-radius:12px;color:var(--text-secondary);font-size:13px}
.cabinet-body .inv-empty-compact svg{width:18px;color:var(--text-muted);flex:0 0 auto}
@media (max-width:640px){.cabinet-body .inv-view-seg .seg-opt span{display:none}}
}

@layer overrides {
/* >>> overrides/fixes.css */
/* Very small screens (<=360): keep the topbar row within the viewport — collapse
   the account chip to avatar-only and tighten the world-name truncation (fixes 8px overflow at 320). */
@media (max-width:360px){
  .topbar .profile-menu .topbar-login{display:none}
  .topbar-context strong{max-width:84px}
  .topbar{gap:6px}
}

/* Костыль overflow:visible убран — список персонажа рендерится через portal (#cs-portal),
   поэтому карточки снова используют штатный overflow:hidden и сами скругляют обложку. */

/* ============ Кастомный select через portal (ТЗ: выбор персонажа) ============
   Список рисуется в общий слой #cs-portal (в body), поэтому не обрезается
   overflow/transform/stacking карточек и не перекрывает соседний контент. */
#cs-portal{position:fixed;inset:0;z-index:var(--z-overlay);pointer-events:none}
#cs-portal>*{pointer-events:auto}
#cs-portal .cs-panel{position:fixed;top:0;left:0;right:auto;bottom:auto;margin:0;z-index:var(--z-overlay-top);max-height:min(320px,70vh);will-change:transform;animation:csFade .14s ease}
/* КРИТИЧНО: у .cs-panel есть display:flex, который перебивает атрибут [hidden];
   без этого правила «закрытая» панель остаётся видимой и вылезает в угол экрана. */
#cs-portal .cs-panel[hidden]{display:none}
@media (prefers-reduced-motion:reduce){#cs-portal .cs-panel{animation:none}}
.cs-backdrop{position:fixed;inset:0;z-index:var(--z-overlay);background:rgba(4,6,10,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:csFade .15s ease}
.cs-check{margin-left:auto;color:var(--accent-hover);flex:0 0 auto}
@keyframes csFade{from{opacity:0}to{opacity:1}}
/* мобильный bottom sheet (<=640px) */
#cs-portal .cs-panel.cs-sheet{position:fixed;left:0;right:0;bottom:0;top:auto!important;width:100%!important;max-width:none;max-height:82vh;border-radius:20px 20px 0 0;padding:8px 10px calc(12px + env(safe-area-inset-bottom));animation:csSheet .22s cubic-bezier(.2,.8,.2,1)}
#cs-portal .cs-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 6px 12px}
#cs-portal .cs-sheet-title{font-size:15px;font-weight:750;color:var(--text-primary)}
#cs-portal .cs-sheet-x{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text-secondary);cursor:pointer}
#cs-portal .cs-sheet-list{overflow:auto;max-height:calc(82vh - 64px);display:flex;flex-direction:column;gap:3px;-webkit-overflow-scrolling:touch}
#cs-portal .cs-sheet .cs-opt{min-height:52px}
@keyframes csSheet{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){#cs-portal .cs-panel,.cs-backdrop{animation:none!important}}

/* ============ Полировка списка выбора персонажа (современный, чистый вид) ============ */
#cs-portal .cs-panel{border-radius:16px;padding:7px;background:var(--bg-elevated);border:1px solid color-mix(in srgb,#fff 9%,transparent);box-shadow:0 24px 60px -18px rgba(0,0,0,.72),0 0 0 1px color-mix(in srgb,#fff 6%,transparent)}
#cs-portal .cs-opt{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 12px;border-radius:12px;width:100%;border:0;background:transparent;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:background .12s ease}
#cs-portal .cs-opt:hover,#cs-portal .cs-opt:focus-visible{background:color-mix(in srgb,#fff 6%,transparent);outline:none}
#cs-portal .cs-opt.is-sel{background:color-mix(in srgb,var(--accent) 14%,transparent)}
#cs-portal .cs-opt .cs-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:14px}
#cs-portal .cs-opt.is-sel .cs-name{color:var(--accent-hover);font-weight:700}
#cs-portal .cs-av{flex:0 0 auto;width:30px;height:30px;border-radius:9px;font-size:13px}
#cs-portal .cs-lv{flex:0 0 auto;margin-left:auto;padding:3px 9px;border-radius:8px;background:color-mix(in srgb,#fff 7%,transparent);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.02em}
#cs-portal .cs-opt.is-sel .cs-lv{margin-left:auto}
#cs-portal .cs-check{flex:0 0 auto;margin-left:8px;color:var(--accent-hover)}
/* >>> overrides/unavailable.css */
/* ===== Data-unavailable state (P1-03): сбой API ≠ пустые данные ===== */
.cabinet-body .data-unavailable{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;padding:16px 18px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--danger) 34%,var(--border-subtle));background:color-mix(in srgb,var(--danger) 7%,var(--bg-surface))}
.cabinet-body .data-unavailable>svg{width:20px;height:20px;color:var(--danger);flex:0 0 auto;margin-top:1px}
.cabinet-body .data-unavailable strong{display:block;font-size:14px}
.cabinet-body .data-unavailable span{display:block;font-size:12px;color:var(--text-secondary);margin-top:3px}
.cabinet-body .data-unavailable .du-rid{font-family:ui-monospace,monospace;color:var(--text-muted);font-size:11px;margin-top:6px}

/* ===== Balance-unavailable inline (P1-03): «—» вместо ложного 0 ===== */
.cabinet-body .ov-bal-num.is-unavailable,.cabinet-body .store-balance b.is-unavailable{color:var(--text-muted)}
}
