/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui .dismiss[b-pel5lp6b2o] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

.sign-out button[b-pel5lp6b2o] {
    font: inherit;
    padding: 0;
    color: var(--muted);
    background: none;
    border: 0;
    text-decoration: underline;
    cursor: pointer;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-r7r5jibbgy],
.components-reconnect-repeated-attempt-visible[b-r7r5jibbgy],
.components-reconnect-failed-visible[b-r7r5jibbgy],
.components-pause-visible[b-r7r5jibbgy],
.components-resume-failed-visible[b-r7r5jibbgy],
.components-rejoining-animation[b-r7r5jibbgy] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-retrying[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-failed[b-r7r5jibbgy],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-r7r5jibbgy] {
    display: block;
}


#components-reconnect-modal[b-r7r5jibbgy] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-r7r5jibbgy 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-r7r5jibbgy 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-r7r5jibbgy 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-r7r5jibbgy]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-r7r5jibbgy 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-r7r5jibbgy {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-r7r5jibbgy {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-r7r5jibbgy {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-r7r5jibbgy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-r7r5jibbgy] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-r7r5jibbgy] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-r7r5jibbgy] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-r7r5jibbgy] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-r7r5jibbgy] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-r7r5jibbgy] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-r7r5jibbgy 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-r7r5jibbgy] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-r7r5jibbgy {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Paradigms.razor.rz.scp.css */
/* The same measure as the browser below it, so the heading lines up with the
   toolbar rather than floating over it. */
.page[b-ll5uxq03ia],
.lede[b-ll5uxq03ia] {
    max-width: 62rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

.page[b-ll5uxq03ia] {
    font-size: 2.1rem;
    margin-top: 2rem;
    margin-bottom: 0.4rem;
    letter-spacing: -0.045em;
}

.lede[b-ll5uxq03ia] {
    font-size: 1.05rem;
    color: var(--ink-soft);
    margin-top: 0;
    margin-bottom: 1.75rem;
}
/* /Components/Pages/SignIn.razor.rz.scp.css */
.gate[b-ffc6u2vdf2] {
    max-width: 22rem;
    padding: 1.5rem;
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
}

label[b-ffc6u2vdf2] {
    display: block;
    margin-bottom: .5rem;
    color: var(--ink-soft);
}

input[type="password"][b-ffc6u2vdf2] {
    width: 100%;
    box-sizing: border-box;
    font: inherit;
    padding: .6rem .75rem;
    color: var(--ink);
    background: var(--page);
    border: 1px solid var(--rule);
    border-radius: var(--radius-control);
}

.wrong[b-ffc6u2vdf2] {
    margin: .75rem 0 0;
    color: var(--bad);
}

button[b-ffc6u2vdf2] {
    font: inherit;
    margin-top: 1rem;
    padding: .6rem 1.25rem;
    color: var(--on-accent);
    background: var(--accent);
    border: 1px solid var(--accent);
    border-radius: var(--radius-control);
    cursor: pointer;
}
/* /Components/Readiness/NextToDrill.razor.rz.scp.css */
.next[b-y7251pctdf] {
    margin: 2rem 0;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
    background: var(--surface);
}

.next h2[b-y7251pctdf] {
    margin: 0 0 0.6rem;
    font-size: 1.05rem;
}

.help[b-y7251pctdf] {
    margin: 0 0 0.8rem;
    font-size: 0.88rem;
    color: var(--muted);
    max-width: 36rem;
}

.picks[b-y7251pctdf] {
    list-style: none;
    margin: 0 0 0.9rem;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.picks li[b-y7251pctdf] {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 0.3rem 0.8rem;
}

.kind[b-y7251pctdf] {
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
}

.title[b-y7251pctdf] {
    font-size: 0.95rem;
    font-weight: 600;
}

/* The grounds for the suggestion, on the line under it: the reader should be
   able to disagree with it without opening another page. */
.why[b-y7251pctdf] {
    grid-column: 2;
    font-size: 0.82rem;
    color: var(--muted);
}

.drill[b-y7251pctdf] {
    grid-row: 1 / span 2;
    grid-column: 3;
    align-self: center;
    font: inherit;
    font-size: 0.85rem;
    padding: 0.3rem 0.8rem;
    border: 1px solid var(--accent);
    border-radius: var(--radius-control);
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    white-space: nowrap;
}

.drill:disabled[b-y7251pctdf] {
    opacity: 0.45;
    cursor: default;
}

.link[b-y7251pctdf] {
    font-size: 0.85rem;
    color: var(--muted);
    text-underline-offset: .2em;
}

@media (max-width: 30rem) {
    .picks li[b-y7251pctdf] {
        grid-template-columns: 1fr auto;
    }

    .picks .kind[b-y7251pctdf] {
        grid-column: 1;
    }

    .picks .title[b-y7251pctdf], .picks .why[b-y7251pctdf] {
        grid-column: 1;
    }

    .picks .drill[b-y7251pctdf] {
        grid-row: 1 / span 3;
        grid-column: 2;
    }
}
/* /Components/Readiness/ReadinessPanel.razor.rz.scp.css */
.panel[b-uf18kj4ixe] {
    margin: 0 0 1.5rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
    background: var(--surface);
}

.panel h2[b-uf18kj4ixe] {
    margin: 0 0 0.7rem;
    font-size: 1.05rem;
}

.help[b-uf18kj4ixe] {
    margin: 0.7rem 0 0;
    font-size: 0.88rem;
    color: var(--muted);
    max-width: 38rem;
}

.suggestions[b-uf18kj4ixe] {
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.tally[b-uf18kj4ixe] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.1rem;
}

.count[b-uf18kj4ixe] {
    font-size: 0.88rem;
}

.count strong[b-uf18kj4ixe] {
    font-size: 1.25rem;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    margin-right: 0.25rem;
}

.count.muted[b-uf18kj4ixe], .count.muted strong[b-uf18kj4ixe] {
    color: var(--muted);
}

/* The standings ---------------------------------------------------------- */

.standings[b-uf18kj4ixe] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.1rem;
}

.standings li[b-uf18kj4ixe] {
    display: grid;
    grid-template-columns: minmax(9rem, 1.1fr) 7.5rem minmax(0, 1.6fr) auto;
    align-items: baseline;
    gap: 0.6rem 0.9rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--rule);
}

