:root {
  color-scheme: dark;
  --bg: #090807;
  --bg-soft: #100d0b;
  --panel: #15120f;
  --panel-2: #1b1714;
  --line: #342720;
  --text: #fff8f3;
  --muted: #b7aaa2;
  --dim: #86796f;
  --orange: #ff4b1f;
  --orange-light: #ff9267;
  --blue: #2e63ff;
  --yellow: #ff672e;
  --green: #56d18b;
  --red: #ff5361;
  --status-success: var(--green);
  --status-warning: var(--orange-light);
  --status-error: var(--red);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 48px;
  --space-10: 64px;
  --radius-sm: 3px;
  --radius: 9px;
  --radius-lg: 15px;
  --radius-control: 8px;
  --radius-card: 10px;
  --focus-ring: var(--orange-light);
  --accent-text: #1b0c06;
  --accent-border: #ff7146;
  --accent-hover: #ff7041;
  --accent-shadow: 0 2px 0 #7e2c17;
  --surface-control: #151311;
  --surface-control-hover: #211914;
  --border-control: #44352d;
  --border-control-hover: #79503c;
  --shadow-card: 0 4px 12px #0004;
  --motion-fast: 160ms;
  --motion-standard: 180ms;
  --content: 1180px;
  --font-ui: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --font-display: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-family: var(--font-ui);
  background: var(--bg);
  color: var(--text);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; min-width: 280px; background: var(--bg); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
img { display: block; max-width: 100%; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }

.demo-ribbon { min-height: 28px; padding: 6px 16px; display: flex; align-items: center; justify-content: center; gap: 8px; color: #e7e8ea; background: #181b20; border-bottom: 1px solid #252930; font-size: 10px; font-weight: 750; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.pulse-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 10px #ffc72c80; }
.demo-ribbon-window { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.demo-ribbon-track { width: max-content; display: flex; align-items: center; animation: demo-ribbon-marquee var(--demo-ribbon-duration, 24s) linear infinite; will-change: transform; }
.demo-ribbon-copy { flex: 0 0 auto; padding-inline: 24px; text-align: center; white-space: nowrap; }
.demo-ribbon:hover .demo-ribbon-track, .demo-ribbon:focus-within .demo-ribbon-track { animation-play-state: paused; }
.demo-ribbon[data-animated="false"] { flex-wrap: wrap; row-gap: 3px; }
.demo-ribbon[data-animated="false"] .demo-ribbon-window { width: 100%; max-width: none; flex: 1 0 100%; }
.demo-ribbon[data-animated="false"] .demo-ribbon-track { width: 100%; animation: none; transform: none; will-change: auto; }
.demo-ribbon[data-animated="false"] .demo-ribbon-copy:first-child { display: flex; flex-basis: 100%; flex-wrap: wrap; justify-content: center; padding-inline: 0; text-align: center; }
.demo-ribbon[data-animated="false"] .demo-ribbon-copy + .demo-ribbon-copy { display: none; }
.demo-ribbon[data-animated="false"] .demo-ribbon-copy { white-space: normal; }
@keyframes demo-ribbon-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .demo-ribbon { flex-wrap: wrap; row-gap: 3px; }
  .demo-ribbon-window { width: 100%; max-width: none; flex: 1 0 100%; }
  .demo-ribbon-track { width: 100%; animation: none; transform: none; will-change: auto; }
  .demo-ribbon-copy:first-child { display: flex; flex-basis: 100%; flex-wrap: wrap; justify-content: center; padding-inline: 0; text-align: center; }
  .demo-ribbon-copy + .demo-ribbon-copy { display: none; }
  .demo-ribbon-copy { white-space: normal; }
}
.site-header { height: 78px; padding: 0 max(28px, calc((100% - var(--content)) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid #22262b; background: rgba(9, 10, 12, .93); position: sticky; top: 0; z-index: 30; backdrop-filter: blur(14px); }
#site-header[hidden], #site-footer[hidden] { display: none; }
.brand { display: flex; align-items: center; gap: 11px; flex: 0 0 auto; }
.brand-logo { width: auto; height: 68px; max-width: 168px; max-height: none; flex: 0 0 auto; object-fit: contain; object-position: center; }
.brand-copy strong { display: block; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: 18px; letter-spacing: .02em; line-height: 1; }
.brand-copy small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; letter-spacing: .16em; font-weight: 700; }
.main-nav { display: flex; align-items: center; gap: clamp(13px, 2vw, 27px); }
.main-nav > a:not(.button) { color: #d7d9dc; font-size: 12px; font-weight: 650; transition: color .18s; white-space: nowrap; }
.main-nav > a:hover, .main-nav > a.active { color: var(--yellow); }
.main-nav .nav-admin { color: #959aa2 !important; }
.nav-count { margin-left: 3px; color: var(--orange-light); font-size: 9px; }
.menu-toggle { display: none; border: 0; background: none; font-size: 23px; cursor: pointer; }

.button { min-height: 46px; padding: 0 19px; display: inline-flex; justify-content: center; align-items: center; gap: 10px; border: 1px solid transparent; border-radius: var(--radius-sm); font-size: 12px; font-weight: 850; cursor: pointer; transition: transform .18s, background .18s, border-color .18s; }
.button:hover { transform: translateY(-1px); }
.button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.button:active { transform: translateY(1px); }
.button:disabled, .mini-button:disabled { opacity: .58; cursor: not-allowed; transform: none; box-shadow: none; }
.button-small { min-height: 37px; padding: 0 14px; font-size: 11px; }
.button-accent { color: #14110a; background: var(--yellow); }
.button-accent:hover { background: #ffda62; }
.button-orange { color: white; background: var(--orange); }
.button-blue { color: white; background: var(--blue); }
.button-ghost { color: var(--text); background: #171a1e; border-color: #343a42; }
.button-danger { color: white; background: #42191d; border-color: #792c34; }
.button-green { color: #07170e; background: var(--green); }
.button-block { width: 100%; }
.button-link { min-height: 0; padding: 0; color: var(--yellow); background: transparent; border: 0; }
.button-link:hover { color: white; }

.page-shell { width: min(var(--content), calc(100% - 52px)); margin: 0 auto; }
.section { padding: 78px 0; }
.section-tight { padding: 48px 0; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--orange-light); font-size: 10px; font-weight: 850; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow::before { width: 22px; height: 1px; content: ""; background: currentColor; }
.section-heading { max-width: 740px; margin: 0 0 28px; }
.section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 27px; }
.section-heading h1, .section-heading h2, .display-title { margin: 10px 0 9px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 500; letter-spacing: -.01em; line-height: .98; text-transform: uppercase; }
.section-heading h1, .display-title { font-size: clamp(39px, 6vw, 68px); }
.section-heading h2 { font-size: clamp(30px, 4vw, 46px); }
.section-heading p { margin: 0; max-width: 580px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.section-rule { height: 1px; margin: 0; background: linear-gradient(90deg, var(--orange), #2a2e33 38%, transparent); border: 0; }
.mono-label { color: var(--dim); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

.hero { min-height: 580px; padding: 47px 0 52px; position: relative; overflow: hidden; background: radial-gradient(ellipse at 87% 28%, #1d2944 0, transparent 33%), radial-gradient(ellipse at 55% 80%, #391b15 0, transparent 34%), linear-gradient(112deg, #090a0c 3%, #101318 61%, #101117 100%); }
.hero::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .14; background-image: linear-gradient(115deg, transparent 35%, #ff5b1f 35.2%, transparent 35.5%), linear-gradient(115deg, transparent 72%, #2e63ff 72.1%, transparent 72.3%); }
.hero-inner { min-height: 482px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .75fr); align-items: center; gap: clamp(30px, 6vw, 82px); position: relative; }
.hero-copy { padding: 22px 0; position: relative; z-index: 1; }
.hero-kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; color: #d8dade; font-size: 11px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.hero-kicker b { width: 27px; height: 2px; background: var(--orange); }
.hero-title { max-width: 720px; margin: 0; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(55px, 9.2vw, 112px); font-weight: 500; letter-spacing: -.035em; line-height: .84; text-transform: uppercase; }
.hero-title span { color: var(--orange); }
.hero-slogan { margin: 20px 0 7px; color: #f2f2ef; font-size: 17px; font-weight: 700; }
.hero-lede { max-width: 560px; margin: 10px 0 22px; color: #a9adb3; font-size: 14px; line-height: 1.7; }
.hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 20px; margin: 19px 0 25px; color: #d5d7da; font-size: 11px; }
.hero-meta span { display: inline-flex; align-items: center; gap: 7px; }
.hero-meta strong { color: var(--yellow); }
.date-strip { display: flex; flex-wrap: wrap; gap: 7px; margin: 25px 0 19px; }
.date-chip { min-width: 85px; padding: 8px 11px; background: #171a1e; border: 1px solid #333840; border-radius: 7px; }
.date-chip strong { display: block; color: var(--yellow); font-family: Impact, Haettenschweiler, sans-serif; font-size: 23px; line-height: 1; }
.date-chip span { display: block; margin-top: 5px; color: #b1b4b9; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.hero-poster { width: min(100%, 354px); justify-self: center; position: relative; transform: rotate(1.4deg); }
.hero-poster::after { position: absolute; inset: 10px -11px -12px 12px; border: 1px solid #ff5b1f8c; border-radius: 14px; content: ""; z-index: -1; }
.hero-poster img { width: 100%; max-height: 465px; object-fit: cover; object-position: top; border: 1px solid #3b4149; border-radius: 13px; box-shadow: 0 22px 65px #0009; }
.poster-caption { margin: 12px 0 0; color: #858a91; font-size: 9px; text-align: right; letter-spacing: .1em; text-transform: uppercase; }
.hero-activities { display: flex; gap: 0; flex-wrap: wrap; margin: 34px 0 0; padding: 19px 0 0; border-top: 1px solid #32373e; position: relative; z-index: 1; }
.activity-tag { display: inline-flex; align-items: center; gap: 8px; padding: 0 19px; border-right: 1px solid #333840; color: #d8dade; font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.activity-tag:first-child { padding-left: 0; }
.activity-tag:last-child { border-right: 0; }
.activity-icon { color: var(--yellow); font-size: 15px; }

.trust-row { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 auto; padding: 0; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); }
.trust-item { padding: 24px 18px; display: flex; align-items: center; gap: 14px; border-right: 1px solid var(--line); }
.trust-item:last-child { border-right: 0; }
.trust-icon { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid #343943; border-radius: 50%; color: var(--yellow); font-size: 16px; }
.trust-item strong { display: block; font-size: 12px; }
.trust-item small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }

.candidate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.candidate-card { overflow: hidden; background: #111418; border: 1px solid #2b3037; border-radius: 12px; transition: border-color .2s, transform .2s; }
.candidate-card:hover { transform: translateY(-3px); border-color: #ff5b1f9c; }
.candidate-art, .candidate-avatar { position: relative; isolation: isolate; display: flex; align-items: end; justify-content: flex-start; overflow: hidden; aspect-ratio: 1.05 / 1; padding: 15px; background: linear-gradient(140deg, #252a32, #0f1012 75%); }
.candidate-art { aspect-ratio: 7 / 8; }
.candidate-art::before, .candidate-avatar::before { position: absolute; z-index: -1; width: 130%; height: 130%; top: -22%; right: -26%; content: ""; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ff783c, #bc3219 29%, #141820 71%); opacity: .9; }
.candidate-card:nth-child(4n + 2) .candidate-art::before, .candidate-card:nth-child(4n + 2) .candidate-avatar::before { background: radial-gradient(circle at 35% 35%, #4c8dff, #183b93 34%, #141820 70%); }
.candidate-card:nth-child(4n + 3) .candidate-art::before, .candidate-card:nth-child(4n + 3) .candidate-avatar::before { background: radial-gradient(circle at 35% 35%, #dfb750, #9b531d 32%, #141820 71%); }
.candidate-card:nth-child(4n) .candidate-art::before, .candidate-card:nth-child(4n) .candidate-avatar::before { background: radial-gradient(circle at 35% 35%, #aa6eff, #462970 32%, #141820 71%); }
.candidate-art::after, .candidate-avatar::after { position: absolute; z-index: -1; width: 67%; aspect-ratio: 1; top: 14%; right: 12%; content: ""; border: 1px solid #ffffff35; border-radius: 50%; box-shadow: 0 0 0 14px #ffffff08, 0 0 0 30px #ffffff05; }
.candidate-art--photo::before, .candidate-art--photo::after,
.candidate-avatar--photo::before, .candidate-avatar--photo::after { display: none; }
.candidate-avatar--photo { position: relative; isolation: isolate; }
.candidate-number { position: absolute; left: 12px; top: 12px; display: inline-grid; place-items: center; min-width: 29px; height: 27px; padding: 0 6px; color: #101114; background: var(--yellow); border-radius: 4px; font-family: Impact, sans-serif; font-size: 14px; }
.candidate-initials { margin: 0 0 0 2px; font-family: Impact, Haettenschweiler, sans-serif; font-size: clamp(50px, 6vw, 78px); line-height: .8; color: #fff; text-shadow: 2px 3px 18px #0009; }
.portrait-placeholder { position: absolute; right: 12px; bottom: 12px; color: #d7dbe0; font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.candidate-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; z-index: -1; }
.candidate-demo-portrait { background-image: url('/assets/demo/candidate-portraits.jpg'); background-size: 500% 500%; background-position: var(--portrait-x, 0%) var(--portrait-y, 0%); }
.candidate-art.candidate-demo-portrait::before, .candidate-avatar.candidate-demo-portrait::before,
.candidate-art.candidate-demo-portrait::after, .candidate-avatar.candidate-demo-portrait::after { display: none; }
.candidate-card-body { padding: 13px 13px 14px; }
.candidate-meta { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.candidate-style { color: #c4c8cd; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.candidate-card h3 { margin: 6px 0 12px; font-family: Impact, Haettenschweiler, sans-serif; font-size: 20px; font-weight: 500; text-transform: uppercase; }
.candidate-stats { display: flex; justify-content: space-between; padding-top: 10px; border-top: 1px solid #292e35; color: #8e949c; font-size: 9px; }
.candidate-stats b { color: #f1f1ec; font-size: 10px; }
.candidate-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }
.candidate-card-actions .button { min-height: 34px; padding: 0 7px; font-size: 9px; }
.filter-row { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin: 20px 0 23px; }
.filter-row .input { flex: 1 1 220px; }
.filter-chip { min-height: 36px; padding: 0 13px; border: 1px solid #30353c; border-radius: 99px; color: #babdc1; background: #111418; font-size: 10px; font-weight: 750; cursor: pointer; }
.filter-chip.selected { color: #15120b; background: var(--yellow); border-color: var(--yellow); }
.count-note { margin-left: auto; color: var(--dim); font-size: 10px; }

.input, .select, .textarea { width: 100%; min-height: 43px; padding: 10px 12px; color: var(--text); background: #0b0d10; border: 1px solid #353b43; border-radius: 7px; font-size: 12px; }
.input::placeholder, .textarea::placeholder { color: #71767e; }
.textarea { min-height: 92px; resize: vertical; }
.field { display: grid; gap: 7px; margin: 0 0 14px; }
.field > label { color: #c8cbd0; font-size: 10px; font-weight: 750; }
.field-help { color: var(--muted); font-size: 10px; line-height: 1.5; }
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.search-wrap { position: relative; flex: 1 1 250px; }
.search-wrap .input { padding-left: 35px; }
.search-symbol { position: absolute; left: 12px; top: 10px; color: #858b92; }

.panel { background: linear-gradient(145deg, #14171b, #0e1013); border: 1px solid #2a3037; border-radius: var(--radius); }
.panel-pad { padding: 20px; }
.panel-title { margin: 0 0 13px; font-family: Impact, Haettenschweiler, sans-serif; font-size: 20px; font-weight: 500; text-transform: uppercase; }
.panel-copy { color: var(--muted); font-size: 12px; line-height: 1.7; }
.tag { min-height: 22px; padding: 4px 8px; display: inline-flex; align-items: center; border: 1px solid #424750; border-radius: 99px; color: #c3c6ca; font-size: 9px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.tag-orange { color: #ff9c75; border-color: #73351f; background: #321b14; }
.tag-yellow { color: #ffdc75; border-color: #70591b; background: #34280b; }
.tag-green { color: #70d99a; border-color: #235637; background: #102719; }
.tag-blue { color: #8eabff; border-color: #273c76; background: #141e3a; }
.tag-red { color: #ff858d; border-color: #703039; background: #32151a; }
.notice { padding: 12px 14px; display: flex; align-items: flex-start; gap: 10px; border: 1px solid #4c411d; border-radius: 8px; color: #e7d28e; background: #261f0e; font-size: 11px; line-height: 1.6; }
.notice-blue { border-color: #263e7a; color: #abc1ff; background: #111b34; }
.notice-green { border-color: #24573a; color: #93e5b3; background: #102117; }
.notice-red { border-color: #6e2a34; color: #ff9aa3; background: #2a1216; }
.notice-icon { width: 17px; height: 17px; margin-top: 1px; flex: 0 0 auto; }
.notice + .notice { margin-top: 9px; }

.event-preview { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: stretch; }
.event-list { display: grid; gap: 10px; }
.event-row { padding: 14px; display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 15px; background: #111418; border: 1px solid #2a3037; border-radius: 10px; }
.event-time { color: var(--yellow); font-family: Impact, sans-serif; font-size: 19px; }
.event-row h3 { margin: 0; font-size: 12px; }
.event-row p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.event-date-card { padding: 23px; display: flex; flex-direction: column; justify-content: space-between; background: linear-gradient(145deg, #1c2639, #111418 70%); border: 1px solid #30405f; border-radius: 12px; }
.event-date-card strong { display: block; color: var(--yellow); font-family: Impact, sans-serif; font-size: 47px; line-height: .95; }
.event-date-card span { display: block; margin-top: 7px; color: #d5d8dc; font-size: 12px; font-weight: 750; }
.event-date-card p { color: var(--muted); font-size: 11px; line-height: 1.6; }
.countdown { display: flex; gap: 8px; margin: 17px 0 6px; }
.countdown-piece { flex: 1; padding: 9px 5px; text-align: center; background: #0d1118; border: 1px solid #313b4e; border-radius: 6px; }
.countdown-piece strong { display: block; color: #fff; font-family: Impact, sans-serif; font-size: 21px; }
.countdown-piece small { display: block; color: #9ca5b5; font-size: 8px; text-transform: uppercase; }

.rank-tabs { display: flex; gap: 5px; padding: 5px; background: #101317; border: 1px solid #282d34; border-radius: 9px; }
.rank-tab { min-height: 36px; padding: 0 13px; border: 0; border-radius: 6px; color: #b5b9bf; background: transparent; font-size: 10px; font-weight: 750; cursor: pointer; }
.rank-tab.active { color: #12110c; background: var(--yellow); }
.rank-list { display: grid; gap: 7px; margin-top: 15px; }
.rank-row { min-height: 58px; padding: 8px 13px; display: grid; grid-template-columns: 32px 40px minmax(100px, 1.1fr) minmax(90px, 1fr) 70px; align-items: center; gap: 11px; background: #111418; border: 1px solid #292e35; border-radius: 8px; }
.rank-position { color: #81868e; font-family: Impact, sans-serif; font-size: 19px; text-align: center; }
.rank-row:nth-child(1) .rank-position { color: var(--yellow); }
.rank-avatar { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 7px; color: white; background: linear-gradient(135deg, #f45a2d, #492014); font-family: Impact, sans-serif; font-size: 15px; overflow: hidden; }
.rank-row:nth-child(3n + 2) .rank-avatar { background: linear-gradient(135deg, #3d78ff, #152d66); }
.rank-row:nth-child(3n) .rank-avatar { background: linear-gradient(135deg, #efc052, #653815); }
.rank-avatar img { width: 100%; height: 100%; object-fit: cover; }
.rank-name { font-size: 11px; font-weight: 800; text-transform: uppercase; }
.rank-name small { display: block; margin-top: 4px; color: #90959c; font-size: 9px; font-weight: 600; text-transform: none; }
.rank-bar { width: 100%; height: 6px; overflow: hidden; border: 0; border-radius: 99px; appearance: none; background: #252a31; }
.rank-bar::-webkit-progress-bar { border-radius: 99px; background: #252a31; }
.rank-bar::-webkit-progress-value { border-radius: 99px; background: linear-gradient(90deg, var(--orange), var(--yellow)); }
.rank-bar::-moz-progress-bar { border-radius: 99px; background: linear-gradient(90deg, var(--orange), var(--yellow)); }
.rank-votes { color: #f4f4f0; font-family: Impact, sans-serif; font-size: 17px; text-align: right; }
.rank-foot { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 14px; color: var(--dim); font-size: 9px; }
.official-empty { padding: 28px; text-align: center; }
.official-empty .big-icon { font-size: 30px; }
.official-empty .big-icon .icon-svg { width: 32px; height: 32px; }
.official-empty h3 { margin: 12px 0 8px; font-family: Impact, sans-serif; font-size: 23px; font-weight: 500; }
.official-empty p { max-width: 430px; margin: 0 auto; color: var(--muted); font-size: 11px; line-height: 1.65; }

.profile-layout { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: 34px; align-items: start; padding-top: 39px; }
.profile-art { position: sticky; top: 120px; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: linear-gradient(145deg, #3c1a16, #111418 58%); border: 1px solid #303640; }
.profile-art .candidate-avatar { width: 100%; height: 100%; aspect-ratio: auto; }
.profile-number { color: var(--yellow); font-family: Impact, sans-serif; font-size: 28px; }
.profile-title { margin: 7px 0 13px; font-family: Impact, sans-serif; font-size: clamp(48px, 7vw, 82px); font-weight: 500; line-height: .85; text-transform: uppercase; }
.profile-copy { color: #c3c6cb; font-size: 13px; line-height: 1.75; }
.profile-stat-row { display: flex; gap: 0; margin: 23px 0; padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.profile-stat { flex: 1; padding: 3px 14px; border-right: 1px solid var(--line); }
.profile-stat:first-child { padding-left: 0; }
.profile-stat:last-child { border: 0; }
.profile-stat strong { display: block; color: var(--yellow); font-family: Impact, sans-serif; font-size: 27px; }
.profile-stat small { color: var(--muted); font-size: 9px; }
.social-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
.social-link { padding: 8px 11px; color: #d3d6d9; background: #15191e; border: 1px solid #32383f; border-radius: 6px; font-size: 10px; }

.vote-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 25px; align-items: start; }
.vote-candidate { padding: 17px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.vote-candidate .rank-avatar { width: 52px; height: 52px; }
.vote-candidate h2 { margin: 0; font-family: Impact, sans-serif; font-size: 27px; font-weight: 500; text-transform: uppercase; }
.vote-candidate p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.quantity-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.quantity-choice { min-height: 74px; padding: 10px 8px; display: grid; align-content: center; gap: 5px; text-align: center; color: #d5d7da; background: #0c0f12; border: 1px solid #343a42; border-radius: 7px; cursor: pointer; }
.quantity-choice strong { color: var(--yellow); font-family: Impact, sans-serif; font-size: 20px; }
.quantity-choice small { color: #9b9fa5; font-size: 9px; }
.quantity-choice.active { border-color: var(--yellow); background: #2a210e; }
.price-total { display: flex; align-items: center; justify-content: space-between; margin: 16px 0; padding: 12px 0; border-top: 1px solid #30353d; border-bottom: 1px solid #30353d; font-size: 11px; }
.price-total strong { color: var(--yellow); font-family: Impact, sans-serif; font-size: 24px; }
.sim-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.sim-choice .button { min-height: 37px; padding: 0 8px; font-size: 9px; }
.checkout-steps { display: grid; gap: 16px; padding: 18px; }
.step-line { display: flex; align-items: center; gap: 11px; color: #d5d7da; font-size: 11px; }
.step-num { width: 24px; height: 24px; display: grid; place-items: center; color: #111; background: var(--yellow); border-radius: 50%; font-size: 10px; font-weight: 900; }
.price-inline { color: var(--yellow); font-weight: 850; }

.schedule-day { margin-bottom: 27px; }
.schedule-day-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 11px; padding: 0 2px; }
.schedule-day-heading h3 { margin: 0; font-family: Impact, sans-serif; font-size: 24px; font-weight: 500; text-transform: uppercase; }
.schedule-day-heading span { color: var(--muted); font-size: 10px; }
.schedule-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.schedule-card { padding: 14px; display: grid; grid-template-columns: 66px 1fr auto; gap: 12px; align-items: start; background: #111418; border: 1px solid #2a3037; border-radius: 9px; }
.schedule-card h4 { margin: 0; font-size: 12px; }
.schedule-card p { margin: 5px 0 0; color: #969ba2; font-size: 10px; line-height: 1.5; }
.schedule-kind { margin-bottom: 6px; color: var(--orange-light); font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.schedule-card .event-time { font-size: 17px; }
.empty-state { padding: 30px 20px; text-align: center; border: 1px dashed #353a42; border-radius: 11px; color: #aab0b7; }
.empty-state strong { display: block; margin-bottom: 6px; color: #e7e8e6; font-size: 13px; }
.empty-state p { margin: 0; font-size: 11px; line-height: 1.6; }

.info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.info-card { overflow: hidden; background: #111418; border: 1px solid #2b3037; border-radius: 11px; }
.info-card-image { height: 230px; overflow: hidden; background: #0c0e11; }
.info-card-image img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .3s; }
.info-card:hover .info-card-image img { transform: scale(1.025); }
.info-card-body { padding: 14px; }
.info-card-body h3 { margin: 0 0 6px; font-family: Impact, sans-serif; font-size: 18px; font-weight: 500; text-transform: uppercase; }
.info-card-body p { min-height: 34px; margin: 0 0 12px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.document-list { display: grid; gap: 10px; }
.document-item { padding: 14px 15px; display: flex; align-items: center; justify-content: space-between; gap: 15px; background: #121519; border: 1px solid #2a3037; border-radius: 9px; }
.document-item strong { display: block; font-size: 11px; }
.document-item small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }

.admin-wrap { min-height: calc(100vh - 106px); background: #0b0d10; }
.admin-header { min-height: 74px; padding: 13px max(24px, calc((100% - 1250px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 15px; background: #101215; border-bottom: 1px solid #292e35; }
.admin-brand { display: flex; align-items: center; gap: 11px; }
.admin-brand strong { font-family: Impact, sans-serif; font-size: 18px; font-weight: 500; letter-spacing: .02em; }
.admin-brand small { display: block; margin-top: 4px; color: #b5bbc4; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.admin-who { display: flex; align-items: center; gap: 10px; }
.admin-who .rank-avatar { width: 34px; height: 34px; border-radius: 50%; font-family: inherit; font-size: 11px; }
.admin-who strong { display: block; font-size: 12px; }
.admin-who small { display: block; color: #b5bbc4; font-size: 10px; }
.admin-layout { width: min(1250px, calc(100% - 36px)); margin: 0 auto; padding: 24px 0 48px; display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: 25px; align-items: start; }
.admin-sidebar { position: sticky; top: 96px; padding: 9px; background: #111418; border: 1px solid #2a3037; border-radius: 11px; }
.admin-nav { display: grid; gap: 3px; }
.admin-nav a, .admin-nav button { width: 100%; min-height: 42px; padding: 0 10px; display: flex; align-items: center; gap: 9px; color: #c5cad1; text-align: left; background: transparent; border: 0; border-radius: 8px; font-size: 11px; font-weight: 700; cursor: pointer; transition: color .16s ease, background-color .16s ease, transform .16s ease; }
.admin-nav a:hover, .admin-nav a.active, .admin-nav button:hover { color: #17130a; background: var(--yellow); }
.admin-nav a:focus-visible, .admin-nav button:focus-visible, .admin-nav + .button:focus-visible, .mini-button:focus-visible, .button:focus-visible { outline: 3px solid var(--orange-light); outline-offset: 2px; }
.admin-nav-icon { width: 20px; height: 20px; display: inline-grid; place-items: center; flex: 0 0 auto; }
.admin-nav-icon .icon-svg { width: 17px; height: 17px; }
.admin-nav .nav-divider { height: 1px; margin: 6px 2px; background: #292e35; }
.admin-content { min-width: 0; }
.admin-section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 0 0 21px; }
.admin-section-head h1 { margin: 6px 0 0; font-family: Impact, sans-serif; font-size: 36px; font-weight: 500; text-transform: uppercase; }
.admin-section-head p { margin: 6px 0 0; color: #b5bbc4; font-size: 12px; line-height: 1.5; }
.admin-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 15px; }
.metric-card { min-height: 96px; padding: 14px; background: #121519; border: 1px solid #2b3037; border-radius: 10px; }
.metric-label { display: flex; align-items: center; justify-content: space-between; gap: 7px; color: #b4bac2; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.metric-icon { width: 29px; height: 29px; display: grid; place-items: center; flex: 0 0 auto; color: var(--orange-light); background: #2a1a13; border: 1px solid #503021; border-radius: 8px; }
.metric-icon .icon-svg { width: 16px; height: 16px; }
.metric-card strong { display: block; margin-top: 13px; color: #f3f4f2; font-family: Impact, sans-serif; font-size: 29px; font-weight: 500; }
.metric-card strong.accent { color: var(--yellow); }
.metric-card small { display: block; margin-top: 3px; color: #a3aab3; font-size: 10px; }
.admin-grid-2 { display: grid; grid-template-columns: 1.1fr .9fr; gap: 13px; margin-top: 13px; }
.admin-panel { padding: 16px; background: #121519; border: 1px solid #2a3037; border-radius: 10px; }
.admin-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-bottom: 14px; }
.admin-panel-head h2 { margin: 0; font-family: Impact, sans-serif; font-size: 19px; font-weight: 500; text-transform: uppercase; }
.admin-table-wrap { overflow: auto; border: 1px solid #2a3037; border-radius: 8px; }
.admin-table { width: 100%; border-collapse: collapse; white-space: nowrap; font-size: 11px; }
.admin-table th { padding: 10px 11px; color: #aeb5bf; background: #181c21; text-align: left; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.admin-table td { padding: 10px 11px; border-top: 1px solid #252a31; color: #d4d7db; }
.admin-table .muted-cell { color: #9da2a9; }
.table-actions { display: flex; gap: 5px; }
.mini-button { min-height: 32px; padding: 0 10px; color: #e5e6e8; background: #22262c; border: 1px solid #3b4149; border-radius: 7px; font-size: 10px; font-weight: 750; cursor: pointer; transition: color .16s ease, background-color .16s ease, border-color .16s ease; }
.mini-button:active { transform: translateY(1px); }
.mini-button:hover { border-color: var(--yellow); color: var(--yellow); }
.mini-button.danger { color: #ff8d96; border-color: #673039; background: #2a1519; }
.admin-stack { display: grid; gap: 12px; }
.form-panel { padding: 18px; background: #121519; border: 1px solid #2a3037; border-radius: 10px; }
.form-panel h2 { margin: 0 0 14px; font-family: Impact, sans-serif; font-size: 20px; font-weight: 500; text-transform: uppercase; }
.checkbox-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; max-height: 194px; overflow-y: auto; padding: 9px; background: #0b0d10; border: 1px solid #353b43; border-radius: 7px; }
.check-option { display: flex; align-items: center; gap: 7px; color: #d4d7db; font-size: 11px; }
.check-option input { accent-color: var(--yellow); }
.score-row { display: grid; grid-template-columns: 1fr 110px 54px; align-items: center; gap: 11px; margin: 12px 0; color: #d0d4d9; font-size: 11px; }
.score-row input { width: 100%; accent-color: var(--blue); }
.score-row output { color: var(--yellow); text-align: right; font-weight: 800; }
.admin-score-card { padding: 12px; border: 1px solid #2c3138; border-radius: 7px; background: #0d1013; }
.admin-score-card + .admin-score-card { margin-top: 8px; }
.admin-score-top { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; }
.admin-score-card p { margin: 6px 0 0; color: var(--muted); font-size: 9px; }
.admin-note { color: #b5bbc4; font-size: 11px; line-height: 1.6; }
.admin-list { display: grid; gap: 9px; }
.admin-list-row { padding: 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; background: #0d1013; border: 1px solid #2c3138; border-radius: 8px; }
.admin-list-row h3 { margin: 0; font-size: 12px; }
.admin-list-row p { margin: 4px 0 0; color: #aab1ba; font-size: 10px; }
.admin-list-actions { display: flex; flex-wrap: wrap; gap: 5px; justify-content: end; }
.admin-list-actions .mini-button { min-height: 30px; }
.login-shell { width: min(950px, calc(100% - 36px)); min-height: 70vh; margin: 0 auto; padding: 55px 0; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 30px; }
.login-copy h1 { margin: 10px 0; font-family: Impact, sans-serif; font-size: clamp(46px, 7vw, 72px); font-weight: 500; line-height: .9; text-transform: uppercase; }
.login-copy p { max-width: 430px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.login-card { padding: 23px; background: #13161a; border: 1px solid #343a42; border-radius: 12px; }
.login-card h2 { margin: 0 0 6px; font-family: Impact, sans-serif; font-size: 26px; font-weight: 500; text-transform: uppercase; }
.login-card > p { margin: 0 0 17px; color: var(--muted); font-size: 10px; }
.secret-tip { margin-top: 15px; padding: 10px; color: #b8bdc4; background: #0b0d10; border-radius: 6px; font-size: 9px; line-height: 1.6; }
.toast { position: fixed; left: 50%; bottom: 22px; z-index: 100; max-width: calc(100% - 30px); padding: 12px 17px; transform: translateX(-50%); border: 1px solid #343a42; border-radius: 7px; color: #f0f0ed; background: #191d22; box-shadow: 0 8px 32px #0009; font-size: 11px; }
.toast.error { border-color: #803942; color: #ffb0b6; }
.modal-backdrop { position: fixed; inset: 0; z-index: 80; padding: 20px; display: grid; place-items: center; background: #000b; }
.modal { width: min(620px, 100%); max-height: min(86vh, 740px); overflow: auto; padding: 20px; background: #13161a; border: 1px solid #3b424a; border-radius: 12px; box-shadow: 0 25px 90px #000c; }
.modal-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.modal-head h2 { margin: 0; font-family: Impact, sans-serif; font-size: 26px; font-weight: 500; text-transform: uppercase; }
.modal-close { width: 33px; height: 33px; border: 1px solid #343a42; border-radius: 6px; color: #e5e7e9; background: #1a1e23; font-size: 18px; cursor: pointer; }
.modal-footer { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px; margin-top: 15px; }
.code-output { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.code-output code { padding: 8px 10px; color: var(--yellow); background: #0a0c0f; border: 1px solid #30353d; border-radius: 6px; font-size: 13px; letter-spacing: .12em; }
.skeleton { min-height: 20px; border-radius: 5px; background: linear-gradient(90deg, #171a1e, #242930, #171a1e); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
@keyframes shimmer { to { background-position: -200% 0; } }

.site-footer { padding: 40px max(26px, calc((100% - var(--content)) / 2)) 18px; border-top: 1px solid #292e35; background: #0d0f12; }
.footer-main { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 24px; padding-bottom: 30px; }
.footer-word { font-family: Impact, sans-serif; font-size: 27px; letter-spacing: .03em; }
.footer-word span { margin-left: 7px; color: var(--orange); font-size: 14px; }
.footer-main p { margin: 9px 0 0; color: #9ba0a7; font-size: 11px; line-height: 1.7; }
.footer-main a:hover { color: var(--yellow); }
.footer-label { color: #d7d9dc; font-size: 10px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.footer-bottom { padding-top: 15px; display: flex; justify-content: space-between; gap: 14px; color: #777d85; border-top: 1px solid #252a30; font-size: 10px; }
.footer-bottom a:hover { color: #d3d6da; }

@media (max-width: 980px) {
  .main-nav { gap: 13px; }
  .main-nav > a:not(.button) { font-size: 10px; }
  .hero-inner { grid-template-columns: minmax(0, 1fr) 290px; gap: 28px; }
  .hero-title { font-size: clamp(58px, 9vw, 94px); }
  .candidate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 16px; }
  .admin-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .demo-ribbon { font-size: 8px; letter-spacing: .07em; }
  .site-header { height: 64px; padding: 0 17px; }
  .brand { gap: 8px; }
  .brand-copy strong { font-size: 16px; }
  .brand-copy small { font-size: 6px; letter-spacing: .11em; }
  .menu-toggle { display: block; }
  .main-nav { display: none; position: absolute; left: 0; right: 0; top: 64px; padding: 12px 17px 17px; align-items: stretch; flex-direction: column; gap: 0; background: #101215; border-bottom: 1px solid #343a42; box-shadow: 0 12px 20px #0008; }
  .main-nav.open { display: flex; }
  .main-nav > a:not(.button) { padding: 13px 3px; border-bottom: 1px solid #282d34; font-size: 12px; }
  .main-nav .button { margin-top: 12px; }
  .page-shell { width: min(var(--content), calc(100% - 34px)); }
  .section { padding: 52px 0; }
  .section-tight { padding: 34px 0; }
  .hero { padding: 25px 0 32px; }
  .hero-inner { min-height: 0; grid-template-columns: 1fr; gap: 22px; }
  .hero-copy { padding: 10px 0 0; }
  .hero-title { font-size: clamp(59px, 16vw, 88px); }
  .hero-slogan { font-size: 15px; }
  .hero-lede { font-size: 12px; }
  .date-strip { gap: 6px; margin: 19px 0 15px; }
  .date-chip { flex: 1 1 68px; min-width: 66px; padding: 8px 7px; }
  .date-chip strong { font-size: 21px; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-actions .button { padding: 0 9px; font-size: 10px; }
  .hero-poster { width: min(70%, 265px); justify-self: start; margin-left: 22px; }
  .hero-poster img { max-height: 370px; }
  .hero-activities { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 0; margin-top: 27px; }
  .activity-tag { padding: 0 9px; border: 0; font-size: 8px; }
  .activity-tag:nth-child(odd) { padding-left: 0; }
  .trust-row { grid-template-columns: 1fr 1fr; }
  .trust-item { padding: 15px 10px; gap: 9px; }
  .trust-item:nth-child(2) { border-right: 0; }
  .trust-item:nth-child(1), .trust-item:nth-child(2) { border-bottom: 1px solid var(--line); }
  .trust-icon { width: 32px; height: 32px; flex: 0 0 32px; font-size: 13px; }
  .trust-item strong { font-size: 10px; }
  .trust-item small { font-size: 8px; }
  .section-heading-row { align-items: start; flex-direction: column; }
  .section-heading h1, .display-title { font-size: clamp(43px, 12vw, 60px); }
  .section-heading h2 { font-size: 35px; }
  .candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .candidate-art { padding: 10px; }
  .candidate-number { left: 8px; top: 8px; min-width: 25px; height: 24px; font-size: 12px; }
  .candidate-initials { font-size: 54px; }
  .portrait-placeholder { right: 7px; bottom: 7px; font-size: 6px; }
  .candidate-card-body { padding: 10px; }
  .candidate-card h3 { margin: 5px 0 9px; font-size: 17px; }
  .candidate-card-actions { grid-template-columns: 1fr; }
  .candidate-card-actions .button:last-child { display: none; }
  .candidate-stats { font-size: 8px; }
  .filter-row { gap: 6px; }
  .filter-chip { min-height: 32px; padding: 0 10px; font-size: 9px; }
  .count-note { width: 100%; margin-left: 0; }
  .event-preview { grid-template-columns: 1fr; }
  .event-date-card { min-height: 210px; }
  .event-row { grid-template-columns: 57px 1fr; gap: 10px; padding: 11px; }
  .event-row > .tag { grid-column: 2; justify-self: start; }
  .event-time { font-size: 16px; }
  .rank-tabs { width: 100%; }
  .rank-tab { flex: 1; padding: 0 4px; font-size: 8px; }
  .rank-row { grid-template-columns: 23px 33px minmax(86px, 1fr) 53px; gap: 7px; padding: 7px; }
  .rank-avatar { width: 32px; height: 32px; font-size: 12px; }
  .rank-name { font-size: 9px; }
  .rank-name small { font-size: 8px; }
  .rank-bar { display: none; }
  .rank-votes { font-size: 14px; }
  .rank-foot { align-items: start; flex-direction: column; }
  .profile-layout { grid-template-columns: 1fr; gap: 22px; padding-top: 20px; }
  .profile-art { width: 100%; max-height: 420px; aspect-ratio: 7 / 8; position: relative; top: auto; }
  .profile-title { font-size: 57px; }
  .vote-layout { grid-template-columns: 1fr; gap: 14px; }
  .quantity-grid { grid-template-columns: repeat(3, 1fr); }
  .schedule-grid { grid-template-columns: 1fr; }
  .schedule-card { grid-template-columns: 54px 1fr auto; gap: 9px; padding: 11px; }
  .schedule-card .tag { display: none; }
  .info-grid { grid-template-columns: repeat(2, 1fr); gap: 9px; }
  .info-card-image { height: 165px; }
  .info-card-body { padding: 10px; }
  .info-card-body h3 { font-size: 15px; }
  .info-card-body p { min-height: 45px; font-size: 9px; }
  .document-item { align-items: start; flex-direction: column; gap: 10px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
  .footer-main > div:first-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; }
  .login-shell { min-height: auto; padding: 35px 0; grid-template-columns: 1fr; gap: 22px; }
  .login-copy h1 { font-size: 55px; }
  .admin-header { min-height: 63px; padding: 10px 16px; }
  .admin-brand { gap: 8px; }
  .admin-who > div:not(.rank-avatar) { display: none; }
  .admin-layout { width: calc(100% - 24px); padding: 13px 0 95px; grid-template-columns: 1fr; gap: 13px; }
  .admin-sidebar { position: fixed; left: 10px; right: 10px; bottom: max(8px, env(safe-area-inset-bottom)); top: auto; z-index: 40; padding: 6px; overflow-x: auto; border-radius: 9px; box-shadow: 0 6px 25px #000b; }
  .admin-nav { display: flex; width: max-content; gap: 3px; }
  .admin-nav a, .admin-nav button { width: auto; min-width: 64px; min-height: 48px; padding: 3px 9px; flex-direction: column; justify-content: center; gap: 3px; font-size: 9px; text-align: center; white-space: nowrap; }
  .admin-nav-icon { width: 20px; height: 20px; }
  .admin-nav-icon .icon-svg { width: 16px; height: 16px; }
  .admin-nav .nav-divider { display: none; }
  .admin-section-head { align-items: start; flex-direction: column; margin-bottom: 14px; }
  .admin-section-head h1 { font-size: 31px; }
  .admin-cards { gap: 7px; margin-bottom: 8px; }
  .metric-card { min-height: 78px; padding: 10px; }
  .metric-label { font-size: 9px; }
  .metric-card strong { margin-top: 9px; font-size: 23px; }
  .metric-card small { font-size: 9px; }
  .admin-grid-2 { grid-template-columns: 1fr; gap: 9px; margin-top: 9px; }
  .admin-panel { padding: 12px; }
  .admin-panel-head h2 { font-size: 17px; }
  .admin-list-row { align-items: start; flex-direction: column; }
  .admin-list-actions { justify-content: start; }
  .field-grid { grid-template-columns: 1fr; gap: 0; }
  .checkbox-list { grid-template-columns: 1fr 1fr; }
  .score-row { grid-template-columns: 1fr 88px 35px; gap: 7px; font-size: 9px; }
  .site-footer { padding: 30px 17px 15px; }
  .modal-backdrop { padding: 11px; }
  .modal { padding: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Direction visuelle 2026 : affiche imprimée, orange incandescent et contraste photo. */
body { font-family: var(--font-ui); background: radial-gradient(ellipse at 80% 2%, #25110b 0, transparent 26%), var(--bg); }
h1, h2, h3, h4, .brand-copy strong, .admin-brand strong, .hero-title, .display-title, .section-heading h1, .section-heading h2,
.panel-title, .profile-title, .vote-candidate h2, .event-date-card strong, .candidate-card h3, .schedule-day-heading h3,
.info-card-body h3, .admin-section-head h1, .admin-panel-head h2, .metric-card strong, .rank-votes, .event-time {
  font-family: var(--font-display);
  font-stretch: condensed;
  font-weight: 500;
}
:focus-visible { outline-color: var(--orange-light); }
.demo-ribbon { color: #fff2eb; background: #17100d; border-bottom: 1px solid #61301f; }
.pulse-dot { background: var(--orange); box-shadow: 0 0 12px #ff4b1f99; }
.site-header { border-bottom-color: #38271f; background: rgba(9, 8, 7, .95); }
.main-nav > a:hover, .main-nav > a.active { color: var(--orange-light); }
.button { border-radius: 8px; letter-spacing: .005em; }
.button-accent { color: #180b06; background: var(--orange); box-shadow: 2px 3px 0 #8f2b12; }
.button-accent:hover { background: #ff8153; }
.button-ghost { background: #171310; border-color: #49342a; }
.button-link { color: var(--orange-light); }
.eyebrow { color: var(--orange-light); }
.section-heading h1, .section-heading h2, .display-title, .profile-title { letter-spacing: -.025em; }

.hero {
  background: radial-gradient(ellipse at 82% 44%, #7a250f 0, #42190f 16%, transparent 39%),
    radial-gradient(ellipse at 44% 96%, #30140d 0, transparent 43%), linear-gradient(118deg, #090807 3%, #15100e 62%, #0c0b0a 100%);
}
.hero::before {
  opacity: .27;
  mix-blend-mode: screen;
  background-image: url('/assets/print-grain.svg'), linear-gradient(115deg, transparent 35%, #ff5b1f 35.2%, transparent 35.5%), linear-gradient(115deg, transparent 72%, #2e63ff 72.1%, transparent 72.3%);
}
.hero::after {
  position: absolute;
  z-index: 0;
  top: 25%;
  right: -.08em;
  color: transparent;
  content: 'BOUAKÉ';
  font-family: var(--font-display);
  font-size: clamp(120px, 22vw, 310px);
  line-height: .8;
  letter-spacing: -.04em;
  white-space: nowrap;
  -webkit-text-stroke: 1px #ff74404a;
  transform: rotate(-90deg) translateX(22%);
  pointer-events: none;
}
.hero-inner, .hero-activities { z-index: 1; }
.hero-title { text-shadow: 0 3px 0 #0008; }
.hero-poster { padding: 7px; background: var(--orange); box-shadow: 9px 11px 0 #070605, 13px 15px 0 #ff4b1f55; }
.hero-poster::after { inset: 14px -14px -14px 14px; border: 1px solid #ff9a6d; border-radius: 0; }
.hero-poster img { border: 0; border-radius: 0; filter: contrast(1.06) saturate(1.08); }
.poster-caption { color: #c4aaa0; }
.date-chip { background: var(--orange); border-color: #ff9267; border-radius: 2px; }
.date-chip strong { color: #1a0b05; }
.date-chip span { color: #4a1d0c; }
.hero-meta strong, .activity-icon, .trust-icon { color: var(--orange-light); }
.trust-row { border-color: #3a2a22; }
.trust-item { border-color: #3a2a22; }
.trust-icon { border-radius: 3px; border-color: #68402e; }

.candidate-card, .info-card { border-radius: 3px; border-color: #3a2a22; box-shadow: 0 7px 22px #0003; }
.candidate-card { border-top: 2px solid #7c321b; }
.candidate-card:hover, .info-card:hover { border-color: #d24a24; }
.candidate-card:nth-child(4n + 2) .candidate-art::before { background: radial-gradient(circle at 35% 35%, #ff7848, #8f3218 34%, #14100e 72%); }
.candidate-card:nth-child(4n + 3) .candidate-art::before { background: radial-gradient(circle at 35% 35%, #ffb16b, #8c3b17 33%, #14100e 72%); }
.candidate-card:nth-child(4n) .candidate-art::before { background: radial-gradient(circle at 35% 35%, #d64a27, #652018 32%, #14100e 72%); }
.candidate-photo { filter: grayscale(1) contrast(1.08); }
.candidate-number { border-radius: 2px; color: #1a0b05; background: var(--orange); }
.candidate-card h3 { letter-spacing: -.02em; }
.filter-chip { border-radius: 3px; }
.filter-chip.selected, .rank-tab.active { color: #180b06; background: var(--orange); border-color: var(--orange); }
.rank-row { border-radius: 3px; border-color: #352820; }
.rank-row:nth-child(1) .rank-position { color: var(--orange-light); }
.rank-bar::-webkit-progress-value { background: linear-gradient(90deg, #ff4b1f, #ffab68); }
.rank-bar::-moz-progress-bar { background: linear-gradient(90deg, #ff4b1f, #ffab68); }
.event-date-card { background: linear-gradient(145deg, #57200f, #19110e 70%); border-color: #75331c; border-radius: 3px; }
.event-row, .schedule-card { border-radius: 3px; border-color: #382a22; }
.event-time, .profile-stat strong, .profile-number { color: var(--orange-light); }
.profile-art { border-radius: 3px; border-color: #75331c; }
.quantity-choice { border-radius: 3px; }
.quantity-choice.active { border-color: var(--orange); background: #32170d; }
.price-total strong { color: var(--orange-light); }
.admin-sidebar, .admin-panel, .metric-card, .panel { border-radius: 10px; border-color: #343a42; }
.admin-nav a.active, .admin-nav button:hover { background: var(--orange); }
.tag-orange { color: #ffab8a; border-color: #79351e; background: #35190f; }
.tag-yellow { color: #ffb18b; border-color: #79351e; background: #35190f; }

.hero-live-visual { width: min(100%, 460px); padding: 0; isolation: isolate; background: transparent; box-shadow: none; }
.hero-live-visual::before { position: absolute; z-index: -1; inset: 7px -11px -11px 11px; content: ""; background: var(--orange); transform: rotate(-1.2deg); }
.hero-live-visual::after { inset: 13px -16px -15px 15px; border-color: #ff9a6d; }
.hero-live-photo { width: 100%; height: auto; aspect-ratio: 1.5; max-height: none !important; object-fit: cover; object-position: 76% center; border: 1px solid #f6a17b; border-radius: 0 !important; box-shadow: 0 22px 65px #000b; }
.poster-sticker { position: absolute; z-index: 2; left: -12px; bottom: 24px; width: clamp(92px, 27%, 132px); padding: 5px; background: var(--orange); box-shadow: 5px 7px 0 #0c0907, 0 12px 24px #0009; transform: rotate(-4deg); }
.poster-sticker img { width: 100%; height: auto; max-height: 180px; object-fit: cover; object-position: top; border: 0; border-radius: 0; box-shadow: none; }
.candidate-editorial { margin: 0 0 24px; position: relative; overflow: hidden; border: 1px solid #74402a; background: #100d0b; box-shadow: 7px 8px 0 #ff4b1f30; }
.candidate-editorial img { width: 100%; height: clamp(200px, 28vw, 360px); object-fit: cover; object-position: center 20%; }
.candidate-editorial figcaption { padding: 9px 12px; color: #d9c5ba; background: #120d0a; border-top: 1px solid #3f291e; font-size: 9px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.rank-avatar.candidate-demo-portrait { background-image: url('/assets/demo/candidate-portraits.jpg'); background-size: 500% 500%; background-position: var(--portrait-x, 0%) var(--portrait-y, 0%); }

/* Accueil public V2 : rythme éditorial inspiré de la maquette DEVANGBAER. */
.demo-ribbon { min-height: 24px; padding: 4px 12px; gap: 7px; font-size: 9px; font-weight: 700; letter-spacing: .025em; text-transform: none; }
.site-header { height: 78px; gap: 28px; }
.brand { min-width: 0; }
.main-nav { gap: clamp(15px, 2vw, 28px); }
.main-nav > a:not(.button) { font-size: 12px; }
.nav-vote { min-width: 116px; color: #160b07 !important; background: var(--orange); box-shadow: 2px 3px 0 #8f2b12; }
.nav-vote:hover { background: #ff8153; }
.home-hero { min-height: 520px; padding: 38px 0 28px; background:
  radial-gradient(ellipse at 78% 45%, #11306b99 0, transparent 33%),
  radial-gradient(ellipse at 22% 87%, #8e2e13aa 0, transparent 42%),
  linear-gradient(115deg, #08090c 3%, #0e1015 56%, #08090c 100%); }
.home-hero::before { opacity: .23; }
.home-hero .hero-inner { min-height: 430px; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: clamp(28px, 5vw, 72px); }
.home-hero .hero-copy { padding: 18px 0; }
.home-hero .hero-title { max-width: none; font-size: clamp(53px, 7vw, 90px); line-height: .9; letter-spacing: -.055em; white-space: nowrap; }
.home-hero .hero-title span { color: #fff; }
.home-hero .hero-title em { color: var(--orange); font-style: normal; }
.home-hero .hero-slogan { margin-top: 18px; font-size: clamp(17px, 2vw, 23px); }
.home-hero .hero-lede { max-width: 460px; margin: 11px 0 19px; color: #d4d6db; font-size: 14px; }
.home-hero .hero-meta { margin: 18px 0 22px; gap: 10px 17px; font-size: 12px; }
.home-hero .hero-meta strong { color: #fff; }
.home-hero .hero-meta span:last-child strong { color: #ff9a73; }
.home-hero .hero-actions { gap: 10px; }
.home-hero .hero-actions .button { min-height: 46px; padding: 0 17px; }
.home-hero .hero-actions .button-accent { color: #170b07; }
.home-hero-ranking-link, .text-link { display: inline-flex; align-items: center; gap: 7px; color: #ff956d; font-size: 11px; font-weight: 800; }
.home-hero-ranking-link { margin-top: 14px; }
.home-hero-ranking-link:hover, .text-link:hover { color: #fff; }
.home-hero .hero-live-visual { width: min(100%, 490px); transform: rotate(1deg); }
.home-hero .hero-live-photo { aspect-ratio: 1.45; border-color: #8da9ef; box-shadow: 0 25px 80px #000c, 0 0 45px #1c4da733; }
.home-hero .hero-live-visual::before { background: var(--orange); }
.home-hero .hero-live-visual::after { border-color: #427aff; }
.home-hero .poster-caption { position: absolute; left: 12px; bottom: 12px; margin: 0; padding: 5px 7px; color: #fff; background: #08090cce; font-size: 8px; text-align: left; }
.home-dates { padding-top: 22px; padding-bottom: 42px; }
.home-section-topline { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.home-section-topline .eyebrow { font-size: 9px; }
.home-section-topline h2 { margin: 0; font-family: var(--font-display); font-size: 23px; font-weight: 500; letter-spacing: -.02em; text-transform: uppercase; }
.home-date-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.home-date-card { min-height: 142px; padding: 15px; position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; border: 1px solid #573325; background: #17110e; box-shadow: 4px 5px 0 #0007; transition: transform .18s, border-color .18s; }
.home-date-card:hover { transform: translateY(-3px); border-color: var(--orange); }
.home-date-card.next, .home-date-card.current { border-color: var(--orange); box-shadow: 4px 5px 0 #7d2c16; }
.home-date-card.today { border-color: #ff9a73; box-shadow: 4px 5px 0 #522410; }
.home-date-image, .home-date-shade { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; }
.home-date-image { object-fit: cover; opacity: .78; transition: transform .35s; }
.home-date-card:hover .home-date-image { transform: scale(1.04); }
.home-date-image-1 { object-position: 76% center; }
.home-date-image-2 { object-position: 45% center; filter: hue-rotate(9deg); }
.home-date-image-3 { object-position: 65% center; filter: hue-rotate(22deg); }
.home-date-image-4 { object-position: 85% center; filter: hue-rotate(-10deg); }
.home-date-shade { z-index: -1; background: linear-gradient(0deg, #08090cef 0%, #08090c87 48%, #08090c15 100%); }
.home-date-card.next .home-date-shade, .home-date-card.current .home-date-shade { background: linear-gradient(0deg, #120903f2 0%, #22100b85 54%, #08102c20 100%); }
.home-date-number { color: #fff; font-family: var(--font-display); font-size: clamp(37px, 4vw, 55px); line-height: .83; text-shadow: 0 3px 12px #000c; }
.home-date-month { margin-top: 5px; color: #fff; font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.home-date-state { position: absolute; top: 11px; left: 11px; max-width: calc(100% - 48px); padding: 5px 7px; color: #fff; background: #11151bd9; border: 1px solid #ffffff2c; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.home-date-card.next .home-date-state, .home-date-card.current .home-date-state { color: #190b06; background: var(--orange); border-color: var(--orange-light); }
.home-date-card.past .home-date-image { filter: grayscale(.7); opacity: .47; }
.home-date-arrow { position: absolute; right: 10px; bottom: 10px; width: 29px; height: 29px; display: grid; place-items: center; color: #17100c; background: var(--orange); border-radius: 50%; font-size: 15px; font-weight: 900; }
.home-universe { padding-top: 54px; padding-bottom: 55px; background: linear-gradient(180deg, #0d0c0b, #090807); border-top: 1px solid #281d18; border-bottom: 1px solid #281d18; }
.home-universe .section-heading { margin-bottom: 22px; }
.home-universe .section-heading h2 { font-size: clamp(31px, 4vw, 43px); }
.home-activity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.home-activity-card { min-height: 142px; padding: 19px 17px; position: relative; overflow: hidden; background: linear-gradient(130deg, #15120f, #0e1015); border: 1px solid #59301f; box-shadow: inset 0 -25px 55px #ff4b1f09; }
.home-activity-card::after { position: absolute; right: -31px; bottom: -42px; width: 120px; height: 120px; content: ""; border: 1px solid #ff714238; border-radius: 50%; box-shadow: 0 0 0 13px #ff71420a, 0 0 0 27px #ff714207; }
.home-activity-card.blue { border-color: #263d78; background: linear-gradient(130deg, #10182a, #0e1015); box-shadow: inset 0 -25px 55px #2e63ff12; }
.home-activity-card.blue::after { border-color: #5283ff4a; box-shadow: 0 0 0 13px #5283ff0d, 0 0 0 27px #5283ff08; }
.home-activity-icon { width: 42px; height: 42px; display: grid; place-items: center; color: var(--orange); border: 1px solid #9b4729; border-radius: 50%; font-size: 20px; }
.home-activity-card.blue .home-activity-icon { color: #75a0ff; border-color: #4265b2; }
.home-activity-card h3 { margin: 15px 0 5px; font-family: var(--font-display); font-size: 18px; font-weight: 500; text-transform: uppercase; }
.home-activity-card p { max-width: 220px; margin: 0; color: #c0b8b2; font-size: 12px; line-height: 1.5; }
.home-contestants-section { padding-top: 62px; padding-bottom: 58px; }
.home-showcase { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(270px, .75fr); align-items: start; gap: 25px; }
.home-contestants .section-heading-row { margin-bottom: 18px; }
.home-contestants .section-heading { margin-bottom: 0; }
.home-contestants .section-heading h2 { font-size: clamp(30px, 3.6vw, 43px); }
.home-contestants .candidate-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.home-contestants .candidate-card { background: #111114; border-color: #3a2a24; }
.home-contestants .candidate-card:hover { border-color: var(--orange); }
.home-contestants .candidate-photo { filter: grayscale(1) contrast(1.08); }
.home-contestants .candidate-card-actions .button:last-child { display: inline-flex; }
.home-contestants .candidate-card-actions { grid-template-columns: 1fr; }
.home-contestants .candidate-card-actions .button { min-height: 36px; font-size: 9px; }
.home-data-caption { margin: 10px 0 0; color: #968b84; font-size: 10px; line-height: 1.5; }
.home-ranking { padding: 18px; background: linear-gradient(150deg, #15120f, #0b0d12); border-color: #493125; box-shadow: 4px 5px 0 #0008; }
.home-ranking-heading { margin-bottom: 10px; }
.home-ranking-heading .eyebrow { font-size: 8px; }
.home-ranking-heading h2 { margin: 8px 0 3px; font-family: var(--font-display); font-size: 26px; font-weight: 500; text-transform: uppercase; }
.home-ranking-heading small { color: #b1a59d; font-size: 9px; }
.home-ranking-list { min-height: 172px; display: grid; align-content: start; gap: 7px; margin: 12px 0; }
.home-ranking-row { min-height: 48px; padding: 5px 7px; display: grid; grid-template-columns: 24px 35px minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 1px solid #382a23; background: #0c0d10; }
.home-ranking-position { color: var(--orange-light); font-family: var(--font-display); font-size: 20px; text-align: center; }
.home-ranking-avatar { width: 34px; height: 34px; display: block; position: relative; overflow: hidden; background: #28211d; }
.home-ranking-avatar img { width: 100%; height: 100%; object-fit: cover; }
.home-ranking-avatar.candidate-demo-portrait { background-image: url('/assets/demo/candidate-portraits.jpg'); background-size: 500% 500%; background-position: var(--portrait-x, 0%) var(--portrait-y, 0%); }
.home-ranking-name { min-width: 0; overflow: hidden; color: #fff; font-size: 10px; font-weight: 850; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.home-ranking-name small { display: block; margin-top: 3px; color: #a49a94; font-size: 8px; font-weight: 500; text-transform: none; }
.home-ranking-votes { color: #fff; font-family: var(--font-display); font-size: 18px; }
.home-ranking .button { min-height: 39px; }
.home-ranking-note { margin: 10px 0 0; color: #b6aaa2; font-size: 11px; line-height: 1.5; }
.home-ranking-loading, .home-ranking-empty { align-self: center; margin: 0; color: #b6aaa2; font-size: 10px; line-height: 1.55; }
.home-program-section { padding-top: 52px; padding-bottom: 57px; background: linear-gradient(180deg, #0b0d11, #0c0a09); border-top: 1px solid #22252a; }
.home-program-section .section-heading h2 { max-width: 680px; }
.home-program-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(245px, .65fr); align-items: stretch; gap: 18px; }
.home-event-list { align-content: start; gap: 8px; }
.home-event-row { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 11px; padding: 12px; background: #111316; border-color: #2c3139; }
.home-event-row h3 { font-size: 12px; }
.home-event-row p { margin-top: 4px; font-size: 11px; }
.home-program-tags { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
.home-program-tags .tag { min-height: 19px; padding: 3px 6px; font-size: 9px; }
.home-program-aside { display: grid; grid-template-columns: 1fr; gap: 12px; }
.home-countdown-card { min-height: 225px; padding: 18px; gap: 9px; background: linear-gradient(140deg, #202337, #17110f 75%); border-color: #39466f; }
.home-countdown-card > .eyebrow { color: #b5c8ff; }
.home-countdown-card > strong { color: var(--orange); font-size: 41px; }
.home-countdown-card > span:not(.eyebrow) { margin: 0; font-size: 11px; }
.home-next-date-value { min-height: 40px; display: flex; align-items: baseline; gap: 7px; color: #fff; font-size: 12px; font-weight: 800; }
.home-next-date-value strong { color: #fff; font-family: var(--font-display); font-size: 38px; }
.home-next-date-value span { color: #b5c8ff; font-size: 9px; text-transform: uppercase; }
.home-countdown-card .button { min-height: 36px; }
.home-support-card { padding: 16px; background: #17120f; border: 1px solid #70371f; box-shadow: 4px 4px 0 #0007; }
.home-support-card h3 { margin: 8px 0 5px; font-family: var(--font-display); font-size: 22px; font-weight: 500; text-transform: uppercase; }
.home-support-card p { margin: 0 0 13px; color: #c1b4ac; font-size: 11px; line-height: 1.55; }
.home-support-card .button { min-height: 39px; }
.home-contact-section { padding: 0 0 62px; }
.home-contact-panel { padding: 24px 27px; position: relative; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; background: linear-gradient(105deg, #12100f, #101724); border: 1px solid #4c3024; box-shadow: inset 4px 0 0 var(--orange); }
.home-contact-panel h2 { margin: 8px 0 6px; font-family: var(--font-display); font-size: clamp(26px, 3.5vw, 38px); font-weight: 500; text-transform: uppercase; }
.home-contact-panel p { max-width: 590px; margin: 0; color: #c1b7b1; font-size: 11px; line-height: 1.6; }
.home-contact-more { width: 100%; min-height: 44px; display: inline-flex; align-items: center; color: #98b6ff; font-size: 11px; }
.footer-brand-block { min-width: 210px; }
.footer-logo { width: auto; height: 64px; max-width: 100%; max-height: none; object-fit: contain; object-position: left center; }
.footer-brand-block p { margin-top: 5px; }
.site-footer { background: #090a0c; }
.footer-main { grid-template-columns: 1.45fr 1fr 1.35fr 1fr; }
.footer-bottom { flex-wrap: wrap; }

@media (max-width: 980px) {
  .home-hero .hero-inner { grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr); gap: 23px; }
  .home-hero .hero-title { font-size: clamp(49px, 6.7vw, 67px); }
  .home-showcase { grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr); gap: 16px; }
  .home-contestants .candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-main { grid-template-columns: 1.2fr 1fr 1.2fr 1fr; }
}

@media (max-width: 760px) {
  .demo-ribbon { min-height: 22px; padding: 3px 8px; font-size: 8px; letter-spacing: 0; }
  .site-header { height: 72px; padding: 0 16px; gap: 12px; }
  .brand-logo { height: 60px; }
  .menu-toggle { width: 42px; height: 42px; display: grid; place-items: center; color: #fff; border: 1px solid #453126; border-radius: 3px; background: #110e0c; font-size: 23px; }
  .main-nav { top: 72px; padding: 10px 16px 16px; background: #0b0d11f7; }
  .main-nav > a:not(.button) { min-height: 46px; display: flex; align-items: center; border-color: #282d34; font-size: 13px; }
  .main-nav .button { min-height: 46px; margin-top: 10px; font-size: 12px; }
  .home-hero { min-height: 0; padding: 0 0 20px; }
  .home-hero .hero-inner { width: 100%; min-height: 548px; padding: 28px 17px 24px; position: relative; display: flex; align-items: flex-end; }
  .home-hero .hero-copy { width: 100%; padding: 0; z-index: 2; }
  .home-hero .hero-title { max-width: 100%; font-size: clamp(34px, 10.5vw, 47px); line-height: .95; white-space: normal; }
  .home-hero .hero-kicker { margin-bottom: 11px; font-size: 8px; letter-spacing: .14em; }
  .home-hero .hero-slogan { margin: 12px 0 6px; font-size: 16px; }
  .home-hero .hero-lede { margin: 6px 0 14px; max-width: 360px; font-size: 11px; line-height: 1.5; }
  .home-hero .hero-meta { display: grid; gap: 7px; margin: 13px 0 15px; font-size: 10px; }
  .home-hero .hero-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .home-hero .hero-actions .button { width: 100%; min-height: 46px; padding: 0 13px; font-size: 11px; }
  .home-hero-ranking-link { margin-top: 10px; font-size: 10px; }
  .home-hero .hero-live-visual { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; margin: 0; transform: none; }
  .home-hero .hero-live-visual::before { display: none; }
  .home-hero .hero-live-visual::after { z-index: 1; inset: 0; display: block; border: 0; background: linear-gradient(0deg, #07090df2 0%, #080a0dbd 43%, #08090c12 88%), linear-gradient(90deg, #08090c8c, transparent 85%), radial-gradient(ellipse at 75% 30%, #174ca23b, transparent 47%); }
  .home-hero .hero-live-photo { width: 100%; height: 100%; aspect-ratio: auto; object-position: 100% center; border: 0; box-shadow: none; }
  .home-hero .poster-caption { display: none; }
  .home-dates { padding-top: 19px; padding-bottom: 35px; }
  .home-section-topline { margin-bottom: 11px; }
  .home-section-topline h2 { font-size: 20px; }
  .home-section-topline .eyebrow { font-size: 7px; letter-spacing: .12em; }
  .home-date-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .home-date-card { min-height: 126px; padding: 12px; }
  .home-date-number { font-size: 43px; }
  .home-date-state { top: 8px; left: 8px; font-size: 7px; }
  .home-date-arrow { right: 8px; bottom: 8px; width: 26px; height: 26px; }
  .home-universe { padding-top: 40px; padding-bottom: 40px; }
  .home-universe .section-heading { margin-bottom: 18px; }
  .home-universe .section-heading p { font-size: 11px; }
  .home-activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .home-activity-card { min-height: 132px; padding: 13px; }
  .home-activity-icon { width: 35px; height: 35px; font-size: 17px; }
  .home-activity-card h3 { margin: 11px 0 4px; font-size: 15px; }
  .home-activity-card p { font-size: 9px; }
  .home-contestants-section { padding-top: 42px; padding-bottom: 40px; }
  .home-showcase { grid-template-columns: 1fr; gap: 21px; }
  .home-contestants .section-heading-row { flex-direction: column; align-items: flex-start; gap: 10px; }
  .home-contestants .section-heading h2 { font-size: 35px; }
  .home-contestants .section-heading p { font-size: 11px; }
  .home-contestants .candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .home-contestants .candidate-card-body { padding: 9px; }
  .home-contestants .candidate-card h3 { font-size: 16px; overflow-wrap: anywhere; }
  .home-contestants .candidate-meta .tag { min-height: 18px; padding: 3px 5px; font-size: 7px; }
  .home-contestants .candidate-stats { align-items: flex-start; gap: 5px; font-size: 7px; }
  .home-contestants .candidate-stats span { display: flex; flex-direction: column; gap: 2px; }
  .home-contestants .candidate-card-actions .button { min-height: 38px; padding: 0 5px; font-size: 8px; }
  .home-ranking { padding: 15px; }
  .home-ranking-heading h2 { font-size: 25px; }
  .home-ranking-list { min-height: 150px; }
  .home-ranking-row { grid-template-columns: 25px 37px minmax(0, 1fr) auto; gap: 8px; }
  .home-ranking-avatar { width: 36px; height: 36px; }
  .home-ranking-name { font-size: 10px; }
  .home-ranking-votes { font-size: 18px; }
  .home-program-section { padding-top: 40px; padding-bottom: 40px; }
  .home-program-section .section-heading-row { align-items: flex-start; }
  .home-program-section .section-heading h2 { font-size: 34px; }
  .home-program-section .section-heading p { font-size: 11px; }
  .home-program-layout { grid-template-columns: 1fr; gap: 12px; }
  .home-event-row { grid-template-columns: 46px minmax(0, 1fr); gap: 9px; padding: 10px; }
  .home-event-row > .home-program-tags { grid-column: 2; justify-content: flex-start; }
  .home-event-row .event-time { font-size: 15px; }
  .home-event-row h3 { font-size: 11px; }
  .home-event-row p { font-size: 9px; }
  .home-program-aside { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .home-countdown-card { min-height: 200px; padding: 14px; }
  .home-countdown-card > strong { font-size: 33px; }
  .home-countdown-card > span:not(.eyebrow) { font-size: 9px; }
  .home-next-date-value strong { font-size: 33px; }
  .home-countdown-card .button { padding: 0 7px; font-size: 9px; }
  .home-support-card { padding: 13px; }
  .home-support-card h3 { font-size: 19px; }
  .home-support-card p { font-size: 9px; }
  .home-support-card .button { padding: 0 7px; font-size: 9px; }
  .home-contact-section { padding-bottom: 40px; }
  .home-contact-panel { padding: 17px; align-items: flex-start; }
  .home-contact-panel h2 { font-size: 27px; }
  .home-contact-panel p { font-size: 11px; }
  .home-contact-panel .button { width: 100%; }
  .home-contact-more { line-height: 1.6; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 16px 12px; }
  .footer-main > div:first-child { grid-column: 1 / -1; }
  .footer-main > div:last-child { grid-column: 1 / -1; }
  .footer-main p a { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-brand-block { min-width: 0; }
  .footer-logo { height: 56px; }
  .footer-main p { font-size: 9px; }
  .footer-label { font-size: 7px; }
  .footer-bottom { font-size: 8px; }
}

@media (max-width: 359px) {
  .home-hero .hero-inner { min-height: 570px; }
  .home-hero .hero-title { font-size: 34px; }
  .home-section-topline { align-items: flex-start; flex-direction: column; gap: 6px; }
  .home-activity-card { padding: 11px; }
  .home-activity-card h3 { font-size: 14px; }
  .home-program-aside { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .home-date-card, .home-date-image { transition: none; }
}

@media (max-width: 760px) {
  .hero-live-visual { width: min(100%, 460px); justify-self: center; margin: 0; }
  .hero-live-photo { aspect-ratio: 1.4; object-position: 76% center; }
  .poster-sticker { left: -6px; bottom: 20px; width: 98px; }
  .candidate-editorial img { height: 210px; object-position: center 22%; }
}

/* Public home controls: consistent outline icons and three restrained action styles. */
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon-svg { width: 18px; height: 18px; flex: 0 0 auto; display: inline-block; vertical-align: middle; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-svg--small { width: 14px; height: 14px; }
.ui-button { min-height: 46px; padding: 0 var(--space-4); display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); border: 1px solid transparent; border-radius: var(--radius-control); font-size: 12px; font-weight: 760; line-height: 1.2; letter-spacing: 0; text-align: center; text-decoration: none; cursor: pointer; box-shadow: none; transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, transform var(--motion-fast) ease, box-shadow var(--motion-fast) ease; }
.ui-button .icon-svg { width: 16px; height: 16px; }
.ui-button--primary { color: var(--accent-text); background: var(--orange); border-color: var(--accent-border); box-shadow: var(--accent-shadow); }
.ui-button--primary:hover { color: #160904; background: var(--accent-hover); border-color: #ff926e; box-shadow: 0 3px 0 #7e2c17; transform: translateY(-1px); }
.ui-button--secondary { color: var(--text); background: var(--surface-control); border-color: var(--border-control); }
.ui-button--secondary:hover { color: #fff; background: var(--surface-control-hover); border-color: var(--border-control-hover); transform: translateY(-1px); }
.ui-button--quiet { min-height: 44px; padding: 0 2px; color: var(--orange-light); background: transparent; border-color: transparent; box-shadow: none; }
.ui-button--quiet:hover { color: #fff; background: transparent; box-shadow: none; transform: translateX(2px); }
.ui-button:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.ui-button--block { width: 100%; }
.ui-button:active { transform: translateY(1px) scale(.985); box-shadow: none; }
.ui-button:disabled, .ui-button[aria-disabled="true"] { color: #9d948d; background: #24211f; border-color: #39332f; box-shadow: none; cursor: not-allowed; opacity: .68; pointer-events: none; transform: none; }
.ui-button.is-loading { color: transparent; pointer-events: none; position: relative; }
.ui-button.is-loading::after { position: absolute; width: 16px; height: 16px; content: ""; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ui-spin .7s linear infinite; }
.ui-button--primary.is-loading::after { color: #1b0c06; }
.ui-button--secondary.is-loading::after { color: var(--text); }
.ui-button--quiet.is-loading::after { color: var(--orange-light); }
@keyframes ui-spin { to { transform: rotate(360deg); } }

.site-header .menu-toggle { width: 44px; height: 44px; padding: 0; display: none; place-items: center; color: #f8eee8; border: 1px solid #3b302a; border-radius: var(--radius-control); background: #11100f; transition: color var(--motion-fast) ease, background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, transform var(--motion-fast) ease; }
.site-header .menu-toggle:hover { color: #fff; border-color: #79503c; background: #1b1512; }
.site-header .menu-toggle:active { transform: scale(.96); }
.site-header .menu-toggle:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.site-header .nav-vote.ui-button { min-height: 44px; padding: 0 17px; border-radius: var(--radius-control); box-shadow: var(--accent-shadow); }
.site-header .nav-vote.ui-button:hover { background: var(--accent-hover); box-shadow: 0 3px 0 #7e2c17; }
.main-nav > a:not(.button) { transition: color .16s ease; }
.main-nav > a:not(.button):focus-visible { color: #fff; outline-color: var(--focus-ring); }
.home-hero .hero-meta > span { display: inline-flex; align-items: center; gap: 7px; }
.home-meta-icon { width: 15px; height: 15px; color: var(--orange-light); }
.home-hero .hero-actions .ui-button { min-height: 48px; padding-inline: 17px; border-radius: 9px; }
.home-hero .hero-actions .ui-button--secondary { border-color: #55443a; }
.home-hero-ranking-link { margin-top: 10px; }
.home-date-card { border-color: #3a2c25; border-radius: var(--radius-card); box-shadow: 0 3px 10px #0005; transition: transform var(--motion-standard) ease, border-color var(--motion-standard) ease, box-shadow var(--motion-standard) ease; }
.home-date-card:hover { border-color: #a34a2b; box-shadow: 0 7px 18px #0006; }
.home-date-arrow { width: 34px; height: 34px; right: 12px; bottom: 12px; display: grid; place-items: center; color: #fff2ec; background: #24140fbd; border: 1px solid #71412d; border-radius: 50%; }
.home-date-arrow .icon-svg { width: 15px; height: 15px; }
.home-activity-card { border-color: #302b29; border-radius: var(--radius-card); box-shadow: var(--shadow-card); }
.home-activity-card.orange { background: linear-gradient(130deg, #15110f, #0f1115); }
.home-activity-card.blue { background: linear-gradient(130deg, #101116, #10151d); }
.home-activity-icon { width: 42px; height: 42px; display: grid; place-items: center; color: var(--orange-light); background: #ff5b1f12; border: 1px solid #ff875948; border-radius: var(--radius-card); }
.home-activity-card.blue .home-activity-icon { color: #8cacff; background: #2e63ff15; border-color: #5379dd58; }
.home-activity-glyph { width: 21px; height: 21px; }
.home-ranking { border-color: #3d302a; border-radius: var(--radius-card); box-shadow: var(--shadow-card); }
.home-ranking-row { border-color: #302925; border-radius: 8px; }
.home-event-row { border-color: #302e2b; border-radius: 8px; }
.home-countdown-card { border-color: #39425c; border-radius: 10px; }
.home-support-card { border-color: #533526; border-radius: var(--radius-card); box-shadow: var(--shadow-card); }
.home-contact-panel { border-color: #3c302a; border-radius: var(--radius-card); box-shadow: inset 3px 0 0 var(--orange); }
.home-contestants .candidate-card { border-color: #352a25; border-radius: var(--radius-card); box-shadow: var(--shadow-card); }
.home-contestants .candidate-card:hover { border-color: #a84b2c; transform: translateY(-2px); }
.home-contestants .candidate-card-actions .ui-button { min-height: 44px; padding: 0 8px; border-radius: 7px; font-size: 10px; gap: 5px; }
.home-contestants .candidate-card-actions .ui-button .icon-svg { width: 14px; height: 14px; }
.home-ranking .ui-button--secondary, .home-countdown-card .ui-button--secondary, .home-support-card .ui-button { min-height: 44px; }
.home-program-layout .ui-button--block { width: 100%; }
.home-contact-action { min-width: 224px; }

.home-date-card:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: -4px; z-index: 2; }

@media (max-width: 760px) {
  .site-header .menu-toggle { width: 44px; height: 44px; display: grid; }
  .site-header .nav-vote.ui-button { width: 100%; min-height: 46px; margin-top: 10px; }
  .home-hero .hero-kicker { font-size: 9px; letter-spacing: .1em; }
  .home-hero .hero-lede { font-size: 12px; }
  .home-hero .hero-meta { font-size: 11px; }
  .home-hero .hero-actions .ui-button { width: 100%; min-height: 48px; padding-inline: 13px; font-size: 12px; }
  .home-section-topline .eyebrow { font-size: 8px; }
  .home-date-state { font-size: 9px; }
  .home-activity-card p { font-size: 11px; }
  .home-contestants .candidate-meta .tag { font-size: 9px; }
  .home-contestants .candidate-stats { font-size: 10px; }
  .home-date-arrow { width: 32px; height: 32px; right: 10px; bottom: 10px; }
  .home-contestants .candidate-card-actions .ui-button { min-height: 44px; padding: 0 6px; font-size: 10px; }
  .home-program-tags .tag { font-size: 9px; }
  .home-event-row h3 { font-size: 12px; }
  .home-event-row p { font-size: 11px; }
  .home-countdown-card > span:not(.eyebrow), .home-next-date-value span { font-size: 10px; }
  .home-countdown-card .ui-button, .home-support-card .ui-button { min-height: 44px; padding-inline: 9px; font-size: 10px; }
  .home-support-card p { font-size: 11px; }
  .home-contact-more { font-size: 11px; }
  .footer-main p { font-size: 11px; }
  .footer-label { font-size: 9px; }
  .footer-bottom { font-size: 10px; }
  .home-contact-action { width: 100%; min-width: 0; }
}

@media (hover: none) {
  .ui-button:hover, .site-header .menu-toggle:hover { transform: none; }
  .ui-button--primary:hover { color: var(--accent-text); background: var(--orange); border-color: var(--accent-border); box-shadow: var(--accent-shadow); }
  .ui-button--secondary:hover { color: var(--text); background: var(--surface-control); border-color: var(--border-control); }
  .ui-button--quiet:hover { color: var(--orange-light); transform: none; }
  .home-date-card:hover { transform: none; border-color: #3a2c25; box-shadow: 0 3px 10px #0005; }
  .home-date-card.next:hover, .home-date-card.current:hover { border-color: var(--orange); }
  .home-date-card.today:hover { border-color: #ff9a73; }
  .home-date-card:hover .home-date-image { transform: none; }
  .home-contestants .candidate-card:hover { border-color: #352a25; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ui-button, .site-header .menu-toggle, .main-nav > a:not(.button), .home-date-card, .home-date-image { transition: none; }
}

/* DEVANGBAER V3 public theme. Admin retains the existing dark palette. */
body.public-surface {
  color-scheme: light;
  --brand-blue: #1854c4;
  --brand-blue-deep: #0d2b66;
  --surface-white: #ffffff;
  --surface-page: #f2f6fc;
  --ink: #101318;
  --ink-muted: #64748b;
  --line: #dce5f1;
  --bg: var(--surface-page);
  --bg-soft: #eaf0f8;
  --panel: #ffffff;
  --panel-2: #f6f8fc;
  --text: var(--ink);
  --muted: var(--ink-muted);
  --dim: #718096;
  --orange: var(--brand-blue);
  --orange-light: var(--brand-blue-deep);
  --blue: var(--brand-blue-deep);
  --yellow: var(--brand-blue);
  --green: #18794e;
  --red: #b42318;
  --focus-ring: #1854c4;
  --accent-text: #ffffff;
  --accent-border: #1854c4;
  --accent-hover: #0d2b66;
  --accent-shadow: 0 2px 0 #0d2b66;
  --surface-control: #ffffff;
  --surface-control-hover: #edf3fd;
  --border-control: #c8d5e7;
  --border-control-hover: #1854c4;
  --shadow-card: 0 8px 24px rgb(16 35 68 / 7%);
  background: var(--surface-page);
  color: var(--ink);
  font-family: var(--font-ui);
}

body.public-surface,
body.public-surface #app { background: var(--surface-page); }
body.public-surface :focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
body.public-surface .skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 11px 14px; color: #fff; background: var(--brand-blue-deep); border-radius: 6px; transform: translateY(-150%); }
body.public-surface .skip-link:focus { transform: translateY(0); }
body.public-surface .demo-ribbon {
  position: relative;
  isolation: isolate;
  min-height: 34px;
  padding: 6px max(16px, calc((100% - var(--content)) / 2));
  gap: 12px;
  overflow: hidden;
  color: #e7efff;
  background: linear-gradient(100deg, #0b285f 0%, #123b7c 50%, #0b285f 100%);
  border: 0;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 9%), inset 0 -1px 0 rgb(5 24 58 / 24%);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 550;
  letter-spacing: .015em;
  text-transform: none;
}
body.public-surface .pulse-dot { width: 7px; height: 7px; flex: 0 0 auto; background: #a9c7ff; box-shadow: 0 0 0 4px rgb(169 199 255 / 12%), 0 0 10px rgb(169 199 255 / 35%); }
body.public-surface .demo-ribbon-copy { display: flex; align-items: center; gap: 10px; padding-inline: 30px; }
body.public-surface .demo-ribbon-disclosure { color: #dbe8ff; font-size: 10px; font-weight: 550; }
body.public-surface .demo-ribbon-separator { width: 3px; height: 3px; flex: 0 0 auto; border-radius: 50%; background: #8fb6ff; opacity: .9; }
body.public-surface .demo-ribbon-message { color: #fff; font-size: 10px; font-weight: 700; }
body.public-surface .site-header { height: 72px; padding-inline: max(24px, calc((100% - var(--content)) / 2)); background: rgb(255 255 255 / 96%); border-bottom: 1px solid var(--line); box-shadow: 0 3px 15px rgb(16 35 68 / 4%); }
body.public-surface .brand-logo { height: 57px; width: auto; max-width: 146px; object-fit: contain; }
body.public-surface .main-nav { gap: clamp(16px, 2.2vw, 29px); }
body.public-surface .main-nav > a:not(.button) { color: #34445c; font-size: 12px; }
body.public-surface .main-nav > a:not(.button):hover,
body.public-surface .main-nav > a:not(.button).active { color: var(--brand-blue); }
body.public-surface .main-nav > a:not(.button):focus-visible { color: var(--brand-blue-deep); outline-color: var(--brand-blue); }
body.public-surface .site-header .menu-toggle { color: var(--ink); background: #fff; border-color: var(--line); }
body.public-surface .site-header .menu-toggle:hover { color: var(--brand-blue); background: #f2f6fc; border-color: #b8c9e1; }
body.public-surface .site-header .nav-vote.ui-button { min-height: 44px; padding-inline: 18px; color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); box-shadow: none; }
body.public-surface .site-header .nav-vote.ui-button:hover { color: #fff; background: var(--brand-blue-deep); border-color: var(--brand-blue-deep); box-shadow: none; }

body.public-surface .page-shell { width: min(var(--content), calc(100% - 48px)); }
body.public-surface .section { padding-block: 68px; }
body.public-surface .section-tight { padding-block: 36px; }
body.public-surface .eyebrow { color: var(--brand-blue); font-size: 10px; letter-spacing: .13em; }
body.public-surface .section-heading h1,
body.public-surface .section-heading h2,
body.public-surface .display-title { color: var(--ink); letter-spacing: -.025em; }
body.public-surface .section-heading p { color: var(--ink-muted); }
body.public-surface .section-rule { background: linear-gradient(90deg, var(--brand-blue), #dce5f1 45%, transparent); }
body.public-surface .mono-label { color: var(--ink-muted); }

body.public-surface .button,
body.public-surface .ui-button { min-height: 46px; padding-inline: 17px; border-radius: 8px; font-size: 12px; font-weight: 720; letter-spacing: 0; box-shadow: none; }
body.public-surface .button:hover,
body.public-surface .ui-button:hover { transform: translateY(-1px); }
body.public-surface .button-accent,
body.public-surface .ui-button--primary { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); box-shadow: none; }
body.public-surface .button-accent:hover,
body.public-surface .ui-button--primary:hover { color: #fff; background: var(--brand-blue-deep); border-color: var(--brand-blue-deep); box-shadow: none; }
body.public-surface .button-orange,
body.public-surface .button-blue { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
body.public-surface .button-ghost,
body.public-surface .ui-button--secondary { color: #21334d; background: #fff; border-color: #c8d5e7; }
body.public-surface .button-ghost:hover,
body.public-surface .ui-button--secondary:hover { color: var(--brand-blue-deep); background: #edf3fd; border-color: #a8bddb; }
body.public-surface .button-link,
body.public-surface .ui-button--quiet { color: var(--brand-blue); background: transparent; border-color: transparent; box-shadow: none; }
body.public-surface .button-link:hover,
body.public-surface .ui-button--quiet:hover { color: var(--brand-blue-deep); background: transparent; }
body.public-surface .button-danger { color: #fff; background: #b42318; border-color: #b42318; }
body.public-surface .button-green { color: #fff; background: #18794e; border-color: #18794e; }
body.public-surface .button:disabled,
body.public-surface .ui-button:disabled,
body.public-surface .ui-button[aria-disabled="true"] { color: #718096; background: #e7edf5; border-color: #d4deeb; opacity: 1; }
body.public-surface .ui-button.is-loading::after { color: #fff; }
body.public-surface .ui-button--secondary.is-loading::after { color: var(--brand-blue); }
body.public-surface .ui-button--quiet.is-loading::after { color: var(--brand-blue); }

body.public-surface .hero { min-height: 590px; padding-block: 38px 44px; background: var(--brand-blue-deep); }
body.public-surface .hero::before { opacity: .08; background-image: linear-gradient(115deg, transparent 35%, #8fb6ff 35.2%, transparent 35.5%), linear-gradient(115deg, transparent 72%, #8fb6ff 72.1%, transparent 72.3%); }
body.public-surface .hero-title { font-size: clamp(52px, 8.4vw, 102px); }
body.public-surface .hero-title { color: #fff; }
body.public-surface .hero-title span { color: #8fb6ff; }
body.public-surface .hero-title em { color: #fff; }
body.public-surface .hero-slogan { color: #fff; }
body.public-surface .hero-kicker,
body.public-surface .hero-meta { color: #e0e9f7; }
body.public-surface .hero-kicker b { background: #8fb6ff; }
body.public-surface .hero-lede { color: #c7d5e8; }
body.public-surface .hero-meta strong { color: #fff; }
body.public-surface .home-hero .hero-meta span:last-child strong { color: #dbe8ff; }
body.public-surface .home-meta-icon { color: #a8c6ff; }
body.public-surface .home-hero .hero-live-visual::before { background: var(--brand-blue); }
body.public-surface .hero-poster::after { border-color: rgb(177 205 255 / 60%); }
body.public-surface .hero-poster img { border-color: rgb(255 255 255 / 42%); border-radius: 12px; box-shadow: 0 20px 48px rgb(3 16 40 / 35%); }
body.public-surface .poster-caption { color: #d1dced; }
body.public-surface .home-hero .hero-actions .ui-button--secondary { color: #fff; background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 48%); }
body.public-surface .home-hero .hero-actions .ui-button--secondary:hover { background: rgb(255 255 255 / 15%); border-color: #fff; }
body.public-surface .home-hero-ranking-link { color: #d4e2f8; }
body.public-surface .home-hero-ranking-link:hover { color: #fff; }
body.public-surface .hero-activities { border-color: rgb(255 255 255 / 20%); }
body.public-surface .activity-tag { color: #dbe8fa; border-color: rgb(255 255 255 / 20%); }
body.public-surface .activity-icon { color: #a8c6ff; }
body.public-surface .date-chip { background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 30%); }
body.public-surface .date-chip strong { color: #fff; }
body.public-surface .date-chip span { color: #d1dced; }

body.public-surface .home-dates { padding-top: 38px; padding-bottom: 42px; }
body.public-surface .home-section-topline h2 { color: var(--ink); }
body.public-surface .home-date-card { border-color: #c8d5e7; border-radius: 12px; box-shadow: 0 5px 14px rgb(16 35 68 / 10%); }
body.public-surface .home-date-card:hover { border-color: #7b9bd0; box-shadow: 0 9px 20px rgb(16 35 68 / 14%); }
body.public-surface .home-date-card.next,
body.public-surface .home-date-card.current,
body.public-surface .home-date-card.today { border-color: #1854c4; box-shadow: 0 0 0 2px rgb(24 84 196 / 14%); }
body.public-surface .home-date-shade,
body.public-surface .home-date-card.next .home-date-shade,
body.public-surface .home-date-card.current .home-date-shade { background: linear-gradient(0deg, rgb(8 25 57 / 88%) 0%, rgb(8 25 57 / 35%) 55%, rgb(8 25 57 / 8%) 100%); }
body.public-surface .home-date-state { border-radius: 4px; }
body.public-surface .home-date-card.next .home-date-state,
body.public-surface .home-date-card.current .home-date-state { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
body.public-surface .home-date-arrow { color: #fff; background: var(--brand-blue); border: 0; }
body.public-surface .home-universe { background: #eaf0f8; border-color: #dce5f1; }
body.public-surface .home-program-section { background: var(--surface-page); border-top-color: var(--line); }
body.public-surface .home-activity-card,
body.public-surface .home-activity-card.orange,
body.public-surface .home-activity-card.blue { min-height: 150px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 4px 14px rgb(16 35 68 / 5%); }
body.public-surface .home-activity-card::after,
body.public-surface .home-activity-card.blue::after { border-color: rgb(24 84 196 / 14%); box-shadow: 0 0 0 14px rgb(24 84 196 / 4%), 0 0 0 30px rgb(24 84 196 / 3%); }
body.public-surface .home-activity-icon,
body.public-surface .home-activity-card.blue .home-activity-icon { color: var(--brand-blue); background: #f2f6fc; border: 1px solid #dce5f1; border-radius: 10px; }
body.public-surface .home-activity-card p { color: var(--ink-muted); }
body.public-surface .home-activity-grid--opportunities { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
body.public-surface .home-promo-card {
  width: 100%;
  min-height: 184px;
  padding: 13px;
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  align-items: stretch;
  gap: 16px;
  color: var(--ink);
  text-align: left;
  font-family: var(--font-ui);
  cursor: pointer;
  transition: transform var(--motion-standard) ease, border-color var(--motion-standard) ease, box-shadow var(--motion-standard) ease;
}
body.public-surface .home-promo-card:hover {
  border-color: #9bb4d8;
  box-shadow: 0 10px 22px rgb(16 35 68 / 10%);
  transform: translateY(-2px);
}
body.public-surface .home-promo-card:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 3px; }
body.public-surface .home-activity-grid--opportunities .home-activity-card::after { content: none; }
body.public-surface .home-promo-thumb {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  min-height: 156px;
  object-fit: cover;
  object-position: center;
  border: 1px solid #dce5f1;
  border-radius: 8px;
  box-shadow: 0 3px 10px rgb(16 35 68 / 12%);
}
body.public-surface .home-promo-copy { position: relative; z-index: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; }
body.public-surface .home-promo-kicker { color: var(--brand-blue); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
body.public-surface .home-promo-title { color: var(--ink); font-family: var(--font-display); font-size: clamp(20px, 2vw, 27px); font-weight: 600; line-height: .98; text-transform: uppercase; }
body.public-surface .home-promo-summary { color: var(--ink-muted); font-size: 12px; line-height: 1.4; }
body.public-surface .home-promo-cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; color: var(--brand-blue); font-size: 11px; font-weight: 800; }
body.public-surface .home-promo-cta .icon-svg { width: 15px; height: 15px; }

body.public-surface .promo-modal-layout { display: grid; grid-template-columns: minmax(155px, .72fr) minmax(0, 1.28fr); align-items: start; gap: 20px; }
body.public-surface .promo-modal-poster { width: 100%; max-height: min(68vh, 510px); object-fit: contain; object-position: top center; background: #f2f6fc; border: 1px solid var(--line); border-radius: 8px; }
body.public-surface .promo-modal-details { min-width: 0; }
body.public-surface .promo-modal-intro { margin: 0 0 14px; color: #53647b; font-size: 12px; line-height: 1.6; }
body.public-surface .promo-facts { display: grid; gap: 8px; }
body.public-surface .promo-fact { min-width: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 9px; }
body.public-surface .promo-fact-icon { width: 30px; height: 30px; display: grid; place-items: center; color: var(--brand-blue); background: #edf3fd; border-radius: 7px; }
body.public-surface .promo-fact-icon .icon-svg { width: 16px; height: 16px; }
body.public-surface .promo-fact-label { display: block; margin-bottom: 2px; color: #718096; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
body.public-surface .promo-fact strong { display: block; color: var(--ink); font-size: 11px; line-height: 1.45; }
body.public-surface .media-coverage-list { display: grid; gap: 5px; margin: 13px 0 0; padding-left: 18px; color: #40536c; font-size: 11px; line-height: 1.5; }
body.public-surface .media-accreditation-note { margin: 12px 0 0; color: #53647b; font-size: 11px; line-height: 1.5; }
body.public-surface .media-accreditation-tags { margin: 9px 0 0; color: var(--brand-blue); font-size: 10px; font-weight: 800; letter-spacing: .02em; }
body.public-surface .exhibitor-prices { margin-top: 13px; padding: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; background: #f2f6fc; border: 1px solid var(--line); border-radius: 9px; }
body.public-surface .exhibitor-prices > .exhibitor-fact-label { grid-column: 1 / -1; margin: 0; }
body.public-surface .exhibitor-prices > div { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
body.public-surface .exhibitor-prices strong { color: var(--brand-blue-deep); font-size: 12px; }
body.public-surface .exhibitor-prices > div > span { color: var(--ink-muted); font-size: 10px; }
body.public-surface .exhibitor-contact { margin: 12px 0 0; color: var(--ink-muted); font-size: 11px; }
body.public-surface .exhibitor-contact strong { color: var(--ink); }
body.public-surface .modal-footer .button { min-height: 44px; }

body.public-surface .candidate-card,
body.public-surface .home-contestants .candidate-card { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 5px 16px rgb(16 35 68 / 6%); }
body.public-surface .candidate-card:hover,
body.public-surface .home-contestants .candidate-card:hover { border-color: #9bb4d8; box-shadow: 0 10px 22px rgb(16 35 68 / 10%); transform: translateY(-2px); }
body.public-surface .candidate-art,
body.public-surface .candidate-avatar { background-color: #e7edf6; }
body.public-surface .candidate-photo { filter: grayscale(1) contrast(1.08); mix-blend-mode: normal; }
body.public-surface .candidate-art::before,
body.public-surface .candidate-avatar::before { background: radial-gradient(circle at 35% 35%, #7397cc, #214985 38%, #162c4d 72%); }
body.public-surface .candidate-art--placeholder,
body.public-surface .candidate-avatar--placeholder {
  align-items: center;
  justify-content: center;
  color: var(--brand-blue-deep);
  background: linear-gradient(145deg, #f4f8ff, #dce8f8 68%, #cbdaf0);
}
body.public-surface .candidate-art--placeholder::before,
body.public-surface .candidate-avatar--placeholder::before {
  width: 112%;
  height: 112%;
  top: -6%;
  right: -6%;
  opacity: .34;
  background: radial-gradient(circle at 50% 42%, #8fb6ff 0, #d6e4f8 38%, #eff4fc 72%);
}
body.public-surface .candidate-card:nth-child(n) .candidate-art--placeholder::before {
  background: radial-gradient(circle at 50% 42%, #8fb6ff 0, #d6e4f8 38%, #eff4fc 72%);
}
body.public-surface .candidate-art--placeholder::after,
body.public-surface .candidate-avatar--placeholder::after { border-color: #1854c426; box-shadow: 0 0 0 14px #1854c40a, 0 0 0 30px #1854c408; }
body.public-surface .candidate-art--placeholder .candidate-initials,
body.public-surface .candidate-avatar--placeholder .candidate-initials { margin: 0; color: var(--brand-blue-deep); text-shadow: none; }
body.public-surface .candidate-art--placeholder .candidate-initials { font-size: clamp(54px, 7vw, 82px); }
body.public-surface .candidate-avatar--placeholder .candidate-initials { font-size: clamp(15px, 7vw, 34px); }
body.public-surface .candidate-placeholder-label { position: absolute; right: 12px; bottom: 12px; padding: 6px 9px; color: #0d2b66; background: rgb(255 255 255 / 82%); border: 1px solid #c8d8ef; border-radius: 999px; font-size: 9px; font-weight: 800; letter-spacing: .03em; }
body.public-surface .candidate-number { color: #fff; background: var(--brand-blue); border-radius: 5px; }
body.public-surface .candidate-card-body { padding: 14px; }
body.public-surface .candidate-style { color: var(--ink-muted); }
body.public-surface .candidate-card h3 { color: var(--ink); }
body.public-surface .candidate-stats { color: var(--ink-muted); border-color: var(--line); }
body.public-surface .candidate-stats b { color: var(--ink); }
body.public-surface .candidate-card-actions .button { min-height: 40px; border-radius: 7px; font-size: 10px; }
body.public-surface .candidate-editorial { border-radius: 12px; overflow: hidden; }
body.public-surface .candidate-editorial img { border-radius: 12px; }
body.public-surface .candidate-editorial figcaption,
body.public-surface .home-data-caption,
body.public-surface .count-note { color: var(--ink-muted); }

body.public-surface .home-ranking { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 5px 18px rgb(16 35 68 / 7%); }
body.public-surface .home-ranking-heading small { color: var(--ink-muted); }
body.public-surface .home-ranking-row { background: #f8faff; border-color: var(--line); border-radius: 8px; }
body.public-surface .home-ranking-position { color: var(--brand-blue); }
body.public-surface .home-ranking-name { color: var(--ink); }
body.public-surface .home-ranking-name small { color: var(--ink-muted); }
body.public-surface .home-ranking-votes { color: var(--ink); font-variant-numeric: tabular-nums; }
body.public-surface .home-event-row,
body.public-surface .event-row { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 10px; }
body.public-surface .event-time { color: var(--brand-blue); }
body.public-surface .event-row h3 { color: var(--ink); }
body.public-surface .event-row p { color: var(--ink-muted); }
body.public-surface .home-countdown-card,
body.public-surface .event-date-card { color: #fff; background: var(--brand-blue-deep); border: 1px solid #0d2b66; border-radius: 12px; }
body.public-surface .event-date-card strong { color: #fff; }
body.public-surface .event-date-card span,
body.public-surface .event-date-card p { color: #dbe8fa; }
body.public-surface .countdown-piece { background: rgb(255 255 255 / 9%); border-color: rgb(255 255 255 / 22%); }
body.public-surface .countdown-piece strong { color: #fff; }
body.public-surface .countdown-piece small { color: #c7d5e8; }
body.public-surface .home-support-card { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 5px 18px rgb(16 35 68 / 7%); }
body.public-surface .home-support-card p { color: var(--ink-muted); }
body.public-surface .home-contact-panel { color: #fff; background: var(--brand-blue-deep); border: 1px solid #0d2b66; border-radius: 14px; box-shadow: none; }
body.public-surface .home-contact-panel .eyebrow { color: #a8c6ff; }
body.public-surface .home-contact-panel p { color: #dbe8fa; }
body.public-surface .home-contact-more { color: #dbe8fa; }
body.public-surface .home-contact-more:hover { color: #fff; }

body.public-surface .panel { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 4px 16px rgb(16 35 68 / 5%); }
body.public-surface .panel-title { color: var(--ink); }
body.public-surface .panel-copy { color: var(--ink-muted); }
body.public-surface .tag { color: #3c4c63; background: #f4f7fb; border-color: #dce5f1; }
body.public-surface .tag-orange,
body.public-surface .tag-yellow,
body.public-surface .tag-blue { color: var(--brand-blue-deep); background: #edf3fd; border-color: #cbdaf0; }
body.public-surface .tag-green { color: #17623f; background: #eaf6ef; border-color: #c6e8d2; }
body.public-surface .tag-red { color: #9c1c14; background: #fff0ef; border-color: #f3c5c0; }
body.public-surface .notice { color: #263b5a; background: #f0f5fd; border-color: #cbdaf0; }
body.public-surface .notice-blue { color: #263b5a; background: #f0f5fd; border-color: #cbdaf0; }
body.public-surface .notice-green { color: #145c3c; background: #edf8f1; border-color: #bfe3cd; }
body.public-surface .notice-red { color: #8a1d16; background: #fff2f1; border-color: #f2c3be; }
body.public-surface .input,
body.public-surface .select,
body.public-surface .textarea { color: var(--ink); background: #fff; border-color: #c8d5e7; border-radius: 8px; }
body.public-surface .input::placeholder,
body.public-surface .textarea::placeholder { color: #718096; }
body.public-surface .field > label { color: #33445c; }
body.public-surface .field-help { color: var(--ink-muted); }
body.public-surface .filter-chip { min-height: 44px; color: #31445f; background: #fff; border-color: #c8d5e7; }
body.public-surface .filter-chip:hover,
body.public-surface .filter-chip.selected { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
body.public-surface .search-symbol { left: 10px; top: 10px; color: var(--brand-blue); }
body.public-surface .search-symbol .icon-svg { width: 17px; height: 17px; }
body.public-surface .rank-tabs { background: #f5f8fc; border-color: var(--line); border-radius: 10px; }
body.public-surface .rank-tab { min-height: 42px; color: #43536b; border-radius: 7px; }
body.public-surface .rank-tab.active { color: #fff; background: var(--brand-blue); }
body.public-surface .rank-row { color: var(--ink); background: #fff; border-color: var(--line); border-radius: 9px; }
body.public-surface .rank-position { color: var(--ink-muted); }
body.public-surface .rank-row:nth-child(1) .rank-position { color: var(--brand-blue); }
body.public-surface .rank-name { color: var(--ink); }
body.public-surface .rank-name small { color: var(--ink-muted); }
body.public-surface .rank-votes { color: var(--ink); font-variant-numeric: tabular-nums; }
body.public-surface .rank-bar { accent-color: var(--brand-blue); background: #e4ebf5; }
body.public-surface .rank-bar::-webkit-progress-bar { background: #e4ebf5; }
body.public-surface .rank-bar::-webkit-progress-value,
body.public-surface .rank-bar::-moz-progress-bar { background: var(--brand-blue); }
body.public-surface .rank-foot { color: var(--ink-muted); }
body.public-surface .official-empty { color: var(--ink); }
body.public-surface .official-empty .big-icon { color: var(--brand-blue); }
body.public-surface .rank-avatar { color: #fff; background-color: var(--brand-blue-deep); }

body.public-surface .profile-layout { color: var(--ink); }
body.public-surface .profile-back { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; }
body.public-surface .profile-title { color: var(--ink); }
body.public-surface .profile-copy { color: var(--ink-muted); }
body.public-surface .profile-stat { background: #fff; border: 1px solid var(--line); border-radius: 10px; }
body.public-surface .profile-stat strong { color: var(--brand-blue-deep); font-variant-numeric: tabular-nums; }
body.public-surface .profile-stat small { color: var(--ink-muted); }
body.public-surface .social-link { color: var(--brand-blue); border-color: var(--line); background: #fff; }
body.public-surface .admin-list-row { color: var(--ink); background: #fff; border-color: var(--line); }
body.public-surface .admin-list-row h3 { color: var(--ink); }
body.public-surface .admin-list-row p { color: var(--ink-muted); }
body.public-surface .info-card { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 5px 16px rgb(16 35 68 / 6%); overflow: hidden; }
body.public-surface .info-card-image img { width: 100%; height: 100%; object-fit: cover; }
body.public-surface .info-card-body p { color: var(--ink-muted); }
body.public-surface .document-item { background: #f8faff; border-color: var(--line); }
body.public-surface .document-item strong { color: var(--ink); }
body.public-surface .document-item small { color: var(--ink-muted); }
body.public-surface .home-information { scroll-margin-top: 84px; background: #eaf0f8; }
body.public-surface .home-information-details { padding-bottom: 20px; }
body.public-surface .schedule-day-heading h3 { color: var(--ink); }
body.public-surface .schedule-day-heading span { color: var(--ink-muted); }
body.public-surface .schedule-card { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 4px 12px rgb(16 35 68 / 4%); }
body.public-surface .schedule-card h4 { color: var(--ink); }
body.public-surface .schedule-card p { color: var(--ink-muted); }
body.public-surface .schedule-kind { color: var(--brand-blue); }
body.public-surface .profile-art { background: #e7edf6; border-color: var(--line); border-radius: 12px; }
body.public-surface .profile-number { color: var(--brand-blue); }
body.public-surface .quantity-choice { min-height: 74px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 9px; }
body.public-surface .quantity-choice strong { color: var(--brand-blue); }
body.public-surface .quantity-choice small { color: var(--ink-muted); }
body.public-surface .quantity-choice.active { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
body.public-surface .quantity-choice.active strong,
body.public-surface .quantity-choice.active small { color: #fff; }
body.public-surface .price-total { color: var(--ink); border-color: var(--line); }
body.public-surface .price-inline { color: var(--brand-blue); }
body.public-surface .checkout-steps { padding-inline: 0; }
body.public-surface .sim-choice .button { min-height: 44px; font-size: 11px; }
body.public-surface .info-card-image { display: block; background: #e7edf6; }
body.public-surface .info-card-body h3 { color: var(--ink); }
body.public-surface .info-card-body .button-link { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; }

body.public-surface .vote-candidate,
body.public-surface .price-total,
body.public-surface .quantity-choice,
body.public-surface .quantity-grid button { color: var(--ink); background: #fff; border-color: var(--line); }
body.public-surface .quantity-choice.active,
body.public-surface .quantity-grid button.active { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
body.public-surface .price-total strong { color: var(--brand-blue-deep); }
body.public-surface .step-line { color: #33445c; }
body.public-surface .step-num { color: var(--brand-blue); background: #edf3fd; border-color: #cbdaf0; }
body.public-surface .step-num .icon-svg { width: 17px; height: 17px; }
body.public-surface .sim-choice { color: var(--ink); }
body.public-surface .empty-state { color: var(--ink); background: #fff; border-color: var(--line); }
body.public-surface .empty-state p { color: var(--ink-muted); }
body.public-surface .toast { color: #fff; background: #0d2b66; box-shadow: 0 10px 32px rgb(12 31 65 / 22%); }
body.public-surface .toast.error { background: #9c1c14; }
body.public-surface .modal-backdrop { background: rgb(9 22 44 / 60%); }
body.public-surface .modal { color: var(--ink); background: #fff; border-color: var(--line); }
body.public-surface .modal-head { border-color: var(--line); }
body.public-surface .modal-close {
  width: 36px;
  height: 36px;
  padding: 0;
  display: grid;
  place-items: center;
  color: var(--deep-blue);
  background: #f2f6fc;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: 22px;
  line-height: 1;
  transition: color .16s ease, background-color .16s ease, border-color .16s ease;
}
body.public-surface .modal-close:hover { color: var(--brand-blue); background: #e8f0fc; border-color: #b9cbea; }
body.public-surface .modal-close:focus-visible { outline: 3px solid rgb(24 84 196 / 30%); outline-offset: 2px; }

body.public-surface .site-footer { color: var(--ink); background: #eaf0f8; border-top: 1px solid var(--line); }
body.public-surface .footer-main { border-color: var(--line); }
body.public-surface .footer-brand-block p,
body.public-surface .footer-main p { color: var(--ink-muted); }
body.public-surface .footer-main a { color: #263b5a; }
body.public-surface .footer-main a:hover { color: var(--brand-blue); }
body.public-surface .footer-label { color: var(--deep-blue); }
body.public-surface .footer-bottom { color: #53647b; border-color: var(--line); }
body.public-surface .footer-logo { display: block; width: auto; max-width: 170px; height: 64px; padding: 0; object-fit: contain; object-position: left center; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
body.public-surface .notice-icon { color: var(--brand-blue); }

@media (max-width: 760px) {
  body.public-surface .site-header { height: 64px; padding-inline: 16px; gap: 12px; }
  body.public-surface .brand-logo { height: 49px; max-width: 128px; }
  body.public-surface .site-header .menu-toggle { width: 44px; height: 44px; color: var(--ink); background: #fff; border-color: var(--line); }
  body.public-surface .main-nav { top: 64px; right: 12px; left: 12px; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 28px rgb(16 35 68 / 14%); }
  body.public-surface .main-nav > a:not(.button) { min-height: 44px; display: flex; align-items: center; padding-inline: 12px; color: #263b5a; border-radius: 7px; }
  body.public-surface .main-nav > a:not(.button):hover,
  body.public-surface .main-nav > a:not(.button).active { color: var(--brand-blue); background: #f2f6fc; }
  body.public-surface .main-nav .nav-vote { width: 100%; margin-top: 4px; }
  body.public-surface .page-shell { width: min(var(--content), calc(100% - 32px)); }
  body.public-surface .section { padding-block: 48px; }
  body.public-surface .hero { min-height: auto; padding-block: 28px 32px; }
  body.public-surface .hero-inner { min-height: 0; grid-template-columns: minmax(0, 1fr); gap: 21px; }
  body.public-surface .hero-copy { padding: 8px 0 0; }
  body.public-surface .hero-title { font-size: clamp(48px, 13vw, 76px); line-height: .92; }
  body.public-surface .home-hero .hero-title { font-size: clamp(30px, 8vw, 39px); line-height: 1; white-space: normal; }
  body.public-surface .hero-slogan { margin-top: 15px; font-size: 16px; line-height: 1.35; }
  body.public-surface .hero-lede { margin-bottom: 17px; font-size: 13px; }
  body.public-surface .hero-meta { gap: 10px 16px; margin-block: 16px 19px; }
  body.public-surface .hero-poster { width: min(100%, 390px); transform: none; }
  body.public-surface .hero-poster img { max-height: 350px; }
  body.public-surface .hero-actions { display: grid; grid-template-columns: 1fr; }
  body.public-surface .hero-actions .button { width: 100%; min-height: 48px; }
  body.public-surface .hero-activities { margin-top: 24px; padding-top: 14px; gap: 10px 0; }
  body.public-surface .activity-tag { width: 50%; padding-inline: 10px; border-right: 0; font-size: 9px; }
  body.public-surface .activity-tag:first-child { padding-left: 10px; }
  body.public-surface .home-date-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body.public-surface .home-date-card { min-height: 126px; padding: 12px; }
  body.public-surface .home-activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  body.public-surface .home-activity-card,
  body.public-surface .home-activity-card.orange,
  body.public-surface .home-activity-card.blue { min-height: 138px; padding: 15px 13px; }
  body.public-surface .home-showcase { grid-template-columns: minmax(0, 1fr); gap: 21px; }
  body.public-surface .home-contestants .candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-surface .home-contestants .section-heading-row { align-items: start; }
  body.public-surface .home-contestants .text-link { white-space: nowrap; }
  body.public-surface .home-program-layout { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .home-program-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-surface .home-contact-panel { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .home-contact-action { width: 100%; min-width: 0; }
  body.public-surface .info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body.public-surface .admin-grid-2 { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 23px 18px; }
  body.public-surface .footer-brand-block { grid-column: 1 / -1; }
  body.public-surface .footer-main a { min-height: 44px; display: inline-flex; align-items: center; }
  body.public-surface .footer-bottom { align-items: start; gap: 8px; flex-direction: column; }
}

@media (max-width: 430px) {
  body.public-surface .demo-ribbon { min-height: 32px; padding-inline: 14px; gap: 10px; font-size: 9px; }
  body.public-surface .demo-ribbon-copy { gap: 8px; padding-inline: 20px; }
  body.public-surface .demo-ribbon-disclosure { font-size: 9px; }
  body.public-surface .demo-ribbon-message { font-size: 9px; }
  body.public-surface .page-shell { width: calc(100% - 28px); }
  body.public-surface .hero-kicker { font-size: 9px; letter-spacing: .1em; }
  body.public-surface .hero-meta { display: grid; grid-template-columns: minmax(0, 1fr); }
  body.public-surface .date-chip { min-width: 67px; padding: 7px 8px; }
  body.public-surface .date-chip strong { font-size: 20px; }
  body.public-surface .home-section-topline { align-items: start; flex-direction: column; gap: 7px; }
  body.public-surface .home-contestants .section-heading-row { display: block; }
  body.public-surface .home-contestants .section-heading-row > .text-link { margin-top: 10px; }
  body.public-surface .home-contestants .candidate-card-actions { grid-template-columns: 1fr; }
  body.public-surface .home-program-aside { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .event-row { grid-template-columns: 55px minmax(0, 1fr); gap: 10px; }
  body.public-surface .event-row > :last-child { grid-column: 2; }
  body.public-surface .info-grid { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .info-card-image { height: auto; aspect-ratio: 16 / 10; }
  body.public-surface .rank-row { grid-template-columns: 28px 38px minmax(0, 1fr) auto; gap: 7px; padding-inline: 8px; }
  body.public-surface .rank-row .rank-bar { display: none; }
  body.public-surface .rank-name { min-width: 0; }
  body.public-surface .rank-votes { font-size: 12px; }
  body.public-surface .rank-tabs { overflow-x: auto; }
  body.public-surface .rank-tab { flex: 1 0 auto; padding-inline: 9px; }
  body.public-surface .candidate-card-actions .button { padding-inline: 8px; }
}

@media (max-width: 350px) {
  body.public-surface .home-contestants .candidate-grid,
  body.public-surface .home-date-grid,
  body.public-surface .home-activity-grid { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .home-date-card { min-height: 150px; }
  body.public-surface .home-contestants .candidate-card-actions { grid-template-columns: 1fr; }
}

@media (hover: none) {
  body.public-surface .button:hover,
  body.public-surface .ui-button:hover,
  body.public-surface .candidate-card:hover { transform: none; }
  body.public-surface .home-date-card:hover { transform: none; border-color: var(--line); box-shadow: 0 5px 14px rgb(16 35 68 / 10%); }
  body.public-surface .home-date-card.next:hover,
  body.public-surface .home-date-card.current:hover,
  body.public-surface .home-date-card.today:hover { border-color: var(--brand-blue); }
  body.public-surface .home-date-card:hover .home-date-image { transform: none; }
}

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

.legal-page .section-heading { margin-bottom: 22px; }
.legal-document-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.legal-document-card { min-height: 158px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; scroll-margin-top: 82px; }
.legal-document-card .eyebrow { color: var(--brand-blue); }
.legal-document-card .panel-title { margin: 0; font-size: 21px; }
.legal-document-card .panel-copy { margin: 0; line-height: 1.65; white-space: pre-line; }

@media (max-width: 900px) {
  .legal-document-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .legal-document-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .legal-document-card { min-height: 0; }
}

/* Programme V2 — mise en page dédiée, sans répercussion sur les autres pages publiques. */
body.public-surface .program-v2 { background: var(--surface-page); }
body.public-surface .program-hero {
  min-height: 220px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  isolation: isolate;
  background: #eaf1fc;
}
body.public-surface .program-hero::before,
body.public-surface .program-hero::after { position: absolute; inset: 0; content: ""; pointer-events: none; }
body.public-surface .program-hero::before {
  z-index: -2;
  background-image: url('/assets/demo/devangbaer-live-night.jpg');
  background-position: 68% 48%;
  background-size: cover;
  filter: grayscale(1) sepia(1) hue-rotate(175deg) saturate(2.5) contrast(1.06);
}
body.public-surface .program-hero::after {
  z-index: -1;
  background: linear-gradient(90deg, #f4f8ff 0%, #f4f8ff 29%, rgb(244 248 255 / 94%) 43%, rgb(244 248 255 / 30%) 65%, rgb(13 43 102 / 27%) 100%);
}
body.public-surface .program-hero-shell { min-height: 220px; display: flex; align-items: center; position: relative; z-index: 1; }
body.public-surface .program-hero-copy { max-width: 560px; padding-block: 25px; }
body.public-surface .program-hero-kicker,
body.public-surface .program-section-kicker { display: block; color: var(--brand-blue); font-size: 11px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
body.public-surface .program-hero-kicker::before { display: inline-block; width: 20px; height: 2px; margin: 0 9px 3px 0; content: ""; background: currentColor; }
body.public-surface .program-hero h1 { margin: 10px 0 8px; color: #101318; font-family: var(--font-display); font-size: clamp(46px, 5vw, 62px); font-weight: 500; letter-spacing: -.025em; line-height: .92; text-transform: uppercase; }
body.public-surface .program-hero p { max-width: 480px; margin: 0; color: #263b5a; font-size: 15px; line-height: 1.5; }
body.public-surface .program-hero-caption { display: block; margin-top: 12px; color: #425876; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
body.public-surface .program-content-shell { padding-top: 16px; padding-bottom: 52px; }
body.public-surface .program-content { display: grid; gap: 12px; }
body.public-surface .program-rounds-shell { padding-top: 12px; padding-bottom: 0; }
body.public-surface .program-rounds-overview { padding: 20px; background: #f5f8fd; border: 1px solid var(--line); border-radius: 12px; }
body.public-surface .program-rounds-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
body.public-surface .program-rounds-heading h2 { margin: 3px 0 0; color: var(--ink); font-family: var(--font-display); font-size: clamp(24px, 2.4vw, 31px); font-weight: 500; line-height: 1.05; }
body.public-surface .program-rounds-heading > p { max-width: 400px; margin: 0; color: var(--ink-muted); font-size: 12px; line-height: 1.45; }
body.public-surface .program-round-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
body.public-surface .program-round-card { min-width: 0; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
body.public-surface .program-round-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
body.public-surface .program-round-card-head h2 { margin: 4px 0 0; color: var(--ink); font-family: var(--font-display); font-size: 20px; font-weight: 500; line-height: 1.1; }
body.public-surface .program-round-card-head .tag { flex: 0 0 auto; }
body.public-surface .program-round-format { margin: 10px 0 12px; color: #263b5a; font-size: 12px; font-weight: 750; line-height: 1.4; }
body.public-surface .program-round-details { display: grid; gap: 8px; margin: 0; }
body.public-surface .program-round-details > div { display: grid; gap: 2px; }
body.public-surface .program-round-details dt { color: var(--ink-muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
body.public-surface .program-round-details dd { margin: 0; color: var(--ink); font-size: 11px; line-height: 1.4; }
body.public-surface .program-date-picker { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 7px; background: #fff; border: 1px solid var(--line); border-radius: 11px; box-shadow: 0 3px 12px rgb(16 35 68 / 4%); }
body.public-surface .program-date-button {
  min-width: 0; min-height: 64px; padding: 7px 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  color: #31445f; background: #f7f9fd; border: 1px solid transparent; border-radius: 8px; cursor: pointer;
  transition: color .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
body.public-surface .program-date-button strong { color: inherit; font-family: var(--font-ui); font-size: 21px; font-weight: 850; line-height: 1; font-variant-numeric: tabular-nums; }
body.public-surface .program-date-button > span:not(.program-date-state) { font-size: 10px; font-weight: 750; }
body.public-surface .program-date-button > small { color: currentColor; font-size: 9px; line-height: 1.1; opacity: .78; }
body.public-surface .program-date-button .program-date-state { max-width: 100%; overflow: hidden; color: currentColor; font-size: 8px; line-height: 1.2; opacity: .72; text-overflow: ellipsis; white-space: nowrap; }
body.public-surface .program-date-button:hover { color: var(--brand-blue-deep); background: #edf3fd; border-color: #c8d8ef; }
body.public-surface .program-date-button.is-selected { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); box-shadow: 0 3px 8px rgb(24 84 196 / 20%); }
body.public-surface .program-date-button:focus-visible { outline: 3px solid #7da6ee; outline-offset: 2px; }
body.public-surface .program-day-panel { min-width: 0; }
body.public-surface .program-day-card { padding: 8px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 5px 16px rgb(16 35 68 / 5%); }
body.public-surface .program-day-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
body.public-surface .program-timeline-panel { min-width: 0; padding: 20px 20px 22px; }
body.public-surface .program-day-participants { margin: 8px 0 0; padding: 18px; background: #f5f8fd; border-radius: 9px; }
body.public-surface .program-day-participant-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 8px; }
body.public-surface .program-day-participant-grid .program-person-link { min-height: 48px; padding: 5px 8px; background: #fff; border: 1px solid #e5ecf6; border-radius: 7px; }
body.public-surface .program-day-participant-grid .program-match-portrait { width: 38px; height: 38px; }
body.public-surface .program-day-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 21px; }
body.public-surface .program-section-kicker { margin-bottom: 6px; font-size: 9px; letter-spacing: .11em; }
body.public-surface .program-day-heading h2 { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: clamp(24px, 2.4vw, 31px); font-weight: 500; letter-spacing: -.015em; line-height: 1.05; }
body.public-surface .program-day-note { margin: 7px 0 0; color: var(--ink-muted); font-size: 11px; line-height: 1.45; }
body.public-surface .program-day-status { flex: 0 0 auto; margin-top: 1px; padding: 6px 10px; color: #145c3c; background: #eaf6ef; border-radius: 99px; font-size: 10px; font-weight: 800; }
body.public-surface .program-day-status.is-live { color: #fff; background: #18794e; }
body.public-surface .program-day-status.is-past { color: #53647b; background: #edf1f6; }
body.public-surface .program-panel-label { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; color: var(--brand-blue); }
body.public-surface .program-panel-label .icon-svg { width: 18px; height: 18px; }
body.public-surface .program-panel-label h3,
body.public-surface .program-panel-heading h3 { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: 19px; font-weight: 500; letter-spacing: -.01em; }
body.public-surface .program-timeline { position: relative; display: grid; }
body.public-surface .program-timeline::before { position: absolute; top: 21px; bottom: 22px; left: 16px; width: 1px; content: ""; background: #c5d7f4; }
body.public-surface .program-timeline-item { min-width: 0; padding: 10px 0; position: relative; display: grid; grid-template-columns: 34px 62px minmax(0, 1fr) auto; align-items: start; gap: 10px; }
body.public-surface .program-timeline-item + .program-timeline-item { border-top: 1px solid #edf1f7; }
body.public-surface .program-timeline-icon { width: 32px; height: 32px; z-index: 1; display: grid; place-items: center; color: #fff; background: var(--brand-blue); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #d9e4f5; }
body.public-surface .program-timeline-icon .icon-svg { width: 15px; height: 15px; }
body.public-surface .program-timeline-time { padding-top: 8px; color: #162b4c; font-size: 12px; font-weight: 850; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.public-surface .program-timeline-time small { display: block; color: var(--ink-muted); font-size: 8px; font-weight: 600; white-space: normal; }
body.public-surface .program-performance-copy { min-width: 0; padding-top: 1px; }
body.public-surface .program-performance-kind { display: block; margin-bottom: 2px; color: var(--ink-muted); font-size: 9px; }
body.public-surface .program-performance-copy h3 { margin: 0; color: var(--ink); font-family: var(--font-display); font-size: 16px; font-weight: 500; line-height: 1.16; }
body.public-surface .program-performance-people { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 2px 10px; }
body.public-surface .program-person-link { min-width: 0; display: inline-flex; align-items: center; gap: 6px; color: #263b5a; font-size: 10px; font-weight: 750; text-decoration: none; }
body.public-surface .program-person-link:hover { color: var(--brand-blue); text-decoration: underline; text-underline-offset: 2px; }
body.public-surface .program-match-portrait { width: 34px; height: 34px; flex: 0 0 auto; overflow: hidden; color: #fff; background: #d9e5f7; border: 1px solid #dce5f1; border-radius: 7px; }
body.public-surface .program-match-portrait img { width: 100%; height: 100%; object-fit: cover; }
body.public-surface .program-match-portrait.candidate-demo-portrait { background-image: url('/assets/demo/candidate-portraits.jpg'); background-size: 500% 500%; background-position: var(--portrait-x, 0%) var(--portrait-y, 0%); }
body.public-surface .program-duration { display: inline-block; margin-top: 4px; color: #65758d; font-size: 9px; font-variant-numeric: tabular-nums; }
body.public-surface .program-unconfirmed { margin: 4px 0 0; color: #64748b; font-size: 10px; }
body.public-surface .program-timeline-item > .tag { align-self: center; min-height: 21px; padding: 3px 7px; font-size: 9px; white-space: nowrap; }
body.public-surface .program-result-link { width: fit-content; min-height: 32px; margin-top: 4px; display: inline-flex; align-items: center; gap: 4px; color: var(--brand-blue); font-size: 10px; font-weight: 800; }
body.public-surface .program-result-link .icon-svg { width: 13px; height: 13px; }
body.public-surface .program-demo-result { display: inline-block; margin-top: 5px; color: #6c5a27; font-size: 9px; }
body.public-surface .program-battles-panel { min-width: 0; padding: 20px; background: #f5f8fd; border-radius: 9px; }
body.public-surface .program-panel-heading { margin-bottom: 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
body.public-surface .program-panel-heading h3 { font-size: 21px; }
body.public-surface .program-panel-heading p { margin: 4px 0 0; color: var(--ink-muted); font-size: 11px; line-height: 1.45; }
body.public-surface .program-battle-count { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; color: #fff; background: var(--brand-blue); border-radius: 8px; font-size: 11px; font-weight: 850; font-variant-numeric: tabular-nums; }
body.public-surface .program-battle-list { display: grid; gap: 8px; }
body.public-surface .program-battle-card { min-width: 0; padding: 10px 11px 9px; background: #fff; border: 1px solid #e5ecf6; border-radius: 8px; }
body.public-surface .program-battle-topline { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #526783; font-size: 9px; line-height: 1.25; }
body.public-surface .program-battle-topline > span:first-child { min-width: 0; overflow-wrap: anywhere; }
body.public-surface .program-battle-time { flex: 0 0 auto; color: var(--brand-blue); font-weight: 850; font-variant-numeric: tabular-nums; }
body.public-surface .program-battle-duel { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); align-items: center; gap: 5px; }
body.public-surface .program-battle-duel .program-person-link { gap: 6px; font-size: 11px; }
body.public-surface .program-battle-duel .program-person-link:last-child { justify-content: flex-end; text-align: right; }
body.public-surface .program-battle-duel .program-person-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.public-surface .program-battle-duel .program-match-portrait { width: 52px; height: 52px; border-radius: 8px; }
body.public-surface .program-versus { color: #64748b; font-family: var(--font-display); font-size: 15px; text-align: center; }
body.public-surface .program-battle-group { display: flex; flex-wrap: wrap; gap: 8px; }
body.public-surface .program-battle-group .program-person-link { padding: 4px 8px 4px 4px; background: #f5f8fd; border: 1px solid #e5ecf6; border-radius: 7px; }
body.public-surface .program-battle-footer { margin-top: 8px; padding-top: 7px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ink-muted); border-top: 1px solid #edf1f7; font-size: 9px; }
body.public-surface .program-battle-footer .tag { min-height: 20px; padding: 3px 7px; font-size: 8px; }
body.public-surface .program-battles-panel .empty-state { padding: 18px 14px; }
body.public-surface .program-practical { margin-top: 1px; display: grid; grid-template-columns: 1.15fr .9fr 1.1fr; gap: 12px; }
body.public-surface .program-practical-card { min-width: 0; min-height: 102px; padding: 16px; display: flex; align-items: flex-start; gap: 12px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 10px; }
body.public-surface .program-practical-card > .icon-svg { width: 29px; height: 29px; flex: 0 0 auto; padding: 5px; color: var(--brand-blue); border: 1.5px solid #b8cdee; border-radius: 50%; }
body.public-surface .program-practical-card h2 { margin: 1px 0 5px; color: var(--ink); font-family: var(--font-display); font-size: 18px; font-weight: 500; }
body.public-surface .program-practical-card p { margin: 0; color: var(--ink-muted); font-size: 10px; line-height: 1.55; }
body.public-surface .program-hours-value { font-variant-numeric: tabular-nums; }

@media (max-width: 900px) {
  body.public-surface .program-round-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-surface .program-day-layout { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .program-day-participants { padding: 14px; }
  body.public-surface .program-battles-panel { padding: 18px; }
  body.public-surface .program-practical { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-surface .program-venue-card { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  body.public-surface .program-rounds-overview { padding: 13px; }
  body.public-surface .program-rounds-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  body.public-surface .program-round-grid { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .program-round-card { padding: 12px; }
  body.public-surface .program-hero { min-height: 176px; }
  body.public-surface .program-hero::before { background-position: 62% 50%; }
  body.public-surface .program-hero::after { background: linear-gradient(90deg, #f4f8ff 0%, rgb(244 248 255 / 94%) 42%, rgb(244 248 255 / 36%) 73%, rgb(13 43 102 / 28%) 100%); }
  body.public-surface .program-hero-shell { min-height: 176px; }
  body.public-surface .program-hero-copy { max-width: 340px; padding-block: 20px; }
  body.public-surface .program-hero-kicker { font-size: 9px; }
  body.public-surface .program-hero h1 { margin-block: 8px 6px; font-size: clamp(39px, 12vw, 52px); }
  body.public-surface .program-hero p { max-width: 270px; font-size: 12px; line-height: 1.4; }
  body.public-surface .program-hero-caption { margin-top: 8px; font-size: 8px; }
  body.public-surface .program-content-shell { width: calc(100% - 28px); padding-top: 11px; padding-bottom: 36px; }
  body.public-surface .program-content { gap: 9px; }
  body.public-surface .program-date-picker { gap: 5px; padding: 5px; border-radius: 9px; }
  body.public-surface .program-date-button { min-height: 63px; padding: 6px 3px; border-radius: 7px; }
  body.public-surface .program-date-button strong { font-size: 19px; }
  body.public-surface .program-date-button > span:not(.program-date-state) { font-size: 9px; }
  body.public-surface .program-date-button > small { font-size: 8px; }
  body.public-surface .program-date-button .program-date-state { font-size: 7px; }
  body.public-surface .program-day-card { padding: 5px; border-radius: 10px; }
  body.public-surface .program-timeline-panel { padding: 15px 10px 16px; }
  body.public-surface .program-day-participants { padding: 12px 9px; }
  body.public-surface .program-day-participant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  body.public-surface .program-day-participant-grid .program-person-link { gap: 4px; padding: 4px; font-size: 8px; }
  body.public-surface .program-day-participant-grid .program-match-portrait { width: 30px; height: 30px; }
  body.public-surface .program-day-heading { margin-bottom: 17px; gap: 7px; }
  body.public-surface .program-day-heading h2 { max-width: 260px; font-size: clamp(22px, 6vw, 28px); }
  body.public-surface .program-day-note { font-size: 9px; }
  body.public-surface .program-day-status { padding: 5px 7px; font-size: 8px; }
  body.public-surface .program-panel-label { margin-bottom: 9px; }
  body.public-surface .program-panel-label h3,
  body.public-surface .program-panel-heading h3 { font-size: 18px; }
  body.public-surface .program-timeline::before { left: 14px; }
  body.public-surface .program-timeline-item { padding: 9px 0; grid-template-columns: 30px 52px minmax(0, 1fr); gap: 7px; }
  body.public-surface .program-timeline-icon { width: 29px; height: 29px; }
  body.public-surface .program-timeline-icon .icon-svg { width: 14px; height: 14px; }
  body.public-surface .program-timeline-time { padding-top: 7px; font-size: 10px; }
  body.public-surface .program-performance-copy h3 { font-size: 15px; }
  body.public-surface .program-performance-kind { font-size: 8px; }
  body.public-surface .program-person-link { font-size: 9px; }
  body.public-surface .program-match-portrait { width: 29px; height: 29px; }
  body.public-surface .program-timeline-item > .tag { grid-column: 3; justify-self: start; margin-top: 4px; }
  body.public-surface .program-battles-panel { padding: 13px 9px; }
  body.public-surface .program-panel-heading { margin-bottom: 10px; }
  body.public-surface .program-panel-heading p { font-size: 9px; }
  body.public-surface .program-battle-card { padding: 8px; }
  body.public-surface .program-battle-duel { grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr); gap: 3px; }
  body.public-surface .program-battle-duel .program-person-link { gap: 4px; font-size: 9px; }
  body.public-surface .program-battle-duel .program-match-portrait { width: 42px; height: 42px; }
  body.public-surface .program-versus { font-size: 13px; }
  body.public-surface .program-practical { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  body.public-surface .program-venue-card { grid-column: auto; }
  body.public-surface .program-practical-card { min-height: 0; padding: 13px; }
}

@media (max-width: 350px) {
  body.public-surface .program-content-shell { width: calc(100% - 24px); }
  body.public-surface .program-date-picker { gap: 3px; padding: 4px; }
  body.public-surface .program-date-button { min-height: 60px; }
  body.public-surface .program-date-button strong { font-size: 17px; }
  body.public-surface .program-date-button > span:not(.program-date-state) { font-size: 8px; }
  body.public-surface .program-date-button > small { font-size: 7px; }
  body.public-surface .program-date-button .program-date-state { font-size: 6px; }
  body.public-surface .program-timeline-item { grid-template-columns: 28px 47px minmax(0, 1fr); gap: 6px; }
  body.public-surface .program-timeline-time { font-size: 9px; }
  body.public-surface .program-battle-duel .program-match-portrait { width: 36px; height: 36px; }
  body.public-surface .program-battle-duel .program-person-link { font-size: 8px; }
  body.public-surface .program-battle-duel { grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  body.public-surface .program-date-button { transition: none; }
}

/* Ranking and results page: layout follows the approved blue/white reference. */
body.public-surface .ranking-page { padding-bottom: 52px; background: var(--surface-page); }
body.public-surface .ranking-hero { min-height: 210px; position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; background: #e8eff9; }
body.public-surface .ranking-hero-image { position: absolute; z-index: -2; inset: 0 0 0 auto; width: min(73%, 1060px); height: 100%; max-width: none; object-fit: cover; object-position: 50% 44%; filter: hue-rotate(150deg) saturate(.92) brightness(.84); }
body.public-surface .ranking-hero-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #f2f6fc 0%, rgb(242 246 252 / 98%) 34%, rgb(226 237 252 / 83%) 52%, rgb(24 84 196 / 15%) 72%, rgb(13 43 102 / 13%) 100%); }
body.public-surface .ranking-hero-shade::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 39%, rgb(13 65 174 / 70%) 100%); content: ""; mix-blend-mode: color; }
body.public-surface .ranking-hero-inner { width: min(var(--content), calc(100% - 48px)); padding-block: 25px; }
body.public-surface .ranking-hero-copy { max-width: 660px; }
body.public-surface .ranking-hero-kicker { display: block; margin-bottom: 11px; color: var(--brand-blue); font-size: 10px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
body.public-surface .ranking-hero h1 { margin: 0 0 10px; color: #101318; font-family: var(--font-display); font-size: clamp(40px, 5vw, 58px); font-weight: 500; letter-spacing: -.025em; line-height: .96; text-transform: uppercase; }
body.public-surface .ranking-hero p { max-width: 540px; margin: 0; color: #304768; font-size: 14px; line-height: 1.55; }
body.public-surface .ranking-columns { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); align-items: stretch; gap: 10px; padding-top: 12px; }
body.public-surface .ranking-mobile-tabs { display: none; }
body.public-surface .ranking-panel { min-width: 0; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 5px 18px rgb(16 35 68 / 5%); }
body.public-surface .ranking-panel-heading { min-height: 43px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
body.public-surface .ranking-panel-heading h2 { margin: 0 0 3px; color: var(--ink); font-size: 17px; font-weight: 850; letter-spacing: -.015em; text-transform: uppercase; }
body.public-surface .ranking-panel-heading p { margin: 0; color: var(--ink-muted); font-size: 11px; line-height: 1.45; }
body.public-surface .ranking-live-state { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding-top: 2px; color: var(--ink-muted); font-size: 10px; white-space: nowrap; }
body.public-surface .ranking-live-state i { width: 7px; height: 7px; border-radius: 50%; background: #15965b; }
body.public-surface .ranking-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-areas: "second first third"; align-items: end; gap: 10px; padding: 12px 0 16px; }
body.public-surface .ranking-podium-card { min-width: 0; position: relative; display: block; overflow: visible; color: inherit; text-decoration: none; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 4px 14px rgb(16 35 68 / 8%); cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
body.public-surface .ranking-podium-card:hover { border-color: #8aabe4; box-shadow: 0 8px 20px rgb(24 84 196 / 13%); transform: translateY(-2px); }
body.public-surface .ranking-podium-card:focus-visible { outline: 3px solid rgb(24 84 196 / 52%); outline-offset: 3px; }
body.public-surface .ranking-podium-card--second { grid-area: second; }
body.public-surface .ranking-podium-card--first { grid-area: first; z-index: 1; border: 2px solid var(--brand-blue); box-shadow: 0 7px 20px rgb(24 84 196 / 15%); }
body.public-surface .ranking-podium-card--third { grid-area: third; }
body.public-surface .ranking-podium-photo { width: 100%; height: 154px; display: block; position: relative; overflow: hidden; aspect-ratio: auto; background-color: #e3ebf7; border-radius: 9px 9px 0 0; }
body.public-surface .ranking-podium-card--first .ranking-podium-photo { height: 174px; }
body.public-surface .ranking-podium-photo::before, body.public-surface .ranking-podium-photo::after { display: none; }
body.public-surface .ranking-podium-photo img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
body.public-surface .ranking-medal { min-width: 32px; height: 32px; position: absolute; z-index: 2; top: -13px; left: 50%; display: grid; place-items: center; padding-inline: 7px; color: #fff; background: var(--brand-blue); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 2px 8px rgb(16 35 68 / 22%); font-size: 13px; font-weight: 850; transform: translateX(-50%); }
body.public-surface .ranking-podium-card--first .ranking-medal { min-width: 38px; height: 38px; top: -16px; font-size: 16px; }
body.public-surface .ranking-podium-caption { min-height: 66px; padding: 8px 5px 9px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; text-align: center; }
body.public-surface .ranking-candidate-name { max-width: 100%; overflow: hidden; color: var(--ink); font-family: var(--font-display); font-size: 18px; line-height: 1.05; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
body.public-surface .ranking-podium-card--first .ranking-candidate-name { font-size: 20px; }
body.public-surface .ranking-podium-votes { color: #13213b; font-size: 12px; font-variant-numeric: tabular-nums; }
body.public-surface .ranking-podium-votes span { color: var(--ink-muted); font-size: 10px; font-weight: 550; }
body.public-surface .ranking-list { display: grid; margin-top: 2px; }
body.public-surface .ranking-list-heading, body.public-surface .ranking-list-row { display: grid; grid-template-columns: 27px 34px minmax(65px, 1fr) minmax(60px, 1fr) max-content; align-items: center; gap: 9px; }
body.public-surface .ranking-list-heading { min-height: 26px; padding-inline: 7px; color: #5b6c86; font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
body.public-surface .ranking-list-heading span:last-child { grid-column: 4 / 6; justify-self: end; }
body.public-surface .ranking-list-row { min-height: 42px; padding: 4px 7px; color: var(--ink); border-top: 1px solid #e7edf6; }
body.public-surface .ranking-list-position { color: #1a355e; font-size: 11px; font-variant-numeric: tabular-nums; text-align: center; }
body.public-surface .ranking-list-photo { width: 32px; height: 32px; position: relative; overflow: hidden; aspect-ratio: auto; background-color: #e3ebf7; border-radius: 6px; }
body.public-surface .ranking-list-photo::before, body.public-surface .ranking-list-photo::after { display: none; }
body.public-surface .ranking-list-photo img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
body.public-surface .ranking-list-name { min-width: 0; overflow: hidden; color: #142440; font-size: 10px; font-weight: 800; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
body.public-surface .ranking-list-meter { height: 5px; overflow: hidden; background: #e1e9f4; border-radius: 99px; }
body.public-surface .ranking-list-meter span { height: 100%; display: block; background: var(--brand-blue); border-radius: inherit; }
body.public-surface .ranking-list-votes { color: #172d50; font-size: 10px; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.public-surface .ranking-list-votes span { color: var(--ink-muted); font-size: 9px; font-weight: 500; }
body.public-surface .ranking-show-all { width: 100%; min-height: 42px; display: flex; align-items: center; justify-content: center; gap: 7px; margin: 10px 0 2px; padding: 8px 12px; color: var(--brand-blue); background: #f1f6fd; border: 1px solid var(--line); border-radius: 8px; font-size: 11px; font-weight: 800; cursor: pointer; }
body.public-surface .ranking-show-all:hover { background: #e8f0fc; }
body.public-surface .ranking-show-all:focus-visible { outline: 3px solid rgb(24 84 196 / 42%); outline-offset: 2px; }
body.public-surface .ranking-show-all .icon-svg { width: 16px; height: 16px; }
body.public-surface .ranking-panel-note { margin: 12px 0 5px; color: #3d4e68; font-size: 10px; line-height: 1.5; }
body.public-surface .ranking-updated { margin: 0; color: #77869c; font-size: 9px; }
body.public-surface .ranking-date-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 1px 0 15px; }
body.public-surface .ranking-date-button { min-width: 0; min-height: 56px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 5px; color: #1a2c49; background: #fff; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
body.public-surface .ranking-date-button strong { font-size: 16px; line-height: 1; }
body.public-surface .ranking-date-button span { color: #667894; font-size: 9px; text-transform: uppercase; }
body.public-surface .ranking-date-button.is-selected { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
body.public-surface .ranking-date-button.is-selected span { color: #e8efff; }
body.public-surface .ranking-selected-date { margin: 0 0 9px; color: #17233b; font-size: 14px; font-weight: 850; }
body.public-surface .ranking-battles { display: grid; gap: 8px; }
body.public-surface .ranking-battle-card { min-width: 0; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
body.public-surface .ranking-battle-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; color: #516582; font-size: 10px; }
body.public-surface .ranking-result-badge { padding: 4px 8px; color: #12643d; background: #e2f7ec; border-radius: 99px; font-size: 9px; font-weight: 800; }
body.public-surface .ranking-result-badge.is-demo { color: #234c91; background: #e7efff; }
body.public-surface .ranking-battle-rows { display: grid; gap: 7px; }
body.public-surface .ranking-result-matchup { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr); align-items: center; gap: 6px; }
body.public-surface .ranking-result-participant { min-width: 0; display: grid; grid-template-columns: 45px minmax(0, 1fr); align-items: center; gap: 8px; }
body.public-surface .ranking-result-photo { width: 45px; height: 58px; position: relative; overflow: hidden; aspect-ratio: auto; background-color: #e3ebf7; border-radius: 7px; }
body.public-surface .ranking-result-photo::before, body.public-surface .ranking-result-photo::after { display: none; }
body.public-surface .ranking-result-photo img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
body.public-surface .ranking-result-main { min-width: 0; display: grid; gap: 3px; }
body.public-surface .ranking-result-name { overflow: hidden; color: #142440; font-size: 11px; font-weight: 850; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
body.public-surface .ranking-result-total { color: #122440; font-family: var(--font-display); font-size: 20px; font-variant-numeric: tabular-nums; }
body.public-surface .ranking-result-detail { color: #687c9a; font-size: 8px; line-height: 1.35; }
body.public-surface .ranking-result-vs { color: #71839b; font-size: 8px; font-weight: 850; text-align: center; }
body.public-surface .ranking-result-scale { display: flex; align-items: center; gap: 6px; margin: 8px 0 0 57px; color: #6b7c95; font-size: 9px; }
body.public-surface .ranking-result-scale span { color: #9aabc1; }
body.public-surface .ranking-battle-card--pending { background: #f9fbfe; }
body.public-surface .ranking-battle-card--pending p { margin: 0; color: #64748b; font-size: 10px; }
body.public-surface .ranking-official-note { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; padding: 9px 10px; color: #405777; background: #f0f5fc; border-radius: 8px; font-size: 9px; line-height: 1.45; }
body.public-surface .ranking-official-note .icon-svg { width: 15px; height: 15px; flex: 0 0 auto; color: var(--brand-blue); }

@media (max-width: 960px) {
  body.public-surface .ranking-columns { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

@media (max-width: 760px) {
  body.public-surface .ranking-page { padding-bottom: 28px; }
  body.public-surface .ranking-hero { min-height: 186px; align-items: flex-end; }
  body.public-surface .ranking-hero-image { width: 100%; object-position: 65% 45%; }
  body.public-surface .ranking-hero-shade { background: linear-gradient(90deg, rgb(242 246 252 / 96%) 0%, rgb(242 246 252 / 89%) 48%, rgb(13 43 102 / 24%) 100%), linear-gradient(0deg, rgb(242 246 252 / 10%), rgb(242 246 252 / 10%)); }
  body.public-surface .ranking-hero-shade::after { background: linear-gradient(90deg, transparent 28%, rgb(13 65 174 / 74%) 100%); }
  body.public-surface .ranking-hero-inner { width: calc(100% - 32px); padding-block: 23px 20px; }
  body.public-surface .ranking-hero-kicker { margin-bottom: 8px; font-size: 9px; }
  body.public-surface .ranking-hero h1 { max-width: 470px; margin-bottom: 7px; font-size: clamp(35px, 9vw, 48px); }
  body.public-surface .ranking-hero p { max-width: 390px; font-size: 12px; }
  body.public-surface .ranking-columns { width: calc(100% - 24px); padding-top: 10px; }
  body.public-surface .ranking-mobile-tabs { display: grid; grid-column: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding: 5px; background: #edf3fb; border: 1px solid var(--line); border-radius: 10px; }
  body.public-surface .ranking-mobile-tab { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 5px 8px; color: #203957; background: transparent; border: 1px solid transparent; border-radius: 7px; font-size: 10px; font-weight: 800; cursor: pointer; }
  body.public-surface .ranking-mobile-tab[aria-pressed="true"] { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
  body.public-surface .ranking-mobile-tab .icon-svg { width: 16px; height: 16px; }
  body.public-surface .ranking-panel { padding: 14px 12px; }
  body.public-surface .ranking-show-results .ranking-panel--votes { display: none; }
  body.public-surface .ranking-page:not(.ranking-show-results) .ranking-panel--results { display: none; }
  body.public-surface .ranking-panel-heading { min-height: 0; margin-bottom: 10px; }
  body.public-surface .ranking-podium { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "first first" "second third"; align-items: stretch; max-width: 450px; margin-inline: auto; }
  body.public-surface .ranking-podium-card--first { width: min(100%, 245px); justify-self: center; }
  body.public-surface .ranking-panel-heading h2 { font-size: 15px; }
  body.public-surface .ranking-panel-heading p { max-width: 265px; font-size: 10px; }
  body.public-surface .ranking-live-state { font-size: 8px; }
  body.public-surface .ranking-podium { gap: 7px; padding-top: 10px; }
  body.public-surface .ranking-podium-photo { height: 142px; }
  body.public-surface .ranking-podium-card--first .ranking-podium-photo { height: 160px; }
  body.public-surface .ranking-candidate-name { font-size: 15px; }
  body.public-surface .ranking-podium-card--first .ranking-candidate-name { font-size: 17px; }
  body.public-surface .ranking-podium-votes { font-size: 11px; }
  body.public-surface .ranking-list-heading, body.public-surface .ranking-list-row { grid-template-columns: 22px 32px minmax(50px, 1fr) minmax(42px, .65fr) max-content; gap: 7px; padding-inline: 4px; }
  body.public-surface .ranking-list-heading { font-size: 7px; }
  body.public-surface .ranking-list-photo { width: 30px; height: 30px; }
  body.public-surface .ranking-list-name { font-size: 9px; }
  body.public-surface .ranking-list-votes { font-size: 9px; }
  body.public-surface .ranking-list-votes span { font-size: 8px; }
  body.public-surface .ranking-panel-note { font-size: 9px; }
  body.public-surface .ranking-updated { font-size: 8px; }
}

@media (max-width: 430px) {
  body.public-surface .ranking-hero { min-height: 172px; }
  body.public-surface .ranking-hero-inner { width: calc(100% - 28px); padding-block: 20px 17px; }
  body.public-surface .ranking-hero h1 { max-width: 330px; font-size: clamp(32px, 9vw, 40px); }
  body.public-surface .ranking-hero p { max-width: 330px; font-size: 11px; }
  body.public-surface .ranking-columns { width: calc(100% - 20px); }
  body.public-surface .ranking-panel { padding: 12px 9px; }
  body.public-surface .ranking-mobile-tab { font-size: 9px; }
  body.public-surface .ranking-live-state { max-width: 92px; white-space: normal; line-height: 1.3; }
  body.public-surface .ranking-podium { gap: 6px; }
  body.public-surface .ranking-podium-photo { height: 128px; }
  body.public-surface .ranking-podium-card--first .ranking-podium-photo { height: 145px; }
  body.public-surface .ranking-candidate-name { font-size: 14px; }
  body.public-surface .ranking-podium-card--first .ranking-candidate-name { font-size: 16px; }
  body.public-surface .ranking-list-heading, body.public-surface .ranking-list-row { grid-template-columns: 20px 29px minmax(46px, 1fr) minmax(32px, .55fr) max-content; gap: 5px; }
  body.public-surface .ranking-list-photo { width: 28px; height: 28px; }
  body.public-surface .ranking-list-name { font-size: 8px; }
  body.public-surface .ranking-list-votes { font-size: 8px; }
  body.public-surface .ranking-date-tabs { gap: 4px; }
  body.public-surface .ranking-date-button { min-height: 51px; }
  body.public-surface .ranking-result-matchup { grid-template-columns: minmax(0, 1fr) 17px minmax(0, 1fr); gap: 4px; }
  body.public-surface .ranking-result-participant { grid-template-columns: 37px minmax(0, 1fr); gap: 5px; }
  body.public-surface .ranking-result-photo { width: 37px; height: 48px; }
  body.public-surface .ranking-result-total { font-size: 18px; }
  body.public-surface .ranking-result-detail { font-size: 7px; }
  body.public-surface .ranking-result-scale { margin-left: 49px; font-size: 8px; }
}

@media (max-width: 350px) {
  body.public-surface .ranking-live-state { display: none; }
  body.public-surface .ranking-podium-photo { height: 112px; }
  body.public-surface .ranking-podium-card--first .ranking-podium-photo { height: 126px; }
  body.public-surface .ranking-candidate-name { font-size: 12px; }
  body.public-surface .ranking-podium-card--first .ranking-candidate-name { font-size: 14px; }
  body.public-surface .ranking-list-heading, body.public-surface .ranking-list-row { grid-template-columns: 18px 27px minmax(40px, 1fr) minmax(0, .4fr) max-content; gap: 4px; }
  body.public-surface .ranking-list-meter { display: none; }
  body.public-surface .ranking-list-heading span:last-child { grid-column: 4 / 6; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-surface .ranking-podium-card, body.public-surface .ranking-date-button, body.public-surface .ranking-mobile-tab, body.public-surface .ranking-show-all { transition: none; }
}

/* Anonymous simulated checkout and private receipt */
.checkout-page { width: min(820px, calc(100% - 36px)); }
.payment-summary { margin: 14px 0; }
.payment-receipt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.payment-receipt-grid > div { display: grid; gap: 4px; min-width: 0; }
.payment-receipt-grid span { color: var(--muted); font-size: 10px; }
.payment-receipt-grid strong { overflow-wrap: anywhere; font-size: 12px; }
.checkout-primary-actions { display: flex; gap: 10px; margin-top: 14px; }
.checkout-primary-actions .button { min-height: 46px; flex: 1; padding-inline: 12px; }
.checkout-advanced { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.checkout-advanced > summary { color: var(--ink-muted); font-size: 12px; font-weight: 700; cursor: pointer; }
.checkout-scenarios { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 12px; }
.checkout-scenarios .button { min-height: 44px; padding: 8px 10px; font-size: 11px; }
.payment-admin-filters { display: grid; gap: 8px; margin-bottom: 14px; }
.payment-admin-filters .field-grid { margin: 0; }
.payment-admin-filters .admin-note { display: block; overflow-wrap: anywhere; }

@media (max-width: 480px) {
  .checkout-page { width: calc(100% - 26px); }
  .payment-receipt-grid { gap: 11px; }
  .payment-receipt-grid span { font-size: 9px; }
  .payment-receipt-grid strong { font-size: 11px; }
  .checkout-scenarios { grid-template-columns: 1fr; }
  .checkout-primary-actions { flex-direction: column; }
}

body.public-surface .payment-summary,
body.public-surface .checkout-page .panel { color: var(--ink); background: #fff; border-color: var(--line); }
body.public-surface .payment-summary .vote-candidate { border-color: var(--line); }
body.public-surface .payment-summary .vote-candidate p,
body.public-surface .payment-summary .panel-copy,
body.public-surface .payment-receipt-grid span { color: var(--ink-muted); }
body.public-surface .payment-receipt-grid { border-color: var(--line); }
body.public-surface .checkout-scenarios .ui-button--quiet { background: #f4f7fb; border-color: #dce5f2; }
body.public-surface .checkout-advanced { border-color: var(--line); }

/* Checkout presentation aligned with the six-screen payment reference. */
body.public-surface .checkout-page { width: min(960px, calc(100% - 48px)); padding-block: 42px 58px; }
body.public-surface .checkout-page .section-heading { margin-bottom: 18px; }
body.public-surface .checkout-page .section-heading .eyebrow { margin-bottom: 3px; }
body.public-surface .checkout-page .section-heading h2 { margin-block: 7px; font-size: clamp(29px, 4.4vw, 42px); }
body.public-surface .checkout-page .section-heading p { font-size: 13px; line-height: 1.5; }
body.public-surface .checkout-page > .notice { margin-top: 15px; }
body.public-surface .checkout-progress { list-style: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; margin: 0 0 17px; padding: 0; }
body.public-surface .checkout-progress-step { min-width: 0; min-height: 48px; display: flex; align-items: center; gap: 7px; padding: 7px 8px; color: #718096; background: #f7f9fd; border: 1px solid #e3eaf4; border-radius: 9px; font-size: 10px; font-weight: 700; }
body.public-surface .checkout-progress-number { width: 24px; height: 24px; display: grid; place-items: center; flex: 0 0 24px; color: #60728d; background: #e7edf6; border-radius: 50%; font-size: 10px; font-weight: 850; }
body.public-surface .checkout-progress-number .icon-svg { width: 15px; height: 15px; }
body.public-surface .checkout-progress-step.is-complete { color: #174aab; background: #f2f6ff; border-color: #cfddf3; }
body.public-surface .checkout-progress-step.is-complete .checkout-progress-number,
body.public-surface .checkout-progress-step.is-current .checkout-progress-number { color: #fff; background: var(--brand-blue); }
body.public-surface .checkout-progress-step.is-current { color: var(--brand-blue-deep); background: #edf3ff; border-color: #1854c4; box-shadow: inset 0 0 0 1px #1854c4; }
body.public-surface .checkout-entry-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(280px, .78fr); align-items: start; gap: 14px; }
body.public-surface .checkout-selection-card,
body.public-surface .checkout-order-card,
body.public-surface .checkout-stage-card,
body.public-surface .checkout-tracking-card { min-width: 0; padding: 20px; color: #16233b; background: #fff; border: 1px solid #dce5f1; border-radius: 12px; box-shadow: 0 5px 18px rgb(16 35 68 / 5%); }
body.public-surface .checkout-card-heading,
body.public-surface .checkout-stage-title { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; }
body.public-surface .checkout-step-badge { width: 29px; height: 29px; display: grid; place-items: center; flex: 0 0 29px; color: #fff; background: var(--brand-blue); border-radius: 50%; font-size: 13px; font-weight: 850; }
body.public-surface .checkout-card-heading h2,
body.public-surface .checkout-stage-title h2 { margin: 0; color: #142440; font-size: 17px; font-weight: 850; }
body.public-surface .checkout-card-heading p { margin: 3px 0 0; color: #64748b; font-size: 11px; }
body.public-surface .checkout-selected-candidate { display: flex; align-items: center; gap: 12px; padding: 12px; background: #f7f9fd; border: 1px solid #e3eaf4; border-radius: 10px; }
body.public-surface .checkout-candidate-image { width: 68px; height: 78px; position: relative; flex: 0 0 68px; }
body.public-surface .checkout-candidate-avatar { width: 68px; height: 78px; overflow: hidden; background: #e5edf8; border-radius: 8px; }
body.public-surface .checkout-candidate-avatar.candidate-demo-portrait,
body.public-surface .checkout-stage-avatar.candidate-demo-portrait { background-image: url('/assets/demo/candidate-portraits.jpg'); background-size: 500% 500%; background-position: var(--portrait-x, 0%) var(--portrait-y, 0%); }
body.public-surface .checkout-candidate-avatar img,
body.public-surface .checkout-stage-avatar img { width: 100%; height: 100%; object-fit: cover; }
body.public-surface .checkout-candidate-number { position: absolute; top: 5px; left: 5px; min-width: 26px; height: 25px; display: grid; place-items: center; padding: 0 4px; color: #fff; background: var(--brand-blue); border-radius: 5px; font-size: 11px; font-weight: 850; }
body.public-surface .checkout-candidate-copy { min-width: 0; flex: 1; }
body.public-surface .checkout-candidate-copy .eyebrow { font-size: 8px; }
body.public-surface .checkout-candidate-copy .eyebrow::before { display: none; }
body.public-surface .checkout-candidate-copy h2 { margin: 4px 0 3px; color: #111c30; font-family: var(--font-display); font-size: 22px; line-height: 1; text-transform: uppercase; }
body.public-surface .checkout-candidate-copy p { margin: 0; color: #60718c; font-size: 10px; }
body.public-surface .checkout-change-link { min-height: 40px; display: inline-flex; align-items: center; padding: 0 5px; color: var(--brand-blue); font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
body.public-surface .checkout-price-per-voice { min-height: 52px; display: flex; align-items: center; gap: 9px; margin: 13px 0 17px; padding: 10px 12px; color: #24426e; background: #eef4ff; border-radius: 8px; }
body.public-surface .checkout-price-per-voice .icon-svg { width: 19px; height: 19px; color: var(--brand-blue); }
body.public-surface .checkout-price-per-voice span { flex: 1; font-size: 11px; }
body.public-surface .checkout-price-per-voice strong { color: #172b4a; font-size: 12px; }
body.public-surface .checkout-quantity-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 9px; }
body.public-surface .checkout-quantity-heading h3 { margin: 0; color: #152540; font-size: 13px; font-weight: 850; }
body.public-surface .checkout-quantity-heading span { color: #73839a; font-size: 10px; }
body.public-surface .checkout-quantity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
body.public-surface .checkout-quantity-choice { min-width: 0; min-height: 66px; display: grid; align-content: center; justify-items: center; gap: 4px; padding: 8px; color: #1e3150; background: #fff; border: 1px solid #dce5f1; border-radius: 9px; cursor: pointer; transition: background-color .16s ease, border-color .16s ease, color .16s ease; }
body.public-surface .checkout-quantity-value { font-size: 17px; font-weight: 850; line-height: 1; }
body.public-surface .checkout-quantity-price { color: #6b7d97; font-size: 9px; }
body.public-surface .checkout-quantity-choice.is-selected { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); box-shadow: 0 4px 12px rgb(24 84 196 / 17%); }
body.public-surface .checkout-quantity-choice.is-selected .checkout-quantity-price { color: #e3ecff; }
body.public-surface .checkout-selection-card .field { margin: 14px 0 0; }
body.public-surface .checkout-selection-card .field label { color: #233754; font-size: 11px; }
body.public-surface .checkout-selection-card .input { min-height: 44px; color: #16233b; background: #fff; border-color: #cdd9e9; border-radius: 8px; }
body.public-surface .checkout-selection-card .field-help { color: #718096; font-size: 9px; }
body.public-surface .checkout-order-card { position: sticky; top: 104px; }
body.public-surface .checkout-order-card > .eyebrow { font-size: 9px; }
body.public-surface .checkout-order-card h2 { margin: 7px 0 15px; color: #132440; font-size: 19px; }
body.public-surface .checkout-order-lines { display: grid; gap: 12px; padding-bottom: 15px; border-bottom: 1px solid #e3eaf4; }
body.public-surface .checkout-order-lines > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; color: #64748b; font-size: 11px; }
body.public-surface .checkout-order-lines strong { color: #172b48; font-size: 11px; text-align: right; }
body.public-surface .checkout-total-line { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 14px 0; color: #1b3358; font-size: 12px; font-weight: 750; }
body.public-surface .checkout-total-line strong { color: var(--brand-blue); font-family: var(--font-display); font-size: 25px; font-weight: 800; }
body.public-surface .checkout-continue { min-height: 50px; gap: 9px; }
body.public-surface .checkout-continue .icon-svg { width: 17px; height: 17px; }
body.public-surface .checkout-small-note { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 10px 0 0; color: #386044; font-size: 10px; font-weight: 750; }
body.public-surface .checkout-small-note .icon-svg { width: 14px; height: 14px; }
body.public-surface .checkout-private-note { margin: 9px 0 0; color: #718096; font-size: 9px; line-height: 1.45; text-align: center; }
body.public-surface .checkout-entry-page > .page-shell > .notice { max-width: 100%; }
body.public-surface .checkout-follow-link { margin-top: 8px; text-align: center; }
body.public-surface .checkout-follow-link .button { min-height: 40px; }

body.public-surface .wave-guide-help { display: flex; gap: 8px; margin: 14px auto 0; }
body.public-surface .wave-manual-guide { margin-top: 16px; padding: 19px; color: #172642; background: #f8faff; border: 1px solid #dce6f4; border-radius: 12px; }
body.public-surface .wave-manual-guide-heading h2 { margin: 4px 0; color: #152541; font-family: var(--font-display); font-size: 21px; text-transform: uppercase; }
body.public-surface .wave-manual-guide-heading p { margin: 0; color: #63748e; font-size: 12px; }
body.public-surface .wave-manual-guide-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 16px 0; padding: 0; list-style: none; }
body.public-surface .wave-manual-guide-steps li { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #fff; border: 1px solid #e1e8f2; border-radius: 12px; }
body.public-surface .wave-manual-guide-visual { display: grid; place-items: center; padding: 16px 10px 0; background: linear-gradient(180deg, #e9f0fc 0%, #f4f7fd 100%); border-bottom: 1px solid #e1e8f2; }
body.public-surface .wave-manual-guide-text { display: flex; align-items: flex-start; gap: 9px; padding: 12px; }
body.public-surface .wave-manual-guide-number { width: 25px; height: 25px; display: grid; place-items: center; flex: 0 0 25px; color: #fff; background: var(--brand-blue); border-radius: 50%; font-size: 11px; font-weight: 850; }
body.public-surface .wave-manual-guide-steps h3 { margin: 1px 0 5px; color: #172642; font-size: 12px; line-height: 1.3; }
body.public-surface .wave-manual-guide-steps p { margin: 0; color: #66758c; font-size: 11px; line-height: 1.5; }
body.public-surface .wave-manual-guide-caption { margin: -6px 0 12px; color: #7a889d; font-size: 10px; font-style: italic; }

/* Illustrative phone screens (decorative; example values only). */
body.public-surface .guide-phone { position: relative; width: 124px; height: 196px; padding: 6px; margin-bottom: -2px; background: #111c2f; border-radius: 22px 22px 0 0; box-shadow: 0 10px 24px rgb(16 35 68 / 18%); }
body.public-surface .guide-phone-notch { position: absolute; top: 9px; left: 50%; width: 34px; height: 6px; transform: translateX(-50%); background: #111c2f; border-radius: 0 0 6px 6px; z-index: 1; }
body.public-surface .guide-phone-screen { height: 100%; display: flex; flex-direction: column; gap: 7px; padding: 16px 9px 9px; overflow: hidden; color: #172642; background: #fff; border-radius: 17px 17px 0 0; font-size: 9px; line-height: 1.25; }
body.public-surface .guide-phone .icon-svg { width: 12px; height: 12px; }
body.public-surface .guide-site-bar { margin: -16px -9px 0; padding: 15px 9px 6px; color: #fff; background: var(--brand-blue); font-family: var(--font-display); font-size: 11px; letter-spacing: .02em; }
body.public-surface .guide-site-artist { display: flex; align-items: center; gap: 6px; }
body.public-surface .guide-site-artist small { display: block; color: #7a889d; font-size: 8px; }
body.public-surface .guide-site-avatar { width: 24px; height: 24px; flex: 0 0 24px; background: linear-gradient(135deg, #3c4658, #9aa3b2); border-radius: 6px; }
body.public-surface .guide-site-votes { display: flex; justify-content: space-between; padding: 6px; background: #eef3fc; border: 1px solid #c9d8f3; border-radius: 6px; }
body.public-surface .guide-site-votes b { color: var(--brand-blue); }
body.public-surface .guide-site-ref { color: #7a889d; font-size: 8px; }
body.public-surface .guide-site-button { margin-top: auto; padding: 7px; color: #fff; text-align: center; background: var(--brand-blue); border-radius: 7px; font-weight: 800; }
body.public-surface .guide-wave-title { text-align: center; font-weight: 800; font-size: 10px; }
body.public-surface .guide-wave-merchant { display: flex; align-items: center; gap: 6px; padding-bottom: 7px; border-bottom: 1px solid #e6ebf2; }
body.public-surface .guide-wave-merchant b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9.5px; }
body.public-surface .guide-wave-cart { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 22px; color: #7a889d; background: #eef1f5; border-radius: 6px; }
body.public-surface .guide-wave-label { color: #1aa7e8; font-size: 8px; }
body.public-surface .guide-wave-amount { padding-bottom: 3px; border-bottom: 2px solid #1aa7e8; font-size: 15px; font-weight: 800; }
body.public-surface .guide-wave-button { margin-top: auto; padding: 7px; color: #fff; text-align: center; background: #1dc3ff; border-radius: 999px; font-weight: 800; }
body.public-surface .guide-phone-whatsapp .guide-phone-screen { gap: 0; padding: 0; background: #efe7dc; }
body.public-surface .guide-wa-bar { display: flex; align-items: center; gap: 5px; padding: 16px 8px 6px; color: #fff; background: #0f7a5f; font-weight: 800; }
body.public-surface .guide-wa-chat { flex: 1; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; padding: 8px 7px; }
body.public-surface .guide-wa-bubble { max-width: 92%; display: flex; flex-direction: column; gap: 1px; padding: 5px 6px; background: #d8fdd2; border-radius: 7px 7px 2px 7px; box-shadow: 0 1px 1px rgb(0 0 0 / 8%); font-size: 8px; }
body.public-surface .guide-wa-bubble b { font-size: 8.5px; }
body.public-surface .guide-wa-receipt { flex-direction: row; align-items: center; gap: 4px; font-weight: 700; }
body.public-surface .guide-wa-input { display: flex; gap: 4px; padding: 6px; }
body.public-surface .guide-wa-input span:first-child { flex: 1; height: 16px; background: #fff; border-radius: 999px; }
body.public-surface .guide-wa-send { width: 16px; height: 16px; background: #0f7a5f; border-radius: 50%; }
body.public-surface .guide-phone-done .guide-phone-screen { align-items: center; justify-content: center; text-align: center; }
body.public-surface .guide-done-badge { width: 40px; height: 40px; display: grid; place-items: center; color: #fff; background: #168b56; border-radius: 50%; }
body.public-surface .guide-done-badge .icon-svg { width: 22px; height: 22px; }
body.public-surface .guide-done-title { font-size: 11px; }
body.public-surface .guide-done-copy { color: #66758c; }
body.public-surface .guide-done-pill { padding: 3px 9px; color: #168b56; background: #e3f5ec; border-radius: 999px; font-weight: 800; }
body.public-surface .wave-manual-guide-collapsible { margin-top: 14px; padding-top: 11px; border-top: 1px solid #dce6f4; }
body.public-surface .wave-manual-guide-collapsible > summary { color: #1854c4; font-size: 12px; font-weight: 800; cursor: pointer; }
body.public-surface .wave-manual-guide-collapsible[open] > summary { margin-bottom: 10px; }
body.public-surface .wave-manual-order-page { max-width: 820px; }
body.public-surface .wave-manual-order-card { padding: 20px; color: #172642; background: #fff; border: 1px solid #dce5f1; border-radius: 12px; box-shadow: 0 5px 18px rgb(16 35 68 / 5%); }
body.public-surface .wave-manual-order-status { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; color: #18355f; }
body.public-surface .wave-status-dot { width: 9px; height: 9px; display: inline-block; border-radius: 50%; background: #d18a17; }
body.public-surface .wave-status-dot.is-success { background: #168b56; }
body.public-surface .wave-status-dot.is-warning { background: #c34242; }
body.public-surface .wave-manual-order-details { display: grid; gap: 0; margin: 0 0 15px; border-top: 1px solid #e6ebf2; }
body.public-surface .wave-manual-order-details > div { display: flex; justify-content: space-between; gap: 14px; padding: 11px 2px; border-bottom: 1px solid #e6ebf2; }
body.public-surface .wave-manual-order-details dt { color: #6b7b92; font-size: 11px; }
body.public-surface .wave-manual-order-details dd { margin: 0; color: #1b2c49; font-size: 12px; font-weight: 800; text-align: right; }
body.public-surface .wave-order-reference { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
body.public-surface .wave-manual-order-actions { display: flex; flex-wrap: wrap; gap: 9px; margin: 14px 0; }
body.public-surface .wave-order-refresh { margin: 12px 0 0; }
body.public-surface .wave-manual-order-card .notice { max-width: 100%; }
body.public-surface .wave-order-status-detail { margin: -6px 0 12px; color: #6b7b92; font-size: 11px; }
body.public-surface .wave-order-step { margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid #e6ebf2; }
body.public-surface .wave-order-step h3 { margin: 0 0 8px; color: #18355f; font-size: 15px; }
body.public-surface .wave-order-step > p { margin: 0 0 6px; color: #44566f; font-size: 12px; }
body.public-surface .wave-order-pay-summary { margin-bottom: 4px; }
body.public-surface .wave-order-whatsapp-steps { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 4px; color: #1b2c49; font-size: 12px; line-height: 1.5; }
body.public-surface .wave-order-tracking { margin: 14px 0 0; display: grid; gap: 8px; justify-items: start; }
body.public-surface .wave-order-tracking p { margin: 0; color: #44566f; font-size: 12px; }
body.public-surface .wave-order-message { min-height: 220px; font-family: inherit; font-size: 12px; line-height: 1.5; white-space: pre-wrap; }

@media (max-width: 760px) {
  body.public-surface .wave-manual-guide { padding: 14px; }
  body.public-surface .wave-manual-guide-steps { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .wave-manual-guide-steps li { flex-direction: row; }
  body.public-surface .wave-manual-guide-visual { flex: 0 0 128px; align-items: end; padding: 12px 8px 0; border-right: 1px solid #e1e8f2; border-bottom: 0; }
  body.public-surface .wave-manual-guide-text { flex-direction: column; gap: 7px; align-self: center; }
  body.public-surface .wave-manual-guide-collapsible > summary { min-height: 42px; display: flex; align-items: center; }
  body.public-surface .wave-manual-order-card { padding: 14px; }
  body.public-surface .wave-manual-order-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  body.public-surface .wave-manual-order-actions .button { width: 100%; }
}

body.public-surface .checkout-stage-card { padding: 20px; }
body.public-surface .checkout-stage-title { margin-bottom: 16px; }
body.public-surface .checkout-stage-candidate { display: flex; align-items: center; gap: 11px; margin: 14px 0; padding: 11px; background: #f5f8fd; border: 1px solid #e3eaf4; border-radius: 9px; }
body.public-surface .checkout-stage-avatar { width: 52px; height: 60px; flex: 0 0 52px; overflow: hidden; background: #e6edf8; border-radius: 7px; }
body.public-surface .checkout-stage-candidate h2 { margin: 2px 0; color: #152440; font-size: 14px; font-weight: 850; text-transform: uppercase; }
body.public-surface .checkout-stage-candidate p { margin: 0; color: #64748b; font-size: 10px; }
body.public-surface .checkout-stage-candidate .eyebrow { font-size: 8px; }
body.public-surface .checkout-stage-candidate .eyebrow::before { display: none; }
body.public-surface .checkout-receipt-list { display: grid; margin: 15px 0; padding: 3px 0; border-top: 1px solid #e2e9f2; }
body.public-surface .checkout-receipt-row { min-height: 40px; display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 8px 2px; border-bottom: 1px solid #edf1f6; }
body.public-surface .checkout-receipt-row span { color: #667893; font-size: 11px; }
body.public-surface .checkout-receipt-row strong { max-width: 62%; overflow-wrap: anywhere; color: #16243b; font-size: 11px; font-weight: 800; text-align: right; }
body.public-surface .checkout-privacy-note { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0; padding: 10px 11px; color: #36547f; background: #eef4ff; border-radius: 8px; font-size: 10px; line-height: 1.45; }
body.public-surface .checkout-privacy-note .icon-svg { width: 16px; height: 16px; flex: 0 0 16px; color: var(--brand-blue); }
body.public-surface .checkout-stage-primary { width: 100%; min-height: 48px; margin-top: 8px; }
body.public-surface .checkout-stage-secondary { width: 100%; min-height: 45px; margin-top: 8px; }
body.public-surface .checkout-cancel-link { width: 100%; min-height: 40px; margin-top: 3px; }
body.public-surface .checkout-wave-card { overflow: hidden; padding: 0; border-color: #bed0eb; }
body.public-surface .checkout-wave-brand { min-height: 78px; display: flex; align-items: center; gap: 10px; padding: 13px 16px; color: #fff; background: linear-gradient(115deg, #0d2b66, #1854c4); }
body.public-surface .checkout-wave-symbol { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 35px; color: #1854c4; background: #fff; border-radius: 50%; }
body.public-surface .checkout-wave-symbol .icon-svg { width: 19px; height: 19px; }
body.public-surface .checkout-wave-brand > div { display: grid; gap: 2px; }
body.public-surface .checkout-wave-brand > div strong { font-size: 17px; line-height: 1; }
body.public-surface .checkout-wave-brand > div small { color: #d8e5ff; font-size: 9px; }
body.public-surface .checkout-wave-badge { margin-left: auto; max-width: 170px; padding: 7px 9px; color: #144587; background: #f1f6ff; border-radius: 6px; font-size: 8px; font-weight: 850; line-height: 1.25; text-align: center; }
body.public-surface .checkout-wave-body { padding: 18px; }
body.public-surface .checkout-wave-body > .eyebrow { font-size: 9px; }
body.public-surface .checkout-wave-amount { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 15px 0 4px; padding: 14px; background: #eef4ff; border-radius: 8px; }
body.public-surface .checkout-wave-amount span { color: #40597d; font-size: 11px; }
body.public-surface .checkout-wave-amount strong { color: #152a4b; font-family: var(--font-display); font-size: 24px; }
body.public-surface .checkout-advanced { margin-top: 15px; padding-top: 12px; border-top: 1px solid #e2e9f2; }
body.public-surface .checkout-advanced > summary { min-height: 38px; display: flex; align-items: center; color: #546783; font-size: 10px; }
body.public-surface .checkout-scenarios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
body.public-surface .checkout-scenarios .button { min-height: 40px; padding: 7px; font-size: 9px; }
body.public-surface .checkout-processing-card { display: grid; justify-items: center; padding: 26px 20px; text-align: center; }
body.public-surface .checkout-processing-card h2 { margin: 12px 0 5px; color: #162643; font-size: 20px; }
body.public-surface .checkout-processing-card > p { max-width: 430px; margin: 0; color: #64748b; font-size: 11px; line-height: 1.5; }
body.public-surface .checkout-processing-spinner { width: 52px; height: 52px; border: 4px solid #dce7f8; border-top-color: var(--brand-blue); border-radius: 50%; animation: checkout-spin .9s linear infinite; }
@keyframes checkout-spin { to { transform: rotate(360deg); } }
body.public-surface .checkout-timeline { width: min(100%, 390px); display: grid; gap: 0; margin: 18px auto; padding: 0; list-style: none; text-align: left; }
body.public-surface .checkout-timeline li { min-height: 40px; display: flex; align-items: center; gap: 9px; color: #8a98ac; border-left: 1px solid #dce5f1; padding: 0 0 0 15px; font-size: 10px; }
body.public-surface .checkout-timeline li:last-child { border-left-color: transparent; }
body.public-surface .checkout-timeline .icon-svg { width: 17px; height: 17px; margin-left: -24px; color: #a0aec0; background: #fff; }
body.public-surface .checkout-timeline li.is-complete { color: #29724d; }
body.public-surface .checkout-timeline li.is-complete .icon-svg { color: #1b8d58; }
body.public-surface .checkout-timeline li.is-current { color: var(--brand-blue-deep); font-weight: 800; }
body.public-surface .checkout-timeline li.is-current .icon-svg { color: var(--brand-blue); }
body.public-surface .checkout-status-mark,
body.public-surface .checkout-success-mark { width: 58px; height: 58px; display: grid; place-items: center; margin: 3px auto 12px; color: #fff; background: #718096; border-radius: 50%; }
body.public-surface .checkout-status-mark .icon-svg,
body.public-surface .checkout-success-mark .icon-svg { width: 30px; height: 30px; }
body.public-surface .checkout-status-mark.is-waiting { color: #1854c4; background: #e7efff; }
body.public-surface .checkout-status-mark.is-error { color: #b42318; background: #fff0ee; }
body.public-surface .checkout-success-mark { width: 66px; height: 66px; margin-bottom: 10px; background: #15965c; box-shadow: 0 7px 20px rgb(21 150 92 / 18%); }
body.public-surface .checkout-receipt-card { text-align: center; }
body.public-surface .checkout-receipt-card > h2 { margin: 0 0 5px; color: #15345f; font-size: 21px; }
body.public-surface .checkout-success-copy { margin: 0 auto 12px; color: #64748b; font-size: 11px; }
body.public-surface .checkout-receipt-brand { display: grid; justify-items: center; gap: 2px; margin: 14px 0 6px; padding: 12px 8px; background: #f7f9fd; border-radius: 8px; }
body.public-surface .checkout-receipt-brand strong { color: var(--brand-blue); font-family: var(--font-display); font-size: 19px; }
body.public-surface .checkout-receipt-brand span { color: #718096; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
body.public-surface .checkout-receipt-card .checkout-receipt-list { text-align: left; }
body.public-surface .checkout-receipt-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
body.public-surface .checkout-receipt-actions .button { min-height: 44px; padding-inline: 10px; font-size: 10px; }
body.public-surface .checkout-receipt-actions .icon-svg { width: 15px; height: 15px; }
body.public-surface .checkout-receipt-navigation { margin-top: 14px; }
body.public-surface .checkout-receipt-navigation .button { width: 100%; }
body.public-surface .checkout-tracking-card { max-width: 590px; margin: 0 auto 15px; }
body.public-surface .checkout-tracking-icon { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 16px; color: #fff; background: var(--brand-blue); border-radius: 50%; }
body.public-surface .checkout-tracking-icon .icon-svg { width: 23px; height: 23px; }
body.public-surface .checkout-tracking-form .field label { color: #213754; font-size: 11px; }
body.public-surface .checkout-tracking-form .input { min-height: 48px; color: #182944; background: #fff; border-color: #cbd8eb; border-radius: 8px; }
body.public-surface .checkout-tracking-form .field-help { color: #667893; font-size: 10px; }
body.public-surface .checkout-tracking-form > .button { margin-top: 13px; }
body.public-surface .checkout-tracking-page > .text-link { display: flex; justify-content: center; margin-top: 14px; }
body.public-surface .checkout-copy-fallback { position: fixed; top: -1000px; left: -1000px; }

/* Payment administration only: preserve the existing admin navigation and permissions. */
.payments-admin-page { margin: -8px 0 0; padding: 18px; color: #1b2b45; background: #f2f6fc; border: 1px solid #dce5f1; border-radius: 13px; }
.payments-admin-page .admin-section-head { margin-bottom: 15px; }
.payments-admin-page .admin-section-head h1 { color: #142440; font-family: var(--font-display); font-weight: 700; font-size: 31px; letter-spacing: -.02em; text-transform: none; }
.payments-admin-page .admin-section-head p { color: #64748b; }
.payments-admin-page .eyebrow { color: #1854c4; font-size: 9px; letter-spacing: .1em; }
.payments-admin-page .notice-blue { color: #24436f; background: #eaf1fd; border-color: #cfddf3; }
.payment-admin-panel { padding: 17px; color: #152540; background: #fff; border-color: #dce5f1; border-radius: 11px; box-shadow: 0 5px 18px rgb(16 35 68 / 5%); }
.payment-admin-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.payment-admin-panel-heading .eyebrow::before { display: none; }
.payment-admin-panel-heading h2 { margin: 5px 0 0; color: #152540; font-size: 17px; }
.payment-admin-filters { display: grid; gap: 10px; margin: 0 0 15px; padding: 13px; background: #f7f9fd; border: 1px solid #e3eaf4; border-radius: 9px; }
.payment-admin-filters .field { margin: 0; }
.payment-admin-filters .field label { color: #425875; font-size: 9px; }
.payment-admin-filters .input, .payment-admin-filters .select { min-height: 40px; color: #1b2b45; background: #fff; border-color: #cbd8e9; border-radius: 7px; font-size: 10px; }
.payment-admin-actions { display: flex; justify-content: flex-end; gap: 8px; }
.payment-admin-actions .button { min-height: 39px; padding-inline: 13px; border-radius: 7px; font-size: 10px; }
.payment-admin-actions .button-ghost { color: #1854c4; background: #fff; border-color: #cbd8eb; }
.payment-admin-actions .button-ghost:hover { color: #0d2b66; background: #edf3fd; }
.payment-admin-table-wrap { overflow: auto; border: 1px solid #dce5f1; border-radius: 8px; }
.payment-admin-table { min-width: 820px; background: #fff; border-collapse: collapse; }
.payment-admin-table th { padding: 10px 9px; color: #5b6d87; background: #f4f7fc; border-bottom: 1px solid #dce5f1; font-size: 8px; letter-spacing: .04em; text-transform: uppercase; }
.payment-admin-table td { padding: 9px; color: #233653; border-top: 1px solid #edf1f6; font-size: 9px; }
.payment-admin-reference { color: #1854c4; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; }
.payment-admin-page .admin-person { color: #1e3150; font-size: 9px; }
.payment-admin-page .admin-person .rank-avatar { width: 27px; height: 31px; border-radius: 5px; }
.payment-admin-page .tag-green { color: #17623f; background: #eaf6ef; border-color: #c6e8d2; }
.payment-admin-page .tag-blue { color: #174aab; background: #edf3ff; border-color: #d0def4; }
.payment-admin-page .tag-yellow { color: #8a5b09; background: #fff6df; border-color: #f1dfac; }
.payment-admin-page .tag-red { color: #9a2824; background: #fff0ee; border-color: #f2cfca; }
.payment-admin-page .admin-note { color: #75849a; }
.payment-admin-mobile-list { display: none; }
.payment-admin-mobile-card { min-width: 0; max-width: 100%; display: grid; gap: 10px; padding: 13px; color: #1c2e4b; background: #fff; border: 1px solid #dce5f1; border-radius: 9px; }
.payment-admin-mobile-heading { min-width: 0; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 8px; }
.payment-admin-mobile-heading > strong { min-width: 0; max-width: 100%; color: #1854c4; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; overflow-wrap: anywhere; }
.payment-admin-mobile-candidate { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.payment-admin-mobile-candidate .rank-avatar { width: 36px; height: 40px; border-radius: 6px; }
.payment-admin-mobile-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.payment-admin-mobile-metrics > div { display: grid; gap: 3px; padding: 8px; background: #f6f8fc; border-radius: 6px; }
.payment-admin-mobile-metrics span { color: #718096; font-size: 8px; }
.payment-admin-mobile-metrics strong { color: #243a5c; font-size: 10px; }
.payment-admin-mobile-transaction { display: flex; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid #e5ebf4; font-size: 9px; }
.payment-admin-mobile-transaction span { color: #718096; }
.payment-admin-mobile-transaction strong { overflow-wrap: anywhere; text-align: right; }
.payment-row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.payment-row-actions .mini-button { min-height: 30px; padding: 5px 8px; white-space: nowrap; }
.payment-detail-content { display: grid; gap: 13px; color: #1c2e4b; }
.payment-detail-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.payment-detail-row { min-width: 0; display: grid; gap: 4px; padding: 9px 10px; background: #f5f8fc; border: 1px solid #e5ebf4; border-radius: 7px; }
.payment-detail-row > span { color: #64748b; font-size: 10px; }
.payment-detail-row > strong { min-width: 0; color: #152540; font-size: 12px; overflow-wrap: anywhere; }
.payment-detail-row > .tag { justify-self: start; }
.payment-detail-section { display: grid; gap: 8px; }
.payment-detail-section > h3 { margin: 0; color: #152540; font-size: 14px; }
.payment-detail-section .empty-state { padding: 13px; }
.payment-detail-anomalies { padding: 10px 12px; color: #8a3029; background: #fff2f0; border: 1px solid #f2d2cd; border-radius: 8px; }
.payment-detail-anomalies p { margin: 0; font-size: 12px; }
.payment-detail-events { margin: 0; padding: 0; display: grid; gap: 6px; list-style: none; }
.payment-detail-events li { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; background: #f7f9fd; border: 1px solid #e5ebf4; border-radius: 7px; }
.payment-detail-events li > div { min-width: 0; display: grid; gap: 3px; }
.payment-detail-events li strong { color: #1c2e4b; font-size: 11px; }
.payment-detail-events li small, .payment-detail-events li time { color: #64748b; font-size: 10px; }
.payment-detail-events li time { flex: 0 0 auto; text-align: right; }
.admin-candidates-mobile { display: none; }
.reorder-actions { align-items: center; }
.reorder-control { width: 32px; min-width: 32px; padding: 0; display: inline-grid; place-items: center; }
.reorder-control .icon-svg { width: 16px; height: 16px; }

@media (max-width: 760px) {
  body.public-surface .checkout-page { width: calc(100% - 28px); padding-block: 29px 42px; }
  body.public-surface .checkout-progress { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  body.public-surface .checkout-progress-step { min-height: 42px; gap: 6px; padding: 6px; font-size: 9px; }
  body.public-surface .checkout-progress-number { width: 23px; height: 23px; flex-basis: 23px; }
  body.public-surface .checkout-entry-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  body.public-surface .checkout-order-card { position: static; }
  body.public-surface .checkout-quantity-choice { min-height: 62px; }
  .payments-admin-page { margin: 0; padding: 13px; }
  .payments-admin-page .admin-section-head h1 { font-size: 27px; }
  .payment-admin-panel { padding: 12px; }
  .payment-admin-filters .field-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .payment-admin-table-wrap { display: none; }
  .payment-admin-mobile-list { display: grid; gap: 8px; }
  .payment-admin-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .payment-admin-actions .button { width: 100%; padding-inline: 7px; }
  .payment-row-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); }
  .payment-row-actions .mini-button { width: 100%; min-height: 38px; }
  .payment-detail-summary { grid-template-columns: minmax(0, 1fr); }
  .payment-detail-events li { align-items: flex-start; flex-direction: column; gap: 5px; }
  .payment-detail-events li time { text-align: left; }
  body.admin-surface .admin-candidates-desktop { display: none; }
  body.admin-surface .admin-candidates-mobile { display: grid; gap: 8px; }
  body.admin-surface .admin-candidate-mobile-card { min-width: 0; padding: 11px; color: #1c2e4b; background: #fff; border: 1px solid #dce5f1; border-radius: 9px; }
  body.admin-surface .admin-candidate-mobile-head { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
  body.admin-surface .admin-candidate-mobile-profile { margin-top: 9px; display: flex; align-items: center; gap: 9px; }
  body.admin-surface .admin-candidate-mobile-profile .rank-avatar { width: 42px; height: 48px; flex: 0 0 auto; }
  body.admin-surface .admin-candidate-mobile-profile > div { min-width: 0; display: grid; gap: 3px; }
  body.admin-surface .admin-candidate-mobile-profile strong { overflow-wrap: anywhere; color: #142440; font-size: 14px; }
  body.admin-surface .admin-candidate-mobile-profile span { color: #64748b; font-size: 11px; }
  body.admin-surface .admin-candidate-mobile-votes { margin-top: 9px; padding-top: 8px; display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid #e5ebf4; }
  body.admin-surface .admin-candidate-mobile-votes span { color: #64748b; font-size: 10px; }
  body.admin-surface .admin-candidate-mobile-votes strong { color: #174f9f; font-size: 12px; }
  body.admin-surface .admin-candidate-mobile-actions { margin-top: 9px; display: grid; grid-template-columns: auto 1fr 1fr; align-items: center; gap: 6px; }
  body.admin-surface .admin-candidate-mobile-actions > .mini-button { width: 100%; }
}

@media (max-width: 430px) {
  body.public-surface .checkout-page { width: calc(100% - 22px); }
  body.public-surface .checkout-page .section-heading { margin-bottom: 14px; }
  body.public-surface .checkout-page .section-heading h2 { font-size: 29px; }
  body.public-surface .checkout-progress-step {
    min-height: 54px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    padding: 5px 3px;
    text-align: center;
    line-height: 1.1;
  }
  body.public-surface .checkout-progress-label { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  body.public-surface .checkout-progress-number { width: 21px; height: 21px; flex-basis: 21px; }
  body.public-surface .checkout-selection-card,
  body.public-surface .checkout-order-card,
  body.public-surface .checkout-stage-card,
  body.public-surface .checkout-tracking-card { padding: 14px; border-radius: 10px; }
  body.public-surface .checkout-wave-card { padding: 0; }
  body.public-surface .checkout-wave-brand { min-height: 69px; padding: 10px; gap: 7px; }
  body.public-surface .checkout-wave-badge { max-width: 122px; padding: 6px; font-size: 7px; }
  body.public-surface .checkout-wave-body { padding: 14px; }
  body.public-surface .checkout-stage-candidate { gap: 8px; padding: 8px; }
  body.public-surface .checkout-stage-avatar { width: 46px; height: 54px; flex-basis: 46px; }
  body.public-surface .checkout-receipt-actions { grid-template-columns: 1fr; }
  body.public-surface .checkout-scenarios { grid-template-columns: 1fr; }
  body.public-surface .checkout-processing-card { padding: 22px 13px; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-surface .checkout-quantity-choice,
  body.public-surface .checkout-processing-spinner { transition: none; animation: none; }
}

/* Administration V2 — surfaces claires, navigation bleu nuit, démo isolée. */
body.admin-surface {
  color-scheme: light;
  --bg: #f2f6fc; --bg-soft: #eaf0f8; --panel: #fff; --panel-2: #f7f9fd;
  --line: #dce5f1; --text: #101318; --muted: #596a82; --dim: #718096;
  --orange: #1854c4; --orange-light: #0d2b66; --blue: #1854c4; --yellow: #1854c4;
  --green: #18794e; --red: #b42318; --focus-ring: #1854c4; --accent-text: #fff;
  --accent-border: #1854c4; --accent-hover: #0d2b66; --accent-shadow: none;
  --surface-control: #fff; --surface-control-hover: #edf3fd; --border-control: #c8d5e7;
  --border-control-hover: #1854c4; --shadow-card: 0 8px 24px rgb(16 35 68 / 7%);
  --font-ui: "Manrope", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --font-display: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
  background: #f2f6fc; color: #101318;
}
body.admin-surface #app { min-height: calc(100vh - 28px); padding-bottom: 0; background: #f2f6fc; }
body.admin-surface :focus-visible { outline: 3px solid #1854c4; outline-offset: 3px; }
body.admin-surface .skip-link { position: fixed; z-index: 110; top: 8px; left: 8px; padding: 10px 14px; color: #fff; background: #0d2b66; border-radius: 7px; transform: translateY(-160%); }
body.admin-surface .skip-link:focus { transform: translateY(0); }
body.admin-surface .demo-ribbon { min-height: 28px; padding: 5px 12px; color: #dbe8ff; background: #0d2b66; border: 0; font-size: 10px; letter-spacing: .02em; text-transform: none; }
body.admin-surface .pulse-dot { background: #8fb6ff; box-shadow: none; }
body.admin-surface .admin-wrap { min-height: calc(100vh - 28px); background: #f2f6fc; }
body.admin-surface .admin-header { position: sticky; z-index: 35; top: 0; min-height: 76px; padding: 9px max(24px, calc((100% - 1440px) / 2)); background: #fff; border-bottom: 1px solid #dce5f1; box-shadow: 0 3px 14px rgb(16 35 68 / 5%); }
body.admin-surface .admin-brand { width: 165px; height: 54px; flex: 0 0 auto; overflow: hidden; }
body.admin-surface .admin-brand img { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
body.admin-surface .admin-header-actions { display: flex; align-items: center; gap: 10px; }
body.admin-surface .admin-public-link, body.admin-surface .admin-icon-button { min-height: 40px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; color: #1d3558; background: #fff; border: 1px solid #c8d5e7; border-radius: 8px; font-size: 11px; font-weight: 750; cursor: pointer; }
body.admin-surface .admin-public-link:hover, body.admin-surface .admin-icon-button:hover { color: #1854c4; background: #f4f7fc; border-color: #9fb7d9; }
body.admin-surface .admin-public-link .icon-svg, body.admin-surface .admin-icon-button .icon-svg { width: 17px; height: 17px; }
body.admin-surface .admin-notification-wrap { position: relative; }
body.admin-surface .admin-notification-count { min-width: 18px; height: 18px; padding: 0 4px; display: inline-grid; place-items: center; color: #fff; background: #b42318; border-radius: 99px; font-size: 9px; line-height: 1; }
body.admin-surface .admin-notification-count[hidden], body.admin-surface .admin-notification-panel[hidden] { display: none; }
body.admin-surface .admin-notification-panel { position: absolute; top: calc(100% + 9px); right: 0; z-index: 60; width: min(360px, calc(100vw - 24px)); padding: 14px; background: #fff; border: 1px solid #dce5f1; border-radius: 11px; box-shadow: 0 16px 38px rgb(16 35 68 / 18%); }
body.admin-surface .admin-notification-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; color: #101318; font-size: 13px; }
body.admin-surface .admin-notification-close { min-height: 34px; padding: 0 9px; color: #34445c; background: #f6f8fc; border: 1px solid #dce5f1; border-radius: 7px; font: inherit; font-size: 10px; cursor: pointer; }
body.admin-surface .admin-notification-list { display: grid; gap: 8px; }
body.admin-surface .admin-notification-item { padding: 11px; display: grid; gap: 5px; color: #1c2e4b; background: #f7f9fd; border: 1px solid #dce5f1; border-left: 3px solid #1854c4; border-radius: 8px; font-size: 11px; }
body.admin-surface .admin-notification-item.red { border-left-color: #b42318; }
body.admin-surface .admin-notification-item span { color: #596a82; line-height: 1.45; }
body.admin-surface .admin-notification-link { display: flex; align-items: center; gap: 5px; color: #1854c4 !important; font-size: 10px; font-weight: 750; }
body.admin-surface .admin-notification-link .icon-svg { width: 13px; height: 13px; }
body.admin-surface .admin-notification-empty, body.admin-surface .admin-notification-loading, body.admin-surface .admin-notification-error { margin: 0; padding: 14px 8px; color: #596a82; font-size: 11px; line-height: 1.5; }
body.admin-surface .admin-notification-empty { display: grid; justify-items: center; gap: 6px; text-align: center; }
body.admin-surface .admin-notification-empty .icon-svg { color: #18794e; }
body.admin-surface .admin-notification-empty strong { color: #1c2e4b; }
body.admin-surface .admin-notification-error { color: #b42318; }
body.admin-surface .admin-who { gap: 8px; }
body.admin-surface .admin-who .rank-avatar { width: 36px; height: 36px; color: #fff; background: #1854c4; border: 0; }
body.admin-surface .admin-who strong { color: #101318; font-size: 11px; }
body.admin-surface .admin-who small { color: #718096; font-size: 9px; }
body.admin-surface .admin-layout { width: min(1440px, calc(100% - 48px)); padding: 24px 0 42px; grid-template-columns: 228px minmax(0, 1fr); gap: 24px; }
body.admin-surface .admin-sidebar { top: 92px; padding: 10px; background: #0d2b66; border: 0; border-radius: 12px; box-shadow: 0 8px 22px rgb(13 43 102 / 12%); }
body.admin-surface .admin-nav { gap: 4px; }
body.admin-surface .admin-nav a { min-height: 43px; padding: 0 11px; color: #d6e4fb; border-radius: 8px; font-size: 11px; }
body.admin-surface .admin-nav a .icon-svg { color: #afc9f3; }
body.admin-surface .wave-manual-admin-page { display: grid; gap: 13px; }
body.admin-surface .wave-review-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 9px; }
body.admin-surface .wave-review-metric { display: grid; gap: 7px; min-width: 0; padding: 13px; color: #dbe8fa; background: #151e2c; border: 1px solid #29384c; border-radius: 10px; }
body.admin-surface .wave-review-metric span { color: #9fb1c9; font-size: 10px; font-weight: 700; }
body.admin-surface .wave-review-metric strong { color: #fff; font-size: 20px; overflow-wrap: anywhere; }
body.admin-surface .wave-review-panel { min-width: 0; }
body.admin-surface .wave-review-filters { display: grid; gap: 9px; margin-bottom: 15px; }
body.admin-surface .wave-review-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 9px; }
body.admin-surface .wave-review-card { display: grid; gap: 10px; min-width: 0; padding: 13px; color: #e6eef9; background: #111923; border: 1px solid #29384c; border-radius: 10px; }
body.admin-surface .wave-review-card-heading, body.admin-surface .wave-review-card-person { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
body.admin-surface .wave-review-card-heading strong { overflow-wrap: anywhere; color: #fff; font-size: 11px; }
body.admin-surface .wave-review-card-person strong { color: #dce9fb; font-size: 12px; }
body.admin-surface .wave-review-card-person span, body.admin-surface .wave-review-card p { color: #9fb1c9; font-size: 10px; }
body.admin-surface .wave-review-card p { margin: 0; }
body.admin-surface .wave-review-detail { display: grid; gap: 11px; max-height: min(70vh, 720px); overflow: auto; }
body.admin-surface .wave-review-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; margin: 0; }
body.admin-surface .wave-review-summary > div { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; min-width: 0; padding: 9px 0; border-bottom: 1px solid #2b3542; }
body.admin-surface .wave-review-summary dt { color: #a8b5c7; font-size: 10px; }
body.admin-surface .wave-review-summary dd { margin: 0; color: #fff; font-size: 10px; font-weight: 750; text-align: right; overflow-wrap: anywhere; }
body.admin-surface .wave-review-events { display: grid; gap: 7px; padding-left: 20px; color: #c9d7e9; }
body.admin-surface .wave-review-events li div { display: grid; gap: 3px; }
body.admin-surface .wave-review-events small { color: #92a6c0; }
body.admin-surface .wave-review-history h3 { margin-bottom: 8px; font-size: 13px; }
body.admin-surface .wave-proof-receipt-form, body.admin-surface .wave-resolution-form { display: grid; gap: 10px; }
body.admin-surface .wave-proof-receipt-form p { color: #adbacb; font-size: 12px; line-height: 1.5; }
body.admin-surface .wave-proof-choice, body.admin-surface .wave-confirm-check { display: flex; align-items: flex-start; gap: 9px; color: #dce7f6; font-size: 12px; line-height: 1.45; }
body.admin-surface .wave-proof-choice input, body.admin-surface .wave-confirm-check input { margin-top: 2px; accent-color: #2e63ff; }
@media (max-width: 760px) {
  body.admin-surface .wave-review-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.admin-surface .wave-review-list { grid-template-columns: minmax(0, 1fr); }
  body.admin-surface .wave-review-summary { grid-template-columns: minmax(0, 1fr); }
}
body.admin-surface .admin-nav a:hover { color: #fff; background: rgb(255 255 255 / 10%); }
body.admin-surface .admin-nav a.active { color: #fff; background: #1854c4; box-shadow: inset 3px 0 #9dc0ff; }
body.admin-surface .admin-nav a.active .icon-svg { color: #fff; }
body.admin-surface .admin-nav a:focus-visible, body.admin-surface .button:focus-visible, body.admin-surface .mini-button:focus-visible, body.admin-surface .admin-icon-button:focus-visible, body.admin-surface .admin-public-link:focus-visible { outline-color: #1854c4; }
body.admin-surface .admin-section-head { margin-bottom: 18px; }
body.admin-surface .admin-section-head .eyebrow { color: #1854c4; font-size: 10px; }
body.admin-surface .admin-section-head h1 { color: #101318; font-family: var(--font-display); font-size: clamp(30px, 3.5vw, 40px); letter-spacing: -.02em; }
body.admin-surface .admin-section-head p { color: #596a82; }
body.admin-surface .admin-cards { gap: 12px; }
body.admin-surface .metric-card, body.admin-surface .admin-panel, body.admin-surface .form-panel, body.admin-surface .login-card { color: #101318; background: #fff; border: 1px solid #dce5f1; border-radius: 11px; box-shadow: 0 5px 18px rgb(16 35 68 / 5%); }
body.admin-surface .metric-label { color: #596a82; }
body.admin-surface .metric-icon { color: #1854c4; background: #edf3fd; border-color: #d5e3f7; }
body.admin-surface .metric-card strong { color: #101318; }
body.admin-surface .metric-card strong.accent { color: #1854c4; }
body.admin-surface .metric-card small { color: #718096; }
body.admin-surface .admin-panel-head h2, body.admin-surface .form-panel h2 { color: #101318; }
body.admin-surface .admin-table-wrap { border-color: #dce5f1; }
body.admin-surface .admin-table th { color: #52637b; background: #f1f5fb; }
body.admin-surface .admin-table td { color: #243a5c; border-color: #e7edf5; }
body.admin-surface .admin-list-row, body.admin-surface .admin-score-card { color: #1c2e4b; background: #f8faff; border-color: #dce5f1; }
body.admin-surface .admin-list-row p, body.admin-surface .admin-score-card p, body.admin-surface .admin-note { color: #596a82; }
body.admin-surface .mini-button { color: #1d3558; background: #fff; border-color: #c8d5e7; }
body.admin-surface .mini-button:hover { color: #1854c4; border-color: #1854c4; }
body.admin-surface .field label { color: #263b59; }
body.admin-surface .input, body.admin-surface .textarea, body.admin-surface .select { color: #101318; background: #fff; border-color: #c8d5e7; }
body.admin-surface .input:focus, body.admin-surface .textarea:focus, body.admin-surface .select:focus { border-color: #1854c4; box-shadow: 0 0 0 3px rgb(24 84 196 / 14%); }
body.admin-surface .button-accent, body.admin-surface .button-blue { color: #fff; background: #1854c4; border-color: #1854c4; box-shadow: none; }
body.admin-surface .button-accent:hover, body.admin-surface .button-blue:hover { color: #fff; background: #0d2b66; border-color: #0d2b66; }
body.admin-surface .button-ghost, body.admin-surface .button-orange { color: #1d3558; background: #fff; border-color: #c8d5e7; box-shadow: none; }
body.admin-surface .button-ghost:hover, body.admin-surface .button-orange:hover { color: #1854c4; background: #edf3fd; border-color: #9fb7d9; }
body.admin-surface .button-link { color: #1854c4; }
body.admin-surface .tag-blue { color: #174f9f; background: #eaf2ff; border-color: #c9dcfa; }
body.admin-surface .tag-orange, body.admin-surface .tag-yellow { color: #805500; background: #fff6dc; border-color: #f2d895; }
body.admin-surface .notice-blue { color: #174477; background: #edf4ff; border-color: #cbdcf5; }
body.admin-surface .admin-panel, body.admin-surface .admin-table-wrap { min-width: 0; max-width: 100%; }
body.admin-surface .dashboard-rank-row { padding: 8px 10px; display: grid; grid-template-columns: 24px 34px minmax(0, 1fr) auto; align-items: center; gap: 9px; }
body.admin-surface .dashboard-rank-row .rank-avatar { width: 34px; height: 38px; border-radius: 6px; }
body.admin-surface .dashboard-rank-name { min-width: 0; overflow: hidden; color: #1c2e4b; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
body.admin-surface .dashboard-rank-votes { color: #174f9f; font-size: 11px; white-space: nowrap; }
body.admin-surface .admin-results-mobile { display: none; }
body.admin-surface .admin-result-mobile-card { padding: 12px; color: #1c2e4b; background: #f8faff; border: 1px solid #dce5f1; border-radius: 10px; }
body.admin-surface .admin-result-mobile-head, body.admin-surface .admin-result-mobile-total { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
body.admin-surface .admin-result-mobile-head > strong { min-width: 0; overflow-wrap: anywhere; text-align: right; }
body.admin-surface .admin-result-mobile-grid { margin-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
body.admin-surface .admin-result-mobile-grid > div { min-width: 0; padding: 8px; display: grid; gap: 4px; background: #fff; border: 1px solid #e7edf5; border-radius: 7px; }
body.admin-surface .admin-result-mobile-grid span, body.admin-surface .admin-result-mobile-total span { color: #596a82; font-size: 10px; }
body.admin-surface .admin-result-mobile-grid strong, body.admin-surface .admin-result-mobile-total strong { color: #142c50; font-size: 12px; font-variant-numeric: tabular-nums; }
body.admin-surface .admin-result-mobile-total { margin-top: 9px; padding-top: 9px; border-top: 1px solid #dce5f1; }
body.admin-surface .empty-state { color: #596a82; border-color: #b9c9df; }
body.admin-surface .empty-state strong { color: #1c2e4b; }
body.admin-surface .login-shell { color: #101318; }
body.admin-surface .login-copy h1, body.admin-surface .login-card h2 { color: #101318; font-family: var(--font-display); }
body.admin-surface .login-copy p, body.admin-surface .login-card > p { color: #596a82; }
body.admin-surface .secret-tip { color: #52637b; background: #f2f6fc; }
body.admin-surface .modal { color: #101318; background: #fff; border-color: #dce5f1; box-shadow: 0 25px 90px rgb(16 35 68 / 25%); }
body.admin-surface .modal .wave-review-summary > div { border-bottom-color: #dce5f1; }
body.admin-surface .modal .wave-review-summary dt { color: #596a82; }
body.admin-surface .modal .wave-review-summary dd { color: #101318; }
body.admin-surface .modal .wave-review-events { color: #243a5c; }
body.admin-surface .modal .wave-review-events small { color: #596a82; }
body.admin-surface .modal .wave-proof-receipt-form p { color: #44566f; }
body.admin-surface .modal .wave-proof-choice, body.admin-surface .modal .wave-confirm-check { color: #1c2e4b; }
body.admin-surface .modal-head h2 { color: #101318; }
body.admin-surface .modal-close { color: #243a5c; background: #f5f8fc; border-color: #dce5f1; }
body.admin-surface .code-output code { color: #0d2b66; background: #edf3fd; border-color: #dce5f1; }
body.admin-surface .admin-mobile-navigation { display: none; }
body.admin-surface .admin-sidebar { max-height: calc(100vh - 118px); overflow: auto; }
body .admin-editorial-preview-bar { position: sticky; top: 0; z-index: 80; min-height: 52px; padding: 8px max(16px, calc((100vw - 1440px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #fff; background: #0d2b66; box-shadow: 0 5px 18px rgb(8 24 55 / 22%); font-size: 12px; font-weight: 750; }
body.admin-surface .cms-page-tabs { margin: 0 0 12px; padding: 5px; display: flex; gap: 5px; overflow-x: auto; background: #eaf0fa; border: 1px solid #d4e0f1; border-radius: 10px; }
body.admin-surface .cms-page-tabs a { min-height: 40px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; color: #344760; border-radius: 7px; font-size: 11px; font-weight: 750; }
body.admin-surface .cms-page-tabs a:hover, body.admin-surface .cms-page-tabs a.is-selected { color: #fff; background: #1854c4; }
body.admin-surface .cms-version-status { margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 7px; }
body.admin-surface .cms-editor-form { display: grid; gap: 12px; }
body.admin-surface .cms-editor-panel { display: grid; gap: 12px; }
body.admin-surface .cms-editor-panel .admin-panel-head { margin: 0; }
body.admin-surface .cms-subtitle { margin: 4px 0 0; color: #253b5c; font-size: 13px; }
body.admin-surface .cms-image-grid { grid-template-columns: minmax(0, 1fr) minmax(160px, 250px); align-items: end; }
body.admin-surface .cms-hero-preview-image { width: 100%; max-height: 160px; object-fit: cover; background: #0d2b66; border: 1px solid #dce5f1; border-radius: 9px; }
body.admin-surface .cms-order-list { display: grid; gap: 6px; }
body.admin-surface .cms-order-row { min-height: 44px; padding: 5px 7px 5px 11px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 6px; color: #1c2e4b; background: #f7f9fd; border: 1px solid #dce5f1; border-radius: 8px; font-size: 11px; font-weight: 700; }
body.admin-surface .cms-order-row > span { display: flex; align-items: center; gap: 10px; }
body.admin-surface .cms-order-row > span strong { color: #1854c4; font-variant-numeric: tabular-nums; }
body.admin-surface .cms-visibility-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
body.admin-surface .cms-editor-actions { padding-top: 6px; display: flex; flex-wrap: wrap; gap: 8px; }
body.admin-surface .cms-history { margin-top: 14px; }
body.admin-surface .media-upload-form { display: grid; gap: 10px; }
body.admin-surface .media-asset-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
body.admin-surface .media-asset-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #dce5f1; border-radius: 10px; }
body.admin-surface .media-asset-card > img { width: 100%; height: 160px; display: block; object-fit: cover; background: #edf3fd; }
body.admin-surface .media-asset-body { padding: 10px; display: grid; gap: 8px; }
body.admin-surface .media-asset-title { display: flex; align-items: start; justify-content: space-between; gap: 7px; color: #1c2e4b; font-size: 11px; }
body.admin-surface .media-asset-title strong { overflow-wrap: anywhere; }
body.admin-surface .media-asset-body small, body.admin-surface .media-asset-body p { margin: 0; color: #64748b; font-size: 10px; line-height: 1.45; }
body.admin-surface .media-asset-body .media-alt-missing { color: #8b5e00; }
body.admin-surface .media-asset-actions { display: flex; flex-wrap: wrap; gap: 6px; }
body.admin-surface .media-upload-panel > form { margin-bottom: 10px; }
body.admin-surface .cms-editor-form .textarea { min-height: 104px; }
body.admin-surface .admin-person small { display: block; color: #64748b; font-size: 10px; }

@media (max-width: 980px) {
  body.admin-surface .admin-layout { width: min(calc(100% - 32px), 900px); grid-template-columns: 190px minmax(0, 1fr); gap: 16px; }
  body.admin-surface .admin-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body.admin-surface #app { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  body.admin-surface .admin-header { min-height: 64px; padding: 6px 12px; gap: 8px; }
  body.admin-surface .admin-brand { width: 126px; height: 45px; }
  body.admin-surface .admin-header-actions { gap: 5px; }
  body.admin-surface .admin-public-link, body.admin-surface .admin-icon-button { min-width: 40px; min-height: 40px; padding: 0 9px; }
  body.admin-surface .admin-public-link span, body.admin-surface .admin-icon-button > span:not(.admin-notification-count) { display: none; }
  body.admin-surface .admin-who { gap: 5px; }
  body.admin-surface .admin-who > div:not(.rank-avatar) { display: none; }
  body.admin-surface .admin-who .rank-avatar { width: 30px; height: 30px; }
  body.admin-surface .admin-who .button { min-height: 38px; padding-inline: 9px; font-size: 9px; }
  body.admin-surface .admin-layout { width: calc(100% - 24px); padding: 17px 0 22px; display: block; }
  body.admin-surface .admin-sidebar { display: none; }
  body.admin-surface .admin-section-head { gap: 8px; }
  body.admin-surface .admin-section-head h1 { font-size: 32px; }
  body.admin-surface .admin-section-head > .button { width: 100%; }
  body.admin-surface .admin-cards { gap: 8px; }
  body.admin-surface .metric-card { min-height: 88px; padding: 11px; }
  body.admin-surface .metric-card strong { font-size: clamp(20px, 6vw, 28px); }
  body.admin-surface .metric-label { font-size: 8px; }
  body.admin-surface .admin-grid-2 { grid-template-columns: 1fr; gap: 10px; }
  body.admin-surface .admin-panel { padding: 13px; }
  body.admin-surface .dashboard-rank-row { grid-template-columns: 22px 32px minmax(0, 1fr) auto; gap: 7px; }
  body.admin-surface .dashboard-rank-row .rank-avatar { width: 32px; height: 36px; }
  body.admin-surface .dashboard-rank-votes { font-size: 10px; }
  body.admin-surface .admin-results-desktop { display: none; }
  body.admin-surface .admin-results-mobile { display: grid; gap: 8px; }
  body.admin-surface .admin-list-row { align-items: start; flex-direction: row; }
  body.admin-surface .admin-mobile-navigation { display: block; }
  body.admin-surface .admin-mobile-bar { position: fixed; z-index: 50; right: 10px; bottom: max(8px, env(safe-area-inset-bottom)); left: 10px; min-height: 62px; padding: 5px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; background: #0d2b66; border: 1px solid rgb(255 255 255 / 15%); border-radius: 13px; box-shadow: 0 8px 28px rgb(8 24 55 / 24%); }
  body.admin-surface .admin-mobile-bar > a, body.admin-surface .admin-mobile-menu-button { min-width: 0; min-height: 50px; padding: 4px 2px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 3px; color: #d6e4fb; background: transparent; border: 0; border-radius: 9px; font: inherit; font-size: 9px; font-weight: 720; cursor: pointer; }
  body.admin-surface .admin-mobile-bar > a .icon-svg, body.admin-surface .admin-mobile-menu-button .icon-svg { width: 18px; height: 18px; }
  body.admin-surface .admin-mobile-bar > a.active, body.admin-surface .admin-mobile-bar > a:hover, body.admin-surface .admin-mobile-menu-button:hover, body.admin-surface .admin-mobile-menu-button[aria-expanded="true"] { color: #fff; background: #1854c4; }
  body.admin-surface .admin-mobile-menu { position: fixed; z-index: 49; right: 10px; bottom: calc(76px + env(safe-area-inset-bottom)); left: 10px; max-height: min(66vh, 540px); overflow-y: auto; padding: 9px; background: #0d2b66; border: 1px solid rgb(255 255 255 / 15%); border-radius: 13px; box-shadow: 0 12px 32px rgb(8 24 55 / 30%); }
  body.admin-surface .admin-mobile-menu[hidden] { display: none; }
  body.admin-surface .admin-mobile-menu .admin-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  body.admin-surface .admin-mobile-menu .admin-nav a { min-height: 48px; font-size: 10px; }
  body.admin-surface .admin-mobile-menu .admin-nav a .icon-svg { width: 18px; height: 18px; }
  body.admin-surface .cms-editor-actions { display: grid; grid-template-columns: 1fr; }
  body.admin-surface .cms-editor-actions > *, body.admin-surface .cms-editor-actions .button { width: 100%; }
  body.admin-surface .cms-image-grid { grid-template-columns: 1fr; }
  body.admin-surface .cms-hero-preview-image { max-height: 180px; }
  body.admin-surface .media-asset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  body.admin-surface .media-asset-card > img { height: 132px; }
  body.admin-surface .media-asset-title { flex-direction: column; }
  body.admin-surface .cms-history .admin-table { min-width: 700px; }
  body .admin-editorial-preview-bar { min-height: 50px; padding: 7px 10px; font-size: 10px; }
  body.admin-surface .admin-notification-panel { position: fixed; top: calc(100px + env(safe-area-inset-top)); right: 10px; max-height: min(65vh, 480px); overflow-y: auto; }
  body.admin-surface .toast { bottom: calc(82px + env(safe-area-inset-bottom)); color: #fff; background: #0d2b66; box-shadow: 0 8px 24px rgb(16 35 68 / 24%); }
  body.admin-surface .form-panel, body.admin-surface .login-card { padding: 15px; }
  body.admin-surface .login-shell { width: calc(100% - 28px); min-height: 0; padding: 24px 0; display: grid; grid-template-columns: 1fr; gap: 18px; }
  body.admin-surface .login-copy h1 { font-size: 43px; }
}

@media (max-width: 380px) {
  body.admin-surface .media-asset-grid { grid-template-columns: 1fr; }
  body.admin-surface .cms-visibility-grid { grid-template-columns: 1fr; }
}
@media (max-width: 359px) {
  body.admin-surface .admin-header { padding-inline: 9px; }
  body.admin-surface .admin-brand { width: 82px; }
  body.admin-surface .admin-header-actions { gap: 3px; }
  body.admin-surface .admin-who .button { padding-inline: 7px; font-size: 8px; }
  body.admin-surface .admin-mobile-bar { right: 6px; left: 6px; }
  body.admin-surface .admin-mobile-bar > a, body.admin-surface .admin-mobile-menu-button { font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  body.admin-surface *, body.admin-surface *::before, body.admin-surface *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* CMS collections: retained visual system, with responsive authoring and public views. */
body.public-surface .collection-page { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: clamp(30px, 5vw, 68px) 0; color: #101318; }
body.public-surface .collection-page-head { max-width: 820px; margin: 0 0 24px; }
body.public-surface .collection-page-head .eyebrow { color: #1854c4; }
body.public-surface .collection-page-head h1 { margin: 8px 0 9px; color: #101318; font: 800 clamp(34px, 5vw, 58px)/.98 var(--font-display); letter-spacing: -.02em; }
body.public-surface .collection-page-head p { margin: 0; color: #52637b; font-size: 15px; line-height: 1.65; }
body.public-surface .collection-card { min-width: 0; padding: clamp(17px, 2.4vw, 26px); color: #17243a; background: #fff; border: 1px solid #dce5f1; border-radius: 13px; box-shadow: 0 8px 25px rgb(13 43 102 / 5%); }
body.public-surface .collection-card h2 { margin: 0 0 10px; color: #101318; font: 760 clamp(20px, 2.6vw, 28px)/1.15 var(--font-display); }
body.public-surface .collection-card p { margin: 0 0 10px; color: #43536b; font-size: 14px; line-height: 1.7; white-space: pre-line; }
body.public-surface .collection-card p:last-child { margin-bottom: 0; }
body.public-surface .collection-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
body.public-surface .collection-about-hero { margin: 0 0 16px; overflow: hidden; background: #eaf1fb; border-radius: 14px; }
body.public-surface .collection-about-image { width: 100%; max-height: 430px; object-fit: cover; object-position: center 35%; }
body.public-surface .collection-about-grid { align-items: stretch; }
body.public-surface .collection-about-intro { grid-column: 1 / -1; background: linear-gradient(115deg, #fff, #f2f6fc); }
body.public-surface .collection-objectives { margin: 0; padding: 0; display: grid; gap: 11px; list-style: none; }
body.public-surface .collection-objectives li { display: flex; align-items: start; gap: 9px; color: #344760; font-size: 14px; line-height: 1.55; }
body.public-surface .collection-objectives .icon-svg { flex: 0 0 18px; color: #1854c4; }
body.public-surface .collection-organizer { background: #f2f6fc; }
body.public-surface .collection-caption, body.public-surface .collection-inline-link { color: #1854c4; font-size: 12px; font-weight: 750; }
body.public-surface .collection-regulation { margin-top: 15px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
body.public-surface .collection-regulation > div { flex: 0 0 250px; }
body.public-surface .collection-regulation p { flex: 1; max-height: 120px; overflow: auto; }
body.public-surface .collection-page-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; }
body.public-surface .collection-date-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
body.public-surface .collection-date-card { min-width: 0; padding: 16px; display: grid; align-content: start; gap: 8px; background: #f5f8fd; border: 1px solid #dce5f1; border-radius: 10px; }
body.public-surface .collection-date-card strong { color: #17243a; font-size: 12px; line-height: 1.4; text-transform: capitalize; }
body.public-surface .collection-date-card > span:last-of-type { color: #5a6b82; font-size: 11px; line-height: 1.5; }
body.public-surface .collection-date-number { color: #1854c4; font: 800 24px/1 var(--font-display); }
body.public-surface .practical-facts { margin-bottom: 15px; }
body.public-surface .collection-fact-icon { width: 36px; height: 36px; margin-bottom: 9px; display: grid; place-items: center; color: #1854c4; background: #edf4ff; border-radius: 9px; }
body.public-surface .collection-schedule-list { display: grid; gap: 5px; }
body.public-surface .collection-schedule-list > div { padding: 9px 0; display: grid; grid-template-columns: minmax(120px, .6fr) minmax(0, 2fr); gap: 14px; border-bottom: 1px solid #e6edf6; }
body.public-surface .collection-schedule-list time { color: #1854c4; font-size: 13px; font-weight: 800; }
body.public-surface .collection-schedule-list span { color: #344760; font-size: 13px; }
body.public-surface .collection-faq-list { display: grid; gap: 8px; }
body.public-surface .collection-faq-list details { padding: 12px 14px; color: #263a57; background: #f5f8fd; border: 1px solid #dce5f1; border-radius: 8px; }
body.public-surface .collection-faq-list summary { cursor: pointer; font-size: 13px; font-weight: 760; }
body.public-surface .collection-faq-list p { margin-top: 10px; font-size: 13px; }
body.public-surface .collection-doc-list { display: grid; gap: 8px; }
body.public-surface .collection-doc-list article { padding: 10px 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; border-bottom: 1px solid #e6edf6; }
body.public-surface .collection-doc-list .collection-fact-icon { margin: 0; }
body.public-surface .collection-doc-list strong { color: #17243a; font-size: 13px; }
body.public-surface .collection-doc-list p { margin-top: 3px; font-size: 11px; }
body.public-surface .collection-partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
body.public-surface .collection-partner-card { display: flex; align-items: flex-start; flex-direction: column; gap: 9px; }
body.public-surface .collection-partner-card > img { align-self: center; width: min(100%, 240px); height: 80px; padding: 0; object-fit: contain; object-position: center; background: transparent; border-radius: 0; }
@media (max-width: 600px) {
  body.public-surface .home-activity-grid { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .home-promo-card { min-height: 166px; grid-template-columns: 86px minmax(0, 1fr); gap: 13px; padding: 11px; }
  body.public-surface .home-promo-thumb { min-height: 142px; }
  body.public-surface .home-promo-copy { gap: 6px; }
  body.public-surface .home-promo-kicker { font-size: 9px; }
  body.public-surface .home-promo-title { font-size: 22px; }
  body.public-surface .home-promo-summary { font-size: 11px; }
  body.public-surface .home-promo-cta { font-size: 10px; }
  body.public-surface .promo-modal-layout { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  body.public-surface .promo-modal-poster { width: min(100%, 190px); max-height: 225px; justify-self: center; }
  body.public-surface .home-activity-grid--opportunities { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .modal-footer .button { width: 100%; }
  body.public-surface .collection-partner-card > img { width: min(100%, 210px); height: 70px; }
}
body.public-surface .collection-partner-mark { width: 56px; height: 56px; display: grid; place-items: center; color: #fff; background: #1854c4; border-radius: 12px; font: 800 28px/1 var(--font-display); }
body.public-surface .collection-partner-card h2 { margin: 0; }
body.public-surface .collection-partner-card p { margin: 0; font-size: 12px; }
body.public-surface .collection-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 14px; }
body.public-surface .collection-gallery-card { padding: 0; overflow: hidden; }
body.public-surface .collection-gallery-media { min-height: 170px; aspect-ratio: 16 / 10; display: grid; place-items: center; background: #0d2b66; }
body.public-surface .collection-gallery-media > img, body.public-surface .collection-gallery-media > video { width: 100%; height: 100%; max-height: 300px; display: block; object-fit: cover; }
body.public-surface .collection-external-video { width: 100%; height: 100%; min-height: 170px; display: grid; place-content: center; justify-items: center; gap: 8px; color: #fff; background: radial-gradient(circle at center, #1854c4, #0d2b66 70%); font-size: 13px; font-weight: 750; }
body.public-surface .collection-external-video .icon-svg { width: 32px; height: 32px; }
body.public-surface .collection-gallery-copy { padding: 16px; }
body.public-surface .collection-gallery-copy .eyebrow { font-size: 9px; }
body.public-surface .collection-gallery-copy h2 { margin: 7px 0; font-size: 20px; }
body.public-surface .collection-gallery-copy p { font-size: 12px; }
body.public-surface .collection-page .empty-state { color: #52637b; background: #fff; border-color: #dce5f1; }
body.public-surface .collection-page-actions .ui-button--primary { color: #fff; background: #1854c4; border-color: #1854c4; box-shadow: 0 4px 12px rgb(24 84 196 / 20%); }
body.public-surface .collection-page-actions .ui-button--primary:hover { color: #fff; background: #0d2b66; border-color: #0d2b66; }
body.public-surface .collection-page-actions .ui-button--secondary { color: #17417f; background: #fff; border-color: #b9c9df; }
body.public-surface .collection-page-actions .ui-button--secondary:hover { color: #0d2b66; background: #edf4ff; border-color: #1854c4; }
body.public-surface .footer-main [hidden] { display: none !important; }
body.public-surface .footer-main { grid-template-columns: 1.45fr repeat(4, minmax(0, 1fr)); }

body.admin-surface .cms-collection-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr); align-items: start; gap: 14px; }
body.admin-surface .cms-collection-editor { min-width: 0; padding: 16px; background: #fff; border: 1px solid #dce5f1; border-radius: 12px; box-shadow: 0 6px 22px rgb(13 43 102 / 5%); }
body.admin-surface .cms-collection-check { min-height: 40px; gap: 9px; color: #344760; font-size: 11px; }
body.admin-surface .cms-collection-order-row { grid-template-columns: minmax(120px, 1fr) auto auto auto; }
body.admin-surface .cms-collection-items { display: grid; gap: 9px; }
body.admin-surface .cms-collection-entry { min-width: 0; padding: 12px; display: grid; gap: 9px; color: #1c2e4b; background: #f8faff; border: 1px solid #dce5f1; border-radius: 10px; }
body.admin-surface .cms-collection-entry-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
body.admin-surface .cms-collection-entry-head strong { min-width: 0; overflow-wrap: anywhere; font-size: 12px; }
body.admin-surface .cms-collection-entry-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
body.admin-surface .cms-collection-entry-grid > .field { min-width: 0; }
body.admin-surface .cms-collection-entry-flags { display: flex; flex-wrap: wrap; gap: 4px 12px; }
body.admin-surface .cms-collection-conditional { display: contents; }
body.admin-surface .cms-collection-entry [hidden] { display: none !important; }
body.admin-surface .cms-collection-list > .admin-panel-head { margin-bottom: 10px; }
body.admin-surface .cms-collection-list > .button { margin-top: 10px; }
body.admin-surface .cms-collection-list .empty-state { margin: 0; }
body.admin-surface .cms-faq-entry .cms-collection-entry-head { margin-bottom: 2px; }
body.admin-surface .cms-collection-layout .cms-history { margin: 0; }
body.admin-surface .media-asset-card > video, body.admin-surface .media-asset-card > a.media-pdf-preview { width: 100%; height: 160px; display: grid; place-items: center; object-fit: cover; color: #1854c4; background: #edf3fd; }
body.admin-surface .media-pdf-preview { align-content: center; gap: 7px; }
body.admin-surface .media-pdf-preview .icon-svg { width: 36px; height: 36px; }

@media (max-width: 980px) {
  body.admin-surface .cms-collection-layout { grid-template-columns: minmax(0, 1fr); }
  body.admin-surface .cms-collection-layout .cms-history { min-width: 0; }
  body.public-surface .footer-main { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.public-surface .footer-main > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  body.public-surface .collection-page { width: min(100% - 30px, 560px); padding: 30px 0 42px; }
  body.public-surface .collection-page-head { margin-bottom: 17px; }
  body.public-surface .collection-page-head h1 { font-size: clamp(32px, 9vw, 44px); }
  body.public-surface .collection-page-head p { font-size: 13px; }
  body.public-surface .collection-card-grid, body.public-surface .collection-partner-grid, body.public-surface .collection-gallery-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  body.public-surface .collection-about-intro { grid-column: auto; }
  body.public-surface .collection-regulation { align-items: stretch; flex-direction: column; gap: 10px; }
  body.public-surface .collection-regulation > div { flex: auto; }
  body.public-surface .collection-regulation p { max-height: none; }
  body.public-surface .collection-date-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-surface .collection-schedule-list > div { grid-template-columns: 76px minmax(0, 1fr); gap: 8px; }
  body.public-surface .collection-page-actions { display: grid; grid-template-columns: 1fr; }
  body.public-surface .collection-page-actions .button { width: 100%; }
  body.public-surface .collection-doc-list article { grid-template-columns: 34px minmax(0, 1fr); }
  body.public-surface .collection-doc-list article > a { grid-column: 2; justify-self: start; }
  body.public-surface .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-surface .footer-main > div:first-child, body.public-surface .footer-main > div:last-child { grid-column: 1 / -1; }
  body.admin-surface .cms-collection-editor { padding: 12px; }
  body.admin-surface .cms-collection-entry-grid { grid-template-columns: minmax(0, 1fr); }
  body.admin-surface .cms-collection-order-row { grid-template-columns: minmax(0, 1fr) auto auto auto; }
  body.admin-surface .cms-collection-entry-flags { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.admin-surface .cms-collection-layout .cms-history .admin-table { min-width: 690px; }
  body.admin-surface .media-asset-card > video, body.admin-surface .media-asset-card > a.media-pdf-preview { height: 132px; }
}
@media (max-width: 380px) {
  body.public-surface .collection-page { width: calc(100% - 24px); }
  body.public-surface .collection-date-card { padding: 12px; }
  body.public-surface .collection-date-grid { gap: 7px; }
  body.admin-surface .cms-page-tabs a { padding-inline: 10px; }
  body.admin-surface .cms-collection-entry { padding: 9px; }
}

/* Opt-in, client-only HTTPS diagnostics. Visible only with ?__diag=1 on local/staging origins. */
.diagnostic-panel-trigger,
.diagnostic-panel {
  position: fixed;
  z-index: 999999;
  color: #f7faff;
  background: #101a2b;
  border: 1px solid #5c86c8;
  box-shadow: 0 12px 40px rgb(7 20 42 / 28%);
  font: 500 13px/1.45 Manrope, sans-serif;
}
.diagnostic-panel-trigger {
  right: 12px;
  bottom: 12px;
  min-height: 42px;
  padding: 8px 14px;
  border-radius: 12px;
  cursor: pointer;
}
.diagnostic-panel-trigger:focus-visible,
.diagnostic-panel button:focus-visible {
  outline: 3px solid #9fc4ff;
  outline-offset: 2px;
}
.diagnostic-panel[hidden] { display: none !important; }
.diagnostic-panel {
  inset: auto 12px 64px auto;
  width: min(520px, calc(100vw - 24px));
  max-height: min(72vh, 620px);
  overflow: auto;
  padding: 16px;
  border-radius: 16px;
}
.diagnostic-panel h2 { margin: 0 0 6px; color: #fff; font: 700 19px/1.2 'Barlow Condensed', sans-serif; }
.diagnostic-panel p { margin: 0 0 12px; color: #d7e3f6; font-size: 12px; }
.diagnostic-panel-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.diagnostic-panel-actions .ui-button { min-height: 38px; padding: 7px 10px; font-size: 12px; }
.diagnostic-panel-output {
  max-height: 280px;
  overflow: auto;
  margin: 0;
  padding: 12px;
  border-radius: 10px;
  color: #e5efff;
  background: #07101e;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
}
@media (max-width: 430px) {
  .diagnostic-panel { inset: auto 8px 62px; width: auto; max-height: 72dvh; padding: 13px; }
  .diagnostic-panel-actions { display: grid; grid-template-columns: 1fr; }
  .diagnostic-panel-actions .ui-button { width: 100%; }
}

/* Public footer: brand panel inspired by the supplied reference, using DEVANGBAER colors. */
body.public-surface .site-footer {
  padding: 38px max(18px, calc((100% - var(--content)) / 2)) 34px;
  background: #0d2b66;
  border-top: 0;
}
body.public-surface .footer-frame {
  width: min(100%, var(--content));
  margin: 0 auto;
  padding: 38px 42px 20px;
  color: #101318;
  background: #fff;
  border: 1px solid #dce5f1;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgb(7 25 59 / 16%);
}
body.public-surface .footer-main {
  grid-template-columns: minmax(250px, 1.25fr) repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 34px;
  padding-bottom: 30px;
}
body.public-surface .footer-main:not(.has-collection-links) { grid-template-columns: minmax(250px, 1.25fr) minmax(0, 1fr); }
body.public-surface .footer-main [data-collection-group][hidden] { display: none !important; }
body.public-surface .footer-brand-block { min-width: 0; }
body.public-surface .footer-logo { display: block; width: auto; max-width: 190px; height: 58px; margin-bottom: 15px; object-fit: contain; object-position: left center; }
body.public-surface .footer-brand-block .footer-tagline {
  max-width: 330px;
  margin: 0;
  color: #53647b;
  font-size: 13px;
  line-height: 1.65;
}
body.public-surface .footer-brand-block .footer-organization { margin: 7px 0 0; color: #667993; font-size: 12px; line-height: 1.55; }
body.public-surface .footer-socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
body.public-surface .footer-social-link {
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  color: #1854c4;
  background: transparent;
  border: 0;
  border-radius: 4px;
  transition: color 160ms ease;
}
body.public-surface .footer-social-link .icon-svg { width: 27px; height: 27px; color: #1854c4; }
body.public-surface a.footer-social-link:hover { color: #1854c4; }
body.public-surface .footer-social-placeholder { cursor: default; }
body.public-surface .footer-social-link:focus-visible,
body.public-surface .footer-link-group a:focus-visible,
body.public-surface .footer-legal a:focus-visible { outline: 3px solid #1854c4; outline-offset: 3px; }
body.public-surface .footer-label { display: block; margin: 2px 0 15px; color: #0d2b66; font-size: 11px; font-weight: 850; letter-spacing: .12em; }
body.public-surface .footer-link-group nav { display: grid; justify-items: start; gap: 4px; }
body.public-surface .footer-link-group nav a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  color: #53647b;
  font-size: 12px;
  line-height: 1.45;
  text-decoration: none;
}
body.public-surface .footer-link-group nav a:hover,
body.public-surface .footer-legal a:hover { color: #1854c4; }
body.public-surface .footer-contact-group nav.footer-socials { display: flex; flex-direction: row; align-items: center; gap: 12px; margin-top: 8px; }
body.public-surface .footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 18px;
  padding-top: 15px;
  color: #53647b;
  border-top: 1px solid #dce5f1;
  font-size: 11px;
}
body.public-surface .footer-bottom-copy { display: flex; flex-wrap: wrap; gap: 5px 18px; align-items: center; }
body.public-surface .footer-bottom [data-footer-note] { color: #667993; }
body.public-surface .footer-legal { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px 18px; }
body.public-surface .footer-legal a { min-height: 32px; display: inline-flex; align-items: center; color: #53647b; text-decoration: none; }
@media (max-width: 980px) {
  body.public-surface .site-footer { padding-inline: 22px; }
  body.public-surface .footer-frame { padding: 30px 30px 18px; }
  body.public-surface .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  body.public-surface .footer-main:not(.has-collection-links) { grid-template-columns: minmax(0, 1fr); }
  body.public-surface .footer-brand-block { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 22px; row-gap: 3px; }
  body.public-surface .footer-brand-block .footer-logo { grid-column: 1; grid-row: 1 / 4; margin: 0; }
  body.public-surface .footer-brand-block .footer-tagline { grid-column: 2; grid-row: 1; }
  body.public-surface .footer-brand-block .footer-organization { grid-column: 2; grid-row: 2; margin: 0; }
}
@media (max-width: 640px) {
  body.public-surface .site-footer { padding: 24px 14px; }
  body.public-surface .footer-frame { padding: 25px 22px 16px; border-radius: 14px; }
  body.public-surface .footer-main,
  body.public-surface .footer-main:not(.has-collection-links) { grid-template-columns: minmax(0, 1fr); gap: 22px; padding-bottom: 22px; }
  body.public-surface .footer-main.has-collection-links { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  body.public-surface .footer-brand-block { grid-column: 1 / -1; display: block; }
  body.public-surface .footer-brand-block .footer-logo { height: 54px; margin-bottom: 13px; }
  body.public-surface .footer-brand-block .footer-tagline { max-width: 380px; }
  body.public-surface .footer-brand-block .footer-organization { margin-top: 5px; }
  body.public-surface .footer-label { margin-bottom: 10px; font-size: 10px; }
  body.public-surface .footer-link-group nav a { min-height: 42px; font-size: 12px; }
  body.public-surface .footer-contact-group { grid-column: 1 / -1; }
  body.public-surface .footer-bottom { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 9px; font-size: 11px; }
  body.public-surface .footer-legal { justify-content: start; gap: 3px 16px; }
  body.public-surface .footer-legal a { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  body.public-surface .footer-social-link { transition: none; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  body.public-surface .home-hero .hero-title { font-size: clamp(48px, 6vw, 68px); white-space: normal; }
}
.closure-modal-content { display: grid; gap: 12px; }
.closure-modal-content > p { margin: 0; }
.closure-cutoff-line { color: var(--muted); font-size: 13px; }
.closure-countdown-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.closure-countdown-card > span { color: var(--muted); font-size: 13px; }
.closure-countdown { color: var(--accent); font-variant-numeric: tabular-nums; font-size: 22px; }
.closure-reconciliation-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0; }
.closure-reconciliation-summary > span { padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); font-size: 12px; }
.closure-payment-group, .closure-frozen-snapshot { display: grid; gap: 8px; }
.closure-payment-group h3, .closure-frozen-snapshot h3 { margin: 8px 0 0; font-size: 14px; }
.closure-payment-group .admin-list-row > div { display: grid; gap: 4px; min-width: 0; }
.closure-payment-group small { color: var(--muted); overflow-wrap: anywhere; }
.closure-unknown-orders { padding: 12px; border: 1px solid #efd8a2; border-radius: 12px; background: #fffaf0; }
.cutoff-unknown-orders { display: grid; gap: 8px; }
.cutoff-unknown-order { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.cutoff-unknown-order > div:first-child { display: grid; gap: 5px; min-width: 0; }
.cutoff-unknown-order p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.cutoff-unknown-order small { color: var(--muted); overflow-wrap: anywhere; }
.cutoff-unknown-order-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.cutoff-order-resolution-form { display: grid; gap: 12px; }
.closure-frozen-snapshot { padding-top: 8px; border-top: 1px solid var(--line); }
@media (max-width: 620px) {
  .closure-reconciliation-summary { grid-template-columns: 1fr; }
  .closure-countdown-card { align-items: flex-start; flex-direction: column; }
  .cutoff-unknown-order { grid-template-columns: minmax(0, 1fr); }
  .cutoff-unknown-order-actions { justify-content: stretch; }
  .cutoff-unknown-order-actions > .button, .cutoff-unknown-order-actions > .mini-button { flex: 1 1 100%; min-height: 44px; }
}

/* Accueil : diaporama des visuels officiels, sans recadrer les affiches. */
body.public-surface .home-hero .hero-live-visual.hero-carousel {
  width: min(100%, 390px);
  aspect-ratio: auto;
  margin: 0;
  padding: 0;
  overflow: hidden;
  transform: none;
  border: 1px solid rgb(255 255 255 / 25%);
  border-radius: 12px;
  background: #08090d;
  box-shadow: 0 25px 70px rgb(0 0 0 / 45%);
}
body.public-surface .home-hero .hero-live-visual.hero-carousel::before { display: none; }
body.public-surface .home-hero .hero-live-visual.hero-carousel::after { display: none; }
.hero-carousel-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1122 / 1402;
  overflow: hidden;
  background: #08090d;
}
.hero-carousel-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none !important;
  object-fit: contain;
  object-position: center;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: 0;
  transition: opacity 650ms ease;
  pointer-events: none;
}
.hero-carousel-slide.is-active { opacity: 1; }
.hero-carousel-controls {
  min-height: 48px;
  padding: 7px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: #08090d;
  border-top: 1px solid rgb(255 255 255 / 15%);
}
.hero-carousel-dots { display: flex; align-items: center; gap: 7px; }
.hero-carousel-dot {
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  color: transparent;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}
.hero-carousel-dot::after {
  width: 8px;
  height: 8px;
  content: "";
  border: 1px solid #dce6f6;
  border-radius: 50%;
  background: transparent;
  transition: width 180ms ease, background-color 180ms ease;
}
.hero-carousel-dot[aria-pressed="true"]::after {
  width: 20px;
  border-color: #8fb6ff;
  border-radius: 8px;
  background: #8fb6ff;
}
.hero-carousel-dot:focus-visible, .hero-carousel-toggle:focus-visible { outline: 2px solid #8fb6ff; outline-offset: 3px; }
.hero-carousel-toggle {
  min-height: 34px;
  padding: 0 12px;
  color: #edf3fc;
  border: 1px solid rgb(255 255 255 / 30%);
  border-radius: 7px;
  background: rgb(255 255 255 / 7%);
  font: inherit;
  font-size: 11px;
  font-weight: 750;
  cursor: pointer;
}
.hero-carousel-toggle:hover { background: rgb(255 255 255 / 14%); }
.hero-carousel-toggle:disabled { opacity: .5; cursor: default; }
@media (max-width: 760px) {
  body.public-surface .home-hero .hero-inner {
    width: 100%;
    min-height: 0;
    padding: 24px 0 28px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: start;
  }
  body.public-surface .home-hero .hero-live-visual.hero-carousel {
    position: relative;
    inset: auto;
    grid-row: 2;
    justify-self: center;
    width: min(100%, 370px);
    height: auto;
    margin: 0 auto;
    transform: none;
  }
  body.public-surface .home-hero .hero-copy { grid-row: 1; padding: 0 0 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-carousel-slide, .hero-carousel-dot::after { transition: none; }
}

/* Non-refundable paid votes (AxouEvents, 26/10/2026): shown before payment, on the order page and in the conditions. */
.payment-terms-notice { display: block; margin: 12px 0; padding: 11px 13px; border: 1px solid #7a5a1f; border-radius: 8px; color: #f3d9a4; background: #2a2010; }
.payment-terms-notice strong { display: block; margin-bottom: 4px; font-size: 14px; }
.payment-terms-notice p { margin: 0; font-size: 13px; line-height: 1.45; }
.payment-terms-notice .payment-terms-details { margin-top: 5px; font-size: 12px; opacity: .9; }
body.public-surface .payment-terms-notice { color: #6b4a0e; background: #fff7e6; border-color: #f0d49a; }
.checkout-terms { margin: 12px 0 14px; }
.checkout-terms-accept { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; line-height: 1.4; cursor: pointer; }
.checkout-terms-accept input { width: 18px; height: 18px; margin-top: 1px; flex: 0 0 auto; accent-color: #c88a16; }
