/* CFF v1.0.24 — Cross-role Typography, Readability & Visual Hierarchy Contract
   Loaded after app.css. This layer intentionally overrides legacy micro-typography
   without changing domain behavior. Desktop, tablet and mobile keep separate scales. */

:root{
  --cff-type-body:16px;
  --cff-type-secondary:14px;
  --cff-type-meta:12px;
  --cff-type-label:13px;
  --cff-type-button:14px;
  --cff-type-card:17px;
  --cff-type-panel:20px;
  --cff-type-section:30px;
  --cff-type-page:36px;
  --cff-leading-body:1.62;
  --cff-leading-compact:1.42;
}

.public-body,.auth-body,.user-body,.control-body{
  font-size:var(--cff-type-body);
  line-height:var(--cff-leading-body);
  text-rendering:optimizeLegibility;
}
.public-body small,.auth-body small,.user-body small,.control-body small{
  font-size:var(--cff-type-meta);
  line-height:1.45;
}
.public-body input,.public-body select,.public-body textarea,.public-body button,
.auth-body input,.auth-body select,.auth-body textarea,.auth-body button,
.user-body input,.user-body select,.user-body textarea,.user-body button,
.control-body input,.control-body select,.control-body textarea,.control-body button{
  font-size:var(--cff-type-label);
  line-height:1.4;
}
.btn{
  min-height:42px;
  font-size:var(--cff-type-button);
  line-height:1.25;
}
.eyebrow{
  font-size:12px;
  line-height:1.35;
  letter-spacing:.2em;
}
.status-pill{
  font-size:11px;
  line-height:1.2;
  padding:6px 10px;
}
.tag{
  font-size:11px;
  line-height:1.2;
  padding:6px 10px;
}
.help-text,.field-help,.panel-subtitle{
  font-size:13px;
  line-height:1.55;
}

/* ---------- PUBLIC ---------- */
.public-body .desktop-nav{font-size:15px;gap:30px}
.public-body .mobile-menu-nav a{font-size:15px;line-height:1.35}
.public-body .mobile-menu-account .btn{font-size:14px}
.public-body .page-hero h1{font-size:clamp(42px,4.1vw,54px);line-height:1.04}
.public-body .page-hero p,
.public-body .public-section-intro p{
  font-size:15px;
  line-height:1.7;
}
.public-body .section{padding:52px 0}
.public-body .section-head{margin-bottom:24px;gap:18px}
.public-body .section-head h2{font-size:var(--cff-type-section);line-height:1.12}
.public-body .compact-head h2{font-size:25px}
.public-body .section-head a{font-size:13px;line-height:1.35;font-weight:700}
.public-body .hero-copy p,
.public-body .hero-grid--livetv .hero-copy p{font-size:16px;line-height:1.68}
.public-body .hero-stats span{font-size:12px;line-height:1.3}
.public-body .ribbon-item{font-size:12px;line-height:1.35}
.public-body .ribbon-quote span{font-size:12px}
.public-body .program-card-body{min-height:112px;padding:16px}
.public-body .program-card h3{font-size:18px;line-height:1.25;margin-bottom:8px}
.public-body .program-card p{font-size:14px;line-height:1.55}
.public-body .open-call-card{min-height:162px;padding:18px}
.public-body .open-call-card strong{font-size:18px;line-height:1.25}
.public-body .open-call-card span{font-size:13px;line-height:1.4}
.public-body .open-call-card small{font-size:12px;line-height:1.35}
.public-body .schedule-card{padding:13px;gap:12px}
.public-body .date-box span{font-size:12px}
.public-body .schedule-card>div:last-child strong{font-size:14px;line-height:1.35}
.public-body .schedule-card>div:last-child span{font-size:13px;line-height:1.4}
.public-body .venue-spotlight h3{font-size:17px;line-height:1.25}
.public-body .venue-spotlight p,.public-body .venue-spotlight span{font-size:13px;line-height:1.5}
.public-body .map-card a{font-size:12px;line-height:1.3}
.public-body .result-banner h3{font-size:24px;line-height:1.2}
.public-body .result-banner p{font-size:14px;line-height:1.55}
.public-body .impact-row strong{font-size:16px;line-height:1.2}
.public-body .impact-row span{font-size:12px;line-height:1.35}
.public-body .footer-grid>div{font-size:14px;line-height:1.55}
.public-body .footer-bottom{font-size:12px;line-height:1.5}