.standings li:last-child[b-uf18kj4ixe] {
    border-bottom: 0;
}

.what .title[b-uf18kj4ixe] {
    font-size: 0.94rem;
}

.what .subtitle[b-uf18kj4ixe] {
    display: block;
    font-size: 0.85rem;
    color: var(--muted);
}

.state[b-uf18kj4ixe] {
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--muted);
    white-space: nowrap;
}

/* Only the two readings that ask for something get a colour. Holding is the
   quiet one on purpose: it is not an award. */
.holding .state[b-uf18kj4ixe] {
    color: var(--good);
}

.practice .state[b-uf18kj4ixe] {
    color: var(--bad);
}

.unmet .what .title[b-uf18kj4ixe], .unmet .evidence[b-uf18kj4ixe] {
    color: var(--muted);
}

.evidence[b-uf18kj4ixe] {
    font-size: 0.82rem;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.drill[b-uf18kj4ixe], .suggestion .drill[b-uf18kj4ixe] {
    font: inherit;
    font-size: 0.85rem;
    padding: 0.3rem 0.75rem;
    border: 1px solid var(--accent);
    border-radius: var(--radius-control);
    background: transparent;
    color: var(--accent);
    cursor: pointer;
    white-space: nowrap;
}

.drill:disabled[b-uf18kj4ixe] {
    opacity: 0.45;
    cursor: default;
}

.drill-none[b-uf18kj4ixe] {
    color: var(--muted);
    text-align: center;
}

@media (max-width: 34rem) {
    .standings li[b-uf18kj4ixe] {
        grid-template-columns: 1fr auto;
        gap: 0.35rem 0.9rem;
    }

    .standings .evidence[b-uf18kj4ixe] {
        grid-column: 1 / -1;
    }

    /* On its own row, but still a button rather than a banner. */
    .standings .drill[b-uf18kj4ixe], .standings .drill-none[b-uf18kj4ixe] {
        grid-column: 1;
        justify-self: start;
    }
}
/* /Components/Readiness/ReadinessSuggestionCard.razor.rz.scp.css */
/* A column so the two cards' buttons line up whatever length their reasons
   run to: they are the same action and should read as one row. */
.suggestion[b-f0y05nfm3f] {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-control);
    background: var(--highlight);
}

