/* /Components/Challenge/ScenarioReflectionView.razor.rz.scp.css */
.scenario-reflection-view__scenario[b-b87idd5uns] {
    font-size: var(--font-size-heading);
    line-height: var(--line-height-normal);
    color: var(--text-primary);
    margin: 0 0 var(--space-lg);
}

.scenario-reflection-view__options[b-b87idd5uns] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.scenario-reflection-view__option[b-b87idd5uns] {
    width: 100%;
    text-align: start;
    padding: var(--space-md);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-default);
    background: var(--surface-card);
    color: var(--text-primary);
    font-size: var(--font-size-base);
    cursor: pointer;
}

.scenario-reflection-view__option--selected[b-b87idd5uns] {
    border-color: var(--color-brand-primary);
    background: var(--path-node-current-bg);
}

.scenario-reflection-view__feedback[b-b87idd5uns] {
    margin-top: var(--space-lg);
    background: var(--feedback-bg);
    color: var(--feedback-text);
    border-radius: var(--radius-md);
    padding: var(--space-md) var(--space-lg);
}

.scenario-reflection-view__feedback p[b-b87idd5uns] {
    margin: 0;
    font-size: var(--font-size-body);
    line-height: var(--line-height-normal);
}
/* /Components/LessonContent/ChecklistView.razor.rz.scp.css */
.checklist-view__title[b-7hszjdm9t6] { font-size: var(--font-size-heading); color: var(--text-primary); margin: 0 0 var(--space-md); }

.checklist-view__list[b-7hszjdm9t6] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-sm); }

.checklist-view__item[b-7hszjdm9t6] { display: flex; align-items: flex-start; gap: var(--space-sm); font-size: var(--font-size-base); color: var(--text-primary); }

.checklist-view__icon[b-7hszjdm9t6] { color: var(--color-brand-secondary); font-size: 20px; margin-top: 2px; flex-shrink: 0; }
/* /Components/LessonContent/ComparisonListView.razor.rz.scp.css */
/* NOTE: unlike Challenge feedback (which never uses success/danger colors,
   since there's no right/wrong answer there), a "do/don't" Lesson is
   genuine advice polarity — green/red here is the correct, intentional use
   of those tokens, not a mistake. */

.comparison-view[b-qrg2dusew8] { display: flex; flex-direction: column; gap: var(--space-lg); }

.comparison-view__column[b-qrg2dusew8] { border-radius: var(--radius-md); padding: var(--space-lg); }

.comparison-view__column h3[b-qrg2dusew8] { margin: 0 0 var(--space-sm); font-size: var(--font-size-heading); }

.comparison-view__column ul[b-qrg2dusew8] { margin: 0; padding-inline-start: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-xs); }

.comparison-view__column--do[b-qrg2dusew8] { background: var(--state-success-bg); }

.comparison-view__column--do h3[b-qrg2dusew8] { color: var(--state-success-text); }

.comparison-view__column--dont[b-qrg2dusew8] { background: var(--state-danger-bg); }

.comparison-view__column--dont h3[b-qrg2dusew8] { color: var(--state-danger-text); }
/* /Components/LessonContent/ExampleDialogueView.razor.rz.scp.css */
.dialogue-view[b-kmb2cu6bap] { display: flex; flex-direction: column; gap: var(--space-md); }

.dialogue-view__line[b-kmb2cu6bap] { background: var(--surface-card); border: 1px solid var(--border-default); border-radius: var(--radius-md); padding: var(--space-md); }

.dialogue-view__speaker[b-kmb2cu6bap] { display: block; font-size: var(--font-size-caption); font-weight: 500; color: var(--color-brand-primary); margin-bottom: var(--space-xs); }

.dialogue-view__text[b-kmb2cu6bap] { margin: 0; font-size: var(--font-size-base); color: var(--text-primary); line-height: var(--line-height-normal); }
/* /Components/LessonContent/ExplanationView.razor.rz.scp.css */
.explanation-view__image[b-b710xs7v3s] { width: 100%; border-radius: var(--radius-md); margin-bottom: var(--space-lg); }