.public-body .program-list-card .body{padding:22px}
.public-body .program-list-card h2,
.public-body .venue-card h2,
.public-body .result-card h2{font-size:21px;line-height:1.25}
.public-body .program-list-card p,
.public-body .venue-card p,
.public-body .result-card p{font-size:14px;line-height:1.6}
.public-body .meta,.public-body .venue-meta{font-size:13px;line-height:1.45}
.public-body .program-hero-meta{font-size:13px;line-height:1.4;flex-wrap:wrap}
.public-body .detail-main>p{font-size:15px;line-height:1.75}
.public-body .detail-main h2{font-size:25px;line-height:1.2}
.public-body .action-panel h3{font-size:25px;line-height:1.2}
.public-body .action-panel p{font-size:14px;line-height:1.55}
.public-body .action-panel label,
.public-body .sponsor-form-card label,
.public-body .sponsor-field-label{font-size:13px;line-height:1.4}
.public-body .timeline-list time{font-size:13px;line-height:1.4}
.public-body .timeline-list article strong{font-size:15px;line-height:1.35}
.public-body .timeline-list small{font-size:13px;line-height:1.45}
.public-body .participation-notice,.public-body .public-login-notice{font-size:13px;line-height:1.6}

/* About CFF / Public CMS editorial surfaces */
.public-body .about-profile-copy p,
.public-body .about-origin-card p,
.public-body .about-purpose-lead,
.public-body .about-values-grid p,
.public-body .about-movement-grid p,
.public-body .about-community-grid p,
.public-body .about-vision-section p,
.public-body .founder-card p{font-size:15px;line-height:1.7}
.public-body .about-values-grid h3,.public-body .founder-card h3{font-size:19px;line-height:1.25}
.public-body .founder-card span{font-size:13px;line-height:1.45}

/* Sponsorship public flow */
.public-body .sponsor-package-name strong{font-size:22px;line-height:1.2}
.public-body .sponsor-package-name small{font-size:12px;line-height:1.5}
.public-body .sponsor-package-price b{font-size:18px}
.public-body .sponsor-package-coverage strong{font-size:13px;line-height:1.4}
.public-body .sponsor-package-benefits span{font-size:14px;line-height:1.55}
.public-body .sponsor-process-grid span{font-size:13px;line-height:1.45}
.public-body .sponsor-step-head p,.public-body .payment-instruction-card>p{font-size:14px;line-height:1.65}
.public-body .sponsor-checkout-card dt,.public-body .sponsor-order-logo-name span{font-size:13px}
.public-body .sponsor-status-steps strong{font-size:13px;line-height:1.35}
.public-body .sponsor-status-steps span{font-size:12px;line-height:1.4}
.public-body .confirmation-order-meta small{font-size:11px}
.public-body .sponsor-page-stepper>div strong,.public-body .sponsor-apply-stepper>div strong{font-size:12px}
.public-body .sponsor-page-stepper>div small,.public-body .sponsor-apply-stepper>div small{font-size:11px}

/* CFF LiveTV: labels readable without turning the player into YouTube-like chrome. */
.public-body .cff-live-badge{font-size:11px;line-height:1.2}
.public-body .cff-now-playing small,.public-body .cff-next small{font-size:11px;line-height:1.3}
.public-body .cff-now-playing strong{font-size:21px;line-height:1.22}
.public-body .cff-now-playing span,.public-body .cff-next span{font-size:12px;line-height:1.4}
.public-body .cff-livetv-broadcast-note{font-size:11px;line-height:1.4}
.public-body .cff-sound-toggle{font-size:12px}

/* ---------- AUTH ---------- */
.auth-body .auth-card{padding:38px}
.auth-body .auth-card h1{font-size:36px;line-height:1.1}
.auth-body .auth-card p{font-size:15px;line-height:1.65}
.auth-body .auth-card label,.auth-body .auth-field{font-size:14px;line-height:1.45}
.auth-body .auth-card input,.auth-body .auth-card select{font-size:15px;min-height:48px}
.auth-body .field-help{font-size:12px;line-height:1.5}
.auth-body .auth-link,.auth-body .auth-account-switch,.auth-body .auth-back-link{font-size:14px;line-height:1.45}
.auth-body .auth-divider{font-size:12px}
.auth-body .password-peek,.auth-body .password-toggle{font-size:14px}
.auth-body .auth-submit,.auth-body .auth-register-button,.auth-body .auth-forgot-button{font-size:14px;min-height:46px}

