/* Public portals and audience only. Never changes admin/gate controls or data. */
.public-theme {
  --public-surface: #101d38;
  --public-text: #F8F7F4;
  --public-muted: #B8BCC2;
  --public-line: #C9A22755;
  color-scheme: dark;
  background: radial-gradient(ellipse at 80% 0%,#173d7566,transparent 48%),radial-gradient(ellipse at 10% 45%,#102b5544,transparent 55%),#080e20;
  color: var(--public-text);
  min-height: 100vh;
}
.public-theme .portal-header { background: #0c1730; border-color: var(--public-line); box-shadow: 0 8px 36px #0002; }
.public-theme .brand-header { position: relative; }
.public-theme .brand-header::after { content: ''; position: absolute; bottom: -14px; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg,transparent,#C9A22799,transparent); pointer-events: none; }
.public-theme .brand-name,.public-theme .portal-brand,.public-theme .stage-only-brand,
.public-theme .portal-heading h1,.public-theme .card-heading h2,.public-theme .stage-event-heading h2,
.public-theme .stage-event-title,.public-theme .winner-card h3,.public-theme .score-person b,
.public-theme .result-person { color: var(--public-text); text-shadow: none; }
.public-theme .portal-heading p,.public-theme .portal-hint,.public-theme .session-user,
.public-theme .field>span,.public-theme .criterion-score small,.public-theme .result-caption,
.public-theme .personal-result p,.public-theme .winner-total small,.public-theme .tie-label,
.public-theme .stage-pagination,.public-theme .covered-winner,.public-theme .empty-state { color: var(--public-muted); }
.public-theme .organization-logos img { border: 0; background: transparent; object-fit: contain; }
.public-theme .organization-logos img[alt="ORA"] { width: 112px; }
.public-theme.stage-only .organization-logos img[alt="ORA"] { width: 144px; }
.public-theme .card,.public-theme .score-row,.public-theme.stage-only .score-row,
.public-theme .podium-column { color: var(--public-text); background: linear-gradient(150deg,#142747,#0d1730); border-color: var(--public-line); box-shadow: 0 12px 32px #0003; }
.public-theme .card-heading,.public-theme .stage-only-header { border-color: var(--public-line); }
.public-theme .heading-icon,.public-theme .empty-symbol { color: #E1BE58; background: #C9A22712; border-color: var(--public-line); }
.public-theme .btn.primary,.public-theme .btn.gold {
  background: linear-gradient(115deg,#F1D37B,#C9A227);
  color: #111827; border: 1px solid #E1BE58; border-radius: 999px;
  text-shadow: none; box-shadow: 0 4px 18px #C9A22718;
  transition: transform .18s ease,box-shadow .18s ease;
}
.public-theme .btn.ghost { color: var(--public-text); border-color: #C9A22788; border-radius: 999px; background: transparent; transition: transform .18s ease,box-shadow .18s ease; }
.public-theme .btn:focus-visible { outline: 3px solid #F1D37B; outline-offset: 4px; }
@media(hover:hover) {
  .public-theme .btn:not(:disabled):hover { transform: translateY(-2px); box-shadow: 0 4px 20px #C9A22744; }
}
.public-theme input,.public-theme select { color: var(--public-text); background: #09132b; border-color: #64728C; accent-color: #E1BE58; }
.public-theme select option { background: #09132b; color: var(--public-text); }
.public-theme input::placeholder { color: #AEB8C8; }
.public-theme input:focus,.public-theme select:focus { background: #0e1c38; border-color: #F1D37B; outline-color: #F1D37B; }
.public-theme input:-webkit-autofill { -webkit-text-fill-color: var(--public-text); -webkit-box-shadow: 0 0 0 1000px #09132b inset; caret-color: var(--public-text); }
.public-theme .personal-result,.public-theme .criterion-score,.public-theme .feedback,
.public-theme .photo-frame,.public-theme .winner-work,.public-theme .work-placeholder {
  background: #09132b; color: var(--public-text); border-color: var(--public-line);
}
.public-theme .personal-result .score,.public-theme .score,.public-theme .judge-score-total,
.public-theme .criterion-score input,.public-theme .result-rank { color: #F1D37B; }
.public-theme .criterion-choice { display: block; padding: 22px; }
.public-theme .criterion-choice .criterion-caption { display: grid; gap: 8px; margin-bottom: 18px; }
.public-theme .criterion-choice .criterion-caption b { font-size: 1.08rem; line-height: 1.6; }
.public-theme .criterion-choice .score-choice-input { display: none; }
.public-theme .score-choices { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.public-theme .score-choice-button { min-height: 52px; min-width: 0; padding: 8px 0; font: inherit; font-size: 1.15rem; font-weight: 700; color: #F6F3ED; border: 1px solid #64728C; border-radius: 12px; background: #09132B; cursor: pointer; }
.public-theme .score-choice-button[aria-pressed="true"] { color: #111827; background: #E1BE58; border-color: #F1D37B; box-shadow: 0 0 0 2px #F1D37B55; }
.public-theme .score-choice-button:focus-visible { outline: 3px solid #F1D37B; outline-offset: 3px; }
.public-theme .score-choice-button:disabled { cursor: not-allowed; opacity: .5; }
.public-theme .score-choice-status { margin: 14px 0 0; min-height: 1.6em; color: var(--public-muted); font-size: .9rem; }
.public-theme .criterion-choice[data-missing="true"] { border-color: #FFABB7; }
.public-theme .score-confirm { color: #F8F7F4; background: #101D38; border: 1px solid #C9A227; border-radius: 18px; width: min(560px,calc(100vw - 32px)); padding: 24px; max-height: 85vh; overflow: auto; }
.public-theme .score-confirm::backdrop { background: #000b; }
.public-theme .score-confirm h2 { margin-top: 0; }
.public-theme .score-confirm li { padding-block: 6px; overflow-wrap: anywhere; }
.public-theme #scoreConfirmWarning { border: 1px solid #C9A22788; border-radius: 12px; padding: 16px; line-height: 1.8; }
.public-theme .score-confirm .portal-actions { margin: 18px 0 0; }
.public-theme .judge-qr-camera { width: 100%; max-height: 360px; object-fit: contain; background: #000; }
.public-theme .judge-qr-image { margin: 0 25px; }
.public-theme .batch-event { min-width: 0; }
.public-theme .batch-event>h2 { color: #F1D37B; padding: 16px 0; border-bottom: 1px solid #C9A22755; }
.public-theme .batch-person { margin-block: 24px; padding: 16px; border: 1px solid #64728C88; border-radius: 16px; }
.public-theme .batch-person>h3 { margin: 0 0 8px; overflow-wrap: anywhere; }
.public-theme .batch-person .criterion-score { margin-block: 18px; }
.public-theme .batch-review { margin-block: 12px; padding: 12px; border: 1px solid #64728C88; border-radius: 12px; }
.public-theme .batch-review summary { cursor: pointer; line-height: 1.6; overflow-wrap: anywhere; }
.public-theme [hidden] { display: none !important; }
@media(max-width: 480px) {
  .public-theme .criterion-choice { padding: 16px 12px; }
  .public-theme .score-choices { gap: 6px; }
  .public-theme .score-choice-button { min-height: 48px; }
}
.public-theme .score-row .rank-number { color: #E1BE58; }
.public-theme .stage-mode-badge { color: #F1D37B; background: #C9A22712; border-color: #C9A22799; }
.public-theme .stage-mode-badge.is-live { color: #A9E5CB; background: #173D32; border-color: #64A68B; }
.public-theme .podium-1 { border-color: #E1BE58; box-shadow: 0 0 38px #C9A22720,0 12px 32px #0003; }
.public-theme .medal { color: var(--medal); }
.public-theme .podium-3 .medal b { color: #E2B28C; }
.public-theme .medal span { color: #111827; background: radial-gradient(circle at 30% 25%,#fff8df,var(--medal) 65%); }
.public-theme .winner-total { color: var(--medal); }
.public-theme .podium-base { color: #111827; background: var(--medal); }
.public-theme .portrait-placeholder { fill: #B8BCC288; }
.public-theme .badge { color: #A9E5CB; background: #173D32; border-color: #64A68B; }
.public-theme .connection-status,.public-theme .auth-card>p { color: var(--public-muted); }
.public-theme .connection-status[data-error="true"],.public-theme .feedback[data-error="true"],
.public-theme .stage-connection[data-error="true"] { color: #FFD7DD; background: #49222D; border-color: #AD6373; }
.public-theme .podium-column { animation: winner-reveal .65s ease both; }
@keyframes winner-reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media(max-width:1000px) {
  .public-theme .organization-logos img[alt="ORA"] { width: 86px; }
  .public-theme.stage-only .organization-logos img[alt="ORA"] { width: 112px; }
}
@media(max-width:700px) {
  .public-theme .organization-logos img[alt="ORA"],.public-theme.stage-only .organization-logos img[alt="ORA"] { width: 100%; }
}
@media(prefers-reduced-motion:reduce) {
  .public-theme .podium-column { animation: none; }
  .public-theme .btn { transition: none; }
  .public-theme .btn:not(:disabled):hover { transform: none; }
}
@media(forced-colors:active) {
  .public-theme .card,.public-theme .podium-column,.public-theme .btn { border: 1px solid CanvasText; }
}
