:root {
    --rw-spruce: #0D241C;
    --rw-deep: #081711;
    --rw-surface: #123126;
    --rw-surface-2: #16382A;
    --rw-pine: #16553A;
    --rw-signal: #36C97C;
    --rw-butter: #ECB44C;
    --rw-porcelain: #EAEEE5;
    --rw-muted: #9DB0A6;
    --rw-red: #E07A5F;
    --rw-border: rgba(234, 238, 229, .14);
    --rw-border-2: rgba(234, 238, 229, .24);
    --rw-shadow: 0 22px 60px rgba(3, 14, 9, .36);
    --rw-display: "Bricolage Grotesque", "Inter", Arial, sans-serif;
    --rw-body: "Hanken Grotesk", "Inter", Arial, sans-serif;
    --rw-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
    --rw-radius-sm: 8px;
    --rw-radius-md: 14px;
    --rw-radius-lg: 20px;
    --rw-touch: 48px;
}

* {
    box-sizing: border-box;
}

html {
    color-scheme: dark;
}

body {
    margin: 0;
    min-width: 320px;
    min-height: 100vh;
    background: var(--rw-spruce);
    color: var(--rw-porcelain);
    font-family: var(--rw-body);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a,
input,
textarea,
select {
    outline: none;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.rw-focusable:focus-visible {
    box-shadow: 0 0 0 3px rgba(236, 180, 76, .35);
    border-color: var(--rw-butter);
}

a {
    color: inherit;
}

.rw-noscript {
    margin: 20px;
    padding: 16px;
    border: 1px solid var(--rw-border-2);
    border-radius: var(--rw-radius-md);
    background: var(--rw-surface);
    color: var(--rw-porcelain);
}

.rw-noscript span {
    display: block;
    color: var(--rw-muted);
}

.rw-app {
    min-height: 100vh;
    display: flex;
    justify-content: center;
    background: radial-gradient(120% 70% at 50% -10%, #123126 0%, var(--rw-spruce) 54%, var(--rw-deep) 100%) fixed;
}

.rw-shell {
    width: 100%;
    max-width: 440px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--rw-spruce);
    box-shadow: var(--rw-shadow);
}

.rw-shell--public {
    justify-content: center;
}

.rw-topbar {
    min-height: 64px;
    padding: max(12px, env(safe-area-inset-top)) 16px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--rw-border);
    background: rgba(13, 36, 28, .96);
    position: sticky;
    top: 0;
    z-index: 20;
}

.rw-brand {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--rw-porcelain);
}

