/* ============================================================
   FORTYFY APP — ONBOARDING & APP STYLES
   Minimal for MVP. Design polish applied post-prototype.
   ============================================================ */

/* ============================================================
   SPINNER / LOADING STATE
   ============================================================ */
.fortyfy-step-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-16);
}

.fortyfy-step-loading[hidden] {
    display: none;
}

.fortyfy-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid var(--color-border);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: fortyfy-spin 0.7s linear infinite;
}

@keyframes fortyfy-spin {
    to { transform: rotate(360deg); }
}

/* ============================================================
   STEP CONTENT AREA
   ============================================================ */
.fortyfy-step-content {
    padding: var(--space-6) var(--space-4);
}

.fortyfy-step-content[hidden] {
    display: none;
}

/* ============================================================
   STEP HEADER
   ============================================================ */
.fortyfy-step__title {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-2);
    line-height: var(--line-height-tight);
}

.fortyfy-step__subtitle {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-6);
    line-height: var(--line-height-normal);
}

.fortyfy-step__intro {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-4);
    padding: var(--space-3) var(--space-4);
    background-color: var(--color-surface-alt);
    border-radius: var(--radius-md);
    border-left: 3px solid var(--color-primary);
}

/* ============================================================
   SELECTION CARDS
   ============================================================ */
.fortyfy-selection-grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
}

.fortyfy-selection-card {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    background-color: var(--color-surface);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color var(--transition-fast),
                background-color var(--transition-fast);
    min-height: var(--touch-target-min);
    text-align: left;
    width: 100%;
}

.fortyfy-selection-card:hover {
    border-color: var(--color-primary-light);
    background-color: var(--color-primary-pale);
}

.fortyfy-selection-card--selected {
    border-color: var(--color-primary);
    background-color: var(--color-primary-pale);
}

.fortyfy-selection-card__indicator {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border-radius: 50%;
    border: 2px solid var(--color-border-strong);
    margin-top: 2px;
    transition: border-color var(--transition-fast),
                background-color var(--transition-fast);
    display: flex;
    align-items: center;
    justify-content: center;
}

.fortyfy-selection-card--selected .fortyfy-selection-card__indicator {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
}

.fortyfy-selection-card--selected .fortyfy-selection-card__indicator::after {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: white;
}

.fortyfy-selection-card--multi .fortyfy-selection-card__indicator {
    border-radius: var(--radius-sm);
}

.fortyfy-selection-card--selected.fortyfy-selection-card--multi
.fortyfy-selection-card__indicator::after {
    content: '✓';
    width: auto;
    height: auto;
    border-radius: 0;
    background: none;
    color: white;
    font-size: 11px;
    font-weight: bold;
}

.fortyfy-selection-card__body {
    flex: 1;
}

.fortyfy-selection-card__label {
    display: block;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    margin-bottom: var(--space-1);
}

.fortyfy-selection-card__desc {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
}

/* ============================================================
   FORM FIELDS
   ============================================================ */
.fortyfy-field-group {
    margin-bottom: var(--space-5);
}

/* ============================================================
   ERROR STATE
   ============================================================ */
.fortyfy-step-error {
    margin: var(--space-4);
    padding: var(--space-3) var(--space-4);
    background-color: var(--color-coral-whisper);
    border: 1px solid var(--color-secondary);
    border-radius: var(--radius-md);
    color: var(--color-secondary);
    font-size: var(--font-size-sm);
}

.fortyfy-step-error[hidden] {
    display: none;
}

/* ============================================================
   NAVIGATION BUTTONS
   ============================================================ */
.fortyfy-onboarding__nav-buttons {
    display: flex;
    gap: var(--space-3);
    align-items: center;
}

.fortyfy-onboarding__nav-buttons .btn-ghost {
    flex: 0 0 auto;
    width: auto;
    padding: var(--space-3) var(--space-4);
    color: var(--color-text-secondary);
}

.fortyfy-onboarding__nav-buttons .btn-primary {
    flex: 1;
}

/* ============================================================
   WELCOME STEP
   ============================================================ */
.fortyfy-welcome__hero {
    text-align: center;
    padding: var(--space-8) var(--space-4) var(--space-6);
}

.fortyfy-welcome__headline {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    margin-bottom: var(--space-3);
    line-height: var(--line-height-tight);
}

.fortyfy-welcome__subhead {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin-bottom: var(--space-6);
}

.fortyfy-welcome__signin-link {
    text-align: center;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-top: var(--space-4);
}

/* ============================================================
   TRAINING WEEK START DAY PICKER
   ============================================================ */
.fortyfy-day-picker {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    margin-top: var(--space-4);
    margin-bottom: var(--space-6);
}

.fortyfy-day-btn {
    flex: 1;
    min-width: 40px;
    padding: var(--space-3) var(--space-2);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    text-align: center;
    transition: border-color var(--transition-fast),
                background-color var(--transition-fast),
                color var(--transition-fast);
}

.fortyfy-day-btn--selected {
    border-color: var(--color-primary);
    background-color: var(--color-primary);
    color: #ffffff;
}

.fortyfy-day-btn:hover:not(.fortyfy-day-btn--selected) {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

/* ============================================================
   BOTTOM NAV ITEMS
   ============================================================ */
.fortyfy-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    min-width: var(--touch-target-min);
    min-height: var(--touch-target-min);
    flex: 1;
    text-decoration: none;
    color: var(--color-text-secondary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-regular);
    transition: color var(--transition-fast);
}

.fortyfy-nav-item--active {
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
}