.explanation-view__text[b-b710xs7v3s] { font-size: var(--font-size-base); line-height: var(--line-height-normal); color: var(--text-primary); }
/* /Components/Shared/PathNode.razor.rz.scp.css */
/* PathNode.razor.css — scoped to this component only.
   Uses the --path-node-* and --path-line tokens added to tokens.css
   specifically for this screen. */

.path-node-wrapper[b-fmjfb2fyz1] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.path-node__connector[b-fmjfb2fyz1] {
    inline-size: 2px;
    block-size: 28px;
    background: var(--path-line);
}

.path-node[b-fmjfb2fyz1] {

    
    
    
    
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-pill);
    text-decoration: none;
}

.path-node--complete[b-fmjfb2fyz1] {
    inline-size: 52px;
    block-size: 52px;
    background: var(--path-node-complete-bg);
    border: 1px solid var(--border-default);
}

.path-node--complete .path-node__icon[b-fmjfb2fyz1] {
    color: var(--path-node-complete-icon);
    font-size: 22px;
}

.path-node--current[b-fmjfb2fyz1] {
    inline-size: 64px;
    block-size: 64px;
    background: var(--path-node-current-bg);
    border: 2px solid var(--path-node-current-border);
}

.path-node--current .path-node__icon[b-fmjfb2fyz1] {
    color: var(--path-node-current-icon);
    font-size: 26px;
}

.path-node--locked[b-fmjfb2fyz1] {
    inline-size: 52px;
    block-size: 52px;
    background: var(--path-node-locked-bg);
    border: 1px solid var(--border-default);
    cursor: not-allowed;
}

.path-node--locked .path-node__icon[b-fmjfb2fyz1] {
    color: var(--path-node-locked-icon);
    font-size: 20px;
}

.path-node__label[b-fmjfb2fyz1] {
    margin: var(--space-xs) 0 0;
    font-size: var(--font-size-caption);
    color: var(--text-muted);
    text-align: center;
}

.path-node__label--current[b-fmjfb2fyz1] {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--text-primary);
}
/* /Components/Shared/SkillCard.razor.rz.scp.css */
/* SkillCard.razor.css — scoped to this component only.
   Uses semantic tokens from wwwroot/css/tokens.css; --skill-color is set
   inline per-instance from the Skill's ColorHex (see SkillCard.razor). */

.skill-card[b-4bwk45l6sg] {
    display: flex;
    align-items: stretch;
    background: var(--surface-card);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
}

.skill-card:hover[b-4bwk45l6sg] {
    box-shadow: var(--shadow-md);
}

.skill-card__accent[b-4bwk45l6sg] {
    /* logical property so this stays correct in RTL layouts */
    inline-size: 6px;
    background: var(--skill-color);
    flex-shrink: 0;
}

.skill-card__body[b-4bwk45l6sg] {
    flex: 1;
    padding: var(--space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.skill-card__title[b-4bwk45l6sg] {
    font-size: var(--font-size-heading);
    color: var(--text-primary);
    margin: 0;
}

.skill-card__description[b-4bwk45l6sg] {
    font-size: var(--font-size-body);
    color: var(--text-secondary);
    margin: 0;
    line-height: var(--line-height-normal);
}

.skill-card__progress[b-4bwk45l6sg] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-sm);
}

.skill-card__progress-track[b-4bwk45l6sg] {
    flex: 1;
    height: 6px;
    border-radius: var(--radius-pill);
    background: var(--surface-sunken);
    overflow: hidden;
}

.skill-card__progress-fill[b-4bwk45l6sg] {
    height: 100%;
    background: var(--skill-color);
    border-radius: var(--radius-pill);
}

.skill-card__progress-text[b-4bwk45l6sg] {
    font-size: var(--font-size-caption);
    color: var(--text-muted);
    white-space: nowrap;
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* MainLayout.razor.css — scoped to the app shell only. */

.app-shell[b-i9ct7wzaoy] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.app-header[b-i9ct7wzaoy] {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--surface-card);
    border-bottom: 1px solid var(--border-default);
    padding: var(--space-md) var(--space-lg);
}

.app-header__brand[b-i9ct7wzaoy] {
    font-size: var(--font-size-heading);
    font-weight: 500;
    color: var(--color-brand-primary);
    text-decoration: none;
}

