@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
    --sp-bg:#edf3f8;
    --sp-bg-strong:#e6edf7;
    --sp-surface:rgba(255,255,255,.88);
    --sp-surface-strong:#ffffff;
    --sp-line:rgba(17,24,39,.08);
    --sp-line-strong:rgba(47,111,237,.18);
    --sp-ink:#111827;
    --sp-muted:#617089;
    --sp-brand:#2f6fed;
    --sp-brand-dark:#1e4db3;
    --sp-accent:#0ea5a4;
    --sp-good:#1f9d73;
    --sp-warn:#b55b1f;
    --sp-shadow:0 22px 60px rgba(15,23,42,.10);
    --sp-shadow-strong:0 30px 90px rgba(15,23,42,.16);
    --sp-serif:"Fraunces",serif;
    --sp-sans:"Manrope",sans-serif;
}

body.platform-home,
body.dashboard-platform,
body.login-platform,
body.confirmation-platform{
    font-family:var(--sp-sans) !important;
    color:var(--sp-ink);
    background:
        radial-gradient(circle at top left, rgba(47,111,237,.13), transparent 24%),
        radial-gradient(circle at 90% 12%, rgba(14,165,164,.10), transparent 22%),
        linear-gradient(180deg, #f7fbff 0%, #eaf1f7 100%) !important;
}

body.platform-home .bar,
body.platform-home .hero-copy,
body.platform-home .hero-side,
body.platform-home .section-card,
body.platform-home .board,
body.platform-home .modal-card,
body.platform-home .foot-card{
    background:var(--sp-surface) !important;
    border:1px solid rgba(255,255,255,.72) !important;
    box-shadow:var(--sp-shadow) !important;
}

body.platform-home .bar{backdrop-filter:blur(20px)}
body.platform-home .eyebrow,
body.platform-home .tag,
body.platform-home .availability,
body.platform-home .chip,
body.platform-home .secondary,
body.platform-home .ghost{
    border-color:var(--sp-line) !important;
}

body.platform-home .primary{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark)) !important;
    box-shadow:0 16px 32px rgba(47,111,237,.22) !important;
}

body.platform-home .ghost{
    color:var(--sp-brand-dark) !important;
    border-color:rgba(47,111,237,.2) !important;
}

body.platform-home .tag,
body.platform-home .eyebrow{
    background:rgba(47,111,237,.08) !important;
    color:var(--sp-brand-dark) !important;
}

body.platform-home h1,
body.platform-home h2,
body.platform-home h3,
body.platform-home .brand,
body.dashboard-platform .dash-title,
body.dashboard-platform .welcome-title,
body.login-platform .welcome-logo,
body.confirmation-platform h1,
body.confirmation-platform h2{
    font-family:var(--sp-serif) !important;
    letter-spacing:-.03em;
}

body.platform-home .story{
    background:linear-gradient(160deg,#0f1728,#1e3459) !important;
    color:#eff6ff !important;
}

body.platform-home .story p{color:rgba(239,246,255,.78) !important}
body.platform-home .metric,
body.platform-home .feature,
body.platform-home .path-card,
body.platform-home .pick,
body.platform-home .summary,
body.platform-home .pass,
body.platform-home .member,
body.platform-home .note,
body.platform-home .access,
body.platform-home .day,
body.platform-home .slot,
body.platform-home .option{
    background:rgba(255,255,255,.84) !important;
    border-color:var(--sp-line) !important;
}

body.platform-home .chip.active{
    background:#0f1728 !important;
    border-color:#0f1728 !important;
}

body.platform-home .day.active,
body.platform-home .slot.selected{
    border-color:var(--sp-line-strong) !important;
    background:linear-gradient(135deg,rgba(47,111,237,.10),rgba(255,255,255,.9)) !important;
    box-shadow:0 18px 34px rgba(47,111,237,.12) !important;
}

body.platform-home .availability.ok{background:rgba(31,157,115,.12) !important;color:var(--sp-good) !important}
body.platform-home .availability.warn{background:rgba(181,91,31,.12) !important;color:var(--sp-warn) !important}
body.platform-home .summary-box{background:#0f1728 !important}
body.platform-home .days-toggle{
    margin-top:6px;
    padding:11px 14px;
    border-radius:16px;
    border:1px dashed rgba(47,111,237,.22);
    background:rgba(47,111,237,.05);
    color:var(--sp-brand-dark);
    font-weight:700;
    cursor:pointer;
}
body.platform-home .hidden-date{display:none}

body.dashboard-platform .dash-header{
    background:transparent !important;
    padding-top:24px;
}

body.dashboard-platform .dash-header-inner,
body.dashboard-platform .welcome-card,
body.dashboard-platform .stat-card,
body.dashboard-platform .card,
body.dashboard-platform .bookings-card,
body.dashboard-platform .reschedule-modal-content{
    background:var(--sp-surface) !important;
    border:1px solid rgba(255,255,255,.78) !important;
    border-radius:28px !important;
    box-shadow:var(--sp-shadow) !important;
}

body.dashboard-platform .dash-logo-circle,
body.dashboard-platform .stat-icon,
body.dashboard-platform .dash-avatar{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark)) !important;
    color:#fff !important;
    border:none !important;
}