.kind[b-f0y05nfm3f] {
    display: block;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 0.2rem;
}

.title[b-f0y05nfm3f] {
    font-weight: 600;
    font-size: 0.98rem;
}

.subtitle[b-f0y05nfm3f] {
    display: block;
    font-size: 0.9rem;
    color: var(--muted);
}

.why[b-f0y05nfm3f] {
    margin: 0.45rem 0 0;
    font-size: 0.88rem;
}

.scale[b-f0y05nfm3f] {
    margin: 0.2rem 0 0.7rem;
    flex: 1;
    font-size: 0.8rem;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.drill[b-f0y05nfm3f] {
    align-self: flex-start;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    padding: 0.4rem 0.9rem;
    border: none;
    border-radius: var(--radius-control);
    background: var(--accent);
    color: var(--on-accent);
    cursor: pointer;
}

.drill:disabled[b-f0y05nfm3f] {
    opacity: 0.45;
    cursor: default;
}
/* /Components/Review/ReviewPanel.razor.rz.scp.css */
.settings[b-vu39y9xf2i], .report[b-vu39y9xf2i] {
    margin: 0 0 1.5rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
    background: var(--surface);
}

.settings h2[b-vu39y9xf2i], .report h2[b-vu39y9xf2i] {
    margin: 0 0 0.6rem;
    font-size: 1.05rem;
}

.help[b-vu39y9xf2i] {
    margin: 0 0 0.9rem;
    font-size: 0.88rem;
    color: var(--muted);
    max-width: 34rem;
}

.dial[b-vu39y9xf2i] {
    margin: 1.3rem 0;
}

.dial > label[b-vu39y9xf2i], .dial > .label[b-vu39y9xf2i] {
    display: block;
    font-weight: 600;
    font-size: 0.92rem;
    margin-bottom: 0.4rem;
}

.dial .help[b-vu39y9xf2i] {
    margin: 0.4rem 0 0;
}

.dial-control[b-vu39y9xf2i] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.slider[b-vu39y9xf2i] {
    flex: 1;
    min-width: 9rem;
    max-width: 20rem;
    margin: 0;
    accent-color: var(--accent);
}

.dial-control input[type="number"][b-vu39y9xf2i], .dial-control select[b-vu39y9xf2i] {
    font: inherit;
    font-size: 0.95rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-control);
    background: var(--page);
    color: var(--ink);
}

.dial-control input[type="number"][b-vu39y9xf2i] {
    width: 6rem;
    font-variant-numeric: tabular-nums;
}

.value[b-vu39y9xf2i] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.unit[b-vu39y9xf2i] {
    font-size: 0.88rem;
    color: var(--muted);
}

.opt[b-vu39y9xf2i] {
    font: inherit;
    font-size: 0.88rem;
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--accent);
    border-radius: var(--radius-control);
    background: transparent;
    color: var(--accent);
    cursor: pointer;
}

.opt:disabled[b-vu39y9xf2i], .dial-control input:disabled[b-vu39y9xf2i], .dial-control select:disabled[b-vu39y9xf2i] {
    opacity: 0.45;
    cursor: default;
}

/* Holds its line whether or not there is anything to say, so saving a setting
   does not shunt the dial below it up and down the page. */
