/* Rockfish Creek Academy — project styles.
   Plain CSS on top of Bootstrap 5. No preprocessor, no build step. */

:root {
    --rfca-accent: #2f6f4e;
    --rfca-accent-dark: #23543b;
    --rfca-ink: #23281f;
    --rfca-parchment: #f7f4ed;
    --rfca-parchment-deep: #efeade;
    --rfca-rule: rgba(35, 40, 31, 0.12);
    --rfca-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
}

/* ---------------------------------------------------------------------------
   Application chrome (authenticated)
   --------------------------------------------------------------------------- */

.navbar-brand {
    letter-spacing: 0.01em;
}

.card {
    border: 1px solid rgba(0, 0, 0, 0.075);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--rfca-accent);
    box-shadow: 0 0 0 0.2rem rgba(47, 111, 78, 0.15);
}

.btn-primary {
    --bs-btn-bg: var(--rfca-accent);
    --bs-btn-border-color: var(--rfca-accent);
    --bs-btn-hover-bg: var(--rfca-accent-dark);
    --bs-btn-hover-border-color: var(--rfca-accent-dark);
    --bs-btn-active-bg: #1f4a34;
    --bs-btn-active-border-color: #1f4a34;
    --bs-btn-disabled-bg: var(--rfca-accent);
    --bs-btn-disabled-border-color: var(--rfca-accent);
}

.table > :not(caption) > * > * {
    padding-block: 0.6rem;
}

/* ---------------------------------------------------------------------------
   Public site
   --------------------------------------------------------------------------- */

body.rfca-public {
    background-color: var(--rfca-parchment);
    color: var(--rfca-ink);
}

.rfca-public-header {
    padding: 1.15rem 0;
    border-bottom: 1px solid var(--rfca-rule);
}

.rfca-brand {
    font-family: var(--rfca-serif);
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--rfca-ink);
    text-decoration: none;
}

.rfca-brand:hover {
    color: var(--rfca-accent);
}

.rfca-btn-login {
    border: 1px solid var(--rfca-accent);
    color: var(--rfca-accent);
    background: transparent;
    padding-inline: 1.1rem;
    letter-spacing: 0.03em;
}

.rfca-btn-login:hover {
    background: var(--rfca-accent);
    color: #fff;
}

/* Hero ---------------------------------------------------------------------- */

.rfca-hero {
    padding: 5.5rem 0 4.75rem;
}

.rfca-eyebrow {
    font-size: 0.75rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(35, 40, 31, 0.5);
    margin-bottom: 1rem;
}

.rfca-hero-title {
    font-family: var(--rfca-serif);
    font-size: clamp(2.1rem, 6vw, 3.4rem);
    font-weight: 600;
    line-height: 1.12;
    margin-bottom: 0.9rem;
}

.rfca-tagline {
    font-size: 0.9rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--rfca-accent);
    margin-bottom: 1.75rem;
}

.rfca-hero-lede {
    font-family: var(--rfca-serif);
    font-size: clamp(1.02rem, 2.1vw, 1.2rem);
    line-height: 1.7;
    color: rgba(35, 40, 31, 0.82);
    max-width: 34rem;
    margin: 0 auto 2.25rem;
}

.rfca-cta {
    padding: 0.7rem 2rem;
    letter-spacing: 0.04em;
}

/* Sections ------------------------------------------------------------------ */

.rfca-section {
    padding: 4rem 0;
    border-top: 1px solid var(--rfca-rule);
}

.rfca-section-muted {
    background-color: var(--rfca-parchment-deep);
}

.rfca-section-title {
    font-family: var(--rfca-serif);
    font-size: clamp(1.5rem, 3.4vw, 2rem);
    font-weight: 600;
    margin-bottom: 0.6rem;
}

.rfca-section-lede,
.rfca-body {
    color: rgba(35, 40, 31, 0.75);
    line-height: 1.75;
    max-width: 38rem;
    margin-inline: auto;
}

.rfca-body + .rfca-body {
    margin-top: 1rem;
}

.rfca-card {
    background: #fff;
    border: 1px solid var(--rfca-rule);
    border-radius: 0.4rem;
    padding: 1.6rem 1.4rem;
}

.rfca-card-title {
    font-family: var(--rfca-serif);
    font-size: 1.08rem;
    font-weight: 600;
    margin-bottom: 0.6rem;
    color: var(--rfca-accent-dark);
}

.rfca-card-text {
    font-size: 0.93rem;
    line-height: 1.65;
    color: rgba(35, 40, 31, 0.75);
    margin-bottom: 0;
}

/* Closing band --------------------------------------------------------------- */