/* ---------- USER / FESTIVAL SAYA ---------- */
.user-body .user-desktop-nav{font-size:14px}
.user-body .user-account-name{font-size:14px}
.user-body .user-dashboard{padding:48px 0}
.user-body .user-welcome h1{font-size:40px;line-height:1.08}
.user-body .user-welcome p{font-size:15px;line-height:1.6}
.user-body .user-section-head h2,.user-body .panel-head h2{font-size:20px;line-height:1.25}
.user-body .panel-head a{font-size:13px}
.user-body .my-panel{padding:24px}
.user-body .my-item strong,.user-body .ticket-row strong,
.user-body .my-class-item strong,.user-body .submission-account-card strong{font-size:15px;line-height:1.4}
.user-body .my-item span,.user-body .ticket-row span,
.user-body .my-class-item span,.user-body .submission-account-card span{font-size:13px;line-height:1.5}
.user-body .status-pill{font-size:11px}
.user-body .attention-copy strong{font-size:15px;line-height:1.35}
.user-body .attention-copy small,.user-body .attention-item>b{font-size:12px;line-height:1.45}
.user-body .upcoming-card strong{font-size:15px;line-height:1.35}
.user-body .upcoming-card span,.user-body .upcoming-card b{font-size:12px;line-height:1.45}
.user-body .my-ticket-main>strong{font-size:16px;line-height:1.35}
.user-body .my-ticket-main>span,.user-body .my-ticket-main>small,.user-body .my-ticket-state>small{font-size:12px;line-height:1.45}
.user-body .ticket-code{font-size:12px}
.user-body .my-sponsor-title span,.user-body .my-sponsor-progress small{font-size:12px;line-height:1.4}
.user-body .my-sponsor-progress .status-pill{font-size:11px}
.user-body .submission-detail-head h1{font-size:34px;line-height:1.1}
.user-body .submission-timeline h2{font-size:20px}
.user-body .submission-step{font-size:12px;line-height:1.35}
.user-body .submission-terminal{font-size:13px;line-height:1.5}
.user-body .account-detail-list dt{font-size:11px;line-height:1.35}
.user-body .account-detail-list dd{font-size:14px;line-height:1.6}
.user-body .reviewer-note small{font-size:11px}
.user-body .reviewer-note p{font-size:13px;line-height:1.6}
.user-body .history-item strong{font-size:13px;line-height:1.35}
.user-body .history-item small{font-size:12px;line-height:1.4}
.user-body .history-item p{font-size:13px;line-height:1.55}
.user-body .profile-security p{font-size:14px;line-height:1.55}
.user-body .ticket-payment-summary small,.user-body .payment-account-card small{font-size:11px}
.user-body .ticket-payment-summary strong{font-size:14px}
.user-body .payment-account-card span{font-size:12px}
.user-body .payment-account-card p{font-size:13px;line-height:1.6}
.user-body .ticket-payment-layout .my-panel form>label{font-size:13px}
.user-body .certificate-meta,.user-body .certificate-sign{font-size:12px;line-height:1.45}

/* ---------- CONTROL: SUPERADMIN + TEAM ---------- */
.control-body .control-sidebar{width:238px}
.control-body .control-main{margin-left:238px}
.control-body .sidebar-item{min-height:42px;height:auto;padding:10px 12px;font-size:14px;line-height:1.3}
.control-body .sidebar-label{font-size:10px;line-height:1.35;letter-spacing:.16em;margin-top:20px}
.control-body .sidebar-context small{font-size:10px;line-height:1.3}
.control-body .sidebar-context strong{font-size:12px;line-height:1.4}
.control-body .sidebar-version{font-size:12px;line-height:1.45}
.control-body .control-user>div{font-size:13px;line-height:1.35}
.control-body .control-context-bar span{font-size:10px;line-height:1.25}
.control-body .control-context-bar strong{font-size:13px;line-height:1.35}
.control-body .control-search{height:40px}
.control-body .control-search input{font-size:13px}
.control-body .control-content{padding:26px 32px 56px}
.control-body .dashboard-head h1{font-size:34px;line-height:1.1}
.control-body .dashboard-head p{font-size:15px;line-height:1.55}
.control-body .dashboard-quote{font-size:17px;line-height:1.4}
.control-body .stat-card{min-height:104px;padding:17px 15px}
.control-body .stat-card small{font-size:13px;line-height:1.35}
.control-body .stat-card strong{font-size:25px;line-height:1.05}
.control-body .stat-note,.control-body .trend{font-size:12px;line-height:1.35}
.control-body .dash-panel{padding:18px}
.control-body .dash-panel .panel-head h2,.control-body .panel-head h2{font-size:19px;line-height:1.25}
.control-body .panel-note{font-size:11px;line-height:1.25}
.control-body .panel-eyebrow{font-size:10px;line-height:1.3}
.control-body .chart-legend,.control-body .donut-wrap ul{font-size:12px;line-height:1.4}
.control-body .festival-list strong,.control-body .attention-list strong,.control-body .agenda-list strong,.control-body .activity-list strong{font-size:13px;line-height:1.35}
.control-body .festival-list small,.control-body .attention-list small,.control-body .agenda-list small,.control-body .activity-list small,.control-body .activity-list time{font-size:12px;line-height:1.45}
.control-body .agenda-list time{font-size:12px}
.control-body .attention-list b,.control-body .bar-chart small,.control-body .bar b{font-size:11px}
.control-body .mini-metrics span{font-size:12px}
.control-body .quick-actions span{font-size:11px;line-height:1.3;text-align:center}
.control-body .dashboard-banner p{font-size:13px;line-height:1.5}
.control-body .dashboard-banner .btn{font-size:13px}