.feedback[b-vu39y9xf2i] {
    min-height: 1.2rem;
    margin: 1rem 0 0;
    font-size: 0.88rem;
    color: var(--muted);
}
/* /Components/Review/ReviewReportView.razor.rz.scp.css */
.report[b-cuwxzatdzi] {
    margin: 0 0 1.5rem;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
    background: var(--surface);
}

.report h2[b-cuwxzatdzi] {
    margin: 0 0 0.7rem;
    font-size: 1.05rem;
}

.report h3[b-cuwxzatdzi] {
    margin: 1.3rem 0 0.6rem;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.help[b-cuwxzatdzi] {
    margin: 0.7rem 0 0;
    font-size: 0.88rem;
    color: var(--muted);
    max-width: 36rem;
}

.counts[b-cuwxzatdzi] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.1rem;
}

.count[b-cuwxzatdzi] {
    font-size: 0.88rem;
}

.count strong[b-cuwxzatdzi] {
    font-size: 1.25rem;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    margin-right: 0.25rem;
}

.count.muted[b-cuwxzatdzi], .count.muted strong[b-cuwxzatdzi] {
    color: var(--muted);
}

/* Forecast ---------------------------------------------------------------- */

.forecast[b-cuwxzatdzi] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.forecast li[b-cuwxzatdzi] {
    display: grid;
    grid-template-columns: 6.5rem 1fr 2.5rem;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.88rem;
}

.forecast .when[b-cuwxzatdzi] {
    color: var(--muted);
}

.forecast .bar[b-cuwxzatdzi] {
    height: 0.7rem;
    border-radius: 999px;
    background: var(--highlight);
    overflow: hidden;
}

.forecast .bar > span[b-cuwxzatdzi] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--accent);
}

.forecast .n[b-cuwxzatdzi] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* The weekly record, laid out like the forecast with the recall rate added:
   the count beside the rate is the point, since a light week swings on one
   answer. */
.weeks[b-cuwxzatdzi] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.weeks li[b-cuwxzatdzi] {
    display: grid;
    grid-template-columns: 4.5rem 1fr 2.5rem 3rem;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.88rem;
}

.weeks .when[b-cuwxzatdzi] {
    color: var(--muted);
}

.weeks .bar[b-cuwxzatdzi] {
    height: 0.7rem;
    border-radius: 999px;
    background: var(--highlight);
    overflow: hidden;
}

.weeks .bar > span[b-cuwxzatdzi] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--accent);
}

.weeks .n[b-cuwxzatdzi], .weeks .rate[b-cuwxzatdzi] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.weeks .rate[b-cuwxzatdzi] {
    color: var(--muted);
}

/* Figures ----------------------------------------------------------------- */

.figures[b-cuwxzatdzi] {
    margin: 0;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.figures dt[b-cuwxzatdzi] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.figures dd[b-cuwxzatdzi] {
    margin: 0.15rem 0 0;
    font-size: 1.35rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* The count behind every figure, kept beside it rather than in a footnote. */
.figures .sample[b-cuwxzatdzi] {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--muted);
}

/* The log ----------------------------------------------------------------- */

.scroll[b-cuwxzatdzi] {
    overflow-x: auto;
}

.log[b-cuwxzatdzi] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.log th[b-cuwxzatdzi] {
    text-align: left;
    padding: 0 0.6rem 0.35rem 0;
    border-bottom: 1px solid var(--rule);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
}

.log td[b-cuwxzatdzi] {
    padding: 0.45rem 0.6rem 0.45rem 0;
    border-bottom: 1px solid var(--rule);
    vertical-align: top;
}

.log tr:last-child td[b-cuwxzatdzi] {
    border-bottom: 0;
}

.log .when[b-cuwxzatdzi], .log .next[b-cuwxzatdzi] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.log .greek[b-cuwxzatdzi] {
    font-size: 1.05rem;
}

.log .lemma[b-cuwxzatdzi], .log .state[b-cuwxzatdzi] {
    display: block;
    font-size: 0.78rem;
    color: var(--muted);
}

.rating[b-cuwxzatdzi] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--rule);
    font-size: 0.8rem;
    white-space: nowrap;
}