.rfca-closing {
    background: var(--rfca-accent-dark);
    color: rgba(255, 255, 255, 0.92);
    padding: 3rem 0;
}

.rfca-closing-text {
    font-family: var(--rfca-serif);
    font-size: 1.1rem;
    margin-bottom: 1.25rem;
}

/* Footer --------------------------------------------------------------------- */

.rfca-footer {
    padding: 2rem 0;
    border-top: 1px solid var(--rfca-rule);
    background: var(--rfca-parchment);
}

.rfca-footer-brand {
    font-family: var(--rfca-serif);
    font-size: 0.98rem;
    color: var(--rfca-ink);
}

.rfca-footer-tagline {
    font-size: 0.72rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(35, 40, 31, 0.45);
    margin-top: 0.3rem;
}

/* The authenticated app keeps Bootstrap's own footer treatment. */
body:not(.rfca-public) .rfca-footer {
    background: transparent;
}

/* ===========================================================================
   Curriculum browser (parent side)
   =========================================================================== */

.rfca-student-strip { display: flex; gap: .5rem; flex-wrap: wrap; }

.rfca-student-chip {
    display: flex; align-items: center; gap: .6rem;
    padding: .5rem .9rem .5rem .5rem;
    border: 1px solid rgba(0,0,0,.12); border-radius: 2rem;
    background: #fff; text-decoration: none; color: inherit;
}
.rfca-student-chip:hover { border-color: var(--rfca-accent); }
.rfca-student-chip.is-active { border-color: var(--rfca-accent); background: rgba(47,111,78,.07); }

.rfca-chip-initial {
    width: 2rem; height: 2rem; border-radius: 50%;
    background: var(--rfca-accent); color: #fff;
    display: grid; place-items: center; font-weight: 600;
}

.rfca-provider-heading {
    padding: .5rem .75rem .25rem;
    font-size: .68rem; letter-spacing: .08em; text-transform: uppercase;
    color: rgba(0,0,0,.45); background: rgba(0,0,0,.02);
}
.rfca-course-list .list-group-item { border-left: 0; border-right: 0; }

.rfca-tree-scroll { max-height: 32rem; overflow-y: auto; }

.rfca-tree-row {
    display: flex; align-items: center; gap: .5rem;
    padding: .3rem .5rem; border-radius: .3rem;
    text-decoration: none; color: inherit; font-size: .9rem;
}
.rfca-tree-row:hover { background: rgba(0,0,0,.04); }
.rfca-tree-row.is-selected { background: rgba(47,111,78,.12); font-weight: 600; }
.rfca-tree-row.is-current { box-shadow: inset 3px 0 0 var(--rfca-accent); }

.rfca-tree-type {
    font-size: .6rem; text-transform: uppercase; letter-spacing: .05em;
    color: rgba(0,0,0,.45); border: 1px solid rgba(0,0,0,.12);
    border-radius: .2rem; padding: 0 .3rem; flex-shrink: 0;
}
.rfca-tree-name { flex-grow: 1; }
.rfca-tree-here { font-size: .7rem; color: var(--rfca-accent); font-weight: 600; }
.rfca-tree-count {
    font-size: .7rem; color: rgba(0,0,0,.4);
    background: rgba(0,0,0,.05); border-radius: 1rem; padding: 0 .4rem;
}

/* ===========================================================================
   Student Mode
   ===========================================================================
   A deliberately different world from the parent admin screens: warmer ground,
   larger type, more air. Motion is kept short and is disabled for anyone who
   asks for reduced motion.
   =========================================================================== */

:root {
    --rfca-learn-bg: #f4f7fb;
    --rfca-learn-ink: #1d2b36;
    --rfca-learn-primary: #2f6f4e;
    --rfca-learn-accent: #d98324;
}

body.rfca-learn { background: var(--rfca-learn-bg); color: var(--rfca-learn-ink); }

