@font-face{
  font-family:"Roboto";
  src:url("/assets/fonts/roboto-regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
}

/* RiskSMP website design system.
   This file is intentionally loaded after the legacy stylesheet. New visual
   work belongs here and uses semantic tokens instead of route-local colors. */

:root,
html[data-theme="dark"]{
  color-scheme: dark;
  --ds-page: #08090f;
  --ds-page-alt: #0c0e15;
  --ds-surface: #12151d;
  --ds-surface-raised: #181c26;
  --ds-surface-nested: #0e1118;
  --ds-surface-input: #0d1017;
  --ds-surface-hover: #202530;
  --ds-surface-active: #292f3c;
  --ds-border: rgba(235,240,249,.14);
  --ds-border-strong: rgba(235,240,249,.24);
  --ds-text: #f6f7fa;
  --ds-text-secondary: #c8ced8;
  --ds-text-muted: #939dab;
  --ds-accent: #f47782;
  --ds-accent-hover: #ff929b;
  --ds-accent-soft: rgba(232,93,104,.15);
  --ds-action: #b93648;
  --ds-action-hover: #a72f40;
  --ds-on-accent: #ffffff;
  --ds-nav-active: #ff6b6b;
  --ds-nav-active-hover: #ff8585;
  --ds-nav-active-foreground: #171b23;
  --ds-focus: #b7c0cd;
  --ds-shadow: 0 18px 54px rgba(0,0,0,.30);
  --ds-shadow-raised: 0 22px 68px rgba(0,0,0,.38);
  --ds-grid: rgba(255,255,255,.010);
  --ds-selection: rgba(232,93,104,.34);
  --ds-success: #70c996;
  --ds-warning: #f0bd69;
  --ds-danger: #ff6b78;
  --ds-info: #78bcff;
  --ds-risk-plus-plus: #ffaa00;
  --ds-radius-sm: 8px;
  --ds-radius-md: 14px;
  --ds-radius-lg: 18px;

  /* Compatibility aliases used by existing components. */
  --bg: var(--ds-page);
  --surface: var(--ds-surface);
  --surface-solid: var(--ds-surface);
  --surface-raised: var(--ds-surface-raised);
  --surface-strong: var(--ds-surface-active);
  --panel: var(--ds-surface);
  --glass: var(--ds-surface);
  --text: var(--ds-text);
  --text-readable: var(--ds-text-secondary);
  --text-muted: var(--ds-text-muted);
  --muted: var(--ds-text-secondary);
  --soft: var(--ds-text-muted);
  --line: var(--ds-border);
  --line-soft: var(--ds-border);
  --line-readable: var(--ds-border-strong);
  --coral: var(--ds-accent);
  --accent: var(--ds-accent);
  --coral-hot: var(--ds-accent-hover);
  --success: var(--ds-success);
  --warning: var(--ds-warning);
  --danger: var(--ds-danger);
  --info: var(--ds-info);
  --shadow: rgba(0,0,0,.42);
  --risk-card-bg: var(--ds-surface);
  --risk-card-bg-strong: var(--ds-surface-raised);
  --risk-card-line: var(--ds-border-strong);
  --risk-card-line-soft: var(--ds-border);
  --risk-soft-shadow: var(--ds-shadow);
  --risk-focus-neutral: 0 0 0 3px rgba(190,200,215,.20);
  --focus-ring: 0 0 0 4px rgba(190,200,215,.20);
}

html[data-theme="light"]{
  color-scheme: light;
  --ds-page: #eef1f5;
  --ds-page-alt: #e7ebf0;
  --ds-surface: #ffffff;
  --ds-surface-raised: #f7f9fb;
  --ds-surface-nested: #e9edf2;
  --ds-surface-input: #ffffff;
  --ds-surface-hover: #edf1f5;
  --ds-surface-active: #e2e7ed;
  --ds-border: rgba(28,35,48,.15);
  --ds-border-strong: rgba(28,35,48,.25);
  --ds-text: #171b23;
  --ds-text-secondary: #414957;
  --ds-text-muted: #566171;
  --ds-accent: #b33443;
  --ds-accent-hover: #b53645;
  --ds-accent-soft: rgba(201,67,81,.12);
  --ds-focus: #657286;
  --ds-nav-active: #ff6b6b;
  --ds-nav-active-hover: #ff8585;
  --ds-nav-active-foreground: #171b23;
  --ds-risk-plus-plus: #8a5a00;
  --ds-shadow: 0 16px 44px rgba(28,35,48,.11);
  --ds-shadow-raised: 0 22px 58px rgba(28,35,48,.15);
  --ds-grid: rgba(28,35,48,.022);
  --ds-selection: rgba(201,67,81,.22);
  --ds-success: #267b4d;
  --ds-warning: #8a5d12;
  --ds-danger: #b72f40;
  --ds-info: #1769aa;
  --shadow: rgba(28,35,48,.18);
}

/* 1.9.2: selected Risk colour drives the semantic accent on every authenticated website route. */
html.account-theme-active{
  --ds-accent: var(--account-risk-color);
  --ds-accent-hover: color-mix(in srgb, var(--ds-accent) 82%, white);
  --ds-accent-soft: color-mix(in srgb, var(--ds-accent) 15%, transparent);
  --ds-action: var(--account-risk-fill);
  --ds-action-hover: color-mix(in srgb, var(--account-risk-fill) 84%, black);
  --ds-on-accent: var(--account-risk-foreground);
  --ds-focus: var(--ds-text-secondary);
  --ds-selection: color-mix(in srgb, var(--account-risk-fill) 28%, transparent);
  --risk-focus-neutral: 0 0 0 3px color-mix(in srgb, var(--ds-text-secondary) 22%, transparent);
  --focus-ring: 0 0 0 4px color-mix(in srgb, var(--ds-text-secondary) 22%, transparent);
}

html[data-theme="light"].account-theme-active{
  --ds-accent: var(--account-risk-color-light);
  --ds-accent-hover: color-mix(in srgb, var(--ds-accent) 82%, black);
  --ds-focus: var(--ds-text-secondary);
}

html,
body{
  background: var(--ds-page);
  color: var(--ds-text);
}

body{
  transition: background-color .18s ease, color .18s ease;
}

::selection{
  color: var(--ds-text);
  background: var(--ds-selection);
}

.site-shell::before{
  background: var(--ds-page);
}

.site-shell::after{
  display: none;
}

/* Shared surfaces */
.glass,
.plan-card,
.table-shell,
.legal-section,
.contact-card,
.loading-card,
.checkout-modal,
.account-action,
.security-card,
.notification-card,
.status-card,
.system-page-card,
.support-category,
.support-form-card,
.support-track-box,
.support-detail,
.support-case-card,
.admin-table,
.admin-data-section,
.admin-search,
.admin-maintenance,
.admin-punishment-form,
.admin-control-panel,
.admin-compact-form,
.profile-panel,
.settings-group,
.settings-reset,
.settings-share,
.theme-presets,
.email-card,
.payment-state,
.clan-card,
.rule-card,
.online-card,
.donate-service-card,
.voucher-package,
.voucher-custom{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface);
  box-shadow: var(--ds-shadow);
  color: var(--ds-text);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.glass::before{ display: none; }

.admin-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.admin-summary-grid > article{display:grid;gap:10px;padding:18px;border-radius:var(--ds-radius-md)}
.admin-summary-grid > article > span{color:var(--ds-text-secondary);font-size:12px}
.admin-summary-grid > article > strong{color:var(--ds-text);font-size:26px}
@media(max-width:600px){.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.nav.glass,
.nav{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  box-shadow: none;
}

.nav a{
  color: var(--ds-text-secondary);
}

.nav a:not([aria-current="page"]):hover{
  color: var(--ds-text);
  background: var(--ds-surface-hover);
}

.nav a[aria-current="page"]{
  color: var(--ds-nav-active-foreground);
  background: var(--ds-nav-active);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 10px 28px color-mix(in srgb, var(--ds-nav-active) 26%, transparent);
}
.nav a[aria-current="page"]:hover{ background:var(--ds-nav-active-hover); }

.theme-toggle{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--ds-border);
  border-radius: 999px;
  color: var(--ds-text-secondary);
  background: var(--ds-surface-raised);
  cursor: pointer;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.theme-toggle:hover{
  color: var(--ds-text);
  border-color: var(--ds-border);
  background: var(--ds-surface-hover);
}

.theme-toggle:active{ transform: scale(.96); }
.theme-toggle[disabled]{ cursor: progress; opacity: .62; }
.theme-toggle-icon{
  font-family: "Segoe UI Symbol", "Noto Sans Symbols", sans-serif;
  font-size: 19px;
  line-height: 1;
}
.theme-toggle-label{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Controls */
.input,
input.input,
textarea,
select,
.rank-search,
.rule-search,
.online-search,
.clan-search{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-input);
  color: var(--ds-text);
  box-shadow: none;
}

input::placeholder,
textarea::placeholder{ color: var(--ds-text-muted); opacity: 1; }

.input:hover,
input.input:hover,
textarea:hover,
select:hover{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
}

.input:focus,
input.input:focus,
textarea:focus,
select:focus,
.rank-search:focus-within,
.rule-search:focus-within,
.online-search:focus-within,
.clan-search:focus-within{
  border-color: var(--ds-focus);
  background: var(--ds-surface-input);
  box-shadow: 0 0 0 3px var(--ds-accent-soft);
}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline: 3px solid var(--ds-focus);
  outline-offset: 3px;
}

:where(button,input,select,textarea)[disabled],
[aria-disabled="true"]{
  cursor: not-allowed;
  opacity: 1;
  filter: saturate(.65);
}

.button{
  --button-ink: var(--ds-on-accent);
  border-color: var(--ds-action);
  background: var(--ds-action);
  color: var(--ds-on-accent);
}

.button:hover:not(:disabled){
  border-color: var(--ds-action-hover);
  background: var(--ds-action-hover);
}

.play,.play.is-copied{ color:var(--ds-on-accent);background:var(--ds-action) }
.play:hover{ background:var(--ds-action-hover) }
.nav-notifications b,.voucher-package-top b{ color:var(--ds-on-accent);background:var(--ds-action) }
.button:disabled,.risk-select-trigger:disabled,.risk-select-option:disabled{
  color:var(--ds-text-muted);background:var(--ds-surface-nested);border-color:var(--ds-border-strong);opacity:1;box-shadow:none;cursor:not-allowed;
}

.button.secondary,
.button.ghost{
  --button-ink: var(--ds-text);
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  color: var(--ds-text);
}

.button.secondary:hover:not(:disabled),
.button.ghost:hover:not(:disabled){ background: var(--ds-surface-hover); }
.button[aria-busy="true"]::after,.checkout-submit[aria-busy="true"]::after{
  border-color:color-mix(in srgb,var(--button-ink,var(--ds-on-accent)) 35%,transparent);
  border-top-color:var(--button-ink,var(--ds-on-accent));
}

/* Predictable nested depth for rows, tables and empty states. */
.table-head,
.rank-row,
.member-row,
.about-line,
.detail-grid > div,
.profile-stat-grid > div,
.setting-row,
.payment-history-row,
.admin-table-row,
.admin-payment-row,
.admin-audit-row,
.admin-history-row,
.admin-staff-row,
.admin-punishment-row,
.checkout-summary > div,
.payment-details > div,
.support-admin-facts > div,
.profile-snapshot-card{
  border-color: var(--ds-border);
  background: var(--ds-surface-nested);
  color: var(--ds-text);
}

.rank-row:hover,
.member-row:hover,
.payment-history-row:hover,
.admin-table-row:hover,
.admin-payment-row:hover,
.admin-audit-row:hover,
.admin-history-row:hover{
  background: var(--ds-surface-hover);
}

.empty-state,
.admin-state,
.settings-preview.empty-state{
  border-color: var(--ds-border);
  background: var(--ds-surface-nested);
  color: var(--ds-text-secondary);
  box-shadow: none;
}

.leaderboard-sticky.glass,
.leaderboard-toolbar,
.rules-toolbar,
.online-toolbar,
.clan-toolbar,
.owner-analytics-toolbar,
.owner-analytics-tabs,
.settings-savebar{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  color: var(--ds-text);
}

.leaderboard-toolbar .button,
.online-filters button,
.clan-sort button,
.owner-analytics-tabs button{
  color: var(--ds-text-secondary);
  background: transparent;
}

.leaderboard-toolbar .button:hover,
.online-filters button:hover,
.clan-sort button:hover,
.owner-analytics-tabs button:hover{
  color: var(--ds-text);
  background: var(--ds-surface-hover);
}

.leaderboard-toolbar .button[aria-current="true"],
.online-filters button[aria-current="true"],
.clan-sort button[aria-current="true"],
.owner-analytics-tabs button[aria-current="page"]{
  border-color: var(--ds-border-strong);
  color: var(--ds-text);
  background: var(--ds-surface-hover);
}

/* Text hierarchy */
.page-title,
.section-head h2,
.panel-heading h2,
.settings-group h2,
.profile-panel h2,
.legal-section h2,
.contact-card h2,
.clan-card h2,
.rule-card h2,
.title,
.brand-name{
  color: var(--ds-text);
}

.page-lead,
.section-head p,
.settings-group-head span,
.setting-row small,
.field-hint,
.footer,
.footer-legal,
.legal-section p,
.legal-section li,
.notification-card p,
.support-case-card p,
.clan-about p,
.member-meta,
.leaderboard-meta,
.payment-history-row small{
  color: var(--ds-text-secondary);
}

.eyebrow,
.field-label,
.status-line,
.secure-note{ color: var(--ds-accent); }

.site-footer .footer{
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.modal-scrim,
.mobile-nav-scrim{ background: rgba(0,0,0,.58); }

.toast{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  color: var(--ds-text);
  box-shadow: var(--ds-shadow-raised);
}

/* Light palette corrections for legacy declarations that used literal white. */
html[data-theme="light"] .title{
  text-shadow: 0 18px 48px rgba(201,67,81,.14), 0 24px 64px rgba(28,35,48,.12);
  filter: none;
}
html[data-theme="light"] .leaderboard-sticky.glass,
html[data-theme="light"] .live-panel,
html[data-theme="light"] .donate-identity-strip,
html[data-theme="light"] .plan-card.plus,
html[data-theme="light"] .support-public-response,
html[data-theme="light"] .owner-alert{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  color: var(--ds-text);
  box-shadow: var(--ds-shadow);
}
html[data-theme="light"] .nav-notifications b{ border-color: var(--ds-surface-raised); }
html[data-theme="light"] .social svg{ fill: currentColor; }
html[data-theme="light"] .live-panel .online-count,
html[data-theme="light"] .footer strong{ color: var(--ds-text); }
html[data-theme="light"] .footer a:hover{ color: var(--ds-text); }
html[data-theme="light"] .font-asset-error{ color: var(--ds-text); }

/* Rules must not inherit the legacy white-on-dark labels in the light theme. */
html[data-theme="light"] .rules-notice strong{ color: var(--ds-text-secondary); }
html[data-theme="light"] .rule-card .rule-number{ color: var(--ds-accent); }

/* 1.2.9 interaction and contrast pass. */
:where(.legal-section,.legal-highlight,.rule-page-section,.auth-note,.support-answer,.support-event) a{ color:var(--ds-accent);text-decoration:underline;text-underline-offset:3px }
:where(.legal-section,.legal-highlight,.rule-page-section,.auth-note,.support-answer,.support-event) a:hover{ color:var(--ds-text) }
.footer,.footer-legal{ color:var(--ds-text-secondary) }
.footer > a{ color:var(--ds-text-secondary)!important }
.footer > a:hover{ color:var(--ds-text)!important }
.footer .footer-legal a,.agreement a{ color:var(--ds-accent)!important;font-weight:400;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ds-accent) 52%,transparent) }
.footer .footer-legal a:hover,.agreement a:hover{ color:var(--ds-text)!important;text-decoration-color:currentColor }
.risk-select{ position:relative;width:100%;min-width:0 }
.risk-select > select{ position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important }
.risk-select-trigger{ display:grid;grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:10px;width:100%;min-height:46px;padding:0 14px;border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-sm);color:var(--ds-text);background:var(--ds-surface-input);font:inherit;text-align:left;cursor:pointer }
.risk-select-trigger:hover{ border-color:var(--ds-focus);background:var(--ds-surface-raised) }
.risk-select-chevron{ width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease }
.risk-select.is-open .risk-select-chevron{ transform:rotate(225deg) translate(-2px,-2px) }
.risk-select-options{ position:absolute;z-index:130;top:calc(100% + 7px);left:0;right:0;display:none;max-height:min(280px,48vh);overflow:auto;padding:6px;border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-md);background:var(--ds-surface-raised);box-shadow:var(--ds-shadow-raised) }
.risk-select.is-open .risk-select-options{ display:grid;gap:3px }
.risk-select-options[popover]{ position:fixed;inset:auto;margin:0;box-sizing:border-box }
.settings-group:has(.risk-select.is-open){ overflow:visible;z-index:140 }
.risk-select-option{ min-height:42px;padding:9px 11px;border:1px solid transparent;border-radius:var(--ds-radius-sm);color:var(--ds-text-secondary);background:transparent;font:inherit;text-align:left;cursor:pointer }
.risk-select-option:hover,.risk-select-option:focus-visible{ color:var(--ds-text);background:var(--ds-surface-hover) }
.risk-select-option[aria-selected="true"]{ border-color:var(--ds-action);color:var(--ds-on-accent);background:var(--ds-action) }
.risk-select-option[aria-selected="true"]::before{ content:"✓ " }
@media (max-width:600px){.risk-select-options{position:fixed;inset:auto 12px max(12px,env(safe-area-inset-bottom));max-height:55svh;padding:9px;border-radius:var(--ds-radius-lg)}.risk-select-option{min-height:48px}}