/* Again is the only rating worth colouring: it is the one that changed the
   card's story. The other three all mean the word was recalled. */
.rating.again[b-cuwxzatdzi] {
    color: var(--bad);
    border-color: color-mix(in srgb, var(--bad) 35%, var(--rule));
    background: var(--bad-bg);
}
/* /Components/Settings/ProgressBackup.razor.rz.scp.css */
.backup[b-m4ffu32oal] { padding: 1.5rem; margin: 1.5rem 0; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--radius-panel); }
h2[b-m4ffu32oal] { margin-top: 0; font-size: 1.2rem; }
p[b-m4ffu32oal] { color: var(--ink-soft); }
label[b-m4ffu32oal] { display: block; margin: 1rem 0 .5rem; }
button[b-m4ffu32oal] { font: inherit; border: 1px solid var(--rule); background: var(--highlight); color: var(--accent); padding: .6rem 1rem; border-radius: var(--radius-control); cursor: pointer; margin: .5rem .5rem .5rem 0; }
button:disabled[b-m4ffu32oal] { opacity: .5; cursor: default; }
.preview[b-m4ffu32oal] { margin-top: 1rem; border-top: 1px solid var(--rule); padding-top: 1rem; }
.backup[b-m4ffu32oal]  input { max-width: 100%; color: var(--ink-soft); }
/* /Components/Settings/ThemePicker.razor.rz.scp.css */
.hint[b-2svmm81why], .description[b-2svmm81why], .saved[b-2svmm81why] { color: var(--muted); font-size: 0.85rem; }
.hint[b-2svmm81why] { margin: 0 0 1.5rem; }
.themes[b-2svmm81why] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.theme[b-2svmm81why] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    text-align: left;
    padding: 0.65rem;
    background: var(--surface);
    color: var(--ink);
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
    font: inherit;
    cursor: pointer;
}
.theme:hover[b-2svmm81why] { border-color: var(--accent); }
.theme.selected[b-2svmm81why] { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.theme-preview[b-2svmm81why] {
    display: block;
    padding: 1rem;
    border-radius: var(--radius-control);
    background: var(--page);
    color: var(--ink);
    border: 1px solid var(--rule);
}
.sample-label[b-2svmm81why] { display: block; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--muted); }
.sample-word[b-2svmm81why] { display: block; font-size: 2rem; margin: 0.6rem 0; line-height: 1.3; }
.sample-options[b-2svmm81why] { display: flex; flex-wrap: wrap; gap: 0.4rem; font-size: 0.65rem; }
.sample-options span[b-2svmm81why] { padding: 0.3rem 0.5rem; border-radius: 0.4rem; border: 1px solid var(--rule); }
.sample-options span:first-child[b-2svmm81why] { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.swatches[b-2svmm81why] { display: flex; gap: 0.35rem; margin-top: 1rem; }
.swatches i[b-2svmm81why] { width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--accent); }
.swatches i:nth-child(2)[b-2svmm81why] { background: var(--muted); }
.swatches i:nth-child(3)[b-2svmm81why] { background: var(--ink); }
.theme-caption[b-2svmm81why] { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; margin: 0.75rem 0.3rem 0.25rem; }
.theme-caption strong[b-2svmm81why] { font-size: 0.9rem; }
.selection[b-2svmm81why] { color: var(--muted); font-size: 0.7rem; }
.selected .selection[b-2svmm81why] { color: var(--accent); font-weight: 600; }
.description[b-2svmm81why] { display: block; margin: 0 0.3rem 0.4rem; font-size: 0.75rem; }
.saved[b-2svmm81why] { min-height: 1.5em; }
.return-links[b-2svmm81why] { display: flex; flex-wrap: wrap; gap: 1.5rem; font-size: 0.85rem; margin-top: 1rem; }
@media (max-width: 480px) { .themes[b-2svmm81why] { grid-template-columns: 1fr; } }
/* /Components/Setup/DrillSetup.razor.rz.scp.css */
.setup[b-dzj649ysrd] {
    margin: 2rem 0;
}

