/* NF Brand UI v1. Presentation only; existing routes, controls and theme preference are preserved.
   Official palette/type: NF Brand Identity 2026, physical PDF pages 10–11 and 23–24.
   Sizes, surfaces, contrast variants and component rules are digital adaptations. */
@font-face{font-family:Rubik;src:url('/fonts/nf-rubik-latin-ext-v1.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Rubik;src:url('/fonts/nf-rubik-latin-v1.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Montserrat;src:url('/fonts/nf-montserrat-latin-ext-v1.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Montserrat;src:url('/fonts/nf-montserrat-latin-v1.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
 --nf-blue:#005aaa;--nf-navy:#002f66;--nf-green:#99ca3c;
 --font-sans:Rubik,"Segoe UI",Arial,sans-serif;
 --font-heading:Montserrat,"Segoe UI",Arial,sans-serif;
 --color-text:#334155;--color-page:#f8fafc;--color-surface:#ffffff;
 --color-brand:#005aaa;--color-link:#005aaa;
 --color-primary:#005aaa;--color-primary-hover:#004785;
 --color-secondary-bg:#eef4fb;--color-secondary-text:#002f66;
 --color-border:#d3dfec;--color-border-soft:#e2e8f0;
 --color-muted:#475569;--color-hint:#475569;
 --color-input-border:#64748b;--color-focus:#005aaa;--color-focus-on-dark:#99ca3c;
 --color-hero-start:#002f66;--color-hero-end:#005aaa;--color-hero-eyebrow:#d6efab;
 --color-eyebrow:#005aaa;--color-table-border:#e2e8f0;--color-table-heading:#475569;
 --color-footer:#475569;--color-pill-bg:#eef4fb;--color-fieldset-border:#d3dfec;--color-divider:#e2e8f0;
 --radius-button:10px;--radius-xl:16px;
 --admin-sidebar-start:#002f66;--admin-sidebar-end:#002f66;--admin-heading:#002f66;
 --admin-nav-text:#e0ebfa;--admin-nav-section:#c4d8f2;--admin-nav-border:#7b9ec6;
 --admin-nav-active:#005aaa;--admin-nav-accent:#99ca3c;--admin-nav-current:#e0ebfa;
 --admin-chevron:#c4d8f2;--admin-page-bg:#f8fafc;--admin-brand-muted:#d3e3f8;
 --admin-avatar-bg:#005aaa;--admin-identity-muted:#d3e3f8;--admin-footer:#475569;
 --admin-guide-end:#eef4fb;--admin-task-bg:#eef4fb;--admin-task-text:#002f66;--admin-task-hover:#e0ebfa;
}
:root[data-theme="dark"]{
 --color-text:#e4edf5;--color-page:#101b2a;--color-surface:#192b40;
 --color-brand:#a3ccff;--color-link:#a3ccff;--color-primary:#005aaa;--color-primary-hover:#004785;
 --color-secondary-bg:#233e5b;--color-secondary-text:#dbeafe;
 --color-border:#4c6580;--color-border-soft:#3d5671;--color-muted:#becdde;--color-hint:#becdde;
 --color-input-border:#8298b2;--color-focus:#a3ccff;--color-eyebrow:#a3ccff;
 --color-table-border:#3d5671;--color-table-heading:#becdde;--color-footer:#becdde;
 --color-pill-bg:#233e5b;--color-fieldset-border:#4c6580;--color-divider:#3d5671;
 --admin-heading:#e4edf5;--admin-page-bg:#101b2a;--admin-footer:#becdde;
 --admin-guide-end:#192b40;--admin-task-bg:#233e5b;--admin-task-text:#dbeafe;--admin-task-hover:#294867;
}

.public-app,.admin-app{font-family:var(--font-sans)}
.public-app{background:var(--color-page);color:var(--color-text)}
.public-app :is(h1,h2,h3),.admin-app :is(h1,h2,h3){font-family:var(--font-heading);font-weight:650;line-height:1.35;letter-spacing:-.02em}
.public-app :is(h1,h2,h3){color:var(--admin-heading)}
.public-app .hero :is(h1,h2,h3){color:var(--color-on-dark)}
.public-app .btn,.admin-app .btn{min-height:44px;font-weight:600}
.admin-app form[action$="/ticket-email"] .btn:disabled{background:var(--color-border-soft);color:var(--color-hint);border:1px solid var(--color-border);cursor:not-allowed;box-shadow:none}
.admin-app .audit-filter>*{min-width:0}
.admin-app .audit-filter input{width:100%}
.admin-app :is(.dash-toolbar,.dash-periods){min-width:0;max-width:100%}
.public-app .hint,.admin-app .hint{font-size:13px;line-height:1.5}
.public-app .btn.secondary,.admin-app .btn.secondary{border:1px solid var(--color-input-border)}
.public-app .table,.admin-app .table,.stat strong,.dash-kpi-value,.dash-kpi strong,.pe-price strong{font-variant-numeric:tabular-nums}
.public-app .brand{gap:20px}
.public-app .brand-logo{width:192px;max-height:none;height:auto;flex-shrink:0}
.public-app .brand>span{border-left:1px solid var(--color-border);padding-left:20px;color:var(--color-brand);font-size:15px;letter-spacing:.03em}
.public-app .topin{gap:20px}
.admin-app .admin-brand{flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.admin-app .admin-brand img{width:204px;max-width:100%;height:auto;padding:10px;background:#fff;border-radius:8px}
.admin-app .admin-brand>span{font-size:13px;line-height:1.4;letter-spacing:.03em}
.admin-app .admin-brand small{font-size:10px;letter-spacing:.08em}
.admin-app .admin-auth-head{background:var(--nf-navy);gap:20px}
.admin-app .admin-auth-head img{width:200px;max-width:100%;height:auto;padding:10px;background:#fff}
.admin-app .admin-sidebar-top{align-items:flex-start}
.admin-app .admin-sidebar-close{flex:none}
.admin-app .admin-sidebar :is(.admin-link,.admin-nav-group summary){min-height:44px}
.public-registration-panel .form-step-num{font-family:var(--font-sans)}
.public-registration-panel .public-wizard-actions .btn{min-height:48px}
.admin-app .page-link.is-current{color:var(--color-on-dark)}
:root[data-theme="dark"] :is(.registrations-tabs a.is-active,.registrations-bulk-panel>summary,.registration-batch-link:hover,.admin-back-link:hover,.dash-spark,.pe-icon,.pec-date span,.pec-icon,.landing-channel-table .landing-rate,.sc-compare-arrow){color:var(--color-link)}
:root[data-theme="dark"] .registrations-tabs a.is-active{border-color:var(--color-link);outline-color:var(--color-link)}
:root[data-theme="dark"] .public-help-steps li::before{color:var(--color-secondary-text)}
:root[data-theme="dark"] :is(.dash-bar,.dash-fill){fill:var(--color-link)}
:root[data-theme="dark"] :is(.payment-method-option:has(input:checked),.schedule-day-card:has(input:checked),.sc-option:has(input:checked)){border-color:var(--color-link);outline-color:var(--color-link)}

/* Landing themes remain event-owned. Only typography, logo and control geometry are shared. */
body.lp{--lp-font:Rubik,"Segoe UI",Arial,sans-serif;font-family:var(--lp-font)}
.lp :is(h1,h2,h3){font-family:var(--font-heading);font-weight:650}
.lp .lp-logo{width:192px;height:auto;max-width:100%}
.lp .lp-brand{gap:20px}
.lp :is(.lp-btn,.lp-btn-ghost){border-radius:10px}
.lp :is(.lp-stats,.lp-price,.lp-countdown,.lp-stat-value){font-variant-numeric:tabular-nums}

@media(max-width:1200px){
 .admin-app .audit-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
 .admin-app .audit-filter-search,.admin-app .audit-filter .actions{grid-column:1/-1}
}
@media(max-width:900px){.public-app .brand{gap:12px}.public-app .brand>span{padding-left:12px}}
@media(max-width:800px){
 .admin-app .admin-mobile-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px 12px;align-items:center}
 .admin-app .admin-mobile-menu{grid-column:1;grid-row:1}
 .admin-app .admin-mobile-head img{display:block;grid-column:2/4;grid-row:1;justify-self:end;width:192px;max-width:100%;height:auto;padding:8px;background:#fff}
 .admin-app .admin-mobile-head strong{grid-column:1/3;grid-row:2;font-size:13px;letter-spacing:.03em}
 .admin-app .admin-mobile-head .theme-toggle{grid-column:3;grid-row:2}
 .admin-app .admin-brand img{width:192px}
}
@media(max-width:720px){
 .public-app .topin{padding:12px 16px;gap:12px;align-items:center}
 .public-app .brand{flex-direction:column;align-items:flex-start;gap:5px}
 .public-app .brand-logo{width:180px}
 .public-app .brand>span{padding:0;border:0;font-size:11px;letter-spacing:.06em}
 .lp .lp-brand{flex-wrap:wrap;gap:10px 16px}
 .lp .lp-logo{width:180px}
}
@media print{.public-app,.admin-app,body.lp{color:#000;background:#fff}.admin-app .admin-mobile-head{display:none}}
@media(max-width:600px){
 .admin-app .audit-filter{grid-template-columns:minmax(0,1fr)}
 .admin-app .dash-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:var(--radius-md);overflow:visible}
 .admin-app .dash-period{display:flex;align-items:center;justify-content:center;min-height:44px;text-align:center;white-space:normal}
}
