/*
 * Curriculumify customer experience foundation.
 * Customer-facing pages opt in with `.cf-app`; this file is not for Nova or
 * institution/admin interfaces.
 */
:root {
    --cf-font: 'Poppins', Arial, sans-serif;
    --cf-brand: #1264f7;
    --cf-brand-hover: #074dcc;
    --cf-product-action: #006aff;
    --cf-report-info: #008eff;
    --cf-legacy-nav: #e23535;
    --cf-text: #0b1736;
    --cf-muted: #5f6d84;
    --cf-bg: #f8faff;
    --cf-surface: #ffffff;
    --cf-border: #dfe7f2;
    --cf-success: #0c9f68;
    --cf-warning: #f59e0b;
    --cf-danger: #b42318;
    --cf-radius: 8px;
    --cf-radius-control: 8px;
    --cf-radius-panel: 12px;
    --cf-radius-card: 22px;
    --cf-radius-feature: 28px;
    --cf-radius-pill: 999px;
    --cf-control-sm: 44px;
    --cf-control-md: 50px;
    --cf-control-lg: 56px;
    --cf-z-sticky: 100;
    --cf-z-nav: 200;
    --cf-z-modal: 1000;
    --cf-z-loader: 1100;
    --cf-shadow-card: 0 8px 24px rgba(11, 23, 54, .08);
    --cf-shadow-floating: 0 20px 56px rgba(11, 23, 54, .14);
    --cf-motion: 160ms ease;
}

.cf-app {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

.cf-tabular,
[data-tabular] {
    font-variant-numeric: tabular-nums;
}

.cf-touch-target,
[data-touch-target] {
    min-width: 44px;
    min-height: 44px;
}

.cf-safe-bottom {
    padding-bottom: max(16px, env(safe-area-inset-bottom));
}

.cf-app :where(a, button, input, textarea, select, [role="button"]):focus-visible {
    outline: 3px solid rgba(18, 100, 247, .38);
    outline-offset: 3px;
}

.cf-app :where(button, [role="button"], .button, .btn) {
    -webkit-tap-highlight-color: transparent;
}

.cf-app :where(button, [role="button"], .button, .btn)[aria-busy="true"] {
    cursor: progress;
}

@media (prefers-reduced-motion: reduce) {
    .cf-app,
    .cf-app *,
    .cf-app *::before,
    .cf-app *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