h2[b-dzj649ysrd] {
    font-size: 1.25rem;
    margin: 0 0 1rem;
}

.drill-types[b-dzj649ysrd] {
    display: grid;
    gap: 1rem;
    margin-bottom: 2rem;
}

.drill-type[b-dzj649ysrd] {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.25rem;
    border: 1px solid var(--rule);
    background: var(--surface);
    border-radius: var(--radius-panel);
    box-shadow: inset 3px 0 0 var(--accent), var(--shadow-panel);
}

.drill-type input[b-dzj649ysrd] {
    accent-color: var(--accent);
    margin-top: 0.3rem;
}

.drill-type strong[b-dzj649ysrd] {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 1.1rem;
}

.help[b-dzj649ysrd] {
    display: block;
    font-size: 0.85rem;
    color: var(--muted);
    line-height: 1.5;
}

p.help[b-dzj649ysrd] {
    margin: 0 0 0.75rem;
}

fieldset[b-dzj649ysrd] {
    min-width: 0;
    border: 0;
    border-bottom: 1px solid var(--rule);
    padding: 0 0 1.25rem;
    margin: 0 0 1.25rem;
}

legend[b-dzj649ysrd] {
    padding: 0;
    margin-bottom: 0.7rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--ink-soft);
    text-transform: capitalize;
}

.group[b-dzj649ysrd] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.opt[b-dzj649ysrd] {
    font: inherit;
    font-size: 0.85rem;
    padding: 0.5rem 0.8rem;
    border: 1px solid var(--rule);
    background: var(--surface);
    color: var(--muted);
    border-radius: var(--radius-control);
    cursor: pointer;
    font-weight: 500;
}

.opt.on[b-dzj649ysrd] {
    color: var(--accent);
    background: var(--highlight);
    border-color: color-mix(in srgb, var(--accent) 35%, var(--rule));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);
}

.opt:hover[b-dzj649ysrd] {
    background: var(--highlight);
    color: var(--ink);
    border-color: var(--accent);
}

button:focus-visible[b-dzj649ysrd], input:focus-visible[b-dzj649ysrd] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.selection-tools[b-dzj649ysrd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.reset[b-dzj649ysrd] {
    background: none;
    border: 0;
    padding: 0.25rem 0;
    color: var(--accent);
    font: inherit;
    font-size: 0.85rem;
    text-decoration: underline;
    text-underline-offset: 0.2em;
    cursor: pointer;
}

.feedback[b-dzj649ysrd] {
    font-size: 0.85rem;
    color: var(--ink-soft);
    margin: 0.75rem 0;
}

.feedback:empty[b-dzj649ysrd] {
    margin: 0;
}

.launch[b-dzj649ysrd] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    margin-top: 1.5rem;
    border-radius: var(--radius-panel);
    background: var(--surface);
    box-shadow: var(--shadow-panel);
    border: 1px solid var(--rule);
}

.launch strong[b-dzj649ysrd] {
    font-variant-numeric: tabular-nums;
}

.launch .help[b-dzj649ysrd] {
    margin-top: 0.25rem;
    max-width: 21rem;
    font-size: 0.8rem;
}

.start[b-dzj649ysrd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    background: var(--accent);
    color: var(--on-accent);
    border: 0;
    font: inherit;
    font-weight: 600;
    border-radius: var(--radius-control);
    padding: 0.7rem 1.2rem;
    cursor: pointer;
    font-size: 0.9rem;
    box-shadow: 0 3px 8px rgb(12 35 30 / 12%);
}

.start:disabled[b-dzj649ysrd] {
    opacity: 0.5;
    cursor: default;
}

@media (max-width: 480px) {
    .launch .start[b-dzj649ysrd] {
        width: 100%;
    }
}