.control-body .workspace-head h1{font-size:34px;line-height:1.1}
.control-body .workspace-head p{font-size:15px;line-height:1.55}
.control-body .workspace-breadcrumb{font-size:12px;line-height:1.4}
.control-body .workspace-panel{padding:22px 24px}
.control-body .workspace-panel>.panel-head h2,
.control-body .workspace-panel>h2,
.control-body .control-support-card h2{font-size:20px;line-height:1.28}
.control-body .workspace-panel>.panel-head .eyebrow,
.control-body .workspace-panel>.eyebrow,
.control-body .control-support-card-head .eyebrow{font-size:11px;line-height:1.35}
.control-body .workspace-panel>.panel-head .panel-subtitle,
.control-body .workspace-panel>.panel-subtitle,
.control-body .workspace-panel>p:not(.panel-subtitle),
.control-body .action-only-panel p{font-size:14px;line-height:1.6}
.control-body .control-support-card .table-action,.control-body .table-action{font-size:12px;line-height:1.35}
.control-body .control-count-badge{font-size:15px}
.control-body .detail-stat-grid small{font-size:11px;line-height:1.35}
.control-body .detail-stat-grid strong{font-size:24px}
.control-body .program-hierarchy-card strong{font-size:15px;line-height:1.35}
.control-body .program-hierarchy-card small{font-size:12px;line-height:1.45}
.control-body .detail-kv-grid small{font-size:11px;line-height:1.35}
.control-body .detail-kv-grid strong{font-size:13px;line-height:1.45}
.control-body .district-tag-list span,.control-body .object-meta,.control-body .program-card-meta{font-size:12px;line-height:1.45}

.control-body .editor-panel label,
.control-body .festival-switch label,
.control-body .public-festival-selector label,
.control-body .sponsor-workflow-card label{font-size:13px;line-height:1.4}
.control-body .editor-panel input,.control-body .editor-panel select,.control-body .editor-panel textarea,
.control-body .festival-switch select{font-size:14px;min-height:42px}
.control-body .data-list strong{font-size:15px;line-height:1.4}
.control-body .data-list span{font-size:13px;line-height:1.5}
.control-body .table-wrap table{font-size:13px;line-height:1.45}
.control-body .table-wrap th{font-size:12px;line-height:1.35;padding:11px 10px}
.control-body .table-wrap td{font-size:13px;line-height:1.45;padding:12px 10px}
.control-body .table-wrap td small,.control-body .table-muted{font-size:11px;line-height:1.4}
.control-body .inline-actions button,.control-body .inline-actions select,.control-body .btn-small{font-size:12px;line-height:1.35}
.control-body .notice-card,.control-body .delete-warning{font-size:13px;line-height:1.55}

/* Team operational journey */
.control-body .team-task-group-head small{font-size:11px;line-height:1.35}
.control-body .team-task-group-head strong{font-size:14px;line-height:1.35}
.control-body .team-task-group-head>b{font-size:12px}
.control-body .team-task-links a{font-size:13px;line-height:1.4;padding:11px 0}
.control-body .team-task-open{font-size:12px}
.control-body .program-ops-grid>a>span{font-size:11px;line-height:1.35}
.control-body .program-ops-grid>a>strong{font-size:26px}
.control-body .program-ops-grid>a>small{font-size:12px;line-height:1.45}
.control-body .program-ops-grid>a>b{font-size:12px;line-height:1.35}
.control-body .festival-context-lock small,.control-body .program-context-lock small{font-size:10px}
.control-body .festival-context-lock strong,.control-body .program-context-lock strong{font-size:13px;line-height:1.4}
.control-body .festival-context-lock span,.control-body .program-context-lock span,.control-body .scope-chip{font-size:11px;line-height:1.4}
.control-body .sponsor-workflow-card h3{font-size:14px;line-height:1.35}
.control-body .sponsor-workflow-card p{font-size:13px;line-height:1.55}
.control-body .sponsor-secondary-actions summary{font-size:12px;line-height:1.35}

/* Control dialogs / CMS / migration / LiveTV editor */
.control-body .control-dialog-head h2{font-size:22px;line-height:1.2}
.control-body .control-dialog code{font-size:12px}
.control-body .migration-summary-grid small{font-size:12px;line-height:1.35}
.control-body .migration-summary-grid strong{font-size:25px}
.control-body .migration-row small{font-size:12px;line-height:1.45}
.control-body .header-nav-note{font-size:13px;line-height:1.6}
.control-body .header-nav-identity strong{font-size:15px;line-height:1.35}
.control-body .header-nav-identity small{font-size:11px;line-height:1.4}
.control-body .header-nav-toggle{font-size:13px;line-height:1.4}
.control-body .header-nav-preview>small{font-size:10px}
.control-body .header-nav-preview span,.control-body .header-nav-preview em{font-size:12px;line-height:1.35}
.control-body .livetv-duration-readout,.control-body .livetv-probe-status{font-size:12px;line-height:1.45}
.control-body .founder-admin-grid span,.control-body .founder-admin-grid a{font-size:13px;line-height:1.4}
.control-body .source-badge{font-size:10px;line-height:1.25}