/* 1.2.1 light-theme hierarchy. Legacy commerce rules contain dark literal
   colors, so these semantic overrides keep every nested layer in one theme. */
.site-header{
  position: relative;
  top: auto;
}

html[data-theme="light"]{
  --ds-page: #e8edf3;
  --ds-page-alt: #dfe5ec;
  --ds-surface: #f7f9fc;
  --ds-surface-raised: #ffffff;
  --ds-surface-nested: #edf1f6;
  --ds-surface-input: #ffffff;
  --ds-surface-hover: #e6ebf1;
  --ds-surface-active: #dce3eb;
  --ds-border: rgba(28,35,48,.18);
  --ds-border-strong: rgba(28,35,48,.30);
  --ds-shadow: 0 12px 30px rgba(28,35,48,.10), 0 2px 8px rgba(28,35,48,.06);
  --ds-shadow-raised: 0 18px 46px rgba(28,35,48,.15), 0 3px 10px rgba(28,35,48,.07);
}

html[data-theme="light"] .nav.glass,
html[data-theme="light"] .nav{
  background: var(--ds-surface-raised);
  box-shadow: none;
}

html[data-theme="light"] .mobile-nav-toggle{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  color: var(--ds-text);
  box-shadow: none;
}

html[data-theme="light"] .mobile-nav-current,
html[data-theme="light"] .mobile-nav-icon{ color: var(--ds-text); }

html[data-theme="light"] .mobile-nav-icon i{ background: currentColor; }

html[data-theme="light"] .donate-section{
  border-color: var(--ds-border);
}

html[data-theme="light"] .voucher-package,
html[data-theme="light"] .voucher-custom,
html[data-theme="light"] .donate-service-card,
html[data-theme="light"] .plan-card{
  border-color: var(--ds-border-strong);
  background: var(--ds-surface-raised);
  box-shadow: var(--ds-shadow);
}

html[data-theme="light"] .voucher-custom-intro,
html[data-theme="light"] .voucher-custom-field,
html[data-theme="light"] .voucher-custom-total,
html[data-theme="light"] .voucher-custom-buy,
html[data-theme="light"] .plan-feature{
  border-color: var(--ds-border);
  background: var(--ds-surface-nested);
  color: var(--ds-text-secondary);
}

html[data-theme="light"] .voucher-package > strong,
html[data-theme="light"] .voucher-package-buy > strong,
html[data-theme="light"] .plan-card h2,
html[data-theme="light"] .plan-card.plus h2,
html[data-theme="light"] .donate-identity-strip > strong{
  color: var(--ds-text);
  text-shadow: none;
}

html[data-theme="light"] .voucher-package-buy{
  border-top-color: var(--ds-border);
}

.voucher-package{
  border-color: var(--ds-border);
}

.voucher-package,
.voucher-custom,
.donate-service-card,
.plan-card) .button:disabled{
  border-color: var(--ds-border);
  background: var(--ds-surface-active);
  color: var(--ds-text-muted);
  opacity: 1;
  filter: none;
}

/* 1.2.2 canonical donate composition. Keep storefront geometry here so the
   legacy route stylesheet cannot reintroduce equal-height subscription cards. */
.donate-section .section-head{
  margin-bottom: 18px;
}

.donate-section .section-head h2{
  color: var(--ds-accent);
  font-size: clamp(26px, 2.4vw, 32px);
  line-height: 1.08;
  letter-spacing: .02em;
}

.donate-subscriptions{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
}

.plan-card,
.plan-card.plus{
  grid-template-rows: auto auto auto auto;
  align-content: start;
  min-height: 0;
  padding: 22px;
  border-radius: 12px;
  background: var(--ds-surface-raised);
  box-shadow: var(--ds-shadow);
}

.plan-card.plus{
  border-color: color-mix(in srgb, var(--ds-accent) 40%, var(--ds-border-strong));
  background: color-mix(in srgb, var(--ds-accent) 5%, var(--ds-surface-raised));
}

html[data-theme="light"] .plan-card.plus .plan-badge{
  border-color: color-mix(in srgb, var(--ds-accent) 42%, var(--ds-border));
  color: var(--ds-accent);
  background: var(--ds-accent-soft);
}

.plan-top{
  min-height: 30px;
  margin: 0 0 10px;
}

.plan-card h2,
.plan-card.plus h2{
  margin: 0 0 14px;
  color: var(--ds-text);
  font-size: clamp(32px, 3.3vw, 42px);
  line-height: 1.05;
}

.plan-features{
  display: block;
  margin: 0 0 18px;
}

.plan-feature,
html[data-theme="light"] .plan-feature{
  min-height: 0;
  padding: 7px 0;
  border: 0;
  border-bottom: 1px solid var(--ds-border);
  border-radius: 0;
  color: var(--ds-text-secondary);
  background: transparent;
  font-size: 13px;
  line-height: 1.32;
}

.plan-feature:last-child,
html[data-theme="light"] .plan-feature:last-child{
  border-bottom: 0;
}

.plan-feature::before{
  width: 6px;
  height: 6px;
  margin-top: 5px;
  background: var(--ds-accent);
  box-shadow: none;
}

.plan-controls{
  gap: 10px;
  padding-top: 16px;
  border-top-color: var(--ds-border);
}

.fixed-terms{
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  margin-top: 0;
}

.fixed-terms button{
  min-height: 42px;
  padding-inline: 4px;
  border: 1px solid var(--ds-border);
  border-radius: 9px;
  color: var(--ds-text-secondary);
  background: var(--ds-surface-raised);
  font-size: 10px;
  transform: none;
}

.fixed-terms button:hover{
  border-color: var(--ds-border-strong);
  color: var(--ds-text);
  background: var(--ds-surface-hover);
  transform: none;
}

.fixed-terms button[aria-current="true"],
.fixed-terms button[aria-current="true"]:hover{
  border-color: var(--ds-action);
  color: var(--ds-on-accent);
  background: var(--ds-action);
  box-shadow: 0 5px 14px color-mix(in srgb, var(--ds-accent) 22%, transparent);
  transform: none;
}

html[data-theme] .donate-section .button:disabled{
  border: 1px solid var(--ds-border-strong);
  color: var(--ds-text-muted);
  background: transparent;
  box-shadow: none;
  cursor: not-allowed;
  opacity: 1;
  filter: none;
}

.donate-service-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.donate-service-card{
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  align-content: center;
  align-items: stretch;
  min-height: 96px;
  gap: 9px;
  padding: 14px 16px;
  border-radius: 12px;
}

.donate-service-card h3{
  min-width: 0;
  font-size: 17px;
  line-height: 1.22;
}