.app-content[b-i9ct7wzaoy] {
    flex: 1;
}
/* /Pages/Home.razor.rz.scp.css */
/* Home.razor.css — minimal layout just to test SkillCard on a real page.
   Will likely evolve once the real Skills Home design is finalized. */

.skills-home[b-wcljz6zr2v] {
direction:rtl;
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-xl) var(--space-lg);
}

.skills-home__title[b-wcljz6zr2v] {
    font-size: var(--font-size-title);
    color: var(--text-primary);
    margin: 0 0 var(--space-lg);
}

.skills-home__list[b-wcljz6zr2v] {
    
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}
/* /Pages/Lesson/ChallengeScreen.razor.rz.scp.css */
.challenge-screen[b-nb1pbcxb7r] {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--surface-page);
    padding: env(safe-area-inset-top, 0px) var(--space-lg) env(safe-area-inset-bottom, 0px);
    box-sizing: border-box;
}

.challenge-screen__topbar[b-nb1pbcxb7r] {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding-top: var(--space-md);
}

.challenge-screen__progress[b-nb1pbcxb7r] {
    flex: 1;
    height: 6px;
    border-radius: var(--radius-pill);
    background: var(--surface-sunken);
    overflow: hidden;
}

.challenge-screen__progress-fill[b-nb1pbcxb7r] {
    height: 100%;
    width: 75%; /* step 3 of 4 */
    background: var(--color-brand-primary);
    border-radius: var(--radius-pill);
}

.challenge-screen__exit[b-nb1pbcxb7r] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    text-decoration: none;
    font-size: 18px;
    flex-shrink: 0;
}

.challenge-screen__exit:hover[b-nb1pbcxb7r] {
    background: var(--surface-sunken);
}

.challenge-screen__content[b-nb1pbcxb7r] {
    flex: 1;
    padding: var(--space-xl) 0;
    overflow-y: auto;
}

.challenge-screen__footer[b-nb1pbcxb7r] {
    padding: var(--space-lg) 0 var(--space-xl);
}

.challenge-screen__cta[b-nb1pbcxb7r] {
    width: 100%;
}

.challenge-screen__cta:disabled[b-nb1pbcxb7r] {
    opacity: 0.5;
    cursor: not-allowed;
}

.challenge-screen__status[b-nb1pbcxb7r] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--space-md);
}
/* /Pages/Lesson/CompletionScreen.razor.rz.scp.css */
.completion-screen[b-7w088v2ecl] {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--surface-page);
    padding: env(safe-area-inset-top, 0px) var(--space-lg) env(safe-area-inset-bottom, 0px);
    box-sizing: border-box;
}

.completion-screen__content[b-7w088v2ecl] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--space-lg);
}

.completion-screen__icon[b-7w088v2ecl] {
    font-size: 56px;
    color: var(--gamify-points);
}

.completion-screen__xp[b-7w088v2ecl] {
    display: inline-block;
    font-size: var(--font-size-display);
    font-weight: 700;
    color: var(--gamify-points);
    background: var(--gamify-points-bg);
    padding: var(--space-sm) var(--space-xl);
    border-radius: var(--radius-pill);
}

.completion-screen__message[b-7w088v2ecl] {
    font-size: var(--font-size-base);
    color: var(--text-secondary);
    max-width: 320px;
    margin: 0;
    line-height: var(--line-height-normal);
}

.completion-screen__footer[b-7w088v2ecl] {
    padding: var(--space-lg) 0 var(--space-xl);
}

.completion-screen__cta[b-7w088v2ecl] {
    width: 100%;
}

.completion-screen__status[b-7w088v2ecl] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--space-md);
}
/* /Pages/Lesson/HookScreen.razor.rz.scp.css */
/* HookScreen.razor.css — scoped to this page only. */

.hook-screen[b-n694qg0eam] { min-height: 100dvh; /* falls back to full content height on very old
                           WebViews that don't support dvh — acceptable */ display: flex; flex-direction: column; background: var(--surface-page); padding: env(safe-area-inset-top, 0px) var(--space-lg) env(safe-area-inset-bottom, 0px); box-sizing: border-box; }