/* Tablet gets a real readability contract, not compressed desktop typography. */
@media (min-width:761px) and (max-width:1199px){
  :root{
    --cff-type-body:15px;
    --cff-type-secondary:14px;
    --cff-type-meta:12px;
    --cff-type-label:13px;
    --cff-type-button:14px;
    --cff-type-card:17px;
    --cff-type-panel:19px;
    --cff-type-section:28px;
    --cff-type-page:34px;
  }
  .public-body .container-wide{width:min(calc(100% - 48px),1240px)}
  .public-body .section{padding:46px 0}
  .public-body .section-head h2{font-size:28px}
  .public-body .program-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .public-body .program-card h3{font-size:17px}
  .public-body .program-card p{font-size:14px}
  .public-body .site-header-inner{grid-template-columns:250px 1fr 250px}
  .public-body .desktop-nav{gap:22px;font-size:14px}

  .control-body .control-sidebar{width:230px}
  .control-body .control-main{margin-left:230px}
  .control-body .control-content{padding:24px 24px 50px}
  .control-body .dashboard-head h1,.control-body .workspace-head h1{font-size:32px}
  .control-body .workspace-panel{padding:20px}
  .control-body .table-wrap table{font-size:13px}
  .user-body .user-welcome h1{font-size:36px}
}