.rfca-learn-bar { background: #fff; border-bottom: 1px solid rgba(0,0,0,.07); padding: .85rem 0; }
.rfca-learn-brand {
    font-family: var(--rfca-serif); font-weight: 600; color: var(--rfca-learn-ink);
    text-decoration: none; font-size: 1.05rem;
}
.rfca-learn-who { font-weight: 600; }
.rfca-learn-exit {
    font-size: .78rem; color: rgba(0,0,0,.5); text-decoration: none;
    border: 1px solid rgba(0,0,0,.12); border-radius: 1rem; padding: .2rem .7rem;
}
.rfca-learn-exit:hover { color: var(--rfca-learn-primary); border-color: var(--rfca-learn-primary); }
.rfca-learn-foot { padding: 1.5rem 0; font-size: .7rem; letter-spacing: .18em;
    text-transform: uppercase; color: rgba(0,0,0,.35); }

.rfca-learn-hero { padding: 3rem 1rem 2.5rem; }
.rfca-learn-eyebrow { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase;
    color: rgba(0,0,0,.4); margin-bottom: .5rem; }
.rfca-learn-title { font-family: var(--rfca-serif); font-size: clamp(1.8rem, 5vw, 2.8rem); font-weight: 600; }

.rfca-learn-greet { padding: 1.5rem 0 1rem; }
.rfca-learn-h1 { font-family: var(--rfca-serif); font-size: clamp(1.6rem, 4.5vw, 2.3rem); font-weight: 600; margin: 0; }
.rfca-learn-sub { color: rgba(0,0,0,.5); margin: .2rem 0 0; }
.rfca-learn-h2 { font-family: var(--rfca-serif); font-size: 1.15rem; font-weight: 600; margin: 1.5rem 0 .75rem; }
.rfca-learn-back { color: rgba(0,0,0,.5); text-decoration: none; font-size: .9rem; }
.rfca-learn-back:hover { color: var(--rfca-learn-primary); }

/* Learner cards */
.rfca-learner-card {
    display: flex; flex-direction: column; align-items: center; gap: .35rem;
    padding: 2rem 1rem; border-radius: 1rem; background: #fff;
    border: 1px solid rgba(0,0,0,.06); box-shadow: 0 2px 10px rgba(0,0,0,.04);
    text-decoration: none; color: inherit;
    transition: transform .15s ease, box-shadow .15s ease;
}
.rfca-learner-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0,0,0,.09); color: inherit; }
.rfca-learner-avatar {
    width: 4.5rem; height: 4.5rem; border-radius: 50%;
    display: grid; place-items: center;
    font-size: 1.9rem; font-weight: 600; color: #fff; margin-bottom: .5rem;
}
.rfca-learner-0 .rfca-learner-avatar { background: #2f6f4e; }
.rfca-learner-1 .rfca-learner-avatar { background: #2f5f8f; }
.rfca-learner-2 .rfca-learner-avatar { background: #8f5a2f; }
.rfca-learner-3 .rfca-learner-avatar { background: #6b3f7a; }
.rfca-learner-name { font-family: var(--rfca-serif); font-size: 1.35rem; font-weight: 600; }
.rfca-learner-grade { color: rgba(0,0,0,.55); }
.rfca-learner-meta { font-size: .8rem; color: rgba(0,0,0,.4); }

/* Today's Adventure */
.rfca-adventure {
    background: linear-gradient(135deg, #2f6f4e, #23543b);
    color: #fff; border-radius: 1rem; padding: 1.5rem;
}
.rfca-adventure-label { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase;
    opacity: .75; margin-bottom: .9rem; }
.rfca-adventure-item { background: rgba(255,255,255,.1); border-radius: .6rem; padding: .9rem 1rem; height: 100%; }
.rfca-adventure-course { font-weight: 600; font-size: 1.05rem; }
.rfca-adventure-where { font-family: var(--rfca-serif); font-size: 1.2rem; margin-top: .1rem; }
.rfca-adventure-provider { font-size: .75rem; opacity: .7; margin-top: .3rem; }
.rfca-adventure-empty { opacity: .85; }

/* Practice + subject cards */
.rfca-practice-card, .rfca-subject-card, .rfca-empty-card {
    background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: .8rem;
    padding: 1.2rem; height: 100%;
}
.rfca-empty-card { color: rgba(0,0,0,.55); text-align: center; padding: 2rem; }
.rfca-practice-subject, .rfca-subject-provider {
    font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(0,0,0,.42);
}
.rfca-practice-title { font-family: var(--rfca-serif); font-size: 1.1rem; font-weight: 600; margin: .2rem 0 .7rem; }
.rfca-mastery { display: flex; align-items: center; gap: .5rem; }
.rfca-mastery-score { font-weight: 600; }
.rfca-meter { height: .4rem; background: rgba(0,0,0,.08); border-radius: 1rem; margin: .6rem 0 .3rem; overflow: hidden; }
.rfca-meter > span { display: block; height: 100%; background: var(--rfca-learn-primary); border-radius: 1rem;
    transition: width .5s ease; }
.rfca-practice-meta { font-size: .8rem; color: rgba(0,0,0,.5); }

.rfca-subject-name { font-family: var(--rfca-serif); font-size: 1.05rem; font-weight: 600; margin-top: .15rem; }
.rfca-subject-where { font-size: .85rem; color: rgba(0,0,0,.55); margin-top: .2rem; }
.rfca-subject-tags { margin-top: .6rem; display: flex; gap: .3rem; flex-wrap: wrap; }
.rfca-subject-tags span {
    font-size: .68rem; background: rgba(0,0,0,.05); border-radius: 1rem; padding: .1rem .55rem; color: rgba(0,0,0,.6);
}

.rfca-btn-play {
    background: var(--rfca-learn-primary); color: #fff; border: 0;
    border-radius: 2rem; padding: .55rem 1.2rem; font-weight: 600;
}
.rfca-btn-play:hover { background: #23543b; color: #fff; }
.rfca-btn-choice {
    background: #fff; border: 1px solid rgba(0,0,0,.15); border-radius: .6rem;
    padding: .7rem 1rem; text-align: left; font-size: 1.05rem;
}
.rfca-btn-choice:hover { border-color: var(--rfca-learn-primary); background: rgba(47,111,78,.05); }

.rfca-recent { list-style: none; padding: 0; margin: 0; }
.rfca-recent li {
    display: flex; align-items: center; gap: .75rem; padding: .5rem 0;
    border-bottom: 1px solid rgba(0,0,0,.06); font-size: .9rem;
}
.rfca-recent li span:first-child { flex-grow: 1; color: rgba(0,0,0,.5); }
.rfca-recent-pct { color: var(--rfca-learn-primary); font-weight: 600; }

/* Quiz */
.rfca-quiz { max-width: 34rem; margin: 0 auto; }
.rfca-quiz-progress { margin-bottom: 1rem; }
.rfca-quiz-count { font-size: .8rem; color: rgba(0,0,0,.5); margin-bottom: .35rem; }
.rfca-quiz-bar { height: .35rem; background: rgba(0,0,0,.08); border-radius: 1rem; overflow: hidden; }
.rfca-quiz-bar > span { display: block; height: 100%; background: var(--rfca-learn-primary);
    border-radius: 1rem; transition: width .4s ease; }

.rfca-quiz-card {
    background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 1rem;
    padding: 2.5rem 1.5rem; text-align: center; box-shadow: 0 3px 14px rgba(0,0,0,.05);
}
.rfca-quiz-card.is-right { border-color: rgba(25,135,84,.4); background: #f6fbf8; }
.rfca-quiz-card.is-wrong { border-color: rgba(220,53,69,.35); background: #fdf7f7; }

.rfca-quiz-objective { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(0,0,0,.4); }
.rfca-quiz-prompt { font-family: var(--rfca-serif); font-size: clamp(2.4rem, 9vw, 3.4rem); font-weight: 600; margin: 1rem 0 1.5rem; }
.rfca-quiz-prompt-sm { font-family: var(--rfca-serif); font-size: 1.8rem; font-weight: 600; margin: .5rem 0 1rem; }
.rfca-quiz-input {
    width: 100%; max-width: 12rem; margin: 0 auto; display: block;
    font-size: 2rem; text-align: center; padding: .5rem;
    border: 2px solid rgba(0,0,0,.15); border-radius: .6rem;
}
.rfca-quiz-input:focus { outline: 0; border-color: var(--rfca-learn-primary); }

.rfca-verdict { font-family: var(--rfca-serif); font-size: 1.9rem; font-weight: 600; }
.rfca-answer-line { margin: .2rem 0; color: rgba(0,0,0,.7); }
.rfca-mastery-move { margin-top: 1rem; font-size: 1.05rem; display: flex;
    align-items: center; justify-content: center; gap: .5rem; }

.rfca-result-card {
    background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 1rem;
    padding: 2.5rem 1.5rem; text-align: center; box-shadow: 0 3px 14px rgba(0,0,0,.05);
}
.rfca-result-score { font-family: var(--rfca-serif); font-size: 3.2rem; font-weight: 600; line-height: 1; }
.rfca-result-pct { font-size: 1.2rem; color: var(--rfca-learn-primary); font-weight: 600; }
.rfca-result-line { margin-top: .75rem; color: rgba(0,0,0,.7); }

.rfca-skill-list { list-style: none; padding: 0; margin: 0; text-align: left; }
.rfca-skill-list li { display: flex; align-items: center; gap: .6rem; padding: .5rem 0;
    border-bottom: 1px solid rgba(0,0,0,.06); }
.rfca-skill-name { flex-grow: 1; }
.rfca-skill-score { font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
    .rfca-learner-card, .rfca-meter > span, .rfca-quiz-bar > span { transition: none; }
    .rfca-learner-card:hover { transform: none; }
}
