
.auth-card{max-width:520px;margin:30px auto}.auth-links{margin-top:22px}.portal-content{max-width:1180px;margin:24px auto;padding:0 24px}.portal-tabs{max-width:1180px;margin:20px auto;padding:0 24px}.portal-form{max-width:560px;margin-top:0}.portal-form .check input{display:inline-block;width:auto}.portal-form .check{margin:6px 0 16px}.event-block{margin:35px 0}details{margin:18px 0}summary{cursor:pointer;font-weight:600;padding:8px 0}.portal-form small{line-height:1.5;margin-top:6px}@media(max-width:600px){.auth-card{margin:20px 16px}.portal-content{padding:0 16px}.portal-tabs{padding:0 12px}.auth-links button{font-size:12px}}
:root{font-family:Arial,Helvetica,sans-serif;color:#172735;background:#f2f5f7;font-size:14px}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin-top:0}h1{font-size:25px;margin-bottom:0}h2{font-size:22px;margin-bottom:12px}h3{font-size:16px;margin-bottom:18px}p{line-height:1.6}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid #125e67;background:#125e67;color:white;border-radius:6px;padding:10px 14px;font-weight:600}button:hover{filter:brightness(.95)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:white;color:#274953;border-color:#becdd2}a{color:#12616c;text-decoration:underline}input,textarea,select{width:100%;border:1px solid #b8c6cd;border-radius:5px;padding:9px;background:white;color:#172735}input:focus,textarea:focus,select:focus,button:focus-visible{outline:2px solid #267a8a;outline-offset:2px}input:disabled,textarea:disabled{background:#f5f7f8}label{display:block;font-size:12px;font-weight:600;margin-bottom:12px}label input,label textarea,label select{display:block;margin-top:6px}small{display:block;color:#657984;font-weight:400;font-size:12px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:23px 32px;background:white;border-bottom:1px solid #dce4e8}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:bold;color:#57717c;display:block;margin-bottom:9px}.connection,.actions,.titlebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.green{background:#338570}.orange{background:#cc772c}.chip{font-size:11px;background:#edf3f5;border:1px solid #dce6e9;padding:6px 8px;border-radius:5px;white-space:nowrap}.development{padding:12px 32px;background:#ecf2f4;color:#42616e;font-size:12px}.syncbar{margin:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 20px;background:white;border:1px solid #d7e2e7;border-radius:8px}.syncbar p{margin:5px 0 0;color:#576f7b;font-size:12px}.notice{padding:12px 16px;background:#fff7e7;color:#76541f;border:1px solid #ead7b4;border-radius:6px;margin-bottom:16px}.notice a{color:inherit}.conflict{background:#fff1eb;border:1px solid #d79a81;border-radius:8px;padding:20px;margin:20px 32px}.conflict button{margin-right:12px}.appgrid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;padding:0 32px 32px}.appgrid aside{background:white;border:1px solid #dce4e8;border-radius:8px;padding:20px;align-self:start}.appgrid aside h2{font-size:14px}.section-label{margin-top:28px}.navitem{width:100%;text-align:left;background:white;color:#243c47;border-color:transparent;margin:4px 0;padding:12px}.navitem.selected{background:#e8f3f3;border-color:#b7d7da}.navitem small{margin-top:6px}.stack{display:grid;gap:8px;margin-top:24px}.stack label{margin:0}.stack h3{margin-bottom:4px}.content{min-width:0}.titlebar{justify-content:space-between;margin:4px 0 18px}.titlebar h2,.titlebar h3{margin-bottom:0}.tabs{display:flex;gap:6px;border-bottom:1px solid #cddce2;margin-bottom:22px;overflow:auto}.tabs button{border:0;border-bottom:3px solid transparent;background:transparent;color:#5c7480;border-radius:0;padding:13px 16px;white-space:nowrap}.tabs button.active{border-bottom-color:#125e67;color:#125e67}.card{background:white;border:1px solid #dbe4e8;border-radius:8px;padding:22px;margin-bottom:20px}.empty{padding:45px;max-width:800px}.muted{color:#627985;font-size:12px;margin-bottom:0}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:20px}.inline-form{display:flex;align-items:end;gap:8px;margin-bottom:20px;flex-wrap:wrap}.inline-form label{flex:1;min-width:110px;margin-bottom:0}.inline-form button{height:37px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:11px;color:#617784;background:#f6f8f9}th,td{padding:11px 9px;border-bottom:1px solid #e2e9ec}td strong{display:block;margin-top:4px}.tablewrap{overflow:auto}.people{list-style:none;padding:0;margin:0}.people li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #e7edf0;font-size:12px}.roundbar,.filters{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:16px 0}.roundbar label,.filters label{min-width:200px;margin-bottom:0}.filters{margin-bottom:25px}.votes input{min-width:70px;width:80px}.votes th small{margin-top:4px}.check{display:flex;gap:9px;align-items:center;margin:22px 0;font-weight:400;font-size:13px}.check input{width:auto;margin:0}.card>label>input[type=number]{width:130px}footer{padding:20px 32px;border-top:1px solid #dbe4e8;font-size:11px;color:#617784}@media(max-width:1100px){.twocol{grid-template-columns:1fr}.syncbar{align-items:start;flex-direction:column}}@media(max-width:760px){.topbar{padding:18px;align-items:start;gap:14px;flex-direction:column}.development{padding:12px 18px}.syncbar{margin:16px}.appgrid{grid-template-columns:1fr;padding:0 16px;gap:18px}.appgrid aside{display:grid;gap:8px}.stack{margin-top:8px}.card{padding:16px}.tabs button{padding:11px}.notice,.conflict{margin:12px 16px}h1{font-size:22px}.connection{font-size:12px}.empty{padding:24px}}@media print{.topbar,.development,.syncbar,aside,.tabs,button,footer,.roundbar,.filters,.conflict{display:none!important}.appgrid,.twocol{display:block;padding:0}.card{break-inside:avoid;border:0}.content{width:100%}}

/* Purple glass theme: shared by the account portal and competition screens. */
:root {
  color-scheme: dark;
  --ink: #f4efff;
  --muted: #c0b4d8;
  --line: rgba(221, 205, 255, .18);
  --glass: rgba(38, 27, 65, .72);
  --accent: #c6a3ff;
  font-family: "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: #130e24;
}
body {
  min-height: 100vh;
  background:
    radial-gradient(ellipse at 8% 4%, rgba(119, 59, 203, .4), transparent 48%),
    radial-gradient(ellipse at 94% 32%, rgba(173, 75, 183, .22), transparent 42%),
    radial-gradient(ellipse at 44% 95%, rgba(77, 55, 166, .28), transparent 52%),
    #130e24;
  background-attachment: scroll;
}
main { min-height: 100vh; }
h1, h2, h3 { letter-spacing: -.025em; }
h1 { font-weight: 700; }
p { line-height: 1.65; }
a { color: #dcc2ff; text-underline-offset: 3px; }
::selection { background: #7240a8; color: #fff; }
button, input, textarea, select { transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
button {
  border: 1px solid rgba(207, 168, 255, .3);
  border-radius: 12px;
  padding: 11px 17px;
  background: linear-gradient(135deg, #7c3aed, #6227bf);
  color: #fff;
  box-shadow: 0 5px 18px rgba(80, 28, 155, .24), inset 0 1px 0 rgba(255, 255, 255, .14);
}
button:hover { filter: none; background: linear-gradient(135deg, #8844f0, #7131ce); }
button:disabled { opacity: .5; box-shadow: none; }
.secondary {
  color: #e6d9ff;
  background: rgba(182, 143, 235, .1);
  border-color: rgba(211, 183, 250, .25);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}
.secondary:hover { background: rgba(182, 143, 235, .2); border-color: rgba(211, 183, 250, .48); }
input, textarea, select {
  color: var(--ink);
  background: rgba(16, 10, 32, .56);
  border: 1px solid rgba(210, 190, 242, .25);
  border-radius: 10px;
  padding: 11px 12px;
  box-shadow: inset 0 1px 4px rgba(0, 0, 0, .1);
}
input::placeholder, textarea::placeholder { color: #a99bbe; opacity: 1; }
select option { background: #261c3c; color: var(--ink); }
input:focus, textarea:focus, select:focus, button:focus-visible, summary:focus-visible {
  outline: 2px solid #dab6ff;
  outline-offset: 3px;
  border-color: #bd93f2;
}
input:disabled, textarea:disabled { background: rgba(70, 53, 91, .38); color: #c0b4d8; }
input[type=checkbox] { accent-color: #a879ee; box-shadow: none; }
label { color: #eee5fb; font-size: 13px; }
small, .muted, .syncbar p { color: var(--muted); }
.eyebrow { color: #c6a3ff; font-size: 10px; letter-spacing: .18em; }
.card, .topbar, .syncbar, .appgrid aside, .portal-tabs {
  background: var(--glass);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 14px 44px rgba(5, 2, 17, .23), inset 0 1px 0 rgba(255, 255, 255, .07);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  backdrop-filter: blur(20px) saturate(140%);
}
.topbar { max-width: 1180px; width: calc(100% - 48px); margin: 24px auto 0; padding: 25px 28px; }
.syncbar { max-width: 1180px; width: calc(100% - 48px); margin: 18px auto; padding: 17px 22px; }
.card { padding: 26px; }
.auth-card { margin: 38px auto 56px; padding: 32px; background: rgba(46, 31, 77, .68); }
.auth-card h2 { font-size: 27px; margin: 18px 0 16px; }
.auth-card > p { color: var(--muted); }
.portal-form { gap: 14px; }
.auth-links { gap: 10px; }
.chip {
  color: #e3cdff;
  background: rgba(168, 113, 233, .14);
  border-color: rgba(197, 157, 249, .24);
  border-radius: 999px;
  padding: 7px 11px;
}
.tabs { border-bottom-color: var(--line); }
.portal-tabs { padding: 7px; width: calc(100% - 48px); gap: 6px; }
.tabs button { color: #c4b5d9; border: 1px solid transparent; border-radius: 12px; box-shadow: none; }
.tabs button:hover { color: var(--ink); background: rgba(180, 142, 232, .09); }
.tabs button.active {
  color: #f7f1ff;
  border-color: rgba(197, 157, 249, .3);
  background: linear-gradient(135deg, rgba(133, 72, 215, .44), rgba(103, 51, 179, .3));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .09);
}
.notice { color: #f4dcb1; background: rgba(163, 116, 37, .13); border-color: rgba(224, 182, 103, .25); border-radius: 12px; }
.conflict { color: #ffd3d8; background: rgba(161, 62, 96, .14); border-color: rgba(239, 134, 168, .35); border-radius: 16px; }
.development, .local-banner { color: #d9c6ef; background: rgba(58, 34, 89, .65); border-bottom: 1px solid var(--line); }
.local-banner { padding: 9px 24px; font-size: 11px; letter-spacing: .035em; }
.navitem { color: #d8caed; background: transparent; box-shadow: none; }
.navitem.selected { background: rgba(154, 104, 226, .18); border-color: rgba(204, 168, 250, .3); }
.tablewrap { border: 1px solid rgba(210, 190, 242, .12); border-radius: 13px; margin: 16px 0; }
th { background: rgba(176, 134, 235, .11); color: #dbcbf0; padding: 14px 12px; }
td { padding: 14px 12px; color: #ede3fb; }
th, td, .people li { border-bottom-color: rgba(210, 190, 242, .13); }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: rgba(189, 151, 240, .035); }
summary { color: #e5d5fc; }
details { border-top: 1px solid rgba(210, 190, 242, .12); padding-top: 9px; }
footer { color: #ae9cc8; border-top-color: var(--line); max-width: 1180px; margin: 28px auto 0; }
@supports not (backdrop-filter: blur(1px)) {
  .card, .topbar, .syncbar, .appgrid aside, .portal-tabs { background: #2c2045; }
}
@media(max-width:760px) {
  .topbar, .syncbar, .portal-tabs { width: calc(100% - 32px); }
  .topbar { margin-top: 16px; padding: 22px; }
  .card { padding: 20px; border-radius: 17px; }
  .auth-card { margin: 24px 16px; padding: 24px; }
  .portal-tabs { padding: 6px; }
  .tabs button { padding: 11px 13px; }
  .notice { margin: 12px 0; }
  .local-banner { padding: 9px 16px; }
}
@media(prefers-reduced-motion:reduce) { button, input, textarea, select { transition: none; } }
@media print {
  :root { color-scheme: light; color: #172735; background: #fff; }
  body { background: #fff; }
  .card { background: #fff; border: 0; box-shadow: none; backdrop-filter: none; }
  h1, h2, h3, p, td, th, label, summary, small, .muted { color: #172735; }
  th { background: #f2f0f5; }
  .local-banner { display: none; }
}
.chip.status-online { color: #b8efd7; background: rgba(42, 142, 105, .16); border-color: rgba(132, 222, 181, .3); }
.chip.status-draft { color: #d6cce6; background: rgba(164, 142, 194, .1); }
.chip.status-offline { color: #f4dcb1; background: rgba(163, 116, 37, .13); border-color: rgba(224, 182, 103, .25); }
.entry-number { display: flex; align-items: center; gap: 8px; min-width: 190px; }
.entry-number input { width: 82px; }
.entry-number button { padding: 9px 10px; font-size: 11px; }
input[type=file]::file-selector-button { border: 1px solid var(--line); background: #4d3373; color: var(--ink); border-radius: 7px; padding: 7px 10px; margin-right: 12px; cursor: pointer; }
.event-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); gap: 20px; }
.event-heading { margin-top: 25px; }
.permission-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 8px; }
.permission-grid .check { margin: 0; padding: 10px; background: rgba(184,145,232,.06); border-radius: 10px; }

.own-ranking-banner { padding: 14px 16px; border: 1px solid rgba(196, 155, 255, .6); border-radius: 12px; background: rgba(132, 65, 220, .22); }
.own-ranking-banner strong { color: #f3e9ff; font-size: 17px; }
.own-ranking-banner small { margin-top: 5px; }
.own-ranking-row td { background: rgba(155, 90, 241, .22); font-weight: 700; }
.own-ranking-row td:first-child { box-shadow: inset 4px 0 0 #c99cff; }
.own-ranking-marker { display: inline-block; margin-left: 10px; padding: 4px 8px; border: 1px solid rgba(214, 182, 255, .6); border-radius: 999px; color: #f5ecff; background: rgba(146, 79, 222, .35); font-size: 11px; white-space: nowrap; }

.competition-browser { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 18px; }
.discipline-sidebar { padding: 18px; border: 1px solid rgba(210,180,255,.2); border-radius: 18px; background: rgba(43,29,73,.55); position: sticky; top: 16px; }
.discipline-sidebar nav { display: grid; gap: 8px; }
.discipline-choice { text-align: left; display: grid; gap: 7px; width: 100%; padding: 15px; background: transparent; border-color: rgba(206,178,245,.15); }
.discipline-choice span { color: #c7b8da; font-size: 12px; font-weight: 400; }
.discipline-choice.selected { background: rgba(139,73,221,.3); border-color: #b887f1; }
.discipline-content { min-width: 0; }
.category-choices { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 12px; margin: 18px 0 26px; }
.category-choice { text-align: left; padding: 18px; display: grid; gap: 10px; align-content: start; background: rgba(59,39,90,.5); border-color: rgba(207,181,245,.2); border-radius: 15px; }
.category-choice strong { font-size: 16px; }
.category-choice small { color: #cdbfe0; }
.category-choice .chip { justify-self: start; }
.category-choice { min-width: 0; }
.category-choice .chip, .category-focus .chip { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.category-choice.selected { background: rgba(131,66,214,.26); border: 2px solid #b887f1; padding: 17px; }
.category-focus > .eyebrow { line-height: 1.7; }
.category-focus > .card { margin: 0; }
.competition-counts { display: flex; gap: 26px; margin: 22px 0 16px; color: #d6c9e7; }
.competition-counts strong { display: block; font-size: 26px; color: #f4eaff; margin-bottom: 4px; }
.competition-tile { display: flex; flex-direction: column; align-items: stretch; }
.competition-tile > button { margin-top: auto; }
.discipline-preview { color: #cbb5e6; min-height: 24px; }
.inline-create { max-width: 100%; padding: 12px 16px; border: 1px solid rgba(196,156,245,.3); border-radius: 12px; background: rgba(91,53,139,.2); }
.inline-create[open] { width: min(100%,420px); }
.delete-contest summary { color: #ffc0d7; }
@media(max-width:760px) {
 .competition-browser { grid-template-columns: minmax(0,1fr); gap: 16px; }
 .discipline-sidebar { position: static; }
 .discipline-sidebar nav { display: flex; overflow-x: auto; padding-bottom: 5px; }
 .discipline-choice { width: auto; min-width: 145px; }
 .category-choices { grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); }
 .inline-create[open] { width: 100%; }
}

.dashboard-brand { display: flex; gap: 20px; align-items: center; min-width: 0; }
.fbs-logo { position: relative; display: grid; place-items: center; flex-shrink: 0; width: 78px; height: 78px; isolation: isolate; }
.fbs-logo::before { content: ''; position: absolute; inset: 4%; background: radial-gradient(circle, rgba(255,255,255,.04), rgba(255,255,255,.01) 45%, transparent 70%); filter: blur(10px); z-index: -1; }
.fbs-logo img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 0 2px rgba(255,255,255,.17)); }
.fbs-logo-large { width: 172px; height: 172px; margin: 0 auto 25px; }
.fbs-logo-large::before { inset: 8%; filter: blur(8px); }
.users-toolbar { display: grid; grid-template-columns: minmax(0,1fr) 170px; gap: 18px; margin: 22px 0 12px; align-items: end; }
.users-pagination { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 18px; }
.users-pagination p { margin: 0; color: #cfc0e2; font-size: 12px; }
.discipline-settings { margin-bottom: 18px; padding: 12px 16px; border: 1px solid rgba(196,156,245,.22); border-radius: 12px; }
.delete-structure summary { color: #ffc4d8; }
.withdrawal { display: inline-flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 8px 0 8px 12px; }
@media(max-width:600px) { .dashboard-brand { gap: 12px; } .dashboard-brand h1 { font-size: 20px; } .fbs-logo { width: 64px; height: 64px; } .fbs-logo-large { width: 148px; height: 148px; } .users-toolbar { grid-template-columns: minmax(0,1fr); gap: 5px; } }

.portal-feedback { position: fixed; z-index: 100; right: 20px; bottom: 16px; max-width: min(520px,calc(100vw - 40px)); padding: 12px 18px; border: 1px solid rgba(190,150,245,.38); border-radius: 12px; background: #2c2045; color: #f3eaff; box-shadow: 0 8px 30px rgba(0,0,0,.25); font-size: 13px; }
.portal-feedback[hidden] { display: none; }
.competition-controls { display: grid; gap: 14px; justify-items: end; }
.registration-control { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0; }
@media(max-width:600px) { .competition-controls { justify-items: start; } }

/* Portal refinement: consistent rhythm, readable glass, and touch-first layouts. */
:root { --muted: #cbbede; --line: rgba(218,196,255,.16); --glass: rgba(37,27,59,.76); font-size: 15px; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 24px; }
body { line-height: 1.5; }
main { display: flow-root; }
h1 { font-size: clamp(20px,2.1vw,29px); line-height: 1.2; }
h2 { font-size: clamp(21px,2vw,27px); line-height: 1.25; }
h3 { font-size: 18px; line-height: 1.35; }
h4 { font-size: 15px; margin: 8px 0 12px; }
button, summary, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { min-height: 44px; line-height: 1.35; font-size: 14px; font-weight: 600; touch-action: manipulation; }
button:active:not(:disabled) { transform: translateY(1px); }
button:disabled { opacity: .55; }
input, select, textarea { min-width: 0; max-width: 100%; min-height: 46px; font-size: 16px; }
input[type=checkbox] { width: 22px; height: 22px; min-height: 22px; flex: 0 0 22px; }
input[type=file] { width: 100%; font-size: 13px; }
textarea { resize: vertical; line-height: 1.6; }
label { font-size: 13px; line-height: 1.55; }
small, .muted { line-height: 1.65; font-size: 13px; }
form, .stack, .card, .titlebar > div { min-width: 0; }
.stack { gap: 16px; }
.portal-form { gap: 18px; margin: 18px 0 0; width: 100%; }
.portal-form > button { justify-self: start; min-width: 150px; }
.portal-form > h3 { margin-bottom: 0; }
.portal-form .check { gap: 12px; align-items: start; margin: 2px 0; }
.portal-form .check input { margin-top: 1px; }
.topbar, .portal-tabs, .portal-content { max-width: 1240px; width: calc(100% - 64px); }
.topbar { padding: 22px 28px; gap: 24px; }
.portal-content { padding: 0; margin: 28px auto 48px; }
.portal-tabs { margin: 18px auto 0; padding: 7px; scrollbar-width: thin; }
.tabs button { flex-shrink: 0; padding: 12px 16px; }
.dashboard-brand { gap: 16px; }
.dashboard-brand .eyebrow { margin-bottom: 7px; }
.connection { gap: 12px; font-size: 13px; justify-content: flex-end; }
.connection > span:first-child { max-width: 220px; overflow-wrap: anywhere; }
.connection > button { padding: 9px 16px; }
.fbs-logo { width: 66px; height: 66px; }
.fbs-logo-large { width: 144px; height: 144px; margin-bottom: 24px; }
.portal-page-heading { margin: 8px 0 26px; }
.portal-page-heading h2 { font-size: clamp(27px,3vw,35px); margin: 0 0 8px; }
.portal-page-heading p { margin: 0; color: var(--muted); }
.mobile-navigation, .mobile-category-picker { display: none; }
.card { border-radius: 20px; padding: 28px; margin-bottom: 24px; }
.card > p { max-width: 75ch; }
.card > :last-child { margin-bottom: 0; }
.titlebar { gap: 18px; margin: 0 0 22px; align-items: center; }
.titlebar h2, .titlebar h3 { margin-bottom: 4px; }
.auth-card { width: calc(100% - 32px); max-width: 480px; margin: 40px auto 64px; padding: 36px; }
.auth-card h2 { text-align: center; margin-bottom: 24px; }
.auth-card .portal-form > button { width: 100%; }
.auth-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.auth-links button:last-child { grid-column: 1/-1; background: transparent; box-shadow: none; border-color: transparent; }
.auth-card > p:last-child { font-size: 12px; margin-top: 22px; }
.local-banner { text-align: center; font-size: 10px; padding: 7px 14px; color: #cbb9e2; }
details { padding: 14px 0 0; margin: 20px 0; }
summary { padding: 10px 0; min-height: 44px; line-height: 1.5; }
details[open] > summary { margin-bottom: 14px; }
.inline-create, .discipline-settings { padding: 0 15px; margin: 0; }
.inline-create[open], .discipline-settings[open] { padding-bottom: 18px; }
.inline-create > summary, .discipline-settings > summary { padding: 13px 0; }
.inline-create .portal-form { max-width: 100%; }
.discipline-settings { margin-bottom: 22px; }
.delete-structure[open], .delete-contest[open] { border-color: rgba(249,139,175,.35); }
.notice { margin: 16px 0; padding: 14px 16px; font-size: 13px; line-height: 1.6; }
.chip { display: inline-flex; align-items: center; min-height: 30px; line-height: 1.4; font-size: 11px; }
.event-grid { gap: 22px; }
.competition-tile { min-width: 0; position: relative; overflow: hidden; }
.competition-tile::before { content: ''; position: absolute; top: 0; left: 28px; right: 28px; height: 2px; background: linear-gradient(90deg,#a56aef,transparent); }
.competition-tile h2 { overflow-wrap: anywhere; font-size: 25px; }
.competition-tile .titlebar { margin-bottom: 18px; }
.competition-tile .eyebrow { margin: 0; }
.competition-tile > button { width: 100%; }
.competition-counts { gap: 0; padding: 18px 0; margin: 12px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.competition-counts > span { flex: 1; font-size: 12px; }
.competition-counts > span + span { padding-left: 24px; border-left: 1px solid var(--line); }
.competition-counts strong { font-size: 28px; line-height: 1; margin-bottom: 8px; }
.discipline-preview { font-size: 13px; margin: 16px 0 24px; }
.competition-browser { grid-template-columns: 200px minmax(0,1fr); gap: 26px; }
.discipline-sidebar { padding: 16px; }
.discipline-choice { padding: 14px; box-shadow: none; }
.discipline-choice strong { overflow-wrap: anywhere; }
.category-choice { box-shadow: none; transition: border-color .18s, background-color .18s; }
.category-choice.selected { border-width: 1px; padding: 18px; box-shadow: inset 0 0 0 1px rgba(201,156,255,.4); }
.category-choice strong { overflow-wrap: anywhere; }
.category-choice .chip { padding: 6px 9px; font-size: 10px; border-radius: 10px; }
.category-focus > .eyebrow { margin: 0 0 14px; overflow-wrap: anywhere; }
.category-focus > .card { padding: 24px; }
.category-focus > .card .titlebar { align-items: start; }
.competition-controls { gap: 6px; }
.registration-control { margin: 0; }
.event-heading { margin: 24px 0; }
.event-heading > div:first-child { flex: 1 1 260px; }
.event-heading h2 { font-size: clamp(27px,3vw,36px); overflow-wrap: anywhere; }
.event-heading + .tabs { padding-bottom: 10px; }
.tablewrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
table { line-height: 1.5; }
th { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
td { font-size: 13px; overflow-wrap: anywhere; }
td button { font-size: 12px; }
.users-table td:nth-child(2) { word-break: break-word; }
.users-table .chip { white-space: normal; }
.users-pagination .actions { gap: 8px; }
.people li { font-size: 14px; padding: 14px 0; flex-wrap: wrap; }
.people li > span { min-width: 0; overflow-wrap: anywhere; }
.own-ranking-marker { white-space: normal; }
.permission-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 10px; }
.permission-grid .check { min-height: 56px; gap: 12px; }
.judge-card > label { margin-top: 22px; }
.judge-submit > button { min-width: 200px; }
.vote-number { font-weight: 700; color: #e2c7ff; font-size: 17px; }
.votes input { width: 86px; min-width: 76px; min-height: 46px; text-align: center; }
.portal-feedback { bottom: max(18px,env(safe-area-inset-bottom)); right: 18px; border-radius: 14px; pointer-events: none; }
footer { max-width: 1240px; width: calc(100% - 64px); padding: 22px 0; line-height: 1.7; font-size: 11px; }
@media (max-width:1000px) {
 .topbar { padding: 20px 24px; }
 .connection > span:first-child { max-width: 150px; }
 .competition-browser { grid-template-columns: 165px minmax(0,1fr); gap: 18px; }
 .card { padding: 22px; }
 .users-toolbar { grid-template-columns: minmax(0,1fr) 140px; }
}
@media (max-width:760px) {
 .topbar, .portal-tabs, .portal-content, .mobile-navigation, footer { width: calc(100% - 28px); }
 .topbar { margin-top: 14px; padding: 18px; gap: 16px; flex-direction: row; flex-wrap: wrap; }
 .dashboard-brand { flex: 1 1 100%; gap: 12px; }
 .dashboard-brand h1 { font-size: 22px; }
 .dashboard-brand .eyebrow { font-size: 9px; }
 .fbs-logo { width: 54px; height: 54px; }
 .connection { width: 100%; justify-content: start; padding-top: 14px; border-top: 1px solid var(--line); gap: 9px; }
 .connection > span:first-child { flex: 1; max-width: none; font-size: 12px; }
 .connection > .chip { font-size: 10px; padding: 6px 9px; }
 .connection > button { min-height: 44px; font-size: 12px; padding: 8px 12px; }
 .portal-tabs { display: none; }
 .mobile-navigation { display: block; margin: 16px auto 0; position: relative; }
 .mobile-navigation > span { display: block; color: var(--muted); font-size: 9px; letter-spacing: .15em; margin: 0 0 6px 4px; }
 .mobile-navigation select { min-height: 50px; background-color: rgba(78,48,114,.55); border-color: rgba(194,151,246,.32); font-size: 15px; padding-left: 16px; border-radius: 14px; font-weight: 600; }
 .portal-content { margin: 24px auto 32px; }
 .portal-page-heading { margin-bottom: 22px; }
 .portal-page-heading h2 { font-size: 28px; }
 .portal-page-heading p { font-size: 13px; max-width: 38ch; }
 .card { padding: 20px; border-radius: 18px; margin-bottom: 18px; }
 .card h2 { font-size: 23px; }
 .titlebar { gap: 14px; margin-bottom: 18px; }
 .titlebar > div { max-width: 100%; }
 .auth-card { margin: 24px auto 40px; padding: 26px 24px; }
 .fbs-logo-large { width: 126px; height: 126px; margin-bottom: 18px; }
 .auth-card h2 { font-size: 26px; }
 .auth-links button { font-size: 13px; }
 .portal-form { max-width: 100%; }
 .portal-form > button { width: 100%; }
 .event-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
 .competition-tile h2 { font-size: 26px; }
 .competition-browser { grid-template-columns: minmax(0,1fr); gap: 18px; }
 .discipline-sidebar { position: static; }
 .category-focus > .card { padding: 18px; }
 .competition-controls { width: 100%; justify-items: stretch; padding: 14px; background: rgba(182,143,235,.05); border: 1px solid var(--line); border-radius: 14px; }
 .competition-controls .actions, .registration-control { justify-content: space-between; gap: 8px; }
 .competition-controls button { max-width: 58%; font-size: 12px; padding: 10px 12px; }
 .event-heading { margin: 22px 0; }
 .event-heading h2 { font-size: 29px; }
 .event-heading > div:first-child { flex-basis: 100%; }
 .event-heading .eyebrow { font-size: 9px; line-height: 1.7; }
 .event-heading + .tabs { gap: 4px; margin-bottom: 20px; scroll-snap-type: x proximity; }
 .event-heading + .tabs button { font-size: 12px; padding: 11px 13px; scroll-snap-align: start; }
 .inline-create { max-width: 100%; }
 .inline-create[open] { width: 100%; }
 .people li { align-items: start; gap: 12px; }
 .withdrawal { display: flex; margin: 12px 0 0; }
 .users-toolbar { grid-template-columns: minmax(0,1fr) 100px; gap: 10px; align-items: end; }
 .users-toolbar label { font-size: 12px; }
 .users-toolbar input { font-size: 16px; }
 .users-pagination { gap: 12px; }
 .users-pagination .actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
 .users-table, .entries-table, .users-table tbody, .entries-table tbody { display: block; width: 100%; }
 .users-table thead, .entries-table thead { display: none; }
 .users-table tr, .entries-table tr { display: block; padding: 15px; border-bottom: 1px solid var(--line); }
 .users-table tr:last-child, .entries-table tr:last-child { border-bottom: 0; }
 .users-table td, .entries-table td { display: grid; grid-template-columns: 76px minmax(0,1fr); align-items: start; gap: 10px; padding: 6px 0; border: 0; }
 .users-table td::before, .entries-table td::before { content: attr(data-label); color: var(--muted); font-size: 11px; padding-top: 3px; }
 .users-table td:first-child { font-weight: 700; font-size: 15px; }
 .users-table td[data-label="Gestione"], .entries-table td[data-label="Gestione"] { display: block; padding-top: 12px; }
 .users-table td[data-label="Gestione"]::before, .entries-table td[data-label="Gestione"]::before { display: none; }
 .users-table td button, .entries-table td button { width: 100%; }
 .entry-number { min-width: 0; flex-wrap: wrap; }
 .entry-number input { width: 80px; }
 .entry-number button { width: auto!important; }
 .own-ranking-banner { padding: 14px; }
 .own-ranking-banner strong { font-size: 16px; }
 .own-ranking-marker { display: block; margin: 6px 0 0; max-width: 90px; font-size: 9px; padding: 4px 6px; }
 th, td { padding: 12px 9px; }
 .admin-ranking { min-width: 340px; }
 .judge-card .tablewrap { border: 0; overflow: visible; margin: 22px 0; }
 .votes, .votes tbody { display: block; width: 100%; }
 .votes thead { display: none; }
 .votes tr { display: block; border: 1px solid var(--line); border-radius: 15px; padding: 8px 16px; margin-bottom: 16px; background: rgba(16,10,32,.22); overflow: hidden; }
 .votes td { display: grid; grid-template-columns: minmax(0,1fr) 92px; gap: 12px; padding: 11px 0; align-items: center; min-height: 60px; }
 .votes td::before { content: attr(data-label); color: #e6d8f7; font-size: 14px; overflow-wrap: anywhere; }
 .votes td.vote-number { display: block; min-height: auto; padding: 12px 0 14px; font-size: 24px; }
 .votes td.vote-number::before { content: 'NUMERO DI GARA'; display: block; font-size: 9px; letter-spacing: .15em; color: var(--muted); margin-bottom: 4px; }
 .votes input { width: 92px; min-height: 48px; font-size: 19px; }
 .votes td.vote-mean { border-top: 1px solid var(--line); }
 .vote-mean strong { font-size: 22px; text-align: center; margin: 0; }
 .judge-submit { position: static; margin-top: 18px; padding: 10px; background: #281b40; border: 1px solid rgba(197,157,249,.3); border-radius: 14px; }
 .judge-submit > button { width: 100%; min-height: 48px; }
 .portal-feedback { bottom: max(14px,env(safe-area-inset-bottom)); right: 14px; max-width: calc(100vw - 28px); font-size: 12px; padding: 12px 14px; }
 footer { margin-top: 24px; padding: 20px 0 max(20px,env(safe-area-inset-bottom)); font-size: 10px; }
}
@media (max-width:600px) {
 .mobile-category-picker { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; padding: 16px; background: rgba(74,46,111,.3); border: 1px solid var(--line); border-radius: 15px; margin: 18px 0; }
 .mobile-category-picker label { margin: 0; font-size: 11px; color: var(--muted); }
 .mobile-category-picker select { font-size: 16px; padding-left: 10px; }
 .discipline-sidebar, .category-choices { display: none; }
 .category-focus > .eyebrow { display: none; }
 .discipline-content > .titlebar h2 { font-size: 20px; }
 .discipline-content > .titlebar .eyebrow { font-size: 9px; }
 .permission-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:370px) {
 .topbar, .portal-content, .mobile-navigation, footer { width: calc(100% - 24px); }
 .card, .category-focus > .card { padding: 16px; }
 .dashboard-brand h1 { font-size: 19px; }
 .dashboard-brand { gap: 10px; }
 .fbs-logo { width: 46px; height: 46px; }
 .fbs-logo-large { width: 120px; height: 120px; }
 .mobile-category-picker { grid-template-columns: minmax(0,1fr); }
 .users-toolbar { grid-template-columns: minmax(0,1fr); }
 .competition-controls .chip { font-size: 10px; padding: 6px 8px; }
 .votes tr { padding: 8px 12px; }
 .users-table td, .entries-table td { grid-template-columns: 62px minmax(0,1fr); gap: 8px; }
}
@media (prefers-reduced-motion:reduce) { button:active:not(:disabled) { transform: none; } }
@media print {
 .mobile-navigation, .mobile-category-picker, .portal-feedback { display: none!important; }
 .portal-content { width: 100%; max-width: none; }
}
.mobile-section-picker { display: none; }
.card > details:only-child { margin: 0; padding: 0; border-top: 0; }
.portal-form .check input { width: 22px; }
.category-focus > .card > details { margin: 12px 0 0; padding-top: 6px; }
@media(max-width:760px) {
 .workspace-tabs { display: none; }
 .mobile-section-picker { display: block; font-size: 11px; color: var(--muted); margin: 20px 0; }
 .mobile-section-picker select { font-size: 16px; margin-top: 6px; background-color: rgba(78,48,114,.3); }
 .category-focus > .card > .titlebar { display: block; }
 .category-focus > .card > .titlebar > .chip { margin-top: 12px; font-size: 11px; }
 .portal-feedback { top: max(12px,env(safe-area-inset-top)); bottom: auto; margin: 0; }
}
@media print { .mobile-section-picker { display: none!important; } }
.approval-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.approval-actions button { font-size: 12px; }
.auth-switch { display: grid; gap: 10px; margin-top: 22px; }
.auth-switch > button { width: 100%; }
.auth-recovery, .auth-recovery:hover { background: transparent; border-color: transparent; box-shadow: none; color: var(--muted); }
.auth-recovery:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.auth-error { color: #ffd2df; background: rgba(160,50,83,.15); padding: 12px; border: 1px solid rgba(255,160,185,.3); border-radius: 10px; margin: 0; }
.mobile-menu-trigger { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 12px 16px; text-align: left; background: rgba(78,48,114,.55); border-color: rgba(194,151,246,.32); }
.mobile-menu-trigger > span { flex: 1; }
.mobile-menu-trigger > small { color: #dac9ef; font-size: 11px; }
.mobile-drawer { position: fixed; inset: 0 auto 0 0; margin: 0; width: min(340px,88vw); max-width: none; height: 100vh; height: 100dvh; max-height: 100dvh; padding: max(20px,env(safe-area-inset-top)) 22px max(22px,env(safe-area-inset-bottom)); border: 1px solid rgba(204,174,246,.22); border-left: 0; border-radius: 0 22px 22px 0; background: #241933; color: var(--ink); box-shadow: 20px 0 80px rgba(0,0,0,.35); overflow-y: auto; overscroll-behavior: contain; }
.mobile-drawer:not([open]) { display: none; }
.mobile-drawer::backdrop { background: rgba(8,4,18,.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.drawer-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 26px; }
.drawer-heading .eyebrow { margin: 0; }
.drawer-heading button { min-width: 44px; padding: 5px; font-size: 28px; font-weight: 400; }
.mobile-drawer .fbs-logo { width: 70px; height: 70px; }
.drawer-person { margin: 18px 0 24px; padding-bottom: 22px; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.drawer-person small { margin-top: 4px; }
.mobile-drawer nav { display: grid; gap: 8px; }
.mobile-drawer nav button { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; text-align: left; min-height: 52px; padding: 14px; background: transparent; border-color: transparent; box-shadow: none; color: var(--muted); }
.mobile-drawer nav button.selected { background: rgba(144,79,228,.23); border-color: rgba(199,155,255,.36); color: #f8f0ff; }
.mobile-drawer nav button:hover { background: rgba(144,79,228,.12); color: #fff; }
.competition-pdf { display: flex; align-items: center; gap: 14px; padding: 15px 18px; margin: 18px 0 22px; border: 1px solid rgba(200,164,248,.3); border-radius: 15px; color: #f2e6ff; background: rgba(54,35,80,.96); text-decoration: none; position: sticky; top: 12px; z-index: 10; box-shadow: 0 6px 24px rgba(7,3,17,.14); }
.competition-pdf > span:nth-child(2) { min-width: 0; flex: 1; }
.competition-pdf strong { font-size: 14px; }
.competition-pdf small { display: block; font-size: 11px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; margin-top: 3px; }
.competition-pdf:hover { background: #452963; border-color: rgba(200,164,248,.6); }
.pdf-icon { display: grid; place-items: center; flex: 0 0 40px; height: 44px; background: rgba(185,138,250,.12); border: 1px solid rgba(200,164,248,.24); border-radius: 10px; font-size: 10px; letter-spacing: .07em; font-weight: 700; }
.pdf-open { font-size: 22px; }
.competition-pdf.unavailable { position: static; background: rgba(181,144,229,.04); color: var(--muted); box-shadow: none; font-size: 12px; }
.workspace-tabs.single-section { display: none; }
@media(max-width:760px) {
 .workspace-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; border: 0; padding: 0; margin: 18px 0 24px; overflow: visible; }
 .workspace-tabs button { min-width: 0; white-space: normal; text-align: left; font-size: 12px; border: 1px solid var(--line); background: rgba(176,134,235,.05); padding: 12px; }
 .workspace-tabs button.active { background: rgba(144,79,228,.23); }
 .competition-pdf { top: 8px; padding: 12px; gap: 10px; }
 .competition-pdf strong { font-size: 13px; }
 .pdf-icon { flex-basis: 34px; height: 40px; }
 .portal-content input, .portal-content select { scroll-margin-top: 120px; }
}
@media print { .mobile-drawer, .mobile-menu-trigger { display: none!important; } .competition-pdf { position: static; color: #172735; background: white; } }

/* Signed-in masthead spans the viewport; content aligns with the dashboard. */
.topbar.site-header {
 display: block; width: 100%; max-width: none; margin: 0; padding: 0;
 border: 0; border-bottom: 1px solid var(--line); border-radius: 0;
 background: rgba(37,24,56,.82); box-shadow: none;
}
.site-header-inner {
 display: flex; align-items: center; justify-content: space-between; gap: 24px;
 max-width: 1240px; width: calc(100% - 64px); margin: 0 auto; padding: 20px 0;
}
.site-header .dashboard-brand { flex: 1; }
.site-header .connection { flex-shrink: 0; }
@media(max-width:760px) {
 .site-header-inner { width: calc(100% - 28px); padding: 16px 0; gap: 14px; flex-wrap: wrap; }
 .site-header .dashboard-brand { flex: 1 1 100%; }
 .site-header .connection { width: 100%; }
}
@media(max-width:370px) { .site-header-inner { width: calc(100% - 24px); } }
/* Venue scoreboard: large type, restrained motion, no participant identities. */
.ranking-projection { position: relative; min-height: 100vh; min-height: 100dvh; overflow: hidden; isolation: isolate; color: #faf6ff; background: radial-gradient(ellipse at 15% 5%,#4a2465 0,transparent 48%),radial-gradient(ellipse at 85% 100%,#32224f 0,transparent 50%),#100c1c; }
.ranking-projection:fullscreen { overflow-y: auto; width: 100%; }
.projection-controls { position: relative; z-index: 3; padding: 20px max(24px,calc((100vw - 1440px)/2)); background: rgba(17,12,30,.93); border-bottom: 1px solid #655079; }
.projection-controls-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.projection-controls-heading > strong { color: #f4d699; font-size: 16px; }
.projection-controls-heading > span { color: #bdb0cd; font-size: 12px; flex: 1; }
.projection-selectors { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; }
.projection-selectors label { flex: 1 1 180px; min-width: 0; margin: 0; color: #dfd2ed; }
.projection-selectors button { min-height: 44px; }
.projection-auto { margin: 14px 0 0; font-weight: 400; color: #d8cbe6; }
.projection-auto input { width: 20px; height: 20px; margin: 0; }
.projection-privacy { font-size: 11px; color: #b5a7c8; margin: 10px 0 0; }
.projection-show { max-width: 1600px; padding: 34px 4vw 20px; margin: auto; position: relative; z-index: 1; }
.projection-heading { display: flex; align-items: center; gap: 22px; padding-bottom: 24px; border-bottom: 1px solid rgba(221,193,255,.2); }
.projection-heading > img { width: clamp(64px,6vw,100px); height: clamp(64px,6vw,100px); object-fit: contain; filter: drop-shadow(0 0 14px #a166ca40); }
.projection-heading > div { flex: 1; min-width: 0; }
.projection-eyebrow { font-size: 11px; letter-spacing: .22em; font-weight: 600; color: #e5bd76; margin: 0 0 10px; }
.projection-heading h1 { font: normal clamp(28px,3vw,52px)/1.1 Georgia,serif; letter-spacing: -.025em; overflow-wrap: anywhere; }
.projection-heading > div > p:last-child { color: #ccbadf; font-size: clamp(13px,1.2vw,18px); margin: 10px 0 0; }
.projection-status { display: flex; gap: 9px; align-items: center; font-size: 12px; color: #e0cba7; padding: 10px 14px; border: 1px solid #bba27440; border-radius: 50px; white-space: nowrap; background: #dec89c08; }
.projection-status i { width: 6px; height: 6px; border-radius: 50%; background: #eccb8f; box-shadow: 0 0 12px #eccb8f; animation: projection-pulse 3s infinite; }
.projection-results-title { text-align: center; margin: 30px 0 16px; }
.projection-results-title h2 { font: normal clamp(28px,3vw,44px) Georgia,serif; margin: 0; }
.projection-rule { display: block; height: 1px; width: 110px; background: linear-gradient(90deg,transparent,#d1ab70,transparent); margin: 14px auto 0; }
.projection-layout { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); gap: clamp(24px,4vw,70px); align-items: center; }
.projection-podium { display: flex; align-items: end; gap: 14px; padding: 60px 0 20px; min-width: 0; }
.projection-podium-place { flex: 1; min-width: 0; text-align: center; animation: projection-rise .9s both; }
.projection-podium-place.place-2 { animation-delay: .18s; }
.projection-podium-place.place-3 { animation-delay: .35s; }
.projection-winners { min-height: 190px; display: flex; flex-direction: column; justify-content: end; gap: 14px; padding-bottom: 20px; }
.projection-winner > small { color: #b6a3ca; font-size: 9px; letter-spacing: .12em; }
.projection-winner > strong { display: block; font-size: clamp(30px,4.6vw,76px); line-height: 1.15; letter-spacing: -.05em; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.projection-crown { display: block; font-size: 36px; color: #b8adc9; margin-bottom: 6px; }
.place-1 .projection-crown { color: #f3ce8d; font-size: 49px; animation: projection-sway 6s ease-in-out infinite; }
.place-3 .projection-crown { color: #d19c81; }
.projection-score { display: block; margin-top: 10px; font-size: clamp(20px,2.2vw,34px); color: #eed8ac; font-variant-numeric: tabular-nums; }
.projection-score small { display: inline; font-size: 10px; color: #b6a3ca; padding-left: 6px; }
.projection-plinth { height: 130px; background: linear-gradient(160deg,#897d9f40,#46375025); border: 1px solid #c4b5d84a; border-radius: 15px 15px 0 0; box-shadow: inset 0 2px 0 #ded5ed30; padding: 20px 8px; }
.projection-plinth > span { display: block; font: 46px/1 Georgia,serif; color: #e1d8ed; }
.projection-plinth small { color: #bcaacc; font-size: 9px; letter-spacing: .2em; margin-top: 10px; }
.place-1 .projection-plinth { height: 190px; border-color: #edc27780; background: linear-gradient(160deg,#b3824350,#55385f25); }
.place-1 .projection-plinth > span,.place-1 .projection-plinth small { color: #f3ce8d; }
.place-3 .projection-plinth { height: 95px; border-color: #b7816660; background: linear-gradient(160deg,#a6694340,#3e263525); }
.projection-no-place { font-size: 30px; color: #8b799d; }
.projection-leaderboard { background: rgba(37,25,54,.76); border: 1px solid #a18bb238; padding: 22px; border-radius: 20px; }
.projection-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.projection-list-heading h3 { font-size: 16px; margin: 0; }
.projection-list-heading > span { color: #b6a3ca; font-size: 11px; }
.projection-list { display: grid; gap: 7px; }
.projection-row { display: flex; align-items: center; gap: 18px; min-height: 47px; padding: 10px 14px; border-radius: 10px; background: #b18cd508; animation: projection-row-in .6s both; animation-delay: calc(var(--row)*65ms); border: 1px solid transparent; }
.projection-row.top-three { background: #d2aa6b0c; border-color: #c5a57126; }
.projection-rank { color: #a38aaf; font-size: 16px; font-variant-numeric: tabular-nums; min-width: 25px; }
.projection-row > strong { flex: 1; font-size: clamp(20px,2vw,30px); font-variant-numeric: tabular-nums; }
.projection-row-score { font-size: clamp(20px,2vw,28px); color: #eddcc0; font-variant-numeric: tabular-nums; }
.projection-row-score small { display: inline; padding-left: 6px; font-size: 10px; color: #b4a1c6; }
.projection-pagination { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 16px; color: #b6a3ca; font-size: 11px; }
.projection-pagination button { padding: 5px 12px; min-height: 32px; }
.projection-waiting { min-height: 55vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 10px; }
.projection-waiting > span { font: 76px Georgia,serif; color: #e2bc7a; animation: projection-sway 4s ease-in-out infinite; margin-bottom: 16px; }
.projection-waiting h2 { font: normal clamp(36px,5vw,76px) Georgia,serif; }
.projection-waiting p { color: #cebadf; }
.projection-waiting small { color: #ad98bf; }
.projection-footer { width: 100%; max-width: none; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; margin: 28px 0 0; padding: 20px 0 4px; border-top: 1px solid #a18bb225; font-size: 9px; letter-spacing: .15em; color: #b49bc7; }
.projection-regia-toggle { position: fixed; right: 16px; bottom: 12px; z-index: 5; opacity: .35; font-size: 11px; }
.projection-regia-toggle:hover,.projection-regia-toggle:focus-visible { opacity: 1; }
.projection-atmosphere { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.projection-atmosphere > i { position: absolute; width: 70vw; height: 70vw; border: 1px solid #be8ee812; border-radius: 50%; right: -25vw; top: -28vw; }
.projection-atmosphere > i:nth-child(2) { width: 80vw; height: 80vw; right: -30vw; top: -33vw; }
.projection-atmosphere > i:nth-child(3) { width: 90vw; height: 90vw; right: -35vw; top: -38vw; }
.projection-atmosphere > span { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #f3ca8e; left: calc(var(--i)*8% + 3%); bottom: -10px; animation: projection-float calc(12s + var(--i)*1s) linear infinite; animation-delay: calc(var(--i)*-1.8s); opacity: 0; }
.projection-dancers { position: absolute; left: -15px; bottom: 10px; width: clamp(220px,25vw,420px); color: #bc88ea; opacity: .09; z-index: 0; pointer-events: none; }
.dance-couple { transform-origin: 150px 265px; animation: projection-sway 5s ease-in-out infinite; }
.dance-follower { transform-origin: 185px 140px; animation: projection-turn 5s ease-in-out infinite; }
.projection-launch-link { text-align: right; margin: 0 0 22px; font-size: 12px; }
@keyframes projection-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: translateY(0); } }
@keyframes projection-row-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } }
@keyframes projection-sway { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes projection-turn { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } }
@keyframes projection-pulse { 0%,100% { opacity: .5; } 50% { opacity: 1; } }
@keyframes projection-float { 0% { transform: translateY(0); opacity: 0; } 20%,70% { opacity: .5; } 100% { transform: translateY(-85vh) translateX(40px); opacity: 0; } }
@media(min-width:1600px) { .projection-show { padding-top: 45px; } .projection-row { min-height: 60px; } }
@media(max-width:1000px) { .projection-layout { gap: 25px; grid-template-columns: minmax(0,1fr) minmax(280px,.9fr); } .projection-heading { flex-wrap: wrap; } .projection-status { margin-left: auto; } .projection-row { gap: 10px; padding: 9px 10px; } .projection-podium { gap: 8px; } }
@media(max-width:700px) { .projection-show { padding: 24px 18px 16px; } .projection-controls { padding: 18px; } .projection-layout { grid-template-columns: minmax(0,1fr); gap: 16px; } .projection-podium { max-width: 520px; width: 100%; margin: auto; padding-top: 24px; } .projection-winner > strong { font-size: clamp(30px,9vw,58px); } .projection-score { font-size: 24px; } .projection-heading { gap: 12px; } .projection-heading > img { width: 54px; height: 54px; } .projection-heading h1 { font-size: 28px; } .projection-heading .projection-eyebrow { font-size: 8px; } .projection-status { font-size: 10px; margin-left: 0; } .projection-results-title { margin-top: 24px; } .projection-plinth { height: 105px; } .place-1 .projection-plinth { height: 150px; } .place-3 .projection-plinth { height: 80px; } .projection-controls-heading > span { flex-basis: 100%; } .projection-footer { font-size: 8px; } .projection-winners { min-height: 175px; } }
@media(prefers-reduced-motion:reduce) { .ranking-projection *, .ranking-projection *::before, .ranking-projection *::after { animation: none!important; transition: none!important; } }
.projection-podium-place:has(.projection-winner:nth-child(2)) .projection-winners { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: end; gap: 8px; }
.projection-podium-place:has(.projection-winner:nth-child(2)) .projection-winner > strong { font-size: clamp(26px,3vw,50px); }
.projection-podium-place:has(.projection-winner:nth-child(2)) .projection-winner > small { font-size: 8px; letter-spacing: .04em; }
.projection-podium-place:has(.projection-winner:nth-child(2)) .projection-score { font-size: clamp(18px,1.8vw,28px); }
.projection-podium-place:has(.projection-winner:nth-child(2)) .projection-crown { font-size: 36px; }
.projection-heading > img { flex-shrink: 0; }
@media(max-width:700px) { .projection-heading > div { flex: 1 1 calc(100% - 80px); } .projection-heading .projection-status { flex: 0 1 auto; } }
@media(min-width:1001px) and (max-height:850px) {
 .is-presenting .projection-show { padding-top: 18px; padding-bottom: 12px; }
 .is-presenting .projection-heading { padding-bottom: 12px; }
 .is-presenting .projection-heading > img { width: 60px; height: 60px; }
 .is-presenting .projection-heading h1 { font-size: 32px; }
 .is-presenting .projection-results-title { margin: 18px 0 12px; }
 .is-presenting .projection-results-title h2 { font-size: 30px; }
 .is-presenting .projection-row { min-height: 36px; padding: 6px 12px; }
 .is-presenting .projection-row > strong,.is-presenting .projection-row-score { font-size: 22px; }
 .is-presenting .projection-list { gap: 5px; }
 .is-presenting .projection-podium { padding-top: 10px; padding-bottom: 10px; }
 .is-presenting .projection-winners { min-height: 150px; }
 .is-presenting .projection-winner > strong { font-size: 46px; }
 .is-presenting .projection-plinth { height: 105px; }
 .is-presenting .place-1 .projection-plinth { height: 150px; }
 .is-presenting .place-3 .projection-plinth { height: 80px; }
 .is-presenting .projection-leaderboard { padding: 16px; }
 .is-presenting .projection-pagination { margin-top: 8px; }
 .is-presenting .projection-footer { margin-top: 14px; padding-top: 12px; }
}
@media(min-width:1001px) and (max-height:850px) {
 .is-presenting .projection-heading .projection-eyebrow { font-size: 9px; line-height: 1.2; margin-bottom: 6px; }
 .is-presenting .projection-heading > div > p:last-child { font-size: 14px; line-height: 1.3; margin-top: 6px; }
 .is-presenting .projection-row { height: 36px; min-height: 36px; line-height: 1.1; }
 .is-presenting .projection-row > strong,.is-presenting .projection-row-score { font-size: 20px; }
 .is-presenting .projection-list-heading { margin-bottom: 12px; }
 .is-presenting .projection-list-heading h3 { line-height: 1.2; }
}