/* Mobile: preserve readable text; reduce composition density instead of shrinking type. */
@media (max-width:760px){
  :root{
    --cff-type-body:15px;
    --cff-type-secondary:13px;
    --cff-type-meta:12px;
    --cff-type-label:13px;
    --cff-type-button:14px;
    --cff-type-card:17px;
    --cff-type-panel:18px;
    --cff-type-section:26px;
    --cff-type-page:32px;
  }
  .btn{min-height:44px;font-size:14px}
  .eyebrow{font-size:11px;letter-spacing:.17em}
  .status-pill{font-size:11px;padding:6px 9px}
  .tag{font-size:11px}
  .mobile-bottomnav span{font-size:11px;line-height:1.15}

  .public-body .hero-copy h1,.public-body .hero-grid--livetv .hero-copy h1{font-size:clamp(36px,10.5vw,44px);line-height:1.02}
  .public-body .hero-copy p,.public-body .hero-grid--livetv .hero-copy p{font-size:15px;line-height:1.62;max-width:100%}
  .public-body .hero-cta .btn{font-size:13px;min-height:45px}
  .public-body .hero-stats span{font-size:11px}
  .public-body .section{padding:36px 0}
  .public-body .section-head h2,.public-body .compact-head h2{font-size:26px;line-height:1.15}
  .public-body .section-head a{font-size:12px}
  .public-body .ribbon-programs .ribbon-item span:last-child{font-size:11px;line-height:1.35}
  .public-body .program-card{flex-basis:min(86vw,310px)}
  .public-body .program-card-body{min-height:118px;padding:16px}
  .public-body .program-card h3{font-size:17px}
  .public-body .program-card p{font-size:14px;line-height:1.55}
  .public-body .open-call-card strong{font-size:17px}
  .public-body .open-call-card span{font-size:13px}
  .public-body .schedule-card{flex-basis:min(78vw,292px)}
  .public-body .schedule-card>div:last-child strong{font-size:14px}
  .public-body .schedule-card>div:last-child span{font-size:12px}
  .public-body .venue-spotlight h3{font-size:15px}
  .public-body .venue-spotlight p,.public-body .venue-spotlight span{font-size:12px;line-height:1.45}
  .public-body .map-card a{font-size:11px}
  .public-body .result-banner p{font-size:13px}
  .public-body .impact-row span{font-size:11px}
  .public-body .page-hero h1{font-size:36px}
  .public-body .page-hero p,.public-body .public-section-intro p{font-size:14px;line-height:1.65}
  .public-body .program-list-card h2,.public-body .venue-card h2,.public-body .result-card h2{font-size:19px}
  .public-body .program-list-card p,.public-body .venue-card p,.public-body .result-card p{font-size:14px}
  .public-body .meta,.public-body .venue-meta{font-size:12px}
  .public-body .timeline-list time,.public-body .timeline-list small{font-size:12px}
  .public-body .timeline-list article strong{font-size:14px}
  .public-body .cff-live-badge{font-size:11px}
  .public-body .cff-now-playing small,.public-body .cff-next small{font-size:10px}
  .public-body .cff-now-playing strong{font-size:19px}
  .public-body .cff-now-playing span,.public-body .cff-next span,.public-body .cff-livetv-broadcast-note{font-size:11px}

  .auth-body .auth-card{padding:26px 20px}
  .auth-body .auth-card h1{font-size:30px}
  .auth-body .auth-card p{font-size:14px}
  .auth-body .auth-card label,.auth-body .auth-field{font-size:13px}
  .auth-body .auth-card input,.auth-body .auth-card select{font-size:15px;min-height:48px}

  .user-body .user-mobile-menu-head small{font-size:10px}
  .user-body .user-mobile-menu nav a{font-size:15px}
  .user-body .user-dashboard{padding:32px 0 calc(42px + var(--mobile-bottomnav-height,68px))}
  .user-body .user-welcome h1{font-size:32px;line-height:1.1}
  .user-body .user-welcome p{font-size:14px;line-height:1.6}
  .user-body .my-panel{padding:18px}
  .user-body .my-panel .panel-head h2,.user-body .user-section-head h2{font-size:18px}
  .user-body .my-panel .panel-head a{font-size:12px}
  .user-body .my-item strong,.user-body .my-class-item strong,.user-body .submission-account-card strong{font-size:14px}
  .user-body .my-item span,.user-body .my-class-item span,.user-body .submission-account-card span{font-size:12px}
  .user-body .user-welcome--action .btn{font-size:13px;padding:10px 13px}
  .user-body .submission-detail-head h1{font-size:30px}
  .user-body .submission-step{font-size:11px}
  .user-body .account-detail-list dt{font-size:11px}
  .user-body .account-detail-list dd{font-size:14px}

  .control-body .control-sidebar{width:min(90vw,340px)!important}
  .control-body .control-main{margin-left:0}
  .control-body .control-sidebar-mobile-head{font-size:12px}
  .control-body .sidebar-item{font-size:14px;min-height:44px}
  .control-body .sidebar-label{font-size:10px}
  .control-body .control-context-bar span{font-size:9px}
  .control-body .control-context-bar strong{font-size:12px;max-width:42vw}
  .control-body .control-user>div{font-size:12px}
  .control-body .control-content{padding:18px 14px calc(44px + var(--mobile-bottomnav-height,68px))}
  .control-body .dashboard-head h1{font-size:27px;line-height:1.12}
  .control-body .dashboard-head p{font-size:14px;line-height:1.55}
  .control-body .stat-card{min-width:185px;min-height:108px;padding:16px 14px}
  .control-body .stat-card small{font-size:12px}
  .control-body .stat-card strong{font-size:24px}
  .control-body .dash-panel{padding:16px}
  .control-body .dash-panel .panel-head h2,.control-body .panel-head h2{font-size:18px}
  .control-body .festival-list strong,.control-body .attention-list strong,.control-body .agenda-list strong,.control-body .activity-list strong{font-size:13px}
  .control-body .festival-list small,.control-body .attention-list small,.control-body .agenda-list small,.control-body .activity-list small,.control-body .activity-list time{font-size:11px}
  .control-body .workspace-head h1{font-size:28px;line-height:1.12}
  .control-body .workspace-head p{font-size:14px;line-height:1.55}
  .control-body .workspace-panel{padding:18px}
  .control-body .workspace-panel>.panel-head h2,.control-body .workspace-panel>h2,.control-body .control-support-card h2{font-size:18px}
  .control-body .workspace-panel>.panel-head .panel-subtitle,.control-body .workspace-panel>.panel-subtitle,.control-body .workspace-panel>p:not(.panel-subtitle),.control-body .action-only-panel p{font-size:13px}
  .control-body .editor-panel label,.control-body .festival-switch label,.control-body .public-festival-selector label,.control-body .sponsor-workflow-card label{font-size:13px}
  .control-body .table-wrap table{font-size:13px;min-width:720px}
  .control-body .table-wrap th{font-size:12px}
  .control-body .table-wrap td{font-size:13px}
  .control-body .team-task-links a{font-size:13px}
  .control-body .program-ops-grid>a>span,.control-body .program-ops-grid>a>small,.control-body .program-ops-grid>a>b{font-size:11px}
  .control-body .program-ops-grid>a>strong{font-size:25px}
  .control-body .migration-summary-grid small,.control-body .migration-row small{font-size:11px}
  .control-body .header-nav-identity small{font-size:11px}
  .control-body .header-nav-toggle{font-size:12px}
}

@media (max-width:390px){
  .public-body .hero-copy h1,.public-body .hero-grid--livetv .hero-copy h1{font-size:36px}
  .public-body .hero-copy p,.public-body .hero-grid--livetv .hero-copy p{font-size:14px}
  .public-body .section-head h2,.public-body .compact-head h2{font-size:24px}
  .public-body .hero-cta .btn{font-size:12px;padding-left:10px;padding-right:10px}
  .user-body .user-welcome h1{font-size:30px}
  .control-body .dashboard-head h1{font-size:25px}
  .control-body .workspace-head h1{font-size:26px}
}