.start:hover:not(:disabled)[b-dzj649ysrd] {
    background: color-mix(in srgb, var(--accent) 90%, var(--ink));
}

/* Session length. The stops are unevenly spaced in words but evenly spaced on
   the track: the slider measures how long a sitting is, not how many words. */
.length[b-dzj649ysrd] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

/* Slider and scale share this box, so the captions span the track and not the
   whole fieldset. The readout is outside it. */
.length-track[b-dzj649ysrd] {
    flex: 1;
    min-width: 0;
}

.length-slider[b-dzj649ysrd] {
    display: block;
    width: 100%;
    margin: 0;
    accent-color: var(--accent);
    height: 1.6rem;
    cursor: pointer;
}

/* Wide enough for the longest label, so the track does not shrink and the
   whole scale shift when the readout goes from "10 words" to "Open practice". */
.length-value[b-dzj649ysrd] {
    flex: 0 0 auto;
    min-width: 7rem;
    padding-top: .3rem;
    text-align: right;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--accent);
}

/* A thumb's centre stops half a thumb short of each end of the track, so the
   captions are laid out across that inset range rather than the full width.
   The margin does the insetting: percentage offsets on the absolutely
   positioned captions resolve against the padding box, which padding would not
   shrink. */
.length-scale[b-dzj649ysrd] {
    --thumb: 1rem;
    position: relative;
    height: 1em;
    margin: .15rem calc(var(--thumb) / 2) .6rem;
    font-size: .7rem;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

.length-scale span[b-dzj649ysrd] {
    position: absolute;
    transform: translateX(-50%);
    white-space: nowrap;
}

.length-scale .here[b-dzj649ysrd] {
    color: var(--accent);
    font-weight: 600;
}

/* The captions crowd on a narrow screen; the readout already names the stop. */
@media (max-width: 30rem) {
    .length-scale[b-dzj649ysrd] { display: none; }
}
/* /Components/Setup/ScheduledReview.razor.rz.scp.css */
.scheduled[b-01emeorevi] {
    margin: 2rem 0;
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius-panel);
    background: var(--surface);
}

.scheduled h2[b-01emeorevi] {
    margin: 0 0 0.6rem;
    font-size: 1.05rem;
}

.help[b-01emeorevi] {
    margin: 0 0 0.8rem;
    font-size: 0.88rem;
    color: var(--muted);
}

.counts[b-01emeorevi] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.1rem;
    margin-bottom: 0.7rem;
}

.count[b-01emeorevi] {
    font-size: 0.88rem;
}

.count strong[b-01emeorevi] {
    font-size: 1.25rem;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    margin-right: 0.25rem;
}

.count.muted[b-01emeorevi], .count.muted strong[b-01emeorevi] {
    color: var(--muted);
}

.row[b-01emeorevi] {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.start[b-01emeorevi] {
    font: inherit;
    font-weight: 600;
    background: var(--accent);
    color: var(--on-accent);
    border: none;
    border-radius: var(--radius-control);
    padding: 0.5rem 1.1rem;
    cursor: pointer;
    font-size: 0.9rem;
}

.opt[b-01emeorevi] {
    font: inherit;
    font-size: 0.9rem;
    padding: 0.45rem 0.9rem;
    border: 1px solid var(--accent);
    border-radius: var(--radius-control);
    background: transparent;
    color: var(--accent);
    cursor: pointer;
}

a.link[b-01emeorevi] {
    color: var(--muted);
    text-decoration: underline;
    text-underline-offset: .2em;
    font-size: 0.85rem;
}

.link[b-01emeorevi] {
    border: 0;
    padding: 0;
    background: none;
    font: inherit;
    font-size: 0.85rem;
    color: var(--muted);
    text-decoration: underline;
    text-underline-offset: .2em;
    cursor: pointer;
}

.start:disabled[b-01emeorevi], .opt:disabled[b-01emeorevi], .link:disabled[b-01emeorevi] {
    opacity: 0.45;
    cursor: default;
}