.rw-brand__word {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.rw-brand__word strong {
    font-family: var(--rw-display);
    font-size: 1rem;
    letter-spacing: 0;
}

.rw-brand__word span {
    font-size: .76rem;
    color: var(--rw-muted);
}

.rw-risers {
    width: 28px;
    height: 24px;
    display: inline-flex;
    align-items: flex-end;
    gap: 3px;
    color: var(--rw-porcelain);
}

.rw-risers i {
    width: 4px;
    border-radius: 3px;
    background: currentColor;
    display: block;
}

.rw-risers i:nth-child(1) {
    height: 8px;
}

.rw-risers i:nth-child(2) {
    height: 11px;
}

.rw-risers i:nth-child(3) {
    height: 15px;
}

.rw-risers i:nth-child(4) {
    height: 19px;
}

.rw-risers i:nth-child(5) {
    height: 23px;
    background: var(--rw-signal);
}

.rw-avatar {
    width: var(--rw-touch);
    height: var(--rw-touch);
    border: 1px solid var(--rw-border-2);
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: var(--rw-pine);
    color: var(--rw-porcelain);
    text-decoration: none;
    font-family: var(--rw-display);
    font-weight: 800;
}

.rw-main {
    flex: 1 1 auto;
    width: 100%;
    padding: 18px 16px 92px;
}

.rw-public {
    width: 100%;
    min-height: 100vh;
    padding: 24px 18px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 18px;
}

.rw-bottom-nav {
    position: fixed;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 100%;
    max-width: 440px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
    padding: 7px 6px max(7px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--rw-border);
    background: rgba(8, 23, 17, .98);
    z-index: 30;
}

.rw-nav-item {
    min-height: var(--rw-touch);
    border: 0;
    border-radius: var(--rw-radius-sm);
    background: transparent;
    color: var(--rw-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-decoration: none;
    font-size: .68rem;
    font-weight: 700;
}

.rw-nav-item i {
    font-size: 1.28rem;
    line-height: 1;
}

.rw-nav-item[aria-current="page"] {
    color: var(--rw-signal);
    background: rgba(54, 201, 124, .08);
}

.rw-stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.rw-cluster {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.rw-kicker,
.rw-chip,
.rw-meta {
    font-family: var(--rw-mono);
    font-size: .68rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.rw-kicker {
    color: var(--rw-signal);
    margin: 0 0 -4px;
}

.rw-title {
    margin: 0;
    font-family: var(--rw-display);
    font-size: clamp(1.8rem, 9vw, 2.45rem);
    line-height: 1.03;
    font-weight: 750;
    letter-spacing: 0;
}

.rw-title--small {
    font-size: 1.45rem;
}

.rw-copy {
    margin: 0;
    color: var(--rw-muted);
    font-size: 1rem;
}

.rw-card,
.rw-next,
.rw-list-row,
.rw-field,
.rw-bottom-sheet {
    border: 1px solid var(--rw-border);
    background: var(--rw-surface);
    border-radius: var(--rw-radius-md);
}

.rw-card {
    padding: 15px;
}

.rw-card--raised,
.rw-next {
    background: var(--rw-surface-2);
}

.rw-next {
    padding: 16px;
    border-color: rgba(54, 201, 124, .28);
}

.rw-next .rw-kicker {
    color: var(--rw-signal);
}

.rw-next h2 {
    margin: 0 0 7px;
    font-family: var(--rw-display);
    font-size: 1.45rem;
    line-height: 1.08;
    letter-spacing: 0;
}

/* Prominent "one step to finish this" card on a document that isn't ready yet. */
.rw-action-card {
    background: rgba(54, 201, 124, .12);
    border: 1px solid rgba(54, 201, 124, .42);
    border-radius: var(--rw-radius-md);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rw-action-card__kicker {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--rw-signal);
}

.rw-action-card .rw-copy {
    margin: 0;
}

/* A-K folder letter badge in the My Docs section headers. */
.rw-sec-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    margin-right: 7px;
    border-radius: 5px;
    background: var(--rw-signal);
    color: #0D241C;
    font-weight: 800;
    font-size: .72rem;
}

/* Inline document preview (the branded page shown on the doc screen). */
.rw-document-frame {
    width: 100%;
    aspect-ratio: 210 / 305;
    margin: 0 0 6px;
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    overflow: hidden;
    background: #dfe4dc; /* paper mat behind the page, matches the renderer body */
}

.rw-document-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Guest trial: a quiet banner across the top while on the free one-click trial. */
.rw-guest-banner {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    margin: 0 0 12px;
    border: 1px solid rgba(236, 180, 76, .38);
    background: rgba(236, 180, 76, .12);
    border-radius: 10px;
    font-size: .82rem;
}

.rw-guest-banner__text {
    flex: 1;
    color: var(--rw-porcelain);
}

.rw-guest-banner__cta {
    flex: none;
    border: 0;
    border-radius: 999px;
    padding: 5px 12px;
    font-weight: 600;
    font-size: .78rem;
    background: var(--rw-signal);
    color: #0D241C;
    text-decoration: none;
    cursor: pointer;
}

/* Remove-entry control on a log row. */
.rw-log-delete {
    flex: none;
    border: 0;
    background: transparent;
    color: #7C8C84;
    padding: 4px;
    border-radius: 8px;
    line-height: 0;
    cursor: pointer;
}

.rw-log-delete:hover {
    color: var(--rw-butter);
}

/* Locked (preview) catalogue rows - visible, to show a plan's value, not clickable. */
.rw-list-row--locked {
    opacity: .55;
    cursor: default;
}

.rw-button,
.rw-secondary-button,
.rw-ghost-button {
    min-height: var(--rw-touch);
    width: 100%;
    border-radius: 12px;
    border: 0;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
    font-weight: 800;
}

.rw-button {
    background: var(--rw-signal);
    color: var(--rw-spruce);
}

.rw-button--preview {
    background: rgba(157, 176, 166, .2);
    color: var(--rw-porcelain);
    border: 1px solid var(--rw-border-2);
}

.rw-secondary-button {
    background: var(--rw-pine);
    color: var(--rw-porcelain);
}

.rw-ghost-button {
    background: transparent;
    color: var(--rw-porcelain);
    border: 1px solid var(--rw-border-2);
}

.rw-ghost-button--danger {
    color: #f4a896;
    border-color: rgba(244, 168, 150, .35);
}

.rw-link {
    color: var(--rw-muted);
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-underline-offset: 3px;
}

.rw-field {
    display: block;
    width: 100%;
    min-height: var(--rw-touch);
    padding: 13px 14px;
    color: var(--rw-porcelain);
}

.rw-field input,
.rw-field textarea,
.rw-field select {
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--rw-porcelain);
}

/* Selects inside a field: match the inputs, with a custom chevron so they
   don't fall back to the raw native control. */
.rw-field select {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    padding-right: 22px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238fa498' stroke-width='2.5'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat: no-repeat;
    background-position: right 2px center;
}

.rw-field select option {
    color: #16323a;
}

.rw-selection-chip,
.rw-role-chip,
.rw-quick-check {
    min-height: var(--rw-touch);
    border-radius: 999px;
    border: 1px solid var(--rw-border-2);
    background: transparent;
    color: var(--rw-porcelain);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 14px;
    font-weight: 700;
}

.rw-selection-chip[aria-pressed="true"],
.rw-role-chip[aria-pressed="true"],
.rw-quick-check[aria-pressed="true"] {
    border-color: rgba(54, 201, 124, .44);
    background: rgba(54, 201, 124, .08);
}

.rw-toggle {
    width: 54px;
    height: 32px;
    padding: 3px;
    border: 1px solid var(--rw-border-2);
    border-radius: 999px;
    background: #0A1F17;
    display: inline-flex;
    align-items: center;
}

.rw-toggle i {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: var(--rw-muted);
    display: block;
}

.rw-toggle[aria-checked="true"] {
    background: rgba(54, 201, 124, .15);
    border-color: rgba(54, 201, 124, .5);
    justify-content: flex-end;
}

.rw-toggle[aria-checked="true"] i {
    background: var(--rw-signal);
}

.rw-stepper {
    display: flex;
    align-items: center;
    gap: 7px;
}

.rw-stepper i {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--rw-border-2);
    display: block;
}

.rw-stepper i.is-active {
    width: 22px;
    background: var(--rw-butter);
}

.rw-document-preview,
.rw-training-record-card {
    min-height: 220px;
    border-radius: var(--rw-radius-sm);
    background: var(--rw-porcelain);
    color: var(--rw-spruce);
    padding: 16px;
    box-shadow: 0 12px 28px rgba(3, 14, 9, .18);
}

.rw-document-preview {
    aspect-ratio: 1 / 1.414;
}

.rw-pack-preview {
    min-height: 148px;
    border-radius: var(--rw-radius-sm);
    background: var(--rw-porcelain);
    color: var(--rw-spruce);
    padding: 14px;
    display: grid;
    grid-template-columns: 86px 1fr;
    gap: 12px;
    align-items: center;
}

.rw-pack-preview__thumb {
    aspect-ratio: 1 / 1.414;
    border: 1px solid rgba(13, 36, 28, .18);
    border-top: 8px solid var(--rw-pine);
    border-radius: 6px;
    padding: 8px;
    background: #fff;
    box-shadow: 0 12px 20px rgba(13, 36, 28, .18);
}

.rw-pack-preview__thumb strong,
.rw-pack-preview__text strong {
    display: block;
    font-family: var(--rw-display);
    line-height: 1.05;
}

.rw-pack-preview__thumb span,
.rw-pack-preview__text span {
    display: block;
    margin-top: 6px;
    color: #506459;
    font-size: .78rem;
    line-height: 1.2;
}

.rw-step-list {
    display: grid;
    gap: 8px;
}

.rw-step-item {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 9px;
    align-items: start;
}

.rw-step-item b {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    background: rgba(54, 201, 124, .14);
    color: var(--rw-signal);
    font-family: var(--rw-mono);
    font-size: .72rem;
}

.rw-step-item span {
    color: var(--rw-muted);
    font-size: .9rem;
}

.rw-swatch-row {
    display: flex;
    gap: 8px;
}

.rw-swatch {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    border: 1px solid var(--rw-border-2);
    background: var(--rw-swatch-colour, var(--rw-pine));
}

.rw-training-record-card {
    min-height: 160px;
}

.rw-field label {
    display: block;
    margin-bottom: 4px;
    color: var(--rw-muted);
    font-size: .84rem;
}

.rw-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rw-list-row {
    width: 100%;
    min-height: 58px;
    padding: 11px 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
    text-align: left;
}

summary {
    min-height: var(--rw-touch);
    display: flex;
    align-items: center;
    cursor: pointer;
}

.rw-list-row--done {
    opacity: .62;
}

.rw-list-row__text {
    min-width: 0;
    flex: 1 1 auto;
}

.rw-list-row__text strong {
    display: block;
    line-height: 1.16;
}

.rw-list-row__text span {
    display: block;
    color: var(--rw-muted);
    font-size: .82rem;
}

.rw-icon-pill {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    background: rgba(157, 176, 166, .12);
    color: var(--rw-muted);
}

.rw-icon-pill--ok {
    background: var(--rw-signal);
    color: var(--rw-spruce);
}

.rw-icon-pill--needs {
    background: rgba(236, 180, 76, .15);
    color: var(--rw-butter);
    border: 1px solid rgba(236, 180, 76, .35);
}

.rw-chip {
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rw-border-2);
    color: var(--rw-muted);
}