/* Remaining legacy microcopy floors found by the v1.0.24 selector audit. */
.public-body .circuit-home-card>span{font-size:12px;line-height:1.35}
.public-body .program-card-sponsor-link{font-size:12px;line-height:1.4}
.control-body .program-kind,.control-body .program-lifecycle-caption,.control-body .publication-note,
.control-body .lifecycle-status-large,.control-body .control-agenda>a>span,.control-body .media-delete,
.control-body .cms-editor-heading>span,.control-body .context-parent,.control-body .district-fieldset>p,
.control-body .ticket-checkin-grid>div>span:not(.status-pill){font-size:12px;line-height:1.45}
.user-body .ticket-qr-token,.user-body .inline-outcome-link,.user-body .submission-account-card>b{font-size:12px;line-height:1.4}
.public-body .sponsor-field-help,.control-body .sponsor-field-help{font-size:12px;line-height:1.5}

/* Selector-complete microcopy overrides from the full legacy stylesheet audit. */
.public-body .district-home-grid small{font-size:12px;line-height:1.45}
.user-body .outcome-card small{font-size:12px;line-height:1.4}
.control-body .district-check small,.control-body .lifecycle-step small,.control-body .publication-state small,
.control-body .workflow-next-card small,.control-body .dashboard-number-grid small,.control-body .landing-context-summary small,
.control-body .venue-admin-card small,.control-body .context-lock-card small,.control-body .sponsor-company-cell small,
.control-body .sponsor-package-admin-row>div small{font-size:12px;line-height:1.45}
.control-body .lifecycle-step strong,.control-body .publication-state strong,.control-body .district-check strong,
.control-body .media-library strong,.control-body .workflow-form-note strong{font-size:13px;line-height:1.4}
.control-body .media-library span,.control-body .workflow-admin-row span,.control-body .transition-effects span,
.control-body .workflow-next-card span,.control-body .sponsor-selected-summary span,
.control-body .assignment-row span,.control-body .district-admin-grid span,
.control-body .sponsor-form-section-head>div:first-child span{font-size:12px;line-height:1.4}
.control-body .row-end b,.control-body .venue-admin-card b,.control-body .district-admin-grid b,
.control-body .result-admin-grid b{font-size:12px;line-height:1.35}
.control-body .sponsor-review-summary dt{font-size:11px;line-height:1.35}
.control-body .workflow-blockers a,.control-body .workflow-blockers b,.control-body .workflow-blockers span,
.control-body .workflow-form-note span,.control-body .context-tabs a,.control-body .lifecycle-step i{font-size:12px;line-height:1.4}


/* v1.0.25 — Auth action hierarchy & brand-token integrity.
   The Auth layout now exposes the same CMS colour tokens as Public/User/Control.
   These rules keep the current task primary, account creation secondary, recovery
   assistance tertiary, and navigation back to Festival visually quiet. */