.hook-screen__topbar[b-n694qg0eam] { display: flex; justify-content: flex-end; padding-top: var(--space-md); }

.hook-screen__exit[b-n694qg0eam] { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-pill); color: var(--text-muted); text-decoration: none; font-size: 18px; }

.hook-screen__exit:hover[b-n694qg0eam] { background: var(--surface-sunken); }

.hook-screen__content[b-n694qg0eam] { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center; padding: var(--space-2xl) 0; }

.hook-screen__text[b-n694qg0eam] { font-size: var(--font-size-display); line-height: var(--line-height-tight); color: var(--text-primary); max-width: 480px; }

.hook-screen__footer[b-n694qg0eam] { padding: var(--space-lg) 0 var(--space-xl); }

.hook-screen__cta[b-n694qg0eam] { width: 100%; }

.hook-screen__status[b-n694qg0eam] { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: var(--space-md); }
/* /Pages/Lesson/LearnScreen.razor.rz.scp.css */
/* LearnScreen.razor.css — same app-like, full-viewport pattern as
   HookScreen/ChallengeScreen, so all four Lesson screens feel consistent
   inside the Android WebView (and in a regular mobile browser). */

.learn-screen[b-62vphyszup] {
    min-height: 100dvh; /* accounts for WebView/browser chrome show-hide,
                           unlike 100vh which jumps on mobile */
    display: flex;
    flex-direction: column;
    background: var(--surface-page);
    padding: env(safe-area-inset-top, 0px) var(--space-lg) env(safe-area-inset-bottom, 0px);
    box-sizing: border-box;
}

.learn-screen__topbar[b-62vphyszup] {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding-top: var(--space-md);
}

.learn-screen__progress[b-62vphyszup] {
    flex: 1;
    height: 6px;
    border-radius: var(--radius-pill);
    background: var(--surface-sunken);
    overflow: hidden;
}

.learn-screen__progress-fill[b-62vphyszup] {
    height: 100%;
    width: 50%; /* step 2 of 4 — fixed, since the flow order never changes */
    background: var(--color-brand-primary);
    border-radius: var(--radius-pill);
}

.learn-screen__exit[b-62vphyszup] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    text-decoration: none;
    font-size: 18px;
    flex-shrink: 0;
    /* 36px is below the usual ~44px touch-target guideline, but this is a
       secondary/escape action, not a primary one — acceptable trade-off
       to keep it visually small and out of the way. */
}

.learn-screen__exit:hover[b-62vphyszup],
.learn-screen__exit:active[b-62vphyszup] {
    background: var(--surface-sunken);
}

.learn-screen__content[b-62vphyszup] {
    flex: 1;
    padding: var(--space-xl) 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* smooth momentum scrolling in WebView */
}

.learn-screen__footer[b-62vphyszup] {
    padding: var(--space-lg) 0 var(--space-xl);
}

.learn-screen__cta[b-62vphyszup] {
    width: 100%;
    min-height: 44px; /* comfortable tap target for the primary action */
}

.learn-screen__status[b-62vphyszup] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--space-md);
}
/* /Pages/SkillPath/SkillPath.razor.rz.scp.css */
/* SkillPath.razor.css — page-level layout only; PathNode already brings
   its own look via --path-node-* tokens. */

.skill-path[b-a6jmn0lwhb] {
    max-width: 480px;
    margin: 0 auto;
    padding: var(--space-xl) var(--space-lg);
}

.skill-path__header[b-a6jmn0lwhb] {
    text-align: center;
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-lg);
    border-bottom: 3px solid var(--skill-color, var(--border-strong));
}

.skill-path__header h1[b-a6jmn0lwhb] {
    font-size: var(--font-size-title);
    color: var(--text-primary);
    margin: 0 0 var(--space-xs);
}

.skill-path__header p[b-a6jmn0lwhb] {
    font-size: var(--font-size-body);
    color: var(--text-secondary);
    margin: 0;
}

.skill-path__topic-title[b-a6jmn0lwhb] {
    font-size: var(--font-size-heading);
    color: var(--text-primary);
    text-align: center;
    margin: var(--space-xl) 0 var(--space-md);
}

.skill-path__error[b-a6jmn0lwhb] {
    text-align: center;
}