.rw-chip--ok {
    border-color: rgba(54, 201, 124, .44);
    color: var(--rw-signal);
}

.rw-chip--needs {
    border-color: rgba(236, 180, 76, .45);
    color: var(--rw-butter);
}

.rw-chip--ghost {
    border-style: dashed;
    opacity: .75;
}

/* Photo-first temperature control: snap the fridge, or type the number.
   Sits under the task title with big, thumb-friendly targets. */
.rw-list-row--temp {
    align-items: flex-start;
}

.rw-task-temp {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.rw-task-cam {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 6px 16px;
    border-radius: 11px;
    border: 1px solid rgba(54, 201, 124, .44);
    background: rgba(54, 201, 124, .1);
    color: var(--rw-signal);
    font-weight: 700;
    cursor: pointer;
}

.rw-task-cam i {
    font-size: 1.1rem;
}

.rw-task-num {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.rw-task-num input {
    width: 92px;
    min-height: 40px;
    padding: 6px 12px;
    border-radius: 11px;
    border: 1px solid var(--rw-border-2);
    background: #0E251C;
    color: var(--rw-porcelain);
    font: inherit;
}

.rw-task-num .rw-chip {
    min-height: 40px;
    border-color: var(--rw-border-2);
    color: var(--rw-muted);
}

/* Calm "you're covered" banner - reassurance, never a shaming streak. */
.rw-shield-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid rgba(54, 201, 124, .4);
    background: rgba(54, 201, 124, .1);
}

.rw-shield-banner > i {
    font-size: 1.5rem;
    color: var(--rw-signal);
}

.rw-shield-banner strong {
    color: var(--rw-signal);
}

/* A list row that stands alone as a tappable card (e.g. Home -> Tasks). */
.rw-list-row--card {
    border: 1px solid var(--rw-border);
    border-radius: 14px;
    padding: 14px 16px;
    background: var(--rw-surface, #123126);
    text-decoration: none;
}

.rw-list-row--card:hover {
    border-color: var(--rw-border-2);
}

.rw-score {
    width: 64px;
    height: 64px;
    min-width: 64px;
    padding: 6px;
    border-radius: 12px;
    border: 1px solid var(--rw-border-2);
    background: #0E251C;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 64px;
    overflow: hidden;
}

.rw-score strong {
    font-family: var(--rw-display);
    max-width: 100%;
    font-size: 1.8rem;
    line-height: 1;
    white-space: nowrap;
}

.rw-score span {
    margin-top: 4px;
    font-family: var(--rw-mono);
    font-size: .55rem;
    color: var(--rw-muted);
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.rw-score--target {
    border-color: rgba(54, 201, 124, .48);
    background: rgba(54, 201, 124, .1);
}

.rw-score--target strong {
    color: var(--rw-signal);
}

.rw-progression {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.rw-progression .rw-copy {
    flex: 1 0 100%;
    margin-top: 2px;
}

.rw-progress {
    display: grid;
    gap: 6px;
}

.rw-progress__meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--rw-muted);
    font-size: .82rem;
}

.rw-progress__bar {
    height: 8px;
    border-radius: 999px;
    background: #0A1F17;
    border: 1px solid var(--rw-border);
    overflow: hidden;
}

.rw-progress__bar i {
    display: block;
    width: var(--rw-progress-value, 0%);
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rw-pine), var(--rw-signal));
}