.auth-body .auth-submit{
  min-height:54px;
  background:var(--c-primary,#FFC84D);
  color:#091421;
  border:1px solid color-mix(in srgb,var(--c-primary,#FFC84D) 82%,#9b6500 18%);
  font-weight:900;
  box-shadow:0 12px 28px rgba(190,126,0,.24);
}
.auth-body .auth-submit:hover,
.auth-body .auth-submit:focus-visible{
  background:color-mix(in srgb,var(--c-primary,#FFC84D) 92%,#fff 8%);
  color:#091421;
  border-color:color-mix(in srgb,var(--c-primary,#FFC84D) 72%,#7d5200 28%);
  box-shadow:0 14px 32px rgba(190,126,0,.30);
  outline:3px solid color-mix(in srgb,var(--c-primary,#FFC84D) 24%,transparent);
  outline-offset:2px;
}
.auth-body .auth-register-button{
  min-height:50px;
  background:#f7faff;
  color:var(--c-accent,#0A63FF);
  border:1.5px solid color-mix(in srgb,var(--c-accent,#0A63FF) 36%,#d9e4ef 64%);
  font-weight:850;
  box-shadow:none;
}
.auth-body .auth-register-button:hover,
.auth-body .auth-register-button:focus-visible{
  background:#eef5ff;
  color:color-mix(in srgb,var(--c-accent,#0A63FF) 84%,#052b55 16%);
  border-color:color-mix(in srgb,var(--c-accent,#0A63FF) 58%,#c5d5e5 42%);
  outline:3px solid color-mix(in srgb,var(--c-accent,#0A63FF) 12%,transparent);
  outline-offset:2px;
}
.auth-body .auth-forgot-button{
  min-height:38px;
  padding:7px 12px;
  background:#f2f7ff;
  color:color-mix(in srgb,var(--c-accent,#0A63FF) 88%,#08335e 12%);
  border:1px solid #d9e7fb;
  font-weight:800;
  box-shadow:none;
}
.auth-body .auth-forgot-button:hover,
.auth-body .auth-forgot-button:focus-visible{
  background:#e8f2ff;
  color:var(--c-accent,#0A63FF);
  border-color:#bfd6f4;
  outline:2px solid rgba(10,99,255,.12);
  outline-offset:2px;
}
.auth-body .auth-back-link{
  color:#6f7f8f;
  font-weight:750;
}
.auth-body .auth-back-link:hover,
.auth-body .auth-back-link:focus-visible{
  color:var(--c-accent,#0A63FF);
  text-decoration:underline;
  text-underline-offset:3px;
  outline:none;
}
.auth-body .password-peek{
  background:#fff8e8;
  color:#946000;
  box-shadow:inset 0 0 0 1px rgba(180,120,0,.18);
}
.auth-body .password-peek:hover,
.auth-body .password-peek:focus-visible,
.auth-body .password-peek.is-visible{
  background:#fff0bf;
  color:#735000;
  box-shadow:inset 0 0 0 1px rgba(180,120,0,.30);
}
.auth-body .auth-divider{
  color:#8a98a6;
}

@media (max-width:760px){
  .auth-body .auth-submit{min-height:54px;font-size:15px}
  .auth-body .auth-register-button{min-height:50px;font-size:14px}
  .auth-body .auth-forgot-button{min-height:36px;font-size:13px;padding:7px 11px}
}

/* v1.0.28 — Brand, favicon, PWA identity & governed footer */
.brand-asset-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.brand-asset-card{display:flex;flex-direction:column;gap:9px;border:1px solid #dfe6ec;border-radius:14px;padding:14px;background:#fff}.brand-asset-card>span{font-size:13px;font-weight:800;color:#132235}.brand-asset-preview{height:104px;border-radius:10px;background:#f4f7f9;border:1px dashed #ccd6de;display:grid;place-items:center;overflow:hidden}.brand-asset-preview img{max-width:82%;max-height:78%;object-fit:contain}.brand-asset-preview strong{font-size:12px;color:#8996a3}.brand-color-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.brand-color-grid label{border:1px solid #e0e6eb;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;background:#fff}.brand-color-grid input[type=color]{width:100%;height:52px;padding:3px;border-radius:9px}.brand-color-grid code{font-size:12px;color:#536271}.cms-inline-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#f3f7fb;color:#4f6070;font-size:13px}.cms-inline-note a{font-weight:800;color:var(--c-accent)}
.footer-logo-admin-preview{margin-top:14px;min-height:100px;border:1px dashed #d6dee5;border-radius:12px;background:#f7f9fb;display:grid;place-items:center}.footer-logo-admin-preview img{max-height:68px;max-width:260px;object-fit:contain}.footer-link-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.footer-link-row{display:grid;grid-template-columns:30px minmax(130px,.8fr) minmax(220px,1.6fr) 120px 38px;gap:10px;align-items:end;padding:10px;border:1px solid #e0e6eb;border-radius:12px;background:#fff}.footer-link-row.is-dragging{opacity:.55}.footer-link-row label{margin:0}.footer-link-handle{align-self:center;cursor:grab;font-size:18px;color:#82909e}.footer-link-remove{width:38px;height:38px;border-radius:10px;border:1px solid #e4c4c4;background:#fff5f5;color:#a42323;font-size:20px}.footer-link-url{min-width:0}
.site-footer .footer-brand-title{color:#fff;font-size:16px;margin-top:2px}.footer-socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.footer-socials a{display:inline-flex;padding:7px 10px;border:1px solid rgba(255,255,255,.15);border-radius:999px;font-size:11px}.site-footer a:hover{color:var(--c-primary)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-legal-links{display:flex;flex-wrap:wrap;gap:16px}.footer-legal-links a{color:#c8d4df}.footer-install-app{margin-top:8px;align-self:flex-start;border:1px solid rgba(255,200,77,.35);background:rgba(255,200,77,.1);color:var(--c-primary);padding:9px 12px;border-radius:999px;font:inherit;font-weight:800;cursor:pointer}
@media(max-width:1199px){.brand-asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.brand-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-link-row{grid-template-columns:28px minmax(120px,.8fr) minmax(180px,1.5fr) 110px 38px}}
@media(max-width:760px){.brand-asset-grid,.brand-color-grid{grid-template-columns:1fr 1fr}.footer-link-row{grid-template-columns:26px 1fr 38px;align-items:start}.footer-link-row label{grid-column:2/3}.footer-link-row .footer-link-url{grid-column:2/3}.footer-link-row>label:nth-of-type(3){grid-column:2/3}.footer-link-remove{grid-column:3;grid-row:1}.footer-link-handle{grid-column:1;grid-row:1}.footer-bottom{align-items:flex-start;flex-direction:column;gap:10px}.footer-legal-links{gap:12px}}
@media(max-width:480px){.brand-asset-grid,.brand-color-grid{grid-template-columns:1fr}}