body.dashboard-platform .dash-title{font-size:1.45rem}
body.dashboard-platform .dash-subtitle,
body.dashboard-platform .welcome-subtitle,
body.dashboard-platform .stat-note,
body.dashboard-platform .section-link,
body.dashboard-platform .class-meta,
body.dashboard-platform .credit-meta,
body.dashboard-platform .booking-date-secondary,
body.dashboard-platform .booking-class-secondary{
    color:var(--sp-muted) !important;
}

body.dashboard-platform .dash-btn,
body.dashboard-platform .booking-action-btn,
body.dashboard-platform .section-link{
    border-radius:999px !important;
}

body.dashboard-platform .dash-btn-primary,
body.dashboard-platform .booking-action-btn-primary{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark)) !important;
    color:#fff !important;
    border:none !important;
}

body.dashboard-platform .dash-btn-soft{
    background:rgba(47,111,237,.06) !important;
    color:var(--sp-ink) !important;
    border:1px solid rgba(47,111,237,.12) !important;
}

body.dashboard-platform .status-badge,
body.dashboard-platform .badge-success,
body.dashboard-platform .badge-warning,
body.dashboard-platform .badge-danger{
    border-radius:999px !important;
}

body.dashboard-platform .mobile-menu-toggle,
body.dashboard-platform .mobile-quick-nav{
    background:#0f1728 !important;
    color:#fff !important;
}

body.dashboard-platform .bookings-table th{
    color:var(--sp-muted) !important;
    border-bottom-color:var(--sp-line) !important;
}

body.dashboard-platform .bookings-table td{
    border-bottom-color:rgba(17,24,39,.06) !important;
}

body.dashboard-platform .bookings-table tr:hover td{
    background:rgba(47,111,237,.03);
}

body.login-platform .floating-elements,
body.login-platform .terra-companion-overlay,
body.login-platform .feature-badge{
    display:none !important;
}

body.login-platform{
    min-height:100vh;
}

body.login-platform .welcome-panel,
body.login-platform .form-panel{
    backdrop-filter:blur(16px);
}

body.login-platform .welcome-panel{
    background:linear-gradient(160deg,#0f1728,#1e3459) !important;
    color:#eff6ff !important;
}

body.login-platform .welcome-logo{font-size:2.2rem !important;color:#fff !important}
body.login-platform .welcome-subtitle{color:rgba(239,246,255,.8) !important}
body.login-platform .hero-animation{opacity:.22 !important}

body.login-platform .form-panel,
body.login-platform .auth-container{
    background:rgba(255,255,255,.92) !important;
}

body.login-platform .subtitle,
body.login-platform .footer-links,
body.login-platform .logo-area{
    color:var(--sp-muted) !important;
}

body.login-platform .btn{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark)) !important;
    color:#fff !important;
    border:none !important;
    border-radius:18px !important;
}

body.login-platform .input-container input{
    border-color:var(--sp-line) !important;
    background:#f8fbff !important;
}

body.confirmation-platform .confirmation-card,
body.confirmation-platform .card{
    background:var(--sp-surface) !important;
    box-shadow:var(--sp-shadow-strong) !important;
    border:1px solid rgba(255,255,255,.82) !important;
}

body.confirmation-platform .logo,
body.confirmation-platform .logo-circle,
body.confirmation-platform .logoFrame{
    display:none !important;
}

body.confirmation-platform .hero-section,
body.confirmation-platform .hero{
    background:linear-gradient(160deg,#0f1728,#1e3459) !important;
    color:#eff6ff !important;
    border-radius:28px !important;
}

body.confirmation-platform .details-card,
body.confirmation-platform .details,
body.confirmation-platform .panel,
body.confirmation-platform .action-panel{
    background:rgba(255,255,255,.86) !important;
    border-color:var(--sp-line) !important;
}

body.confirmation-platform .btn-primary,
body.confirmation-platform .btnPrimary{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark)) !important;
    color:#fff !important;
    border:none !important;
}

body.confirmation-platform .btn-ghost,
body.confirmation-platform .btnGhost{
    background:rgba(47,111,237,.06) !important;
    color:var(--sp-ink) !important;
    border:1px solid rgba(47,111,237,.12) !important;
}

body.confirmation-platform .check-badge,
body.confirmation-platform .check{
    background:linear-gradient(135deg,var(--sp-accent),var(--sp-brand)) !important;
}

body.confirmation-platform .fine-print,
body.confirmation-platform .fineprint,
body.confirmation-platform .subtitle{
    color:var(--sp-muted) !important;
}

body.access-platform .container{
    background:var(--sp-surface) !important;
    border:1px solid rgba(255,255,255,.82) !important;
    box-shadow:var(--sp-shadow) !important;
    border-radius:28px !important;
}

body.access-platform h1{
    font-family:var(--sp-serif) !important;
    color:var(--sp-ink) !important;
}

body.access-platform p,
body.access-platform .back-link{
    color:var(--sp-muted) !important;
}

body.access-platform input{
    background:#f8fbff !important;
    border-color:var(--sp-line) !important;
}

body.access-platform .btn{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark)) !important;
    color:#fff !important;
    border:none !important;
}

body.access-platform .btn-secondary{
    background:rgba(47,111,237,.06) !important;
    color:var(--sp-ink) !important;
    border:1px solid rgba(47,111,237,.12) !important;
}