.rw-skeleton {
    position: relative;
    overflow: hidden;
    min-height: 58px;
    border-radius: var(--rw-radius-md);
    background: rgba(234, 238, 229, .07);
}

.rw-skeleton:after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(234, 238, 229, .08), transparent);
    animation: rw-shimmer 1.3s infinite;
}

.rw-empty,
.rw-error,
.rw-offline {
    padding: 14px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    background: rgba(22, 85, 58, .18);
    color: var(--rw-muted);
}

.rw-error {
    border-color: rgba(224, 122, 95, .38);
    background: rgba(224, 122, 95, .1);
}

.rw-offline {
    border-color: rgba(236, 180, 76, .35);
    background: rgba(236, 180, 76, .1);
}

.rw-route-note {
    color: var(--rw-muted);
    font-size: .88rem;
}

.rw-sheet-backdrop {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgba(0, 0, 0, .56);
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.rw-bottom-sheet {
    width: min(440px, 100%);
    padding: 16px 16px max(16px, env(safe-area-inset-bottom));
    border-radius: 20px 20px 0 0;
    background: var(--rw-surface-2);
}

.rw-bottom-sheet h2 {
    margin: 0;
    font-family: var(--rw-display);
    font-size: 1.55rem;
}

@keyframes rw-shimmer {
    100% {
        transform: translateX(100%);
    }
}

@media (min-width: 760px) {
    .rw-app {
        align-items: center;
        padding: 28px;
    }

    .rw-shell {
        min-height: min(860px, calc(100vh - 56px));
        border: 1px solid var(--rw-border-2);
        border-radius: 30px;
        overflow: hidden;
    }

    .rw-bottom-nav {
        position: sticky;
        transform: none;
        left: auto;
        max-width: none;
    }
}

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

/* ---- Onboarding wizard ---- */
.rw-shell--setup {
    min-height: 100vh;
    max-width: 560px;
    margin: 0 auto;
    padding: 0 18px env(safe-area-inset-bottom);
}

.rw-setup-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 0 8px;
}