.donate-service-card-footer{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.donate-service-card-footer > strong{
  color: var(--ds-accent);
  font-size: 22px;
  line-height: 1;
  text-shadow: none;
}

.donate-service-card-footer .button{
  min-width: 86px;
  min-height: 38px;
}

@media (max-width: 900px){
  .donate-subscriptions,
  .donate-service-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px){
  .plan-card,
  .plan-card.plus{
    padding: 18px;
  }

  .plan-card h2,
  .plan-card.plus h2{
    font-size: 34px;
  }

  .fixed-terms button{
    min-height: 42px;
    font-size: 9px;
  }
}

@media (max-width: 360px){
  .fixed-terms{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px){
  .theme-toggle{
    position: fixed;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    width: 52px;
    height: 52px;
    z-index: 90;
    box-shadow: var(--ds-shadow-raised);
  }
}

/* Primary navigation geometry: equal insets, no clipped active pill. */
/* Identity remains legible independently of a clan's chosen RGB colour. */
/* Shared clan badge skin for /players and ratings; the leaderboard class is layout-only. */
.clan-badge{
  color: var(--ds-text);
  background: color-mix(in srgb, var(--clan-color, var(--ds-action)) 11%, transparent);
  border: 1px solid color-mix(in srgb, var(--clan-color, var(--ds-action)) 62%, transparent);
  border-radius: 7px;
  min-height: 21px;
  height: 21px;
  padding: 0 7px;
  font-size: 8px;
  line-height: 1;
  text-shadow: none;
  transition: transform .24s var(--ease-out), background .24s var(--ease), border-color .24s var(--ease);
}
.clan-badge:hover{
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--clan-color, var(--ds-action)) 18%, transparent);
  border-color: var(--clan-color, var(--ds-action));
}
.clan-badge.is-large{
  min-height: 0;
  height: 32px;
  padding: 0 11px;
  border-radius: 10px;
  font-size: 11px;
}
.identity-mark, .rank-name .identity-mark{
  position: static;
  top: auto;
  display: inline-block;
  flex: 0 0 auto;
  min-width: 0;
  min-height: 0;
  font-size: 1em;
  font-weight: inherit;
  line-height: inherit;
  vertical-align: baseline;
  text-shadow: none;
}
.identity-mark.is-admin, .rank-name .identity-mark.is-admin{
  min-width: 1.15em;
  font-size: 1.12em;
  text-align: center;
}
.player-link, .leaderboard-name-inline{ align-items: baseline; }
.member-row .player-link.compact{ font-size: 16px; }
.about-line{
  box-sizing: border-box;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--ds-border);
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.5;
  align-items: baseline;
}
.about-line > span, .about-line > strong{
  min-width: 0;
  overflow-wrap: anywhere;
}
.about-line > strong{ flex: 0 1 60%; }
@media (max-width: 420px){
  .about-line{ flex-wrap: wrap; gap: 6px 12px; }
  .about-line > strong{ flex: 1 1 100%; text-align: left; }
}
html[data-theme="light"] .identity-mark{ color: #374151; }
html[data-theme="dark"] .identity-mark{ color: var(--ds-text); }
html[data-theme="light"] .identity-mark.is-admin{ color: #806000; }
html[data-theme="light"] .identity-mark.is-risk_plus{ color: #b52e45; }
html[data-theme="light"] .identity-mark.is-risk_plus_plus{ color: #8a5a00; }
html[data-theme="dark"] .identity-mark.is-admin{ color: #facc15; }
html[data-theme="dark"] .identity-mark.is-risk_plus{ color: #ff8191; }
html[data-theme="dark"] .identity-mark.is-risk_plus_plus{ color: #ffaa00; }
@media (min-width: 761px){
  .nav-wrap{ width: fit-content; max-width: 100%; gap: 12px; align-items: center; }
  .nav-wrap > .theme-toggle{ width: 58px; height: 58px; box-shadow: var(--ds-shadow-raised); }
  .nav-wrap > .nav{ min-width: 0; }
}
.nav.glass{ height: auto; min-height: 58px; padding: 6px; align-items: center; }
.nav a, .nav .nav-account{ height: 44px; min-height: 44px; line-height: 1.2; }
.theme-toggle[hidden]{ display: none; }
@media (max-width: 760px){
  .mobile-nav-toggle.glass{ border-radius: 999px; }
  .mobile-nav-icon{ border-radius: 50%; }
  body.nav-open .site-header{ position: sticky; top: max(8px, env(safe-area-inset-top)); left: auto; right: auto; width: 100%; max-width: 100%; }
  .nav.glass{
    border-radius: 24px;
    padding: 8px;
    min-height: 0;
    max-height: calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    align-items: stretch;
  }
  .nav a, .nav .nav-account{ height: 48px; min-height: 48px; font-size: 15px; border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *,
  *::before,
  *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

@media (forced-colors: active){
  .theme-toggle,
  .button,
  .glass,
  .empty-state{ border: 1px solid CanvasText; }
  .nav a[aria-current="page"]{ outline: 2px solid Highlight; }
}

@media print{
  :root{ color-scheme: light; }
  .theme-toggle{ display: none !important; }
}


/* Risk 1.8.8 — audited public-library, legal readability and navigation pass. */
.legal-page-hero,.legal-actions,.legal-layout,.legal-content,.legal-section,.legal-highlight,.legal-toc,.rules-grid,.rule-card,.rule-page-section,
.legal-page-hero *,.legal-actions *,.legal-layout *,.legal-content *,.legal-section *,.legal-highlight *,.legal-toc *,.rules-grid *,.rule-card *,.rule-page-section *{
  font-family:"Minecraft Rus",sans-serif!important;
}
.legal-section p,.legal-section li,.rule-card p,.rule-page-section p,.rule-page-section li{font-size:17px!important;line-height:1.78!important;letter-spacing:.01em!important}
.legal-section h2,.rule-card h2,.rule-page-section h2{font-weight:650!important;letter-spacing:-.01em!important}
.legal-highlight>div{position:relative;overflow:hidden;border-color:var(--ds-border)!important;background:var(--ds-surface-raised)!important;box-shadow:0 8px 24px color-mix(in srgb,var(--ds-page) 55%,transparent)!important}
.legal-highlight>div::before{content:"";position:absolute;inset:10px auto 10px 0;width:3px;border-radius:99px;background:var(--ds-accent)}
.legal-highlight p{font-family:"Minecraft Rus",sans-serif!important;font-size:15px!important;line-height:1.6!important;color:var(--ds-text-secondary)!important}
html[data-theme="light"] .rule-card{border-color:rgba(31,39,52,.16)!important;background:#fff!important;box-shadow:0 10px 28px rgba(31,39,52,.08)!important}
html[data-theme="light"] .rule-card p{color:#4f5a68!important}
html[data-theme="light"] .rule-card:hover{border-color:var(--ds-border-strong)!important;background:#fff!important}
html[data-theme="light"] .plan-card.plus{border-color:rgba(212,42,64,.58)!important;background:linear-gradient(145deg,#fff0f2 0%,#fff8f8 55%,#fff 100%)!important;box-shadow:0 20px 48px rgba(201,39,61,.14)!important}
html[data-theme="light"] .plan-card.plus h2{color:#c92840!important}
html[data-theme="dark"] .plan-card.plus h2{color:var(--ds-accent)!important}
html[data-theme="light"] .plan-card.plus .plan-badge{border-color:rgba(201,40,64,.28)!important;background:#ffe3e7!important;color:#b82038!important}
html[data-theme="dark"] .home-view .title .mark{color:var(--risk-brand-coral)!important;text-shadow:0 0 22px rgba(255,107,107,.24),0 20px 58px rgba(255,107,107,.16)!important;filter:none!important}


.players-summary{display:grid;grid-template-columns:minmax(180px,.32fr) minmax(260px,1fr);gap:18px;align-items:center;margin-bottom:18px;padding:20px;border-radius:20px}.players-summary>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:baseline}.players-summary span,.players-summary small{color:var(--ds-text-secondary);font-size:12px}.players-summary strong{grid-row:1/3;grid-column:1;font-size:42px;line-height:1}.players-summary>div>span,.players-summary>div>small{grid-column:2}.players-search{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:9px;min-height:48px;padding:0 14px;border:1px solid var(--ds-border-strong);border-radius:14px;background:var(--ds-surface-input)}.players-search input{width:100%;border:0;outline:0;color:var(--ds-text);background:transparent;font:inherit}.player-library{display:grid;gap:22px}.player-library-group>header{display:flex;align-items:center;justify-content:space-between;margin:0 2px 10px}.player-library-group>header>div{display:flex;align-items:center;gap:9px}.player-library-group h2{margin:0;font-size:18px}.player-library-group header>strong{color:var(--ds-text-secondary);font-size:12px}.player-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.player-library-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;min-height:72px;padding:12px;border:1px solid var(--ds-border);border-radius:16px;color:var(--ds-text);text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease}.player-library-card:hover{transform:translateY(-2px);border-color:var(--ds-border-strong);background:var(--ds-surface-hover)}.player-library-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--ds-surface-nested);font-weight:700}.player-library-card>div:nth-child(2){display:grid;gap:4px;min-width:0}.player-library-card>div:nth-child(2)>strong{overflow:hidden;text-overflow:ellipsis}.player-library-card>div:nth-child(2)>span{color:var(--ds-text-secondary);font-size:11px}.player-library-card .identity-badge{font-size:10px}.player-library-more{display:flex;justify-content:center;margin-top:18px}.status-muted{background:var(--ds-text-muted)!important}

.status-overview{grid-template-columns:repeat(2,minmax(0,1fr)) auto!important}.status-overview>div{display:grid;gap:4px}.status-overview>div>span{color:var(--ds-text-secondary);font-size:11px}.status-history{margin:14px 0 18px;padding:18px;border-radius:20px}.status-history header,.status-incidents>header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:13px}.status-history h2,.status-incidents h2{margin:3px 0 0;font-size:20px}.status-history header small{color:var(--ds-text-secondary);font-size:10px}.status-days{display:grid;grid-template-columns:repeat(30,minmax(4px,1fr));gap:4px;height:34px}.status-day{display:block;min-width:4px;border-radius:4px;background:var(--ds-surface-active)}.status-day-good{background:#29a56c}.status-day-warn{background:#d89a32}.status-day-bad{background:var(--ds-accent)}.status-day-unknown{background:var(--ds-surface-active)}.status-incidents{display:grid;gap:9px;margin-top:24px}.status-incident{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:15px 17px;border-radius:16px}.status-incident>div:first-child{display:flex;align-items:center;gap:10px}.status-incident>div:first-child>div{display:grid;gap:3px}.status-incident small,.status-incident p{margin:0;color:var(--ds-text-secondary);font-size:11px}.status-incident>b{font-size:11px}.status-clean{display:grid;gap:5px;padding:18px;border-radius:16px}.status-clean span{color:var(--ds-text-secondary);font-size:12px}

.admin-social-links{display:grid;gap:12px}.admin-social-links input[type="url"]{width:100%;min-height:46px;padding:0 13px;border:1px solid var(--ds-border-strong);border-radius:12px;color:var(--ds-text);background:var(--ds-surface-input);font:inherit}

@media (min-width:961px){
  .account-layout{display:block!important;min-height:calc(100vh - 150px)}
  .account-layout>.account-nav{position:fixed!important;z-index:88;inset:0 auto 0 0;width:clamp(248px,22vw,310px)!important;max-height:none!important;margin:0!important;padding:94px 18px 24px!important;border-width:0 1px 0 0!important;border-radius:0 24px 24px 0!important;overflow-y:auto!important;background:var(--ds-surface-raised)!important;box-shadow:18px 0 56px rgba(0,0,0,.14)!important}
  .account-layout>.account-main{width:calc(100% - clamp(248px,22vw,310px));margin-left:clamp(248px,22vw,310px);padding-left:24px}
  .account-layout>.account-nav::after{content:"";position:fixed;z-index:-1;inset:0 auto 0 clamp(248px,22vw,310px);width:72px;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.08),transparent)}
}
@media (max-width:960px){
  .account-mobile-menu[open],.admin-mobile-menu[open]{position:fixed!important;z-index:220!important;inset:0 auto 0 0!important;width:min(88vw,360px)!important;height:100dvh!important;margin:0!important;padding:18px!important;border-radius:0 22px 22px 0!important;overflow-y:auto!important;background:var(--ds-surface-raised)!important;box-shadow:24px 0 70px rgba(0,0,0,.30)!important}
  .account-mobile-menu[open]::before,.admin-mobile-menu[open]::before{content:"";position:fixed;z-index:-2;inset:0;background:rgba(4,7,12,.62);backdrop-filter:blur(3px)}
  .account-mobile-menu[open]::after,.admin-mobile-menu[open]::after{content:"";position:absolute;z-index:-1;inset:0;border-radius:0 22px 22px 0;background:var(--ds-surface-raised)}
}
@media (max-width:600px){.player-library-grid{grid-template-columns:1fr}.players-summary strong{font-size:36px}.status-days{gap:2px}.status-incident{grid-template-columns:1fr auto}.status-incident p{grid-column:1/-1}}

/* 1.9.2: canonical mobile layout for fixed voucher packages. */
.voucher-package-top:empty{ display:none; }

@media (max-width: 520px){
  .voucher-packages{ grid-template-columns: 1fr; }
  .voucher-package{
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: auto auto auto;
    align-items: stretch;
    min-width: 0;
    min-height: 0;
    gap: 4px;
    padding: 14px;
  }
  .voucher-package > strong{ grid-column:1; grid-row:1; min-width:0; margin:0; }
  .voucher-package > small{ grid-column:1; grid-row:2; }
  .voucher-package > .voucher-package-buy:nth-of-type(2){
    grid-column:1;
    grid-row:3;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    width:100%;
    min-width:0;
    margin:11px 0 0;
    padding:12px 0 0;
    border-top:1px solid var(--ds-border);
  }
  .voucher-package-buy > strong{ min-width:0; overflow-wrap:anywhere; text-align:left; font-size:20px; }
  .voucher-package .button{ grid-column:auto; grid-row:auto; width:auto; min-width:88px; max-width:100%; }
}

.player-library-clan{display:flex!important;align-items:center;gap:6px;color:var(--ds-text-secondary);font-size:10px!important;min-width:0}.player-library-clan .clan-badge{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 1.9.6: final cross-route spacing, identity links and responsive polish. */
:root{
  --risk-brand-coral:var(--ds-accent);
  --layout-gap:clamp(14px,1.6vw,22px);
  --layout-gap-lg:clamp(20px,2.5vw,32px);
}

/* Keep one predictable vertical rhythm on every public and account route. */
.content-view{
  padding-block:clamp(32px,4vw,62px) clamp(42px,5vw,70px);
}
.page-content{
  display:grid;
  gap:var(--layout-gap-lg);
}
.page-content > *,
.account-main > *,
.admin-main > *{
  min-width:0;
  margin-block-start:0;
  margin-block-end:0;
}
.account-main,
.admin-main{
  display:grid;
  align-content:start;
  gap:var(--layout-gap-lg);
}
.page-content > .page-hero,
.account-main > .page-hero,
.admin-main > .page-hero,
.legal-page-hero .page-hero{
  gap:12px;
  margin:0;
  padding-bottom:18px;
}
.page-content > .page-hero.is-compact,
.account-main > .page-hero.is-compact,
.admin-main > .page-hero.is-compact,
.legal-page-hero .page-hero.is-compact{
  padding-bottom:0;
  border-bottom:0;
}
.page-content > .profile-back,
.account-main > .profile-back,
.admin-main > .profile-back{
  margin:0;
}
.page-section{
  gap:var(--layout-gap);
  margin:0;
}
.section-head,
.section-heading{
  gap:8px;
}
.profile-back{ margin:0; }
.rules-tools,
.rules-notice,
.legal-actions,
.players-summary,
.player-library-more,
.status-history,
.status-incidents,
.status-overview,
.profile-stat-grid,
.clan-progression,
.player-details,
.profile-showcase,
.profile-insight-grid,
.profile-insight-columns,
.profile-public-grid,
.support-principles,
.support-category-grid,
.support-form-card,
.support-track-box,
.support-detail,
.support-timeline,
.support-account-actions{
  margin-top:0;
  margin-bottom:0;
}
.leaderboard-section,
.rules-grid,
.legal-layout,
.legal-content,
.contacts-grid,
.online-grid,
.clans-grid,
.status-grid,
.profile-columns,
.profile-insight-grid{
  gap:var(--layout-gap);
}
.legal-highlight{
  gap:var(--layout-gap);
  margin:0;
}
.rule-page-layout,
.rule-page-content{
  gap:var(--layout-gap);
}
.related-rules{ margin-top:0; }
.rules-tools,
.leaderboard-sticky{ margin-bottom:0; }

/* The project mark is part of the brand, not a user-selectable accent. */
.home-view .title,
.home-view .title .mark{
  color:var(--risk-brand-coral)!important;
  filter:none!important;
  text-shadow:0 18px 48px rgba(255,107,107,.18),0 24px 64px rgba(28,35,48,.12)!important;
}
.home-view .play,
.home-view .play.is-copied{
  background:var(--risk-brand-coral)!important;
  border-color:var(--risk-brand-coral)!important;
}
.home-view .play:hover:not(:disabled){
  background:#ff8585!important;
  border-color:var(--ds-border-strong)!important;
}

/* Voucher cards use one hierarchy; no decorative corner blocks or audience labels. */
.voucher-package-top,
.voucher-package::after{
  display:none!important;
}
.voucher-package{
  grid-template-rows:auto auto auto;
  gap:8px;
  min-height:0;
}
.voucher-package > strong{
  min-width:0;
  margin:0;
  line-height:1;
}
.voucher-package > small{
  min-width:0;
  line-height:1.35;
}
.voucher-package-buy{
  grid-column:auto!important;
  grid-row:auto!important;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  width:100%;
  min-width:0;
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid var(--ds-border);
}
.voucher-package-buy > strong{
  min-width:0;
  overflow-wrap:anywhere;
  text-align:left;
}
.voucher-package-buy .button{
  width:auto;
  min-width:96px;
  max-width:100%;
}

/* A player row is a group; its name and clan are separate, unambiguous links. */
.rank-row[role="group"]{ cursor:default; }
.rank-name,
.leaderboard-name-inline,
.leaderboard-player-link{
  min-width:0;
  max-width:100%;
}
.rank-name{ white-space:normal; }
.leaderboard-name-inline,
.leaderboard-player-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.leaderboard-name-inline{ overflow:hidden; }
.leaderboard-player-link{
  color:var(--ds-text);
  text-decoration:none;
}
.leaderboard-player-link > span:first-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.leaderboard-player-link:hover > span:first-child,
.leaderboard-player-link:focus-visible > span:first-child{
  color:var(--ds-text);
}
.leaderboard-clan-tag{
  flex:0 0 auto;
  max-width:min(120px,30vw);
}

/* Summary facts remain independent cards on narrow account layouts. */
.account-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.account-summary > .account-fact{
  min-width:0;
  min-height:104px;
  padding:16px;
  display:grid;
  align-content:space-between;
  gap:10px;
  border:1px solid var(--ds-border);
  border-radius:16px!important;
  background:var(--ds-surface-nested);
}
.account-summary > .account-fact > span{
  color:var(--ds-text-secondary);
  font-size:11px;
  line-height:1.2;
}
.account-summary > .account-fact > strong{
  display:block;
  min-width:0;
  color:var(--ds-text);
  line-height:1.2;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.account-summary .is-subscription > strong{ color:var(--ds-text-secondary); }
.account-summary .is-subscription.none > strong{ color:var(--ds-text-secondary); }
.account-summary .is-subscription.risk_lite > strong{ color:var(--ds-success); }
.account-summary .is-subscription.risk_plus > strong{ color:var(--ds-danger); }
.account-summary .is-subscription.risk_plus_plus > strong{ color:var(--ds-risk-plus-plus); }
.account-summary .is-email > strong{ font-size:clamp(12px,1.3vw,17px); }

/* Session termination belongs to the card footer, like the other security actions. */
.security-session-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:180px;
}
.security-session-card > p{ margin:0; }
.security-session-card > .button{
  align-self:flex-start;
  margin-top:auto;
}

.security-card{
  min-width:0;
  overflow:hidden;
}
.security-card > strong{
  line-height:1.25;
}
.security-card form{
  display:grid;
  gap:12px;
  min-width:0;
  margin:0;
}
.security-card form + form{
  padding-top:14px;
  border-top:1px solid var(--ds-border);
}
.security-card form label{
  display:grid;
  gap:7px;
  min-width:0;
}
.security-card form .input,
.security-card form textarea{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.security-card form .button{
  width:max-content;
  max-width:100%;
}
.security-mfa-setup{
  display:grid;
  gap:18px;
  min-width:0;
  margin-top:2px;
  padding-top:16px;
  border-top:1px solid var(--ds-border);
}
.security-mfa-enrollment{
  display:grid;
  grid-template-columns:minmax(0,256px) minmax(0,1fr);
  align-items:start;
  gap:16px;
}
.security-mfa-enrollment > *{
  min-width:0;
}
.security-mfa-enrollment code{
  overflow-wrap:anywhere;
}
.security-mfa-qr{
  width:100%;
  max-width:256px;
  box-sizing:border-box;
}
.security-mfa-qr img{
  max-width:100%;
  height:auto;
}

/* Give clans and players distinct visual anchors without changing their data. */
.clan-profile-hero{
  border-top:3px solid var(--clan-color,var(--ds-accent));
}
.player-profile-hero{
  border-left:3px solid var(--profile-accent,var(--ds-accent));
}

@media (max-width:900px){
  .account-summary{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px){
  .content-view{ padding-block:28px 48px; }
  .page-content,
  .account-main,
  .admin-main{ gap:var(--layout-gap); }
  .page-content > .page-hero,
  .account-main > .page-hero,
  .admin-main > .page-hero,
  .legal-page-hero .page-hero{ padding-bottom:14px; }
  .account-actions{ gap:var(--layout-gap); }
  .voucher-package{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto auto;
    gap:6px;
  }
  .voucher-package-buy{
    grid-column:1!important;
    grid-row:3!important;
    align-items:center;
    margin-top:10px;
  }
  .voucher-package-buy .button{ width:100%; }
  .security-session-card{ min-height:156px; }
  .leaderboard-name-inline{ gap:5px; }
  .leaderboard-clan-tag{ max-width:30vw; }
}
@media (max-width:480px){
  .account-summary{ grid-template-columns:1fr; }
  .account-summary > .account-fact{ min-height:82px; }
  .account-summary .is-email > strong{ font-size:15px; }
}


/* 1.9.6 UI cleanup: shared Risk accent and /players-style rating badges. */
:root,
html[data-theme="dark"]{
  --risk-brand-coral: var(--ds-accent);
  --ds-nav-active: var(--ds-accent);
  --ds-nav-active-hover: var(--ds-accent-hover);
  --ds-nav-active-foreground: var(--ds-on-accent);
}
html[data-theme="light"]{
  --risk-brand-coral: var(--ds-accent);
  --ds-nav-active: var(--ds-accent);
  --ds-nav-active-hover: var(--ds-accent-hover);
  --ds-nav-active-foreground: var(--ds-on-accent);
}
.nav a[aria-current="page"]{
  color: var(--ds-nav-active-foreground);
  background: linear-gradient(135deg, var(--ds-accent), var(--ds-accent-hover));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 10px 28px color-mix(in srgb, var(--ds-accent) 26%, transparent);
}
.nav a[aria-current="page"]:hover{
  background: linear-gradient(135deg, var(--ds-accent-hover), var(--ds-accent));
}
.home-view .title,
.home-view .title .mark{
  color: var(--ds-accent)!important;
  filter: none!important;
  text-shadow: 0 18px 48px var(--ds-accent-soft), 0 24px 64px rgba(0,0,0,.12)!important;
}
.home-view .play,
.home-view .play.is-copied{
  color: var(--ds-on-accent)!important;
  background: linear-gradient(135deg, var(--ds-accent), var(--ds-accent-hover))!important;
  border-color: transparent!important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 10px 30px color-mix(in srgb, var(--ds-accent) 30%, transparent)!important;
}
.home-view .play:hover:not(:disabled){
  color: var(--ds-on-accent)!important;
  background: linear-gradient(135deg, var(--ds-accent-hover), var(--ds-accent))!important;
  border-color: transparent!important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.32), 0 13px 34px color-mix(in srgb, var(--ds-accent) 38%, transparent), 0 0 0 1px rgba(255,255,255,.08)!important;
}

/* RiskSMP site release composition. This source is appended to the canonical
   design-system.css by site/release/build-web.sh so production keeps the
   existing CSP/static-asset allowlist while the release layer stays small. */

/* Home: one clear primary action, then compact icon-first social cubes. */
.home-view .actions{
  display:grid;
  justify-items:center;
  gap:18px;
  width:min(100%,340px);
  margin-top:clamp(18px,3vh,28px);
}
.home-view .play{
  width:min(100%,320px);
  min-width:0;
  height:72px;
  padding-inline:34px;
  border-radius:22px;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:4px;
  color:var(--ds-on-accent)!important;
  font-size:0;
  box-shadow:0 16px 38px color-mix(in srgb,var(--ds-action) 30%,transparent),inset 0 1px 0 rgba(255,255,255,.20);
}
.home-view .play::before{
  content:"Играть";
  position:static;
  inset:auto;
  display:block;
  z-index:2;
  color:var(--ds-on-accent);
  background:none;
  opacity:1;
  transform:none;
  transition:none;
  font-size:24px;
  line-height:1;
  pointer-events:none;
}
.socials-block{
  display:grid;
  justify-items:center;
  gap:10px;
  width:min(100%,230px);
}
.home-view .socials{
  display:grid;
  grid-template-columns:repeat(3,58px);
  justify-content:center;
  gap:12px;
  width:auto;
}
.home-view .social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  padding:0;
  border-radius:20px;
  color:var(--ds-text);
  font-size:0;
}
.home-view .social span{display:none}
.home-view .social svg{width:25px;height:25px;flex:0 0 auto}
.home-view .license-note{display:none!important}

/* Checkout: themed translucent surface instead of a black sheet. */
body.modal-open{background:var(--ds-page)!important}
.modal-scrim{
  background:color-mix(in srgb,var(--ds-page) 66%,transparent)!important;
  backdrop-filter:blur(16px) saturate(112%)!important;
  -webkit-backdrop-filter:blur(16px) saturate(112%)!important;
}
html[data-theme="light"] .modal-layer[data-checkout-layer] .modal-scrim{
  background:var(--ds-page)!important;
}
.checkout-modal,
html[data-theme="light"] .checkout-modal,
html[data-theme="dark"] .checkout-modal{
  border-color:transparent!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.checkout-summary>div,
.checkout-auth-required,
.payment-state,
.payment-details>div{
  border-color:var(--ds-border)!important;
  background:color-mix(in srgb,var(--ds-surface-nested) 88%,transparent)!important;
  color:var(--ds-text)!important;
}
.checkout-modal .input,
.checkout-modal select{
  border-color:var(--ds-border-strong)!important;
  background:var(--ds-surface-input)!important;
  color:var(--ds-text)!important;
}
.checkout-modal .field-hint,
.checkout-modal .agreement,
.payment-state p{color:var(--ds-text-secondary)!important}
.checkout-modal .form-error{color:var(--ds-danger)!important}

/* Account: compact desktop rail; main content owns the page width. */
@media (min-width:1051px){
  .account-layout{
    display:grid!important;
    grid-template-columns:240px minmax(0,1fr)!important;
    gap:20px!important;
    min-height:0!important;
    align-items:start!important;
  }
  .account-layout>.account-nav{
    position:sticky!important;
    inset:auto!important;
    top:92px!important;
    width:auto!important;
    max-height:calc(100dvh - 116px)!important;
    margin:0!important;
    padding:10px!important;
    border:1px solid var(--ds-border)!important;
    border-radius:16px!important;
    overflow-y:auto!important;
    background:var(--ds-surface-raised)!important;
    box-shadow:var(--ds-shadow)!important;
  }
  .account-layout>.account-main{
    width:auto!important;
    min-width:0!important;
    margin-left:0!important;
    padding-left:0!important;
  }
  .account-layout>.account-nav::after{display:none!important}
  .account-nav-title{
    gap:2px!important;
    margin:0 0 5px!important;
    padding:7px 9px 10px!important;
  }
  .account-nav-title span{display:none!important}
  .account-nav-title strong{font-size:13px!important}
  .account-nav a,
  .account-nav button{
    min-height:38px!important;
    height:auto!important;
    padding:7px 10px!important;
    border-radius:10px!important;
    font-size:12px!important;
    line-height:1.25!important;
  }
  .account-mobile-menu{display:none!important}
}

/* Phones and tablets use an on-demand drawer, never a persistent sidebar. */
@media (max-width:1050px){
  .account-layout{display:block!important;grid-template-columns:1fr!important;padding-top:0!important}
  .account-desktop-nav{display:none!important}
  .account-mobile-menu{
    display:block!important;
    position:relative!important;
    margin:0 0 16px!important;
    padding:0!important;
    border-radius:14px!important;
    background:var(--ds-surface-raised)!important;
  }
  .account-mobile-menu>summary{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:48px!important;
    padding:0 14px!important;
    cursor:pointer!important;
    list-style:none!important;
  }
  .account-mobile-menu>summary::-webkit-details-marker{display:none}
  .account-mobile-menu>summary span,
  .account-mobile-menu>summary small{display:none!important}
  .account-mobile-menu>summary strong{font-size:13px!important;font-weight:400!important}
  .account-mobile-menu>summary::after{content:"Меню";color:var(--ds-text-muted);font-size:11px}
  .account-mobile-menu[open]{
    position:fixed!important;
    z-index:220!important;
    inset:0 auto 0 0!important;
    width:min(86vw,320px)!important;
    height:100dvh!important;
    margin:0!important;
    padding:16px!important;
    border-radius:0 18px 18px 0!important;
    overflow-y:auto!important;
    background:var(--ds-surface-raised)!important;
    box-shadow:var(--ds-shadow-raised)!important;
  }
  .account-mobile-menu[open]::before{
    content:"";
    position:fixed;
    z-index:-2;
    inset:0;
    background:color-mix(in srgb,var(--ds-page) 64%,transparent)!important;
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
  }
  .account-mobile-menu[open]::after{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    border-radius:0 18px 18px 0;
    background:var(--ds-surface-raised);
  }
  .account-mobile-menu[open]>summary{margin-bottom:10px;border-bottom:1px solid var(--ds-border)}
  .account-mobile-menu nav{display:grid!important;gap:4px!important}
  .account-mobile-menu nav a,
  .account-mobile-menu nav button{min-height:42px!important;padding:8px 10px!important;border-radius:10px!important;font-size:12px!important}
}

/* Public player profiles remain a wide public page, not an account shell. */
.profile-back{margin-bottom:14px}
.profile-back a{color:var(--ds-text-secondary);text-decoration:none}
.profile-back a:hover{color:var(--ds-text)}
.player-profile-hero{padding:clamp(20px,3vw,30px)!important;border-radius:18px!important}
.player-profile-hero+.profile-stat-grid{margin-top:12px}
.player-details,.profile-showcase{margin-top:14px!important}
.profile-public-grid{gap:12px!important}
.profile-top-history .eyebrow{display:none!important}

@media (max-width:600px){
  .home-view .actions{width:min(100%,270px);gap:14px}
  .home-view .play{height:66px;font-size:0}
  .home-view .play::before{font-size:22px}
  .socials-block{width:min(100%,220px)}
  .home-view .socials{grid-template-columns:repeat(3,54px);gap:10px}
  .home-view .social{width:54px;height:54px;border-radius:18px}
  .home-view .social svg{width:23px;height:23px}
  .checkout-modal{padding:18px!important}
}

/* 1.9.6 visual consistency pass: stable grids, readable identity badges and
   distinct public player/clan surfaces. This file is appended after the
   legacy route stylesheet by the release build. */

/* Header identity: active navigation, account/login and theme controls have
   a quiet outline so they do not depend on a heavy shadow for emphasis. */
.nav.glass{
  border-color:color-mix(in srgb,var(--ds-text) 18%,var(--ds-border-strong))!important;
}
.nav a.nav-account,
.nav a[data-auth-nav]{
  border:1px solid color-mix(in srgb,var(--ds-accent) 34%,var(--ds-border-strong));
  background:color-mix(in srgb,var(--ds-accent) 8%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-text) 4%,transparent);
  color:var(--ds-text)!important;
}
.nav a.nav-account:hover,
.nav a[data-auth-nav]:hover,
.nav a.nav-account[aria-current="page"],
.nav a[data-auth-nav][aria-current="page"]{
  border-color:var(--ds-accent);
  background:var(--ds-accent-soft);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ds-accent) 22%,transparent);
}
.theme-toggle{border:1px solid var(--ds-border-strong)!important;box-shadow:none!important}

/* Home brand lockup: centered vertical composition with clear proportions. */
.home-view .hero-inner{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:"title" "meta" "actions";
  justify-items:center;
  align-content:center;
  width:min(100%,920px);
  min-height:0;
}
.home-view .title-wrap{
  grid-area:title;
  justify-self:center;
  align-self:center;
}
.home-view .title{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  font-size:clamp(92px,25vw,180px);
  line-height:.78;
  letter-spacing:-.05em;
}
.home-view .server-meta{
  grid-area:meta;
  justify-self:center;
  align-self:center;
  margin-top:0;
}
.home-view .actions{
  grid-area:actions;
  display:grid;
  justify-items:center;
  align-self:center;
  width:min(100%,340px);
  margin-top:clamp(22px,4vh,38px);
  gap:clamp(12px,2.2vh,20px);
}
.home-view .socials-block{ width:auto; }
.home-view .socials{
  grid-template-columns:repeat(3,clamp(46px,3.6vw,56px));
  gap:clamp(8px,1vw,12px);
}
.home-view .social{
  width:clamp(46px,3.6vw,56px);
  height:clamp(46px,3.6vw,56px);
  border-radius:clamp(14px,1.35vw,18px);
  min-width:48px;
  min-height:48px;
}
.home-view .social svg{
  width:clamp(20px,1.7vw,25px);
  height:clamp(20px,1.7vw,25px);
}
.home-view .play{
  width:min(100%,300px);
  min-width:0;
  height:clamp(62px,5vw,76px);
  min-height:66px;
  border-radius:clamp(18px,1.7vw,22px);
}
.home-view .play::before{ font-size:clamp(22px,2vw,28px); }
@media (min-width:861px){
  .home-view .title{ font-size:clamp(148px,20vw,280px); }
}
@media (max-width:860px){
  .home-view .hero-inner{ width:min(100%,680px); }
  .home-view .actions{ width:min(100%,300px); margin-top:clamp(20px,4vh,32px); }
  .home-view .socials{ grid-template-columns:repeat(3,50px); gap:10px; }
  .home-view .social{ width:50px; height:50px; border-radius:16px; }
  .home-view .social svg{ width:22px; height:22px; }
  .home-view .play{ width:min(100%,260px); height:66px; }
  .home-view .play::before{ font-size:22px; }
}
/* The homepage is a fixed brand surface: the logo and play action use one
   bright coral in both themes and never inherit an account accent. */
.home-view .title,
.home-view .title .mark{
  color:#ff7975!important;
  text-shadow:0 18px 48px rgba(255,121,117,.24),0 24px 64px rgba(28,35,48,.12)!important;
}
.home-view .play,
.home-view .play.is-copied{
  background:#ff7975!important;
  border-color:#ff7975!important;
}
.home-view .play:hover:not(:disabled){
  background:#ff9994!important;
  border-color:#ff9994!important;
}
.home-view .license-note{display:none!important}

/* Identity tokens. Admin is deliberately different from subscription pluses;
   Risk Lite remains a green plus in every website surface and theme. */
.identity-mark{display:inline-grid!important;place-items:center;min-width:1.1em;padding-inline:1px;font-weight:700;line-height:1;color:var(--identity-color,var(--ds-text))!important;text-shadow:0 0 9px color-mix(in srgb,var(--identity-color,var(--ds-text)) 35%,transparent)}
.identity-mark.is-admin{color:#c08d00!important;text-shadow:0 0 10px rgba(250,204,21,.34)}
.identity-mark.is-risk_lite{color:#338b5c!important}
.identity-mark.is-risk_plus{color:#c83c4e!important}
.identity-mark.is-risk_plus_plus{color:#9b6800!important}
html[data-theme="dark"] .identity-mark.is-admin{color:#facc15!important}
html[data-theme="dark"] .identity-mark.is-risk_lite{color:#70c996!important}
html[data-theme="dark"] .identity-mark.is-risk_plus{color:#ff8191!important}
html[data-theme="dark"] .identity-mark.is-risk_plus_plus{color:#ffaa00!important}

/* Store cards use real tier colors instead of the same white surface. */
.plan-card.risk-lite{
  border-color:color-mix(in srgb,var(--ds-success) 48%,var(--ds-border-strong));
  background:linear-gradient(145deg,color-mix(in srgb,var(--ds-success) 11%,var(--ds-surface-raised)),var(--ds-surface-raised) 58%);
}
.plan-card.risk-lite h2,.plan-card.risk-lite .plan-badge{color:var(--ds-success)}
.plan-card.risk-lite .plan-badge{border-color:color-mix(in srgb,var(--ds-success) 38%,var(--ds-border));background:color-mix(in srgb,var(--ds-success) 10%,var(--ds-surface-nested))}
.plan-card.risk-plus-plus{
  border-color:color-mix(in srgb,var(--ds-risk-plus-plus) 58%,var(--ds-border-strong));
  background:linear-gradient(145deg,color-mix(in srgb,var(--ds-risk-plus-plus) 11%,var(--ds-surface-raised)),var(--ds-surface-raised) 60%);
}
.plan-card.risk-plus-plus h2{color:var(--ds-risk-plus-plus)}
.plan-card.risk-plus-plus .plan-badge{border-color:color-mix(in srgb,var(--ds-risk-plus-plus) 50%,var(--ds-border));color:var(--ds-risk-plus-plus);background:color-mix(in srgb,var(--ds-risk-plus-plus) 12%,var(--ds-surface-nested))}
html[data-theme="light"] .plan-card.risk-lite{background:linear-gradient(145deg,#edf9f1 0%,#f8fcf9 60%,#fff 100%)!important}
html[data-theme="light"] .plan-card.risk-lite h2{color:#267b4d!important}
html[data-theme="light"] .plan-card.risk-plus-plus{background:linear-gradient(145deg,#fff8e7 0%,#fffdf7 60%,#fff 100%)!important}
html[data-theme="light"] .plan-card.risk-plus-plus h2{color:#8a5a00!important}
html[data-theme="light"] .plan-card.risk-plus-plus .plan-badge{color:#8a5a00!important;background:#fff5d9!important;border-color:rgba(138,90,0,.36)!important}

/* Ratings: one row, four predictable columns. The clan tag is a span in
   rank rows, so no nested anchor can collapse the table. */
.leaderboard-section{min-width:0;gap:16px}
.table-shell{width:100%;min-width:0;overflow:hidden}
.table-head,.rank-row{grid-template-columns:minmax(52px,.12fr) minmax(0,1fr) minmax(54px,.14fr) minmax(108px,.24fr)!important;gap:14px;min-width:0}
.table-head{min-height:48px;align-items:center}
.rank-row{min-height:64px;padding-inline:18px}
.rank-name{min-width:0;overflow:hidden}
.leaderboard-name-inline{display:flex;width:100%;min-width:0;align-items:center;gap:7px}
.leaderboard-name-inline>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leaderboard-clan-tag{flex:0 1 auto;min-width:0;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-score{min-width:0;overflow-wrap:anywhere}

/* Vouchers: remove decorative button spill and give both package types a
   common vertical rhythm. */
.donate-vouchers{display:grid;gap:18px}
.donate-vouchers>.voucher-packages{margin-top:0}
.voucher-packages{align-items:stretch;gap:14px}
.voucher-package{grid-template-rows:auto auto auto 1fr;min-height:204px;padding:18px;gap:8px;overflow:hidden}
.voucher-package-buy{margin-top:auto;padding-top:14px;border-top:1px solid var(--ds-border);gap:10px}
.voucher-package-buy .button{min-height:42px;border-radius:10px;box-shadow:none!important;overflow:hidden;position:relative}
.voucher-package-buy .button::before,.voucher-package-buy .button::after{display:none!important;content:none!important}
.voucher-custom{grid-template-columns:minmax(280px,1.35fr) minmax(160px,.72fr) minmax(190px,.82fr) minmax(130px,.45fr);gap:14px;align-items:stretch;margin-top:0;padding:18px}
.voucher-custom-intro,.voucher-custom-field,.voucher-custom-total,.voucher-custom-buy{min-width:0;padding:16px;border:1px solid var(--ds-border);border-radius:14px;background:var(--ds-surface-nested)}
.voucher-custom-intro{display:grid;align-content:start;gap:8px}
.voucher-custom-intro p{margin:0;line-height:1.5}
.voucher-custom-field,.voucher-custom-total,.voucher-custom-buy{align-content:center}
.voucher-custom-buy{display:grid;gap:9px;justify-items:stretch}
.voucher-custom-buy>strong{text-align:left}

/* Account facts are separate, bounded cells rather than one crowded text
   line; the responsive rule below keeps email/clan values inside their cell. */
.account-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;overflow:hidden;border-radius:16px}
.account-fact{display:grid;gap:9px;min-width:0;min-height:112px;padding:18px;border-right:1px solid var(--ds-border);align-content:center}
.account-fact:last-child{border-right:0}
.account-fact>span{color:var(--ds-text-secondary);font-size:11px}
.account-fact>strong{min-width:0;overflow-wrap:anywhere;color:var(--ds-text);font-size:18px;font-weight:600}
.account-fact.is-subscription>strong{color:var(--ds-accent)}
.account-fact.is-level>strong{font-size:28px}
.account-fact .clan-badge{max-width:100%;width:max-content}
.account-actions{gap:14px!important}
.account-action{min-width:0;min-height:112px;padding:18px!important;border-radius:14px!important}
.account-action>strong,.account-action>span{min-width:0;overflow-wrap:anywhere}

/* Public player and clan pages intentionally share spacing, but not the
   visual language: clans use an accent rail and roster-oriented stats; player
   profiles use a calmer identity panel and subscription side cards. */
.clan-profile-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.32fr);min-height:250px;padding:30px;border-left:4px solid var(--clan-color,var(--ds-accent));background:linear-gradient(120deg,color-mix(in srgb,var(--clan-color,var(--ds-accent)) 9%,var(--ds-surface-raised)),var(--ds-surface-raised) 64%)}
.clan-profile-title{min-width:0;max-width:none}
.clan-profile-title h1{overflow-wrap:anywhere}
.clan-profile-status{align-self:center}
.clan-profile-hero+.profile-stat-grid{margin-top:14px}
.clan-profile-hero~.profile-panel,.clan-profile-hero~.clan-progression{border-top:2px solid color-mix(in srgb,var(--clan-color,var(--ds-accent)) 42%,var(--ds-border))}
.player-profile-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.42fr);min-height:235px;padding:30px!important;border-top:3px solid color-mix(in srgb,var(--profile-accent,var(--ds-accent)) 70%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--profile-accent,var(--ds-accent)) 5%,var(--ds-surface-raised)),var(--ds-surface-raised) 58%)}
.player-profile-hero h1{overflow-wrap:anywhere}
.profile-side-cards{min-width:0}
.subscription-card{min-width:0}
.profile-stat-grid,.detail-grid,.profile-snapshot-grid{gap:14px}
.profile-stat-grid>div,.detail-grid>div,.profile-snapshot-card{min-width:0;min-height:96px;padding:17px;border-radius:14px}
.profile-stat-grid strong,.detail-grid strong{overflow-wrap:anywhere}

/* Rules and code blocks: keep notices close to content and give long values
   their own scrollable surface instead of squeezing neighboring columns. */
.rules-notice{margin:0 0 16px!important;padding:0 2px!important;min-height:0!important}
.rules-notice+*{margin-top:0!important}
.rules-grid,.legal-layout{gap:14px}
pre,.code-block,.code-panel,.code-example{max-width:100%;overflow:auto;padding:16px;line-height:1.55;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-surface-nested);white-space:pre-wrap;overflow-wrap:anywhere}

/* Honest history: unknown means no recorded snapshot, not downtime or a
   guessed success. The observed count is exposed through the tooltip/ARIA. */
.status-history{min-width:0}
.status-days{min-width:0;gap:5px}
.status-day{min-width:0;height:34px;border-radius:5px}
.status-day-unknown{background:repeating-linear-gradient(135deg,var(--ds-surface-active) 0 5px,color-mix(in srgb,var(--ds-surface-active) 62%,var(--ds-border)) 5px 7px)!important;border:1px dashed var(--ds-border-strong)}

@media (max-width:900px){
  .voucher-custom{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clan-profile-hero,.player-profile-hero{grid-template-columns:1fr;min-height:0}
  .clan-profile-status{justify-items:start}
  .profile-side-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .table-head,.rank-row{grid-template-columns:42px minmax(0,1fr) minmax(72px,auto)!important;gap:9px}
  .table-head>span:nth-child(3),.rank-row>.rank-trend{display:none}
  .rank-row{min-height:58px;padding-inline:12px}
  .rank-score{font-size:11px}
  .account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .account-fact:nth-child(2){border-right:0}
  .account-fact:nth-child(-n+2){border-bottom:1px solid var(--ds-border)}
  .profile-side-cards{grid-template-columns:1fr}
}
@media (max-width:520px){
  .voucher-custom{grid-template-columns:1fr;padding:12px}
  .voucher-package{min-height:0}
  .voucher-package-buy{grid-template-columns:minmax(0,1fr) auto!important}
  .voucher-package-buy .button{width:auto;min-width:96px}
  .account-fact{min-height:96px;padding:14px}
  .account-fact>strong{font-size:15px}
  .account-fact.is-level>strong{font-size:24px}
  .rules-notice{margin-bottom:12px!important}
}

/* 1.9.6 final overlay: this file is appended after the legacy stylesheet and
   therefore owns the production cascade for every rendered route. */
.content-view{
  padding-block:clamp(32px,4vw,62px) clamp(42px,5vw,70px);
}
.page-content{
  display:grid;
  gap:var(--layout-gap-lg,clamp(20px,2.5vw,32px));
}
.page-content > *,
.account-main > *,
.admin-main > *{
  min-width:0;
  margin-block-start:0!important;
  margin-block-end:0!important;
}
.account-main,
.admin-main{
  display:grid;
  align-content:start;
  gap:var(--layout-gap-lg,clamp(20px,2.5vw,32px));
}
.page-content > .page-hero,
.account-main > .page-hero,
.admin-main > .page-hero,
.legal-page-hero .page-hero{
  gap:12px;
  margin:0!important;
  padding-bottom:18px;
}
.page-content > .page-hero.is-compact,
.account-main > .page-hero.is-compact,
.admin-main > .page-hero.is-compact,
.legal-page-hero .page-hero.is-compact{
  padding-bottom:0;
  border-bottom:0;
}
.profile-back,
.page-section,
.rules-tools,
.rules-notice,
.legal-actions,
.players-summary,
.player-library-more,
.status-history,
.status-incidents,
.status-overview,
.profile-stat-grid,
.clan-progression,
.player-details,
.profile-showcase,
.profile-insight-grid,
.profile-insight-columns,
.profile-public-grid,
.support-principles,
.support-category-grid,
.support-form-card,
.support-track-box,
.support-detail,
.support-timeline,
.support-account-actions{
  margin-top:0!important;
  margin-bottom:0!important;
}
.page-section,
.leaderboard-section,
.rules-grid,
.legal-layout,
.legal-content,
.contacts-grid,
.online-grid,
.clans-grid,
.status-grid,
.profile-columns,
.profile-insight-grid,
.rule-page-layout,
.rule-page-content{
  gap:var(--layout-gap,clamp(14px,1.6vw,22px))!important;
}
.legal-highlight{
  gap:var(--layout-gap,clamp(14px,1.6vw,22px));
  margin:0!important;
}
.related-rules{ margin-top:0!important; }
.rules-tools,
.leaderboard-sticky{ margin-bottom:0!important; }
.rules-notice{ padding-block:0!important; min-height:0!important; }
.rules-notice+*{ margin-top:0!important; }
.player-profile-hero+.profile-stat-grid,
.clan-profile-hero+.profile-stat-grid,
.player-details,
.profile-showcase,
.profile-public-grid{
  margin-top:0!important;
}

/* The homepage mark is always the official coral, regardless of user theme. */
.home-view .title,
.home-view .title .mark{
  color:#ff6b6b!important;
  filter:none!important;
  text-shadow:0 18px 48px rgba(255,107,107,.18),0 24px 64px rgba(28,35,48,.12)!important;
}
.home-view .play,
.home-view .play.is-copied{
  background:#ff6b6b!important;
  border-color:#ff6b6b!important;
}
.home-view .play:hover:not(:disabled){
  background:#ff8585!important;
  border-color:#ff8585!important;
}

/* Voucher cards contain only quantity, price and action. */
.voucher-package-top,
.voucher-package::after{
  display:none!important;
}
.donate-flow{ gap:var(--layout-gap-lg,clamp(20px,2.5vw,32px))!important; }
.donate-section+ .donate-section{
  padding-top:var(--layout-gap-lg,clamp(20px,2.5vw,32px))!important;
}
.voucher-package{
  grid-template-rows:auto auto auto!important;
  gap:8px!important;
  min-height:0!important;
}
.voucher-package>strong{ margin:0; line-height:1; }
.voucher-package>small{ min-width:0; line-height:1.35; }
.voucher-package-buy{
  grid-column:auto!important;
  grid-row:auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end;
  gap:10px!important;
  width:100%;
  min-width:0;
  margin-top:auto!important;
  padding-top:12px!important;
  border-top:1px solid var(--ds-border)!important;
}
.voucher-package-buy>strong{
  min-width:0;
  overflow-wrap:anywhere;
  text-align:left;
}
.voucher-package-buy .button{
  width:auto;
  min-width:96px;
  max-width:100%;
  box-shadow:none!important;
}

/* Player names and clan tags are separate links in the same rating row. */
.rank-row[role="group"]{ cursor:default; }
.rank-name,
.leaderboard-name-inline,
.leaderboard-player-link{
  min-width:0;
  max-width:100%;
}
.rank-name{ white-space:normal; }
.leaderboard-name-inline,
.leaderboard-player-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.leaderboard-name-inline{ overflow:hidden; }
.leaderboard-player-link{
  color:var(--ds-text);
  text-decoration:none;
}
.leaderboard-player-link>span:first-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.leaderboard-player-link:hover>span:first-child,
.leaderboard-player-link:focus-visible>span:first-child{ color:var(--ds-accent); }
.leaderboard-clan-tag{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  max-width:min(160px,35vw);
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-decoration:none;
}

/* Account facts are independent cards so email and clan values never collide. */
.account-summary{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.account-summary>.account-fact{
  min-width:0;
  min-height:104px;
  padding:16px;
  display:grid;
  align-content:space-between;
  gap:10px;
  border:1px solid var(--ds-border)!important;
  border-radius:16px!important;
  background:var(--ds-surface-nested);
}
.account-summary>.account-fact>span{
  color:var(--ds-text-secondary);
  font-size:11px;
  line-height:1.2;
}
.account-summary>.account-fact>strong{
  display:block;
  min-width:0;
  color:var(--ds-text);
  line-height:1.2;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.account-summary .is-subscription>strong{ color:var(--ds-accent); }
.account-summary .is-email>strong{ font-size:clamp(12px,1.3vw,17px); }

/* Keep the all-sessions action pinned to the bottom of its security card. */
.security-session-card{
  display:flex!important;
  flex-direction:column;
  gap:12px;
  min-height:180px;
}
.security-session-card>p{ margin:0!important; }
.security-session-card>.button{
  align-self:flex-start;
  margin-top:auto;
}

@media (max-width:900px){
  .account-summary{ grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}
@media (max-width:760px){
  .content-view{ padding-block:28px 48px; }
  .page-content,
  .account-main,
  .admin-main{ gap:var(--layout-gap,clamp(14px,1.6vw,22px)); }
  .page-content>.page-hero,
  .account-main>.page-hero,
  .admin-main>.page-hero,
  .legal-page-hero .page-hero{ padding-bottom:14px; }
  .account-actions{ gap:var(--layout-gap,clamp(14px,1.6vw,22px))!important; }
  .voucher-package{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;
    gap:6px!important;
  }
  .voucher-package-buy{
    grid-column:1!important;
    grid-row:3!important;
    align-items:center;
    margin-top:10px!important;
  }
  .voucher-package-buy .button{ width:100%; }
  .security-session-card{ min-height:156px; }
  .leaderboard-name-inline{ gap:5px; }
  .leaderboard-clan-tag{ max-width:30vw; }
}
@media (max-width:480px){
  .account-summary{ grid-template-columns:1fr!important; }
  .account-summary>.account-fact{ min-height:82px; }
  .account-summary .is-email>strong{ font-size:15px; }
}

/* Ratings keep the compact /players clan badge skin; no visual override here. */

.security-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:var(--layout-gap)!important;
}
.security-card{
  min-width:0;
  min-height:0!important;
  height:auto!important;
}
.security-card form{ gap:10px; }
.security-mfa-setup{ margin-top:14px; }
.security-mfa-enrollment{
  display:grid;
  grid-template-columns:minmax(0,320px) minmax(0,1fr);
  align-items:start;
  gap:16px;
}
.security-mfa-enrollment>div{ min-width:0; }
.security-session-card{ min-height:0!important; }
.security-session-card>.button{ margin-top:auto; }

/* Player directory uses clean name-first cards without generated initial avatars. */
.player-library-card{ grid-template-columns:minmax(0,1fr)!important; }
.player-library-card>div{ display:grid; gap:4px; min-width:0; }
.player-library-card>div>strong{ overflow:hidden; text-overflow:ellipsis; }
.player-library-card>div>span{ color:var(--ds-text-secondary); font-size:11px; }

@media (max-width:760px){
  .security-grid,.security-mfa-enrollment{ grid-template-columns:1fr; }
  .security-mfa-enrollment{ gap:12px; }
}

/* Mobile ratings: identity stays left, result stays right. */
@media (max-width:700px){
  .leaderboard-section .rank-row{
    grid-template-columns:54px minmax(0,1fr) max-content!important;
    gap:10px;
    padding:14px;
    direction:ltr;
  }
  .leaderboard-section .rank-row .rank-position{
    grid-column:1;
    grid-row:1;
  }
  .leaderboard-section .rank-row .rank-name{
    grid-column:2;
    grid-row:1;
    min-width:0;
    justify-self:stretch;
  }
  .leaderboard-section .rank-row .rank-trend{ display:none!important; }
  .leaderboard-section .rank-row .rank-score{
    grid-column:3!important;
    grid-row:1;
    justify-self:end!important;
    text-align:right;
    white-space:nowrap;
  }
}
/* Light theme readability: keep clan tags legible even for white clan colors. */
html[data-theme="light"] .clan-badge{
  color:var(--ds-text)!important;
  background:color-mix(in srgb,var(--clan-color,var(--ds-accent)) 18%,var(--ds-surface-raised))!important;
  border-color:color-mix(in srgb,var(--clan-color,var(--ds-accent)) 58%,var(--ds-text-muted))!important;
  text-shadow:none!important;
}
html[data-theme="light"] .clan-badge:hover{
  background:color-mix(in srgb,var(--clan-color,var(--ds-accent)) 24%,var(--ds-surface-raised))!important;
  border-color:color-mix(in srgb,var(--clan-color,var(--ds-accent)) 72%,var(--ds-text))!important;
}

/* Light navigation: active page remains clear without a bright standalone pill. */
html[data-theme="light"] .nav a[aria-current="page"]{
  color:var(--ds-accent)!important;
  background:var(--ds-accent-soft)!important;
  border:1px solid color-mix(in srgb,var(--ds-accent) 28%,var(--ds-border))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62),0 4px 12px color-mix(in srgb,var(--ds-accent) 8%,transparent)!important;
}
html[data-theme="light"] .nav a[aria-current="page"]:hover{
  color:var(--ds-accent)!important;
  background:color-mix(in srgb,var(--ds-accent) 16%,var(--ds-surface-raised))!important;
  border-color:color-mix(in srgb,var(--ds-accent) 40%,var(--ds-border))!important;
}

/* Legal documents: keep navigation text in the same readable Minecraft Rus face. */
.legal-toc a,
.legal-actions span{
  font-family:"Minecraft Rus",sans-serif!important;
  font-size:13px!important;
  line-height:1.45!important;
}
@media (max-width:760px){
  .legal-section p,
  .legal-section li{
    font-size:16px!important;
    line-height:1.72!important;
  }
  .legal-highlight p{font-size:14px!important;}
}


/* 2026-09-17 typography hotfix: unify public page font metrics and vertical rhythm. */
/* Headings and long-form copy now share Minecraft Rus metrics. The system
   fallback remains reserved for the standalone currency glyph only. */
:root{
  --font-readable:"Minecraft Rus","Segoe UI",Arial,sans-serif;
}
.legal-actions span,
.legal-highlight p,
.legal-section p,
.legal-section li,
.legal-toc a,
.rule-card p,
.rule-page-section p,
.rule-page-section li,
.rules-notice,
.related-rules-grid small{
  font-family:var(--font-readable)!important;
  letter-spacing:0!important;
}
.legal-section p,
.legal-section li,
.rule-card p,
.rule-page-section p,
.rule-page-section li{
  font-size:17px!important;
  line-height:1.6!important;
}
.legal-section h2,
.rule-card h2,
.rule-page-section h2{
  margin:0 0 10px!important;
  line-height:1.14!important;
}
@media (max-width:760px){
  .legal-section p,
  .legal-section li,
  .rule-card p,
  .rule-page-section p,
  .rule-page-section li{
    font-size:16px!important;
    line-height:1.6!important;
  }
}


/* 2026-09-17 mobile homepage optical-centering hotfix. */
@media (max-width:760px){
  .home-view > .hero-inner > .title-wrap{
    transform:translateX(clamp(6px,1.4vw,10px));
  }
}


/* 2026-09-17 clan presence polish: match /players and highlight active players. */
.online-pill{
  min-height:36px;
  padding:0 13px;
  border-radius:12px;
  border-color:color-mix(in srgb,var(--ds-success) 34%,var(--ds-border-strong));
  color:var(--ds-success);
  background:color-mix(in srgb,var(--ds-success) 10%,var(--ds-surface-nested));
  font-size:11px;
  font-weight:600;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.online-pill i{
  width:7px;
  height:7px;
  animation:onlinePulse 2.8s ease-in-out infinite;
}
.online-pill.is-offline{
  color:var(--ds-text-secondary);
  border-color:var(--ds-border);
  background:var(--ds-surface-nested);
  font-weight:400;
}
.online-pill.is-offline i{ animation:none; }
.player-library-card.is-online .player-link,
.player-library-card.is-online .player-link > span:first-child,
.player-library-card.is-online > div > span,
.member-row.is-online .player-link,
.member-row.is-online .player-link > span:first-child,
.member-row.is-online .member-server{
  color:var(--ds-success)!important;
}
.player-library-card.is-online:hover .player-link,
.member-row.is-online:hover .player-link{
  color:color-mix(in srgb,var(--ds-success) 82%,var(--ds-text))!important;
}

/* 2026-09-17 mobile homepage first-screen composition. */
@media (max-width:760px){
  .home-view{
    min-height:calc(100svh - 54px + 28px);
    padding:clamp(48px,8vh,82px) 0 clamp(52px,9vh,88px);
  }
  .home-view .hero-inner{
    width:100%;
    margin-inline:auto;
    justify-items:center;
  }
  .home-view .title-wrap{
    justify-self:center;
    margin-inline:auto;
  }
  .home-view .title{
    font-size:clamp(100px,28vw,214px);
    line-height:.8;
    margin-inline:auto;
  }
  .home-view .actions{
    width:min(100%,320px);
    margin-inline:auto;
    justify-items:center;
  }
  .home-view .socials-block,
  .home-view .socials,
  .home-view .play{
    margin-inline:auto;
  }
  .home-view .socials-block{
    width:100%;
  }
  .home-view .socials{
    justify-content:center;
  }
  .home-view .play{
    width:min(100%,280px);
  }
  .site-footer{
    margin-top:clamp(30px,6vh,52px);
  }
  .footer{
    max-height:none;
    overflow:visible;
  }
}
@media (max-width:360px){
  .home-view .title{font-size:94px;}
  .home-view .play{width:min(100%,260px);}
}

/* Legal documents: keep long tables of contents usable beside the document. */
@media (min-width:861px){
  .legal-toc{
    max-height:calc(100dvh - 116px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
}


/* Shared Risk scrollbar: native fallback plus themed Chromium/WebKit controls. */
html, body, *{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ds-accent) 58%,var(--ds-surface-raised)) color-mix(in srgb,var(--ds-surface-nested) 88%,transparent)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:color-mix(in srgb,var(--ds-surface-nested) 88%,transparent);border-radius:999px}
*::-webkit-scrollbar-thumb{min-height:34px;background:color-mix(in srgb,var(--ds-accent) 58%,var(--ds-surface-raised));border:3px solid color-mix(in srgb,var(--ds-surface-nested) 88%,transparent);border-radius:999px}
*::-webkit-scrollbar-thumb:hover{background:var(--ds-accent)}
*::-webkit-scrollbar-corner{background:transparent}
.admin-economy-group .admin-economy-setting{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(170px,.7fr) minmax(220px,1fr) auto;gap:16px 18px;align-items:end;padding:18px 0;border-top:1px solid var(--ds-border)}
.admin-economy-group .admin-economy-setting:first-child{border-top:0}
.admin-economy-copy{min-width:0;display:grid;gap:6px;align-self:center}
.admin-economy-copy strong{font-size:13px;line-height:1.3}
.admin-economy-copy span{color:var(--ds-text-secondary);font-size:11px;line-height:1.45}
.admin-economy-copy code{color:var(--ds-text-muted);font-size:9px;overflow-wrap:anywhere}
.admin-economy-setting label{min-width:0;display:grid;gap:6px}
.admin-economy-setting label>span{color:var(--ds-text-secondary);font-size:10px}
.admin-economy-setting label small{color:var(--ds-text-muted);font-size:9px}
.admin-economy-setting input{width:100%;min-width:0;box-sizing:border-box}
.admin-economy-setting>.button{min-width:118px;align-self:end;white-space:nowrap}
@media (max-width:1180px){.admin-economy-group .admin-economy-setting{grid-template-columns:minmax(210px,1fr) minmax(160px,.7fr) minmax(190px,1fr)}.admin-economy-setting>.button{grid-column:3;justify-self:end}}
@media (max-width:760px){.admin-economy-group .admin-economy-setting{grid-template-columns:1fr;gap:12px}.admin-economy-setting>.button{grid-column:auto;width:100%}}
.admin-millida-form{display:grid;gap:20px;padding:22px;border-radius:18px}
.admin-millida-form-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--ds-border)}
.admin-millida-form-head h2{margin:5px 0 0;font-size:20px}
.admin-millida-toggle{display:flex;align-items:center;gap:9px;color:var(--ds-text);font-size:12px;white-space:nowrap}
.admin-millida-toggle input{accent-color:var(--ds-accent)}
.admin-millida-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.admin-millida-field{min-width:0;display:grid;gap:6px}
.admin-millida-field-wide{grid-column:1/-1}
.admin-millida-field>span,.admin-millida-actions label>span{color:var(--ds-text-secondary);font-size:10px}
.admin-millida-field small{color:var(--ds-text-muted);font-size:9px;line-height:1.35}
.admin-millida-field input,.admin-millida-field textarea{width:100%;min-width:0;box-sizing:border-box}
.admin-millida-field textarea{resize:vertical;min-height:68px;padding:10px 12px}
.admin-millida-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;padding-top:16px;border-top:1px solid var(--ds-border)}
.admin-millida-actions label{display:grid;gap:6px}
@media (max-width:760px){.admin-millida-form{padding:16px}.admin-millida-form-head,.admin-millida-actions{display:grid;grid-template-columns:1fr}.admin-millida-grid{grid-template-columns:1fr}.admin-millida-field-wide{grid-column:auto}.admin-millida-actions .button{width:100%}}


/* 2026-09-23 mobile navigation redesign
   Keeps the primary header and account switcher inside the Risk surface system. */
@media (max-width: 760px){
  .site-header{
    top: max(10px, env(safe-area-inset-top));
    min-height: 64px;
    padding-inline: 0;
    z-index: 120;
  }
  .nav-wrap{
    width: 100%;
    max-width: none;
  }
  .mobile-nav-toggle{
    display: grid!important;
    grid-template-columns: minmax(0,1fr) 46px!important;
    gap: 12px!important;
    width: 100%!important;
    height: 64px!important;
    min-height: 64px!important;
    padding: 8px 10px 8px 22px!important;
    border: 1px solid var(--ds-border-strong)!important;
    border-radius: 999px!important;
    background: var(--ds-surface-raised)!important;
    box-shadow: none!important;
  }
  .mobile-nav-current{
    padding-left: 0!important;
    color: var(--ds-text)!important;
    font-size: 17px!important;
    line-height: 1!important;
  }
  .mobile-nav-icon{
    width: 46px!important;
    height: 46px!important;
    border: 1px solid var(--ds-border-strong)!important;
    border-radius: 50%!important;
    color: var(--ds-text)!important;
    background: var(--ds-surface-nested)!important;
  }
  .mobile-nav-icon i{
    width: 19px!important;
    height: 2px!important;
    border-radius: 999px!important;
  }
  .mobile-nav-scrim{
    z-index: 1!important;
    background: color-mix(in srgb,var(--ds-page) 62%,transparent)!important;
    backdrop-filter: blur(8px)!important;
    -webkit-backdrop-filter: blur(8px)!important;
  }
  .nav{
    top: calc(100% + 10px)!important;
    left: 0!important;
    right: 0!important;
    width: 100%!important;
    max-height: min(68svh, 520px)!important;
    padding: 10px!important;
    gap: 6px!important;
    border: 1px solid var(--ds-border-strong)!important;
    border-radius: 24px!important;
    background: var(--ds-surface-raised)!important;
    box-shadow: none!important;
  }
  .nav a,
  .nav .nav-account{
    min-height: 52px!important;
    height: 52px!important;
    padding: 0 18px!important;
    border: 1px solid transparent!important;
    border-radius: 16px!important;
    color: var(--ds-text-secondary)!important;
    font-size: 16px!important;
    line-height: 1.1!important;
  }
  .nav a:hover{
    color: var(--ds-text)!important;
    background: var(--ds-surface-nested)!important;
  }
  .nav a[aria-current="page"]{
    color: var(--ds-accent)!important;
    border-color: color-mix(in srgb,var(--ds-accent) 34%,var(--ds-border))!important;
    background: var(--ds-accent-soft)!important;
    box-shadow: inset 3px 0 0 var(--ds-accent)!important;
  }
  .nav .nav-account{
    margin-top: 2px!important;
    border-top-color: var(--ds-border)!important;
  }
  .theme-toggle{
    right: max(16px, env(safe-area-inset-right))!important;
    bottom: max(16px, env(safe-area-inset-bottom))!important;
    z-index: 130!important;
  }
}

/* Account section switcher: compact dropdown that stays in document flow. */
@media (max-width: 1050px){
  .account-mobile-menu,
  .account-mobile-menu[open]{
    position: relative!important;
    inset: auto!important;
    z-index: auto!important;
    display: block!important;
    width: 100%!important;
    height: auto!important;
    max-height: none!important;
    margin: 0 0 18px!important;
    padding: 0!important;
    overflow: visible!important;
    border: 1px solid var(--ds-border-strong)!important;
    border-radius: 20px!important;
    background: var(--ds-surface-raised)!important;
    box-shadow: var(--ds-shadow)!important;
  }
  .account-mobile-menu::before,
  .account-mobile-menu::after,
  .account-mobile-menu[open]::before,
  .account-mobile-menu[open]::after{
    display: none!important;
    content: none!important;
  }
  .account-mobile-menu>summary{
    display: flex!important;
    align-items: center!important;
    justify-content: space-between!important;
    gap: 14px!important;
    min-height: 58px!important;
    margin: 0!important;
    padding: 0 18px!important;
    color: var(--ds-text)!important;
    cursor: pointer!important;
    list-style: none!important;
    border: 0!important;
  }
  .account-mobile-menu>summary::-webkit-details-marker{ display: none!important; }
  .account-mobile-menu>summary span{
    display: block!important;
    flex: 0 0 auto!important;
    color: var(--ds-text-muted)!important;
    font-size: 11px!important;
  }
  .account-mobile-menu>summary strong{
    display: flex!important;
    align-items: center!important;
    gap: 12px!important;
    min-width: 0!important;
    margin-left: auto!important;
    color: var(--ds-text)!important;
    font-size: 16px!important;
    font-weight: 400!important;
    line-height: 1!important;
  }
  .account-mobile-menu>summary small{ display: none!important; }
  .account-mobile-menu>summary::after{
    content: ""!important;
    flex: 0 0 auto!important;
    width: 9px!important;
    height: 9px!important;
    margin-left: 2px!important;
    border-right: 2px solid var(--ds-text-secondary)!important;
    border-bottom: 2px solid var(--ds-text-secondary)!important;
    transform: rotate(45deg) translateY(-2px)!important;
    transition: transform .2s ease!important;
  }
  .account-mobile-menu[open]>summary{
    border-bottom: 1px solid var(--ds-border)!important;
  }
  .account-mobile-menu[open]>summary::after{
    transform: rotate(225deg) translate(-2px,-2px)!important;
  }
  .account-mobile-menu nav{
    display: grid!important;
    gap: 6px!important;
    padding: 10px!important;
    border: 0!important;
  }
  .account-mobile-menu nav a,
  .account-mobile-menu nav button{
    display: flex!important;
    align-items: center!important;
    width: 100%!important;
    min-height: 48px!important;
    height: 48px!important;
    padding: 0 14px!important;
    border: 1px solid transparent!important;
    border-radius: 14px!important;
    color: var(--ds-text-secondary)!important;
    background: transparent!important;
    font-size: 15px!important;
    text-align: left!important;
    text-decoration: none!important;
  }
  .account-mobile-menu nav a:hover,
  .account-mobile-menu nav button:hover{
    color: var(--ds-text)!important;
    background: var(--ds-surface-nested)!important;
  }
  .account-mobile-menu nav a[aria-current="page"]{
    color: var(--ds-accent)!important;
    border-color: color-mix(in srgb,var(--ds-accent) 32%,var(--ds-border))!important;
    background: var(--ds-accent-soft)!important;
    box-shadow: inset 3px 0 0 var(--ds-accent)!important;
  }
  .account-mobile-menu nav button{
    border-top: 1px solid var(--ds-border)!important;
    border-radius: 0!important;
    margin-top: 2px!important;
    padding-top: 8px!important;
    color: var(--ds-danger)!important;
  }
}
@media (max-width: 420px){
  .mobile-nav-toggle{
    grid-template-columns: minmax(0,1fr) 42px!important;
    height: 58px!important;
    min-height: 58px!important;
    padding-left: 17px!important;
  }
  .mobile-nav-current{ font-size: 15px!important; }
  .mobile-nav-icon{ width: 42px!important; height: 42px!important; }
  .mobile-nav-icon i{ width: 17px!important; }
  .nav a,.nav .nav-account{ min-height: 48px!important; height: 48px!important; font-size: 15px!important; }
  .account-mobile-menu>summary{ min-height: 54px!important; padding-inline: 15px!important; }
  .account-mobile-menu>summary strong{ font-size: 15px!important; }
}

/* release(site): mobile navigation redesign included in 2.0.0 candidate */


/* 2.0.0 payment gateway, mobile drawer and player identity polish. */
/* Risk++ uses the shared gold tier token across cards, identities and profiles. */
:root{--ds-risk-plus-plus:#ffaa00!important}
html[data-theme="light"]{--ds-risk-plus-plus:#8a5a00!important}

/* The drawer remains crisp while the page behind it is dimmed. A blurred
   scrim made touch targets look out of focus on mobile Chromium. */
@media (max-width:760px){
  .mobile-nav-scrim{
    z-index:1!important;
    background:color-mix(in srgb,var(--ds-page) 86%,transparent)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .nav{
    z-index:10000!important;
    pointer-events:auto!important;
    background:var(--ds-surface-raised)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .mobile-nav-toggle{z-index:10001!important}
  .account-mobile-menu[open]::before{
    background:color-mix(in srgb,var(--ds-page) 86%,transparent)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .account-mobile-menu[open]{
    z-index:220!important;
    background:var(--ds-surface-raised)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}

/* Mobile nav: keep the drawer's stacking context above its sibling backdrop. */
@media (max-width:760px){
  body.nav-open .nav-wrap{z-index:9999!important}
}

/* Subscription colors are applied to the whole public identity block. An
   account without a subscription is deliberately neutral. */
.player-profile-hero{
  border:1px solid var(--ds-border-strong)!important;
  border-top-width:3px!important;
  background:var(--ds-surface-raised)!important;
  box-shadow:var(--ds-shadow)!important;
}
.player-profile-hero.subscription-none{
  border-color:var(--ds-border-strong)!important;
  border-top-width:1px!important;
  background:var(--ds-surface-raised)!important;
  box-shadow:none!important;
}
.player-profile-hero.subscription-risk_lite{
  --subscription-accent:#2f8f64;
  border-color:color-mix(in srgb,var(--subscription-accent) 58%,var(--ds-border-strong))!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--subscription-accent) 13%,var(--ds-surface-raised)),var(--ds-surface-raised) 70%)!important;
}
.player-profile-hero.subscription-risk_plus{
  --subscription-accent:#c65363;
  border-color:color-mix(in srgb,var(--subscription-accent) 58%,var(--ds-border-strong))!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--subscription-accent) 12%,var(--ds-surface-raised)),var(--ds-surface-raised) 70%)!important;
}
.player-profile-hero.subscription-risk_plus_plus{
  --subscription-accent:var(--ds-risk-plus-plus);
  border-color:color-mix(in srgb,var(--subscription-accent) 58%,var(--ds-border-strong))!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--subscription-accent) 13%,var(--ds-surface-raised)),var(--ds-surface-raised) 70%)!important;
}
.player-profile-hero.subscription-risk_lite h1,
.player-profile-hero.subscription-risk_plus h1,
.player-profile-hero.subscription-risk_plus_plus h1{color:var(--ds-text)!important}
.subscription-card.risk_lite{border-color:#2f8f64!important;background:color-mix(in srgb,#2f8f64 13%,var(--ds-surface-raised))!important}
.subscription-card.risk_plus{border-color:#c65363!important;background:color-mix(in srgb,#c65363 13%,var(--ds-surface-raised))!important}
.subscription-card.risk_plus_plus{border-color:var(--ds-risk-plus-plus)!important;background:color-mix(in srgb,var(--ds-risk-plus-plus) 13%,var(--ds-surface-raised))!important}
html[data-theme="light"] .plan-card.risk-plus-plus,
html[data-theme="light"] .plan-card.risk_plus_plus{
  background:linear-gradient(145deg,#fff5d9 0%,#fffaf0 74%)!important;
  border-color:rgba(138,90,0,.42)!important;
}
html[data-theme="light"] .plan-card.risk-plus-plus h2,
html[data-theme="light"] .plan-card.risk-plus-plus .plan-price,
html[data-theme="light"] .plan-card.risk_plus_plus h2,
html[data-theme="light"] .plan-card.risk_plus_plus .plan-price{color:#8a5a00!important}
html[data-theme="light"] .plan-card.risk-plus-plus .plan-badge,
html[data-theme="light"] .plan-card.risk_plus_plus .plan-badge{color:#8a5a00!important;border-color:rgba(138,90,0,.36)!important;background:#fff5d9!important}

/* Owner-only gateway editor. */
.admin-payment-gateway-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
.admin-payment-gateway-card{display:grid;gap:16px;padding:20px;border:1px solid var(--ds-border);border-radius:18px}
.admin-payment-gateway-card h2{margin:4px 0;font-size:clamp(22px,3vw,30px)}
.admin-payment-gateway-card p{margin:0;color:var(--ds-text-secondary);font-size:12px}
.admin-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-payment-field{display:grid;gap:7px;min-width:0}
.admin-payment-field>span,.admin-payment-check span,.admin-payment-toggle span{color:var(--ds-text-secondary);font-size:12px}
.admin-payment-field small,.admin-payment-endpoint{color:var(--ds-text-muted);font-size:10px;line-height:1.4}
.admin-payment-secret-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.admin-payment-secret-control .button{min-height:42px;padding-inline:12px;white-space:nowrap}
.admin-payment-toggle,.admin-payment-check{display:flex;align-items:center;gap:8px;min-height:42px}
.admin-payment-toggle input,.admin-payment-check input{accent-color:var(--ds-accent)}
.admin-payment-form-note{display:grid;gap:4px;padding:14px;border:1px solid color-mix(in srgb,var(--ds-accent) 35%,var(--ds-border));border-radius:13px;background:color-mix(in srgb,var(--ds-accent) 7%,var(--ds-surface-nested))}
.admin-payment-form-note span{color:var(--ds-text-secondary);font-size:11px;line-height:1.45}
.admin-payment-gateways-form{display:grid;gap:16px;padding:20px;border:1px solid var(--ds-border);border-radius:18px}
@media (max-width:760px){
  .admin-payment-gateway-grid,.admin-payment-grid{grid-template-columns:1fr}
  .admin-payment-gateway-card,.admin-payment-gateways-form{padding:16px}
  .admin-payment-secret-control{grid-template-columns:1fr}
}

.identity-mark.is-risk_plus_plus{--identity-color:var(--ds-risk-plus-plus)!important}
.account-fact.is-subscription.risk_plus_plus strong{color:var(--ds-risk-plus-plus)!important}
.account-fact.is-subscription.risk_plus strong{color:#c65363!important}
.account-fact.is-subscription.risk_lite strong{color:#2f8f64!important}
.account-fact.is-subscription.none{
  border-color:var(--ds-border)!important;
  background:var(--ds-surface-nested)!important;
}

/* Liquid glass primary navigation: stays at the top while the page scrolls. */
.site-header{
  position:sticky!important;
  top:max(12px,env(safe-area-inset-top))!important;
  z-index:300;
}
.nav.glass,
.mobile-nav-toggle.glass{
  border:1px solid color-mix(in srgb,var(--ds-text) 22%,transparent)!important;
  background:var(--ds-surface-raised)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.nav.glass::before,
.mobile-nav-toggle.glass::before{
  display:none!important;
  content:none!important;
}
@media (max-width:760px){
  .site-header{
    top:max(8px,env(safe-area-inset-top))!important;
    min-height:58px;
  }
  .nav.glass{
    max-height:min(68svh,520px);
    overflow-y:auto;
    overscroll-behavior:contain;
    border-radius:24px!important;
  }
}


/* Freeze body scrolling without removing the sticky header's layout slot. The
   mobile navigation panel is absolutely positioned by the base nav styles. */
@media (max-width:760px){
  body.nav-open .site-shell{overflow:visible!important}
  body.nav-open .nav{
    max-height:calc(100dvh - 96px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }
}

/* Mobile navigation remains anchored to the viewport and animates its own
   panel without moving the page behind it. */
@media (max-width:760px){
  /* Keep the document scroll offset intact; gesture guards stop background
     scroll while the fixed drawer remains attached to the visible header. */
  html.nav-open,
  body.nav-open{
    overscroll-behavior:none!important;
  }
  body.nav-open{
    touch-action:auto;
  }
  .nav{
    box-sizing:border-box!important;
    height:auto!important;
    min-height:0!important;
    max-height:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    overflow-x:hidden!important;
    overflow-y:hidden!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:scaleY(.97)!important;
    transform-origin:top center!important;
    transition:
      max-height .28s cubic-bezier(.2,.8,.2,1),
      padding .28s cubic-bezier(.2,.8,.2,1),
      opacity .16s ease,
      transform .28s cubic-bezier(.2,.8,.2,1),
      visibility 0s linear .28s!important;
  }
  body.nav-open .nav{
    position:fixed!important;
    top:var(--mobile-nav-top,calc(max(8px,env(safe-area-inset-top)) + 68px))!important;
    left:max(14px,env(safe-area-inset-left))!important;
    right:max(14px,env(safe-area-inset-right))!important;
    width:auto!important;
    margin:0!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y!important;
    max-height:calc(100dvh - 96px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    padding-top:10px!important;
    padding-bottom:10px!important;
    overflow-y:auto!important;
    opacity:1!important;
    visibility:visible!important;
    transform:scaleY(1)!important;
    transition:
      max-height .28s cubic-bezier(.2,.8,.2,1),
      padding .28s cubic-bezier(.2,.8,.2,1),
      opacity .16s ease,
      transform .28s cubic-bezier(.2,.8,.2,1),
      visibility 0s linear 0s!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .nav,
  body.nav-open .nav{
    transition:none!important;
    transform:none!important;
  }
}

/* Keep hover feedback on cards and controls, but remove vertical lift. */
:where(
  .player-library-card,
  .clan-badge,
  .clan-card,
  .live-player,
  .online-card,
  .online-server-card,
  .contact-card,
  .account-action,
  .plan-card,
  .rule-card,
  .related-rules-grid a,
  .support-category,
  .theme-preset,
  .settings-reset-action,
  .admin-preset-action,
  .quick-days button,
  .online-filters button,
  .clan-sort button,
  .button,
  .play,
  .social
):is(:hover,:focus-visible){
  transform:none!important;
}
.quick-days button[aria-current="true"]{transform:none!important}
.player-library-card:hover{
  box-shadow:0 0 18px color-mix(in srgb,var(--ds-accent) 16%,transparent)!important;
}
.clan-badge:hover{
  box-shadow:0 0 14px color-mix(in srgb,var(--clan-color,var(--ds-accent)) 34%,transparent)!important;
}

/* Risk 2.0.1: render page content immediately without entrance motion. */
.live-player{ animation:none!important; }
.nav,
.route-view,
.title,
.status,
.actions,
.footer,
.live-panel{
  animation:none!important;
}
.route-view,
.site-main.is-entering .route-view:not([hidden]),
.site-main.is-leaving .route-view:not([hidden]){
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  transition:none!important;
}
.motion-reveal,
.motion-reveal.is-visible{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
  transition-delay:0s!important;
  will-change:auto!important;
}


/* Risk 2.0.1: remove shadows from the fixed site navigation and all its layers. */
.site-header,
.site-header *,
.site-header::before,
.site-header::after,
.site-header *::before,
.site-header *::after,
.site-header .nav,
.site-header .nav *,
.site-header .mobile-nav-toggle,
.site-header .mobile-nav-toggle::before,
.site-header .mobile-nav-toggle::after,
.nav-wrap,
.nav-wrap *,
.nav-wrap::before,
.nav-wrap::after,
.nav-wrap *::before,
.nav-wrap *::after{
  box-shadow:none!important;
  filter:none!important;
}

html .site-header .nav a[aria-current="page"]{
  box-shadow:none!important;
  filter:none!important;
}


/* 2.1.3 visual balance for sparse live content and compact controls. */
@media (min-width: 901px) {
  .clans-grid:has(> .clan-card:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 372px));
    justify-content: center;
  }
  .status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 701px) {
  .clans-grid:has(> .clan-card:nth-child(1):last-child) {
    grid-template-columns: minmax(0, 372px);
    justify-content: center;
  }
}
@media (min-width: 601px) {
  .player-library-grid:has(> .player-library-card:nth-child(1):last-child) {
    grid-template-columns: minmax(0, 372px);
    justify-content: center;
  }
  .player-library-grid:has(> .player-library-card:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 372px));
    justify-content: center;
  }
  .player-library-grid:has(> .player-library-card:nth-child(3n + 1):last-child):not(:has(> .player-library-card:nth-child(1):last-child)) > .player-library-card:last-child {
    grid-column: 2;
  }
}
.auth-card-clean {
  width: 100%;
}

.theme-toggle-icon {
  display: block !important;
  box-sizing: border-box;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: linear-gradient(90deg, currentColor 0 50%, transparent 50% 100%);
  font-size: 0 !important;
  line-height: 0 !important;
}
