.flow-heading {margin-bottom:var(--s8)}
.account-workflow {margin-block:var(--s6)}.account-workflow h2 {margin-block:var(--s3)}
.flow-heading h1 {font-size:var(--portal-title);line-height:1.35;margin-block:var(--s2) var(--s4)}
.flow-heading p {color:var(--catalog-muted);font-size:var(--text-base);max-width:65ch}
.flow-notice {display:flex;align-items:flex-start;gap:var(--s3);background:var(--brand-blue-soft);color:var(--brand-blue-ink);padding:var(--s4) var(--s5);border-radius:var(--r2);font-size:var(--text-xs);line-height:1.85;margin-bottom:var(--s6)}
.flow-notice svg {width:18px;height:18px;margin-top:var(--s1)}
.flow-panel {background:var(--white);padding:var(--s8);border-radius:var(--r3);margin-bottom:var(--s6);min-width:0}
.flow-panel h2 {font-size:var(--portal-heading);line-height:1.45;margin-bottom:var(--s5)}
.flow-panel h3 {font-size:var(--text-lg);margin-bottom:var(--s3)}
.flow-panel>p,.flow-panel small,.flow-row small {color:var(--catalog-muted);font-size:var(--text-sm)}
.flow-stack {display:grid;gap:var(--s6)}
.flow-stack fieldset {border:0;padding:0;margin:0;min-width:0}.flow-stack legend {font-size:var(--text-sm);font-weight:600;margin-bottom:var(--s3)}
.flow-help {color:var(--catalog-muted);font-size:var(--text-xs);line-height:1.85;margin-block:var(--s3)}
.flow-tabs {display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s6)}
.flow-tabs .flow-choice {padding-inline:var(--s4)}.flow-tabs [aria-current] {background:var(--accent-soft);color:var(--accent-hover);font-weight:700}
.flow-section-gap {margin-top:var(--s8)}
.flow-slot-grid label:has(input:disabled) {color:var(--catalog-muted);opacity:.65}
.flow-summary .flow-actions .text-link {white-space:normal}
.flow-field {display:grid;gap:var(--s2);font-size:var(--text-sm);font-weight:600;min-width:0}
.flow-field input,.flow-field select,.flow-field textarea {font:inherit;font-weight:400;width:100%;min-width:0;min-height:48px;padding:var(--s3) var(--s4);background:var(--white);border:1px solid var(--line);border-radius:var(--r1);color:var(--ink)}
.flow-field textarea {min-height:128px;resize:vertical;line-height:1.8}
.flow-field input:focus,.flow-field select:focus,.flow-field textarea:focus {outline:2px solid var(--accent);outline-offset:2px}
.flow-field small {font-weight:400;font-size:var(--text-xs)}
.flow-pair {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.flow-actions {display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-top:var(--s6)}
.flow-actions .button:disabled,.flow-choice:disabled {opacity:.55;cursor:not-allowed;transform:none}
.button.outline {background:var(--white);color:var(--ink);border:1px solid var(--line)}
.button.outline:hover {background:var(--surface);color:var(--ink)}
.flow-feedback {font-size:var(--text-sm);color:var(--brand-blue-ink);line-height:1.85;margin-top:var(--s4);overflow-wrap:anywhere}
.flow-feedback:empty {display:none}
.flow-feedback[data-error="true"] {color:var(--ink);font-weight:700}
.flow-steps {display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 var(--s8);gap:var(--s6);font-size:var(--text-sm);color:var(--catalog-muted)}
.flow-steps li {display:flex;align-items:center;gap:var(--s2);min-height:44px}
.flow-steps span {display:grid;place-items:center;min-width:28px;height:28px;border-radius:var(--pill);background:var(--surface);font-size:var(--text-xs);font-weight:700}
.flow-steps [aria-current] {color:var(--accent-hover);font-weight:700}
.flow-steps [aria-current] span {background:var(--accent-soft);color:var(--accent-hover)}
.flow-split {display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s8);align-items:start}
.flow-summary {position:sticky;top:112px;background:var(--white);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s6);min-width:0}
.flow-summary h2 {font-size:var(--portal-heading);line-height:1.5;margin-bottom:var(--s4)}
.flow-summary .flow-total {font-size:var(--portal-quote);font-weight:800;display:block;margin:var(--s4) 0}
.flow-summary .button {width:100%;margin-top:var(--s5)}
.flow-summary small {display:block;color:var(--catalog-muted);font-size:var(--text-xs);line-height:1.85;margin-top:var(--s3)}
.flow-course {display:flex;align-items:flex-start;gap:var(--s5);padding-bottom:var(--s6);border-bottom:1px solid var(--line);margin-bottom:var(--s6)}
.flow-course>.portrait-frame {width:88px;flex-shrink:0}
.flow-course h2 {font-size:var(--text-quote);line-height:1.5;margin-bottom:var(--s2)}
.flow-course p {font-size:var(--text-sm);color:var(--catalog-muted);margin-top:var(--s1)}
.flow-state {display:inline-flex;align-items:center;min-height:28px;font-size:var(--text-xs);font-weight:600;padding:var(--s1) var(--s3);border-radius:var(--pill);background:var(--surface);color:var(--catalog-muted);white-space:nowrap}
.flow-state.positive {background:var(--brand-blue-soft);color:var(--brand-blue-ink)}
.flow-row {display:flex;justify-content:space-between;align-items:center;gap:var(--s5);padding-block:var(--s6);border-bottom:1px solid var(--line);min-width:0}
.flow-row:first-child {padding-top:0}.flow-row:last-child {border-bottom:0;padding-bottom:0}
.flow-row>div {min-width:0}.flow-row h3 {font-size:var(--text-lg);line-height:1.6;margin-block:var(--s2)}
.flow-row small {display:block;overflow-wrap:anywhere;font-size:var(--text-xs)}
.flow-row p {font-size:var(--text-sm);color:var(--catalog-muted)}
.flow-row-actions {display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
.flow-facts {margin:0;display:grid;gap:var(--s4);font-size:var(--text-sm)}
.flow-facts>div {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:var(--s3)}
.flow-facts dt {color:var(--catalog-muted)}.flow-facts dd {margin:0;overflow-wrap:anywhere}
.flow-choice {display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:var(--s3);background:var(--surface);border-radius:var(--r1);font-size:var(--text-sm);text-align:center}
.flow-choice:has(input:checked),.flow-choice[aria-pressed="true"] {background:var(--accent-soft);color:var(--accent-hover);font-weight:700}
.flow-choice input {accent-color:var(--accent);width:16px;height:16px;margin:0;flex-shrink:0}
.flow-choice input:focus-visible {outline-offset:2px}
.flow-slot-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.flow-slots-title {display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap}
.flow-slots-title h2 {margin:0}.flow-slots-title select {font:inherit;border:1px solid var(--line);background:var(--white);border-radius:var(--r1);min-height:44px;padding:var(--s2)}
.flow-schedule-day {border-bottom:1px solid var(--line);padding-block:var(--s4);display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--s4);align-items:center}
.flow-schedule-day strong {font-size:var(--text-sm)}
.flow-check {display:flex;align-items:flex-start;gap:var(--s3);font-size:var(--text-sm);min-height:44px;padding-block:var(--s2)}
.flow-check input {width:18px;height:18px;accent-color:var(--accent);margin-top:var(--s1);flex-shrink:0}
.flow-empty {text-align:center;background:var(--white);border-radius:var(--r3);padding:var(--s10);margin-bottom:var(--s6)}
.flow-empty>svg {width:32px;height:32px;margin:0 auto var(--s4);color:var(--brand-blue-icon)}
.flow-empty h2 {font-size:var(--portal-heading);margin-bottom:var(--s3)}
.flow-empty p {font-size:var(--text-sm);color:var(--catalog-muted);margin-bottom:var(--s6)}
.flow-timeline {list-style:none;padding:0;margin:0;display:grid;gap:var(--s5)}
.flow-timeline li {display:grid;grid-template-columns:28px minmax(0,1fr);gap:var(--s3);font-size:var(--text-sm)}
.flow-timeline svg {width:20px;height:20px;color:var(--brand-blue-icon)}
.flow-timeline p {color:var(--catalog-muted);font-size:var(--text-xs);margin-top:var(--s1)}
.flow-room {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s6);align-items:center;background:var(--brand-blue-soft);padding:var(--s8);border-radius:var(--r3);margin-bottom:var(--s6)}
.flow-room h2 {font-size:var(--portal-heading);margin-bottom:var(--s3)}
.flow-room p {font-size:var(--text-sm);color:var(--brand-blue-ink);max-width:58ch}
.flow-room svg {color:var(--brand-blue-icon);width:32px;height:32px}
.flow-result {max-width:720px;margin:var(--s10) auto;min-width:0}
.flow-result h1 {font-size:var(--portal-title);line-height:1.35;margin-bottom:var(--s5)}
.flow-result-icon {display:grid;place-items:center;width:64px;height:64px;background:var(--brand-blue-soft);color:var(--brand-blue-icon);border-radius:var(--pill);margin-bottom:var(--s6)}
.flow-result>p {color:var(--catalog-muted);margin-bottom:var(--s6)}
.auth-layout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:var(--s16);align-items:start;padding-block:var(--s12)}
.auth-story {padding-block:var(--s8)}.auth-story h1 {font-size:var(--portal-title);line-height:1.4;margin-bottom:var(--s6)}
.auth-story>p {color:var(--catalog-muted);line-height:1.85;margin-bottom:var(--s8);max-width:40ch}
.auth-benefits {display:grid;gap:var(--s5);margin:0;padding:0;list-style:none}
.auth-benefits li {display:flex;gap:var(--s3);align-items:flex-start;font-size:var(--text-sm)}
.auth-benefits svg {width:20px;height:20px;color:var(--brand-blue-icon)}
.auth-form-panel {background:var(--surface);padding:var(--s8);border-radius:var(--r3)}
.auth-form-panel h2 {font-size:var(--portal-heading);margin-bottom:var(--s6)}
.auth-form-panel .button {width:100%}.auth-links {display:flex;gap:var(--s5);justify-content:center;flex-wrap:wrap;margin-top:var(--s4)}
.admin-tools {display:flex;flex-wrap:wrap;align-items:end;gap:var(--s4);margin-bottom:var(--s6)}
.admin-tools .flow-field {flex:1;min-width:160px}
.admin-tools .button {min-height:48px}
.admin-stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-bottom:var(--s8)}
.admin-stats>div {border-bottom:1px solid var(--line);padding-block:var(--s4)}
.admin-stats span {font-size:var(--text-sm);color:var(--catalog-muted)}
.admin-stats strong {display:block;font-size:var(--portal-quote);margin-top:var(--s2)}
.admin-card {border-bottom:1px solid var(--line);padding-block:var(--s6)}.admin-card:first-child {padding-top:0}
.admin-card:last-child {border:0;padding-bottom:0}.admin-card h3 {font-size:var(--text-quote);margin-top:var(--s3)}
.admin-card p {font-size:var(--text-sm);color:var(--catalog-muted);line-height:1.85}
.admin-card .flow-field {margin-top:var(--s4)}
.flow-banner {background:var(--accent-soft);padding:var(--s8);border-radius:var(--r2)}
.flow-banner h3 {font-size:var(--portal-heading);margin-block:var(--s3)}
.flow-banner p {white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1000px),(max-height:700px) {.flow-summary {position:static}.flow-split {grid-template-columns:1fr}}
@media(max-width:899px) {.auth-layout {grid-template-columns:1fr;gap:var(--s6)}.auth-story {padding-block:0}.auth-story h1 {margin-bottom:var(--s4)}.auth-story>p {margin-bottom:var(--s5)}.auth-benefits {display:none}}
@media(max-width:767px) {.flow-heading h1,.auth-story h1,.flow-result h1 {font-size:28px}.flow-panel,.auth-form-panel {padding:var(--s5)}.flow-row {align-items:flex-start;flex-direction:column;gap:var(--s3)}.flow-row-actions {justify-content:flex-start}.flow-schedule-day {grid-template-columns:1fr;gap:var(--s3)}.flow-slot-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.flow-pair {grid-template-columns:1fr}.flow-room {grid-template-columns:1fr;padding:var(--s5)}.flow-room>svg {display:none}.flow-course {gap:var(--s3)}.flow-course>.portrait-frame {width:64px}.flow-course h2 {font-size:var(--text-lg)}.flow-result {margin-block:var(--s8)}.flow-steps {gap:var(--s3);font-size:var(--text-xs)}.admin-stats {gap:var(--s3)}.admin-stats span {font-size:var(--text-xs)}.admin-stats strong {font-size:var(--text-lg)}.flow-actions>.button {flex-grow:1}.flow-facts>div {grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}}