.rw-step-dots {
    display: inline-flex;
    gap: 7px;
}

.rw-step-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rw-border-2);
}

.rw-step-dot.is-active {
    background: var(--rw-signal);
}

.rw-setup .rw-button,
.rw-setup .rw-secondary-button {
    width: 100%;
}

.rw-lang-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.rw-lang-tile {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
    min-height: 60px;
    padding: 12px 14px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    background: var(--rw-surface);
    color: var(--rw-porcelain);
}

.rw-lang-tile strong {
    font-size: 1.05rem;
}

.rw-lang-tile span {
    font-size: .8rem;
    color: var(--rw-muted);
}

.rw-lang-tile.is-on {
    border-color: var(--rw-signal);
    box-shadow: 0 0 0 1px var(--rw-signal) inset;
}

.rw-lang-tile.is-soon {
    opacity: .5;
}

.rw-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rw-swatch {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    border: 2px solid transparent;
    cursor: pointer;
}

.rw-swatch[aria-pressed="true"] {
    border-color: var(--rw-porcelain);
    box-shadow: 0 0 0 2px var(--rw-spruce) inset;
}

.rw-suggested {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.rw-suggested .rw-kicker {
    flex-basis: 100%;
    margin: 0;
}

.rw-swatch--suggested {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
}

.rw-suggested__hex {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    font-size: 13px;
    color: var(--rw-ink-soft, #5a6b5f);
}

.rw-brand-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 96px;
    border-radius: var(--rw-radius-md);
    padding: 16px;
    color: #fff;
}

.rw-brand-preview strong {
    font-family: var(--rw-display);
    font-weight: 800;
    font-size: 1.4rem;
}

.rw-brand-preview img {
    max-height: 64px;
    max-width: 70%;
    object-fit: contain;
}

/* ---- Plan comparison (Progress) ---- */
.rw-plan-toggle {
    display: flex;
    gap: 10px;
}

.rw-plan-tab {
    flex: 1;
    min-width: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    /* Top padding reserves a strip for the CURRENT badge on every tab, so
       prices line up across the row and the badge never overlaps the price. */
    padding: 26px 12px 12px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    background: var(--rw-surface);
    color: var(--rw-porcelain);
    cursor: pointer;
    text-align: left;
}

.rw-plan-tab strong {
    font-family: var(--rw-display);
    font-size: 1.25rem;
    line-height: 1.1;
}

.rw-plan-tab span {
    font-size: .72rem;
    line-height: 1.3;
    color: var(--rw-muted);
}

.rw-plan-tab.is-on {
    border-color: var(--rw-signal);
    box-shadow: 0 0 0 1px var(--rw-signal) inset;
}

.rw-plan-now {
    position: absolute;
    top: 10px;
    right: 10px;
    font: 600 .6rem var(--rw-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rw-signal);
}

.rw-chip--locked {
    border-color: rgba(236, 180, 76, .4);
    color: var(--rw-butter);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* ---- £99 two-part pricing breakdown ---- */
.rw-pricing {
    border: 1px solid var(--rw-border);
    border-radius: var(--rw-radius-md);
    background: var(--rw-surface);
    overflow: hidden;
}

.rw-pricing__row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
}

.rw-pricing__row + .rw-pricing__row {
    border-top: 1px solid var(--rw-border);
}

.rw-pricing__amt {
    display: flex;
    align-items: baseline;
    gap: 10px;
    font-family: var(--rw-display);
    font-size: 1.35rem;
    color: var(--rw-porcelain);
}

.rw-pricing__row:last-child .rw-pricing__amt {
    color: var(--rw-butter);
}

.rw-pricing__note {
    font-family: var(--rw-mono);
    font-size: .62rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rw-muted);
}

.rw-pricing__detail {
    font-size: .82rem;
    line-height: 1.35;
    color: var(--rw-muted);
}

/* ---- Staff record: course picker + link card ---- */
.rw-course-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-top: 1px solid var(--rw-border);
    cursor: pointer;
}

.rw-course-row:first-of-type {
    border-top: none;
}

.rw-course-row.is-done {
    cursor: default;
}

.rw-course-row .rw-list-row__text {
    flex: 1;
    min-width: 0;
}

.rw-check {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    accent-color: var(--rw-signal);
}

/* Title + inline tag on one row (tag stays beside the title, never below).
   Needs to out-specify `.rw-list-row__text strong { display:block }`. */
.rw-list-row__text strong.rw-tag-row {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}

.rw-list-row__text strong.rw-tag-row .rw-chip--mini {
    align-self: center;
}

.rw-chip--mini {
    flex: 0 0 auto;
    min-height: 0;
    padding: 1px 5px;
    font-size: .5rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    border: 0;
    border-radius: 4px;
    background: rgba(236, 180, 76, .16);
    color: var(--rw-butter);
}

.rw-link-ready {
    border: 1px solid var(--rw-signal);
}

.rw-choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rw-choice-chip {
    flex: 1 1 auto;
    min-width: 64px;
    min-height: var(--rw-touch);
    padding: 0 14px;
    border-radius: 11px;
    border: 1px solid var(--rw-border-2);
    background: var(--rw-surface);
    color: var(--rw-porcelain);
    font: 600 .95rem inherit;
    cursor: pointer;
}

.rw-choice-chip.is-on {
    border-color: var(--rw-signal);
    box-shadow: 0 0 0 1px var(--rw-signal) inset;
    color: var(--rw-signal);
}

.rw-day-chip {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 4px;
    font-size: .82rem;
}

.rw-course-item {
    border-top: 1px solid var(--rw-border);
}

.rw-course-item:first-of-type {
    border-top: none;
}

.rw-course-head {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    background: transparent;
    border: 0;
    color: var(--rw-porcelain);
    text-align: left;
    cursor: pointer;
}

.rw-course-head .rw-list-row__text {
    flex: 1;
    min-width: 0;
}

.rw-course-detail {
    padding: 2px 0 14px;
}

.rw-course-detail .rw-copy {
    margin: 0 0 8px;
}

.rw-log-entry {
    border-top: 1px solid var(--rw-border);
    padding-top: 10px;
}

.rw-log-entry:first-child {
    border-top: none;
    padding-top: 0;
}

.rw-log-photo {
    display: block;
    margin: 8px 0 2px 42px;
    max-width: 160px;
}

.rw-log-photo img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    border: 1px solid var(--rw-border-2);
    display: block;
}

.rw-icon-button {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    border: 1px solid var(--rw-border);
    background: transparent;
    color: var(--rw-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.rw-icon-button:hover {
    color: var(--rw-porcelain);
    border-color: var(--rw-border-2);
}

.rw-field-input {
    width: 100%;
    font: 500 .9rem var(--rw-mono, monospace);
    padding: 11px 12px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-border);
    background: var(--rw-surface);
    color: var(--rw-porcelain);
}

/* ---- £99 guarantee banner + lever-arch folder visual ---- */
.rw-guarantee {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border-radius: var(--rw-radius-md);
    border: 1px solid var(--rw-signal);
    background: linear-gradient(135deg, rgba(54, 201, 124, .12), rgba(22, 85, 58, .25));
}

.rw-guarantee__text strong {
    color: var(--rw-signal);
    font-size: 1.05rem;
}

.rw-guarantee__text p {
    margin: 4px 0 0;
    font-size: .9rem;
    color: #cdd8d1;
}

.rw-folder {
    position: relative;
    flex: none;
    width: 54px;
    height: 66px;
    border-radius: 4px 7px 7px 4px;
    background: linear-gradient(180deg, #d8c089, #c2a85f);
    box-shadow: 0 6px 14px rgba(0, 0, 0, .35);
    overflow: hidden;
}

.rw-folder::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 13px;
    background: #16553a;
}

.rw-folder__ring {
    position: absolute;
    left: 4px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(234, 238, 229, .85);
    transform: translateY(-50%);
}

.rw-folder__spine {
    position: absolute;
    left: 13px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    font: 700 .42rem var(--rw-mono);
    letter-spacing: .04em;
    color: #6b5a2a;
}

.rw-chip--locked i {
    font-size: .85rem;
}

/* ---- On/off switch (Configure checks) ---- */
.rw-switch {
    width: 46px;
    height: 28px;
    border-radius: 999px;
    border: 1px solid var(--rw-border-2);
    background: rgba(234, 238, 229, .08);
    position: relative;
    cursor: pointer;
    flex: none;
}

.rw-switch span {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--rw-muted);
    transition: transform .15s ease, background .15s ease;
}

.rw-switch.is-on {
    background: rgba(54, 201, 124, .25);
    border-color: var(--rw-signal);
}

.rw-switch.is-on span {
    transform: translateX(18px);
    background: var(--rw-signal);
}

.rw-list-row--config.is-off {
    opacity: .55;
}

.rw-config-day {
    margin-top: 8px;
}

.rw-day-select {
    min-height: 36px;
    padding: 6px 10px;
    border-radius: 9px;
    border: 1px solid var(--rw-border-2);
    background: #0E251C;
    color: var(--rw-porcelain);
    font: inherit;
}
