:root {
    --ivory: #fffaf2;
    --paper: #ffffff;
    --ink: #24343a;
    --muted: #6b7b80;
    --line: #e9e5dc;
    --teal: #168f8b;
    --teal-dark: #0f6d6a;
    --coral: #ef806d;
    --sun: #f4c95d;
    --danger: #b64b50;
    --shadow: 0 18px 45px rgba(50, 64, 61, .10);
    --soft-primary: #e0f4f1;
    --soft-coral: #fff0eb;
    --soft-highlight: #fff4cc;
    --input-background: #fffefa;
    --glow-a: #ffe6b6;
    --glow-b: #ccefeb;
}

.theme-sky { --ivory: #f4fbff; --ink: #25384a; --muted: #6f7f8f; --line: #dfeaf2; --teal: #3f9fcb; --teal-dark: #21779f; --coral: #ef8b76; --sun: #f5c866; --soft-primary: #e0f3fb; --soft-coral: #fff0ea; --soft-highlight: #fff5d2; --input-background: #fbfeff; --glow-a: #d9efff; --glow-b: #dff7f0; }
.theme-lavender { --ivory: #fbf8ff; --ink: #383448; --muted: #77718a; --line: #e8e0f2; --teal: #8877c8; --teal-dark: #6657a4; --coral: #df7b9a; --sun: #f2c866; --soft-primary: #eee9fc; --soft-coral: #fff0f5; --soft-highlight: #fff5d7; --input-background: #fffdfd; --glow-a: #eee5ff; --glow-b: #e3f4f3; }
.theme-peach { --ivory: #fff8f3; --ink: #3e3432; --muted: #81716c; --line: #f0e1d8; --teal: #209c9b; --teal-dark: #157575; --coral: #ee876f; --sun: #f4c35a; --soft-primary: #e0f5f1; --soft-coral: #fff0e9; --soft-highlight: #fff4d0; --input-background: #fffdf9; --glow-a: #ffe4d5; --glow-b: #dcf5ef; }
.theme-mint { --ivory: #f4fff9; --ink: #263c35; --muted: #6d8078; --line: #dceee5; --teal: #36a681; --teal-dark: #23795d; --coral: #e98270; --sun: #f1c85f; --soft-primary: #e1f6ed; --soft-coral: #fff0eb; --soft-highlight: #fff5d5; --input-background: #fbfffd; --glow-a: #e0f7df; --glow-b: #d7f4ef; }
.theme-sunflower { --ivory: #fffdf2; --ink: #3e382a; --muted: #827963; --line: #eee7d2; --teal: #d18d22; --teal-dark: #996817; --coral: #e97967; --sun: #f4bd43; --soft-primary: #fff1c9; --soft-coral: #fff0eb; --soft-highlight: #ffefb8; --input-background: #fffefa; --glow-a: #fff0bd; --glow-b: #def4e7; }
.theme-blueberry { --ivory: #f5f8ff; --ink: #2e394e; --muted: #707b91; --line: #e0e6f1; --teal: #4e83c4; --teal-dark: #315f98; --coral: #ec8a72; --sun: #f1c764; --soft-primary: #e3edfc; --soft-coral: #fff0e9; --soft-highlight: #fff5d5; --input-background: #fcfdff; --glow-a: #dce9ff; --glow-b: #e1f5ed; }
.theme-berry { --ivory: #fff7fb; --ink: #432f3d; --muted: #816d79; --line: #f0e0e9; --teal: #ba638f; --teal-dark: #8e466d; --coral: #e78276; --sun: #f2c45a; --soft-primary: #f8e7f0; --soft-coral: #fff0ed; --soft-highlight: #fff5d5; --input-background: #fffdfd; --glow-a: #ffe4ef; --glow-b: #e0f5ed; }
.theme-aqua { --ivory: #f1ffff; --ink: #263d3f; --muted: #6c8182; --line: #dceeee; --teal: #1caaa1; --teal-dark: #147e79; --coral: #ee846b; --sun: #f1c457; --soft-primary: #dff8f5; --soft-coral: #fff0e9; --soft-highlight: #fff4ce; --input-background: #fbffff; --glow-a: #d6f6f1; --glow-b: #e7f5d9; }
.theme-rose { --ivory: #fff8fb; --ink: #40323d; --muted: #7d6d78; --line: #efdee8; --teal: #c86f9b; --teal-dark: #974e75; --coral: #238f91; --sun: #f3c866; --soft-primary: #f8e7f0; --soft-coral: #e0f4f1; --soft-highlight: #fff5d5; --input-background: #fffdfd; --glow-a: #ffe3ef; --glow-b: #dff4ef; }
.theme-apple { --ivory: #f8fff5; --ink: #30402d; --muted: #71806d; --line: #e1eddc; --teal: #58a65d; --teal-dark: #387c3e; --coral: #df7167; --sun: #f1c252; --soft-primary: #e3f4df; --soft-coral: #fff0ed; --soft-highlight: #fff3c9; --input-background: #fcfffa; --glow-a: #e2f7cf; --glow-b: #d9f3ee; }
.theme-periwinkle { --ivory: #f7f8ff; --ink: #30394d; --muted: #707b90; --line: #e1e5f1; --teal: #6d84c7; --teal-dark: #4b62a0; --coral: #ec806f; --sun: #f1c760; --soft-primary: #e7ebfb; --soft-coral: #fff0eb; --soft-highlight: #fff5d6; --input-background: #fcfdff; --glow-a: #e2e8ff; --glow-b: #def5ed; }

:root { --preview-background: var(--soft-primary); --preview-primary: var(--teal); --preview-secondary: var(--soft-coral); --preview-highlight: var(--sun); }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--ivory); color: var(--ink); font: 16px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, sans-serif; }
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: .45rem; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -.04em; }
h2 { margin-bottom: .2rem; font-size: 1.35rem; letter-spacing: -.02em; }
h3 { margin: 0; font-size: 1rem; }
.muted { color: var(--muted); }
.eyebrow { margin-bottom: .45rem; color: var(--teal-dark); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.card { background: var(--paper); border: 1px solid rgba(233,229,220,.9); border-radius: 24px; box-shadow: var(--shadow); }
.brand-mark { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 17px 17px 17px 5px; background: var(--coral); color: white; font-size: 1.7rem; font-weight: 900; transform: rotate(-5deg); }
.brand-mark-small { width: 30px; height: 30px; border-radius: 10px 10px 10px 3px; font-size: 1rem; }
.brand-mark-teal { background: var(--teal); }
.landing-page { display: grid; min-height: 100vh; place-items: center; padding: clamp(1.5rem, 5vw, 4rem); background: radial-gradient(circle at 10% 12%, var(--glow-a) 0 13%, transparent 34%), radial-gradient(circle at 90% 84%, var(--glow-b) 0 12%, transparent 34%), var(--ivory); }
.landing-shell { width: min(100%, 980px); }
.landing-brand { display: flex; align-items: center; gap: .85rem; margin-bottom: 2rem; }
.landing-brand .brand-mark { width: 48px; height: 48px; }
.landing-brand-name { margin: 0; color: var(--ink); font-size: 1.45rem; font-weight: 850; letter-spacing: -.04em; }
.landing-brand-tagline { margin: .1rem 0 0; color: var(--muted); font-size: .8rem; }
.landing-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; padding: clamp(1.5rem, 5vw, 3.25rem); border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(120deg, var(--paper) 0%, var(--soft-highlight) 100%); box-shadow: var(--shadow); }
.landing-hero h1 { max-width: 16ch; margin-bottom: .8rem; font-size: clamp(2.2rem, 5vw, 4.2rem); }
.landing-hero p:last-child { margin-bottom: 0; font-size: 1.05rem; }
.landing-hero-art { display: grid; width: 108px; height: 108px; place-items: center; border-radius: 34px; background: var(--sun); color: white; font-size: 3.8rem; transform: rotate(8deg); box-shadow: 0 12px 28px rgba(244,201,93,.22); }
.landing-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; margin-top: 1.2rem; }
.landing-choice { position: relative; display: flex; min-height: 235px; gap: 1rem; align-items: flex-start; padding: 1.7rem; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); text-decoration: none; box-shadow: 0 8px 22px rgba(50,64,61,.055); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.landing-choice:hover { border-color: var(--teal); box-shadow: 0 14px 30px rgba(50,64,61,.11); transform: translateY(-2px); }
.landing-choice-family { background: linear-gradient(135deg, var(--paper) 0%, var(--soft-primary) 100%); }
.landing-choice-provider { background: linear-gradient(135deg, var(--paper) 0%, var(--soft-coral) 100%); }
.landing-choice-icon { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; border-radius: 15px; font-size: 1.45rem; font-weight: 800; }
.landing-choice-icon-sun { background: var(--soft-highlight); color: #8b702d; }
.landing-choice-icon-teal { background: var(--soft-coral); color: var(--teal-dark); }
.landing-choice .eyebrow { display: block; margin-bottom: .45rem; }
.landing-choice-title { display: block; margin-bottom: .55rem; font-size: 1.45rem; font-weight: 800; letter-spacing: -.03em; }
.landing-choice-description { display: block; max-width: 34ch; color: var(--muted); font-size: .9rem; line-height: 1.6; }
.landing-choice-button { margin-top: 1.15rem; }
.landing-footer { margin: 1.25rem 0 0; color: var(--muted); font-size: .78rem; text-align: center; }
.site-footer { display: flex; justify-content: center; gap: .55rem; margin-top: .55rem; color: var(--muted); font-size: .68rem; }
@media (max-width: 700px) { .landing-choice-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .landing-page { padding: 1.25rem; } .landing-brand { margin-bottom: 1.25rem; } .landing-hero { grid-template-columns: 1fr; gap: 1.5rem; } .landing-hero-art { width: 72px; height: 72px; border-radius: 22px; font-size: 2.5rem; } .landing-choice { min-height: 0; padding: 1.25rem; } .landing-choice-title { font-size: 1.25rem; } }
.login-page { display: grid; min-height: 100vh; place-items: center; padding: 2rem; background: radial-gradient(circle at 12% 12%, var(--glow-a) 0 12%, transparent 34%), radial-gradient(circle at 90% 80%, var(--glow-b) 0 10%, transparent 30%), var(--ivory); }
.login-shell { width: min(100%, 430px); }
.brand-lockup { margin-bottom: 1.5rem; text-align: center; }
.brand-lockup .brand-mark { margin: 0 auto 1.2rem; }
.login-card { padding: 2rem; }
.demo-login-callout { margin-top: 1.15rem; padding: 1.15rem 1.4rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.56); text-align: center; }
.demo-login-callout .eyebrow { margin-bottom: .2rem; }
.demo-login-callout p:not(.eyebrow) { margin-bottom: .75rem; font-size: .86rem; }
.remember-me-row { display: flex; gap: .55rem; align-items: center; margin-top: 1rem; color: var(--muted); font-size: .84rem; }
.remember-me-row input { width: auto; margin: 0; accent-color: var(--teal); }
.remember-me-row label { margin: 0; color: var(--muted); font-size: .84rem; font-weight: 600; }
label { display: block; margin: 1rem 0 .35rem; color: var(--ink); font-size: .86rem; font-weight: 750; }
input { width: 100%; padding: .78rem .9rem; border: 1px solid #d9ded9; border-radius: 12px; background: var(--input-background); color: var(--ink); font: inherit; outline: none; }
input:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(22,143,139,.14); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 40px; padding: .55rem .85rem; border: 0; border-radius: 11px; font: inherit; font-size: .86rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.button-primary { margin-top: 1.35rem; background: var(--teal); color: white; }
.button-primary:hover { background: var(--teal-dark); }
.button-wide { width: 100%; }
.button-quiet { background: #f4f5f0; color: var(--ink); }
.button-danger { background: #fff0ed; color: var(--danger); }
.topbar { display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 1rem clamp(1rem, 4vw, 3rem); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.8); }
.topbar-brand { display: inline-flex; align-items: center; gap: .7rem; font-weight: 850; text-decoration: none; }
.topbar-actions { display: flex; align-items: center; gap: 1rem; }
.topbar-label { color: var(--muted); font-size: .85rem; }
.page-shell { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(2rem, 6vw, 4.5rem) 0; }
.narrow-shell { width: min(600px, calc(100% - 2rem)); margin: 0 auto; padding: 2.5rem 0; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 2rem; }
.page-heading-actions { display: flex; align-items: center; gap: 1rem; }
.page-heading-actions .button { margin-top: 0; }
.heading-orbit { display: grid; width: 76px; height: 76px; place-items: center; border-radius: 50%; background: var(--sun); color: white; font-size: 2.5rem; transform: rotate(12deg); }
.heading-orbit-teal { background: var(--teal); }
.content-grid { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); gap: 1.4rem; align-items: start; }
.portal-hero { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 1.8rem; }
.stat-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .9rem; margin-bottom: 1.4rem; }
.stat-card { display: flex; flex-direction: column; gap: .1rem; padding: 1.2rem 1.35rem; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.stat-card-link { text-decoration: none; cursor: pointer; transition: border-color .15s ease, transform .15s ease; }
.stat-card-link:hover { border-color: #b9dfd9; transform: translateY(-1px); }
.stat-number { color: var(--teal-dark); font-size: 2rem; font-weight: 850; line-height: 1; }
.stat-label { color: var(--muted); font-size: .8rem; font-weight: 750; }
.stat-link-hint { margin-top: .45rem; color: var(--teal-dark); font-size: .78rem; font-weight: 800; }
.welcome-card { display: flex; gap: 1.2rem; align-items: flex-start; padding: clamp(1.25rem, 4vw, 2rem); background: linear-gradient(120deg, var(--paper) 0%, var(--soft-highlight) 100%); }
.welcome-spark { display: grid; width: 52px; height: 52px; flex: 0 0 auto; place-items: center; border-radius: 17px; background: var(--sun); color: white; font-size: 1.8rem; }
.setup-grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); gap: 1.4rem; align-items: start; margin-bottom: 1.4rem; }
.room-types-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, 240px); gap: 1.4rem; align-items: start; margin-bottom: 1.4rem; }
.room-types-card { min-width: 0; }
.age-months-reference { padding: clamp(1.25rem, 3vw, 1.6rem); }
.age-months-reference .section-heading { margin-bottom: .7rem; }
.age-months-reference > p { margin-bottom: .9rem; font-size: .82rem; }
.age-months-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.age-months-table th, .age-months-table td { padding: .34rem .1rem; border-bottom: 1px solid #edf0eb; text-align: left; }
.age-months-table thead th { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.age-months-table tbody th { color: var(--ink); font-weight: 700; }
.age-months-table tbody td { color: var(--muted); text-align: right; }
.age-months-table tbody tr:last-child th, .age-months-table tbody tr:last-child td { border-bottom: 0; }
.form-card, .list-card { padding: clamp(1.25rem, 3vw, 2rem); }
.section-heading { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: 1.4rem; }
.section-heading-spread { align-items: center; justify-content: space-between; }
.icon-disc { display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center; border-radius: 13px; color: white; font-size: 1.4rem; font-weight: 500; }
.icon-disc-coral { background: var(--coral); }
.count-badge { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--soft-primary); color: var(--teal-dark); font-weight: 850; }
.waitlist-count-badge { width: auto; min-width: 34px; padding: 0 .6rem; border-radius: 999px; white-space: nowrap; }
.icon-disc-sun { background: var(--sun); }
.icon-disc-teal { background: var(--teal); }
.alert { margin-bottom: 1rem; padding: .8rem 1rem; border-radius: 12px; font-size: .9rem; font-weight: 650; }
.alert-success { background: #e4f5ed; color: #267252; }
.alert-error { background: #fff0ed; color: var(--danger); }
.empty-state { padding: 3rem 1rem; color: var(--muted); text-align: center; }
.empty-illustration { margin-bottom: .5rem; color: var(--sun); font-size: 2.5rem; }
.provider-list { display: grid; gap: .7rem; }
.provider-row { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; padding: .85rem; border: 1px solid #edf0eb; border-radius: 16px; }
.provider-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 14px; background: #dff3f0; color: var(--teal-dark); font-weight: 900; }
.provider-title-line { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.provider-details p { margin: .15rem 0 0; color: var(--muted); font-size: .85rem; }
.status-pill { padding: .18rem .45rem; border-radius: 999px; background: #e5f5ec; color: #267252; font-size: .65rem; font-weight: 850; letter-spacing: .06em; }
.status-archived { background: #f1eee8; color: var(--muted); }
.status-denied { background: #fff0ed; color: #a44e43; }
.sibling-pill { background: #ffe5df; color: #a44e43; }
.row-actions { display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.back-link { display: inline-block; margin-bottom: 1rem; color: var(--teal-dark); font-size: .9rem; font-weight: 750; text-decoration: none; }
.label-hint { color: var(--muted); font-weight: 500; }
textarea, select { width: 100%; padding: .78rem .9rem; border: 1px solid #d9ded9; border-radius: 12px; background: #fffefa; color: var(--ink); font: inherit; outline: none; }
textarea { resize: vertical; }
textarea:focus, select:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(22,143,139,.14); }
.compact-form, .type-row form, .staff-add-form { display: flex; gap: .5rem; align-items: center; }
.compact-form input, .type-row input, .staff-add-form input { flex: 1; }
.compact-form .button, .type-row .button { margin-top: 0; flex: 0 0 auto; }
.setup-list { display: grid; gap: .55rem; margin-top: 1rem; }
.type-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .45rem; min-width: 0; align-items: center; }
.type-row form:first-child { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) 82px auto 82px auto; gap: .45rem; align-items: center; }
.type-row form:first-child input { width: 100%; min-width: 0; }
.type-row form:last-child { min-width: max-content; }
.type-create-form { display: grid; grid-template-columns: minmax(0, 1fr) 88px auto 88px auto; min-width: 0; }
.type-create-form input { width: 100%; min-width: 0; }
.type-create-form input:first-child { min-width: 0; }
.type-create-form input:not(:first-child) { max-width: 88px; }
.list-card-spaced { margin-top: 1.4rem; }
.compact-empty { padding: 1.5rem 1rem .8rem; }
.compact-list { display: grid; gap: .4rem; }
.compact-row { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem .7rem; border: 1px solid #edf0eb; border-radius: 13px; background: #fff; }
.compact-row-main { display: flex; min-width: 0; align-items: center; gap: .7rem; }
.compact-row-main > div { min-width: 0; }
.compact-row-main strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-subtext { display: block; overflow: hidden; color: var(--muted); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.row-icon { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 11px; font-size: 1rem; font-weight: 850; }
.row-icon-coral { background: var(--soft-coral); color: var(--coral); }
.row-icon-teal { background: var(--soft-primary); color: var(--teal-dark); }
.row-icon-sun { background: var(--soft-highlight); color: #866c1e; }
.compact-row .status-pill { flex: 0 0 auto; }
.row-main-link { display: flex; min-width: 0; flex: 1; align-items: center; gap: .7rem; color: inherit; text-decoration: none; }
.row-arrow { margin-left: auto; color: var(--teal); font-weight: 900; }
.compact-row-link { text-decoration: none; cursor: pointer; }
.compact-row-link:hover { border-color: #b9dfd9; background: #fbfffd; }
.icon-actions { display: flex; flex: 0 0 auto; gap: .25rem; align-items: center; margin-left: auto; }
.icon-form { display: inline-flex; margin: 0; }
.icon-button { display: inline-grid; width: 32px; height: 32px; place-items: center; padding: 0; border: 1px solid transparent; border-radius: 9px; background: #f4f6f2; color: var(--teal-dark); cursor: pointer; }
.icon-button:hover { border-color: #b9dfd9; background: #e6f6f3; }
.icon-button-danger { color: var(--danger); }
.icon-button-danger:hover { border-color: #f0c3bd; background: #fff0ed; }
.icon-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.location-row { padding: .9rem; border: 1px solid #edf0eb; border-radius: 16px; }
.location-row form:first-child { display: grid; gap: .35rem; }
.location-row .button { margin-top: .45rem; }
.location-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.room-section { margin-top: 1.4rem; }
.room-create-form, .room-fields { display: grid; grid-template-columns: 1.1fr 1.1fr 1.2fr .65fr auto; gap: .7rem; align-items: end; }
.room-create-form .button { margin-top: 0; }
.room-list { display: grid; gap: .9rem; margin-top: 1.4rem; }
.room-card { padding: 1rem; border: 1px solid #e8eeeb; border-radius: 18px; background: #fcfefd; }
.room-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.room-card-heading .eyebrow { margin-bottom: .15rem; }
.capacity-badge { padding: .35rem .55rem; border-radius: 999px; background: #fff4cc; color: #866c1e; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.room-fields { grid-template-columns: 1fr 1fr 1.2fr .65fr; }
.room-fields label, .room-create-form label { margin-top: 0; }
.room-edit-form .button { margin-top: .7rem; }
.staff-panel { margin-top: 1rem; padding: .9rem; border-radius: 14px; background: #f2f8f5; }
.staff-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .55rem; }
.staff-heading h3 { font-size: .9rem; }
.staff-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .4rem 0; border-bottom: 1px solid #dfece5; color: var(--muted); font-size: .85rem; }
.staff-row .button { min-height: 30px; padding: .3rem .5rem; }
.staff-add-form { margin-top: .65rem; }
.staff-add-form .button { margin-top: 0; }
.staff-edit-card { margin-top: 1.4rem; }
.edit-enrolment-empty { margin-top: 1rem; }
.enrolment-empty { display: flex; justify-content: space-between; gap: 1rem; margin-top: .9rem; color: var(--muted); font-size: .77rem; }
.enrolment-empty span:first-child { color: var(--teal-dark); font-weight: 800; }
.room-card > form:last-child .button { margin-top: .8rem; }
.detail-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.6rem; }
.detail-icon { display: grid; width: 56px; height: 56px; flex: 0 0 auto; place-items: center; border-radius: 18px; font-size: 1.5rem; font-weight: 850; }
.detail-icon-coral { background: #fff0eb; color: var(--coral); }
.detail-icon-teal { background: #e1f4f1; color: var(--teal-dark); }
.detail-icon-sun { background: #fff4cc; color: #866c1e; }
.detail-heading h1 { margin-bottom: .25rem; }
.detail-heading-action { margin-left: auto; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.detail-card { padding: clamp(1.25rem, 3vw, 2rem); }
.detail-section { margin-top: 1.4rem; }
.room-overview { padding: 1.15rem clamp(1.25rem, 3vw, 2rem); }
.room-overview-facts { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 1rem; align-items: center; }
.room-overview-facts > div { display: grid; gap: .15rem; min-width: 0; }
.room-overview-facts > div > span { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.room-overview-facts strong, .room-overview-facts a { font-size: .96rem; }
.room-roster { padding: clamp(1.25rem, 3vw, 2rem); }
.room-roster-caption { margin: .35rem 0 0; font-size: .86rem; }
.room-roster-list { gap: .55rem; margin-top: .9rem; }
.room-roster-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; min-height: 76px; padding: .8rem .9rem; }
.room-roster-child { min-width: 0; }
.room-roster-child > strong { display: block; font-size: 1rem; }
.room-roster-child .progression-note { display: block; }
.room-roster .section-heading { margin-bottom: .35rem; }
.detail-heading-actions { display: flex; align-items: center; gap: .55rem; margin-left: auto; }
.detail-heading-actions .button { margin-top: 0; white-space: nowrap; }
.room-journey { padding: clamp(1.15rem, 3vw, 1.8rem); }
.room-journey-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.room-journey-heading h2 { margin-bottom: .2rem; }
.room-journey-heading p:last-child { margin-bottom: 0; }
.room-journey-total { margin-top: .35rem; color: var(--teal-dark); font-size: .78rem; font-weight: 800; }
.room-journey-legend { display: flex; flex-wrap: wrap; gap: .6rem 1rem; margin: 1rem 0 .85rem; color: var(--muted); font-size: .75rem; font-weight: 700; }
.room-journey-scroll-hint { display: none; margin: 0 0 .45rem; color: var(--muted); font-size: .7rem; }
.journey-legend-item { display: inline-flex; align-items: center; gap: .38rem; }
.journey-dot { width: .65rem; height: .65rem; border-radius: 50%; }
.journey-dot-before { background: #78a9cf; }
.journey-dot-in-band { background: #68b58c; }
.journey-dot-transition { background: #e3b83f; }
.journey-dot-incoming { background: #6f98cf; }
.journey-dot-outgoing { background: #df806f; }
.journey-dot-unknown { background: #a5afb0; }
.room-journey-scroll { max-width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 16px; background: #f7faf8; }
.room-journey-board { display: flex; align-items: stretch; width: max-content; min-width: 100%; }
.journey-month-column { flex: 0 0 214px; border-right: 1px solid #e1e9e4; background: #f7faf8; }
.journey-month-column:last-child { border-right: 0; }
.journey-month-current { background: #f1f8f5; box-shadow: inset 0 0 0 2px var(--teal); }
.journey-month-header { position: sticky; top: 0; z-index: 1; min-height: 114px; padding: .85rem .8rem .75rem; border-bottom: 1px solid #e1e9e4; background: #edf5f2; }
.journey-month-current .journey-month-header { background: var(--soft-primary); }
.journey-month-header h3 { margin: 0 0 .45rem; color: var(--ink); font-size: .95rem; }
.journey-month-capacity { display: block; color: var(--teal-dark); font-size: .72rem; font-weight: 800; }
.journey-month-header > small { display: block; margin-top: .35rem; color: var(--muted); font-size: .66rem; font-weight: 650; }
.journey-month-events { display: flex !important; flex-wrap: wrap; gap: .25rem .55rem; }
.journey-month-events span:first-child { color: #3677ac; }
.journey-month-events span:last-child { color: #a35a4d; }
.journey-month-events .journey-school-exit { color: #725f8a; }
.journey-month-roster { display: flex; min-height: 360px; flex-direction: column; align-items: stretch; gap: .42rem; padding: .7rem; }
.journey-occupant { display: block; padding: .55rem .6rem; border: 1px solid #dce8e1; border-radius: 10px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 1px 2px #1736270a; }
.journey-occupant:hover { border-color: var(--teal); box-shadow: 0 3px 9px #17362712; }
.journey-occupant strong { display: block; font-size: .75rem; line-height: 1.25; }
.journey-occupant-age { display: block; margin-top: .25rem; color: var(--teal-dark); font-size: .68rem; font-weight: 800; }
.journey-occupant-stage, .journey-occupant-source { display: block; margin-top: .15rem; color: var(--muted); font-size: .62rem; font-weight: 650; line-height: 1.3; }
.journey-occupant-before-band { background: #edf5fc; border-color: #d6e5f1; }
.journey-occupant-in-band { background: #edf8f0; border-color: #d7eadc; }
.journey-occupant-transition { background: #fff7df; border-color: #f0e3b8; }
.journey-occupant-projected-in { background: #eaf2ff; border-color: #d6e2f4; }
.journey-occupant-unknown { background: #f1f3f2; }
.journey-occupant-new { outline: 2px solid #6f98cf; outline-offset: 1px; }
.journey-month-empty { margin: auto 0; color: #83908a; font-size: .73rem; text-align: center; }
.child-room-trajectory { padding: clamp(1.2rem, 3vw, 1.8rem); }
.child-room-trajectory .section-heading { margin-bottom: .4rem; }
.trajectory-count { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; width: auto; padding: .35rem .7rem; border-radius: 999px; background: var(--soft-primary); color: var(--teal-dark); font-size: .73rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.child-room-trajectory + .parent-claim-code-card { margin-top: 1.4rem; }
.child-room-trajectory + .profile-grid { margin-top: 1.4rem; }
.child-trajectory-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: .7rem; margin: 1.15rem 0 .9rem; padding: 0; list-style: none; }
.child-trajectory-steps li { position: relative; display: flex; min-height: 110px; gap: .65rem; padding: .8rem; border: 1px solid #e1e9e4; border-radius: 13px; background: #f7faf8; }
.trajectory-step-marker { flex: 0 0 .75rem; width: .75rem; height: .75rem; margin-top: .2rem; border: 2px solid #71a790; border-radius: 50%; background: #fff; }
.trajectory-step-current .trajectory-step-marker { background: #71a790; box-shadow: 0 0 0 3px #71a79022; }
.child-trajectory-steps li div { display: grid; align-content: start; gap: .2rem; }
.child-trajectory-steps time { color: var(--teal-dark); font-size: .69rem; font-weight: 800; }
.child-trajectory-steps h3 { margin: 0; color: var(--ink); font-size: .9rem; font-weight: 800; line-height: 1.25; letter-spacing: -.01em; }
.child-trajectory-steps li div span { color: var(--muted); font-size: .7rem; line-height: 1.35; }
.child-room-trajectory > .muted { margin: .6rem 0 0; font-size: .75rem; }
.vacancy-work { padding: clamp(1.25rem, 3vw, 2rem); }
.detail-list { display: grid; grid-template-columns: auto 1fr; gap: .6rem 1.3rem; margin: 1.2rem 0 0; }
.detail-list dt { color: var(--muted); font-size: .82rem; font-weight: 750; }
.detail-list dd { margin: 0; white-space: pre-line; }
.inline-link { color: var(--teal-dark); font-weight: 750; text-decoration: none; }
.capacity-large { color: var(--teal-dark); font-size: 1.2rem; font-weight: 850; }
.collapsible-card { padding: 0; overflow: hidden; }
.collapsible-card summary { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.4rem; cursor: pointer; list-style: none; }
.collapsible-card summary::-webkit-details-marker { display: none; }
.summary-chevron { color: var(--teal); font-size: 1.3rem; }
.collapsed-content { padding: 0 1.4rem 1rem; border-top: 1px solid var(--line); }
.assign-form { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid #e3ece7; }
.assign-controls { display: flex; gap: .6rem; }
.assign-controls .button { margin-top: 0; flex: 0 0 auto; }
.small-button { min-height: 32px; padding: .35rem .55rem; }
.waitlist-layout { display: block; }
.waitlist-form { padding: clamp(1.25rem, 3vw, 2rem); }
.form-section { margin-top: 1.5rem; padding-top: 1.35rem; border-top: 1px solid #e7eee9; }
.form-section:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.form-grid { display: grid; gap: .7rem; }
.form-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-grid { display: grid; gap: .7rem; }
.contact-card { padding: .9rem; border: 1px solid #e5ece7; border-radius: 15px; background: #fbfdfb; }
.contact-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .7rem; }
.contact-card label { margin-top: .75rem; }
.contact-card input, .contact-card select { padding: .62rem .7rem; border-radius: 10px; font-size: .9rem; }
.contact-card .form-grid-two { gap: .5rem; }
.check-label, .radio-label { display: flex; align-items: center; gap: .45rem; margin-top: .75rem !important; font-size: .82rem; font-weight: 700; }
.check-label input, .radio-label input { width: auto; accent-color: var(--teal); }
.contact-policy { display: grid; gap: .1rem; margin: 1rem 0 0; padding: .8rem; border: 1px solid #e5ece7; border-radius: 13px; }
.contact-policy legend { padding: 0 .3rem; color: var(--muted); font-size: .78rem; font-weight: 750; }
.waitlist-list-card { min-width: 0; }
.waitlist-dialog { width: min(900px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow-y: auto; }
.waitlist-dialog .waitlist-form { padding: 0; }
.waitlist-rows { display: grid; gap: .4rem; }
.waitlist-row { display: grid; grid-template-areas: "child dates flags actions notes"; grid-template-columns: minmax(0, 1.5fr) minmax(210px, 1fr) auto auto auto; min-height: 62px; align-items: center; gap: .65rem .8rem; padding: .5rem .75rem; border: 1px solid #e5ece7; border-radius: 12px; background: #fff; }
.waitlist-row-main { grid-area: child; display: flex; min-width: 0; align-items: center; gap: .65rem; }
.waitlist-row-main .row-icon { width: 30px; height: 30px; border-radius: 9px; }
.waitlist-row-identity { min-width: 0; }
.waitlist-row-main h3 { overflow: hidden; margin: 0; font-size: .9rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-row-main h3 a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-row-main .row-subtext { margin: .15rem 0 0; line-height: 1.25; }
.waitlist-row-dates { grid-area: dates; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; gap: .6rem; }
.waitlist-row-date { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-row-date > span { display: block; color: var(--muted); font-size: .66rem; line-height: 1.2; }
.waitlist-row-date time { display: block; overflow: hidden; color: var(--ink); font-size: .78rem; font-weight: 650; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-row-flags { grid-area: flags; display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; min-width: 0; }
.waitlist-row-flags .status-pill { max-width: 100%; overflow: hidden; font-size: .63rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.waitlist-row-side { grid-area: actions; display: flex; align-items: center; justify-content: flex-end; gap: .3rem; white-space: nowrap; }
.waitlist-row-side form { margin: 0; }
.waitlist-row .small-button { min-height: 32px; padding: .32rem .55rem; font-size: .72rem; white-space: nowrap; }
.waitlist-notes-button { grid-area: notes; padding: .3rem .1rem; border: 0; background: transparent; color: var(--teal-dark); font: inherit; font-size: .76rem; font-weight: 750; cursor: pointer; white-space: nowrap; }
.waitlist-notes-button:hover { text-decoration: underline; }
.waitlist-notes-content { max-height: min(50vh, 400px); overflow: auto; }
.waitlist-notes-content > div + div { margin-top: .9rem; }
.waitlist-notes-content strong { color: var(--teal-dark); font-size: .75rem; }
.waitlist-notes-content p { margin: .2rem 0 0; color: var(--muted); font-size: .86rem; white-space: pre-wrap; overflow-wrap: anywhere; }
 .children-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 190px auto; gap: .8rem; align-items: end; margin-bottom: 1.4rem; padding-bottom: 1.2rem; border-bottom: 1px solid #edf1ed; }
.children-toolbar label { margin-top: 0; }
.children-toolbar .button { margin-top: 0; }
.child-list { display: grid; gap: .45rem; }
.child-row { display: grid; grid-template-columns: auto minmax(150px, 1fr) minmax(180px, .8fr) auto auto; gap: .8rem; align-items: center; padding: .75rem .8rem; border: 1px solid #edf0eb; border-radius: 14px; background: #fff; text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.child-row:hover { border-color: #b9dfd9; background: #fbfffd; transform: translateY(-1px); }
.child-row-main { min-width: 0; }
.child-row-main strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.child-row-placement { overflow: hidden; color: var(--muted); font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.child-row-waitlist { padding: .2rem .45rem; border-radius: 999px; background: #fff4cc; color: #866c1e; font-size: .68rem; font-weight: 800; white-space: nowrap; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; align-items: start; }
.profile-grid-spaced { margin-top: 1.4rem; }
.placement-summary { display: grid; gap: .25rem; padding: 1rem; border-radius: 15px; background: #f2f8f5; }
.placement-summary strong { color: var(--teal-dark); font-size: 1.15rem; }
.placement-summary span { color: var(--muted); font-size: .85rem; }
.placement-actions { display: flex; gap: .55rem; align-items: center; flex-wrap: wrap; margin-top: 1rem; }
.placement-actions .button { margin-top: 0; }
.placement-actions form { margin: 0; }
.placement-dialog { width: min(520px, calc(100vw - 2rem)); max-width: none; padding: 1.4rem; border: 1px solid #dfe8e2; border-radius: 22px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 70px rgba(43, 61, 57, .22); }
.placement-dialog::backdrop { background: rgba(37, 54, 51, .28); backdrop-filter: blur(3px); }
.placement-dialog .section-heading { margin-bottom: 1rem; }
.placement-dialog .section-heading h2 { margin-bottom: .2rem; }
.placement-dialog .section-heading p { margin-bottom: 0; }
.dialog-actions { display: flex; justify-content: flex-end; gap: .55rem; margin-top: 1.2rem; }
.dialog-actions .button { margin-top: 0; }
.timeline-list { display: grid; gap: .5rem; margin-top: .8rem; }
.timeline-row { display: grid; grid-template-columns: minmax(90px, .7fr) minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .7rem .75rem; border: 1px solid #edf0eb; border-radius: 12px; font-size: .82rem; }
.timeline-row span:nth-child(2) { color: var(--muted); }
.contact-list { display: grid; gap: .75rem; }
.managed-contact { padding: .9rem; border: 1px solid #e5ece7; border-radius: 15px; background: #fbfdfb; }
.managed-contact-heading { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.managed-contact-heading > div:first-child { display: flex; gap: .45rem; align-items: center; flex-wrap: wrap; }
.contact-role { color: var(--muted); font-size: .78rem; }
.managed-contact-edit { margin-top: .75rem; padding-top: .65rem; border-top: 1px solid #e5ece7; }
.managed-contact-edit label { margin-top: .45rem; }
.managed-contact-edit .button { margin-top: .6rem; }
.add-contact-form { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid #e5ece7; }
.add-contact-form h3 { margin-bottom: .2rem; }
.add-contact-form .button { margin-top: 1rem; }
.progression-defaults-card { margin-bottom: 1.4rem; }
.progression-defaults-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: .8rem; align-items: end; }
.progression-defaults-form label { margin-top: 0; }
.progression-defaults-form .button { margin-top: 0; }
.progression-fieldset { margin: 1.2rem 0 0; padding: .9rem; border: 1px solid #e5ece7; border-radius: 15px; background: #fbfdfb; }
.progression-fieldset legend { padding: 0 .35rem; font-weight: 800; }
.progression-fieldset p { margin-bottom: .25rem; font-size: .82rem; }
.progression-fieldset label { margin-top: .55rem; }
.stage-summary { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: 1.1rem; }
.stage-badge { display: inline-flex; align-items: center; padding: .22rem .5rem; border-radius: 999px; font-size: .68rem; font-weight: 850; white-space: nowrap; }
.stage-new { background: #e3f1ff; color: #28628d; }
.stage-comfortable { background: #e5f5ec; color: #267252; }
.stage-mature { background: #fff4cc; color: #866c1e; }
.stage-ready { background: #ffe5df; color: #a44e43; }
.progression-note { margin: .2rem 0 0; color: var(--muted); font-size: .76rem; }
.progression-roster-note { margin: 0 0 .8rem; padding: .55rem .7rem; border-radius: 10px; background: #f5f8f3; font-weight: 700; }
.child-row-stage { min-width: 0; }
.parent-page { background: radial-gradient(circle at 8% 4%, #ffe8c1 0 10%, transparent 28%), radial-gradient(circle at 94% 84%, #ccefeb 0 11%, transparent 31%), var(--ivory); }
.parent-hero { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 1.8rem; }
.parent-directory-card { width: min(900px, 100%); margin: 0 auto; padding: clamp(1.25rem, 4vw, 2.2rem); }
.parent-search { padding-bottom: 1.4rem; border-bottom: 1px solid #edf1ed; }
.parent-search label { margin-top: 0; }
.parent-search-controls { display: flex; gap: .7rem; }
.parent-search-controls input { min-width: 0; }
.parent-search-controls .button { margin-top: 0; flex: 0 0 auto; }
.parent-daycare-list { display: grid; gap: .75rem; margin-top: 1.4rem; }
.parent-daycare-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .9rem; align-items: center; padding: 1rem; border: 1px solid #e5ece7; border-radius: 18px; background: #fff; }
.parent-daycare-avatar { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 16px; background: #fff0eb; color: var(--coral); font-size: 1.55rem; }
.parent-daycare-main { min-width: 0; }
.parent-daycare-main h2 { margin-bottom: .25rem; }
.parent-daycare-main p { margin: .12rem 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.parent-form-shell { padding-top: 2.5rem; }
.parent-application-card { padding: clamp(1.25rem, 4vw, 2.2rem); }
.parent-intro { padding: .9rem 1rem; border-radius: 15px; background: #fff9e8; }
.parent-intro p { margin: .25rem 0 0; font-size: .84rem; }
.parent-account-summary { display: flex; gap: .55rem; align-items: baseline; flex-wrap: wrap; padding: .75rem .85rem; border-radius: 13px; background: #f2f8f5; }
.parent-account-summary span { color: var(--muted); font-size: .85rem; }
.form-help { margin: .45rem 0 0; color: var(--muted); font-size: .78rem; }
.parent-unknown-dob { padding: .7rem; border-radius: 12px; background: #f2f8f5; }
.parent-unknown-dob input { flex: 0 0 auto; }
.confirmation-shell { padding-top: 5rem; }
.confirmation-shell .brand-lockup { text-align: center; }
.confirmation-shell .brand-mark { margin: 0 auto 1.2rem; }
.confirmation-card { padding: clamp(1.25rem, 4vw, 2.2rem); }
.confirmation-check { display: grid; width: 58px; height: 58px; margin: 0 auto 1rem; place-items: center; border-radius: 20px; background: #e4f5ed; color: #267252; font-size: 2rem; font-weight: 900; }
.confirmation-card .detail-list { margin-top: 0; }
.confirmation-note { margin: 1.5rem 0 0; font-size: .84rem; }
.login-footnote { margin: 1.2rem 0; color: var(--muted); font-size: .84rem; text-align: center; }
.login-card .back-link { margin-bottom: 0; }
.parent-status-card { padding: clamp(1.25rem, 4vw, 2.2rem); }
.claim-child-card, .parent-claim-code-card { display: flex; gap: 1.2rem; align-items: center; justify-content: space-between; margin-bottom: 1.4rem; padding: clamp(1.25rem, 4vw, 2rem); }
.claim-child-card .section-heading, .parent-claim-code-card .section-heading { margin-bottom: 0; }
.claim-child-form { min-width: min(390px, 100%); }
.claim-child-form label { margin-top: 0; }
.claim-child-controls { display: flex; gap: .6rem; }
.claim-child-controls input { min-width: 0; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; text-transform: uppercase; }
.claim-child-controls .button { margin-top: 0; flex: 0 0 auto; }
.parent-claim-code-card { margin-bottom: 1.4rem; }
.parent-claim-code-card h2 { margin-bottom: .25rem; }
.parent-claim-code-card p { max-width: 650px; margin-bottom: 0; font-size: .84rem; }
.child-duplicate-card { margin-bottom: 1.4rem; }
.claim-code-display { display: flex; gap: .6rem; align-items: center; flex: 0 0 auto; }
.claim-code-display code { padding: .7rem .9rem; border: 1px dashed #dfb35a; border-radius: 12px; background: #fff9e8; color: #725b1b; font: 850 1.1rem ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .12em; }
.claim-code-display .button { margin-top: 0; }
.parent-status-list { display: grid; gap: .7rem; }
.parent-status-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .9rem; padding: 1rem; border: 1px solid #e5ece7; border-radius: 18px; background: #fff; }
.parent-status-main { min-width: 0; }
.parent-status-main h2 { margin-bottom: .25rem; }
.parent-status-main p { margin: .35rem 0 0; }
.parent-child-link { color: var(--teal-dark); text-decoration: none; }
.parent-child-link:hover { text-decoration: underline; }
.parent-provider-status { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.parent-provider-status .parent-waitlist-progress { border-color: var(--soft-primary); background: linear-gradient(135deg, var(--soft-primary), var(--soft-highlight)); }
.parent-provider-status .queue-track { background: linear-gradient(90deg, var(--soft-primary) 0%, var(--soft-primary) 24%, var(--soft-highlight) 62%, var(--soft-coral) 100%); }
.parent-provider-status .queue-signal { background: linear-gradient(90deg, color-mix(in srgb, var(--teal), white 38%), var(--coral)); box-shadow: 0 0 12px 4px color-mix(in srgb, var(--teal), transparent 70%), 0 0 24px 8px color-mix(in srgb, var(--coral), transparent 84%); }
.parent-provider-status .queue-signal-label, .parent-provider-status .parent-waitlist .status-pill { background: var(--soft-primary); color: var(--teal-dark); }
.parent-provider-status .stage-new, .parent-provider-status .stage-comfortable { background: var(--soft-primary); color: var(--teal-dark); }
.parent-provider-status .stage-mature { background: var(--soft-highlight); color: var(--ink); }
.parent-provider-status .stage-ready { background: var(--soft-coral); color: var(--ink); }
.parent-placement, .parent-waitlist { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.parent-placement strong { color: var(--teal-dark); }
.parent-waitlist { color: var(--muted); font-size: .84rem; }
.parent-waitlist-progress { margin-top: 1rem; padding: .9rem 1rem; border: 1px solid #dcefeb; border-radius: 16px; background: linear-gradient(135deg, #f7fffc, #fffaf0); }
.parent-waitlist-progress-heading { display: flex; gap: .8rem; align-items: flex-start; justify-content: space-between; margin-bottom: .75rem; }
.parent-waitlist-progress-heading strong { display: block; margin-top: .1rem; color: var(--teal-dark); }
.queue-signal-label { padding: .22rem .5rem; border-radius: 999px; background: #e5f5ec; color: #267252; font-size: .68rem; font-weight: 850; white-space: nowrap; }
.queue-track { position: relative; height: 14px; overflow: hidden; isolation: isolate; border-radius: 999px; background: linear-gradient(90deg, #ccefeb 0%, #e8f3df 24%, #f8f0d8 62%, #ffe5df 100%); box-shadow: inset 0 1px 2px rgba(30, 70, 66, .12); }
.queue-front-zone { position: absolute; inset: 0 auto 0 0; z-index: 0; width: 16%; border-right: 1px dashed rgba(15, 109, 106, .58); background: rgba(255, 255, 255, .22); }
.queue-signal { position: absolute; top: 0; bottom: 0; z-index: 1; min-width: 10%; border-radius: 999px; background: linear-gradient(90deg, rgba(22, 143, 139, .62), rgba(239, 128, 109, .9)); box-shadow: 0 0 12px 4px rgba(22, 143, 139, .3), 0 0 24px 8px rgba(239, 128, 109, .15); }
.queue-track-labels { display: flex; justify-content: space-between; margin-top: .35rem; color: var(--muted); font-size: .68rem; font-weight: 700; }
.queue-disclaimer { margin: .55rem 0 0; color: var(--muted); font-size: .72rem; }
.stat-card-coral .stat-number { color: var(--coral); }
.stat-card-vacancy .stat-number { color: #267252; }
.vacancy-badge { flex: 0 0 auto; padding: .35rem .55rem; border-radius: 999px; background: #e4f5ed; color: #267252; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.vacancy-badge-full { background: var(--soft-coral); color: var(--coral); }
.parent-applications-card { margin-bottom: 1.4rem; padding: clamp(1.25rem, 4vw, 2.2rem); }
.application-list { display: grid; gap: .75rem; }
.application-row { display: grid; gap: .8rem; }
.application-main { min-width: 0; }
.application-heading { display: flex; gap: .8rem; align-items: flex-start; justify-content: space-between; }
.application-heading h2, .application-heading h3 { margin-bottom: .25rem; }
.application-heading .eyebrow { margin-bottom: .25rem; }
.application-detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; padding: .85rem; border-radius: 14px; background: #f7faf7; }
.application-detail-grid > div { min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.detail-label { color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.application-location, .application-notes, .application-decision { margin: .75rem 0 0; color: var(--muted); font-size: .84rem; }
.application-notes { padding: .7rem .8rem; border-radius: 12px; background: #fff9e8; }
.application-decision { padding: .7rem .8rem; border-radius: 12px; background: #eaf7f2; color: var(--teal-dark); }
.application-decision-denied { background: #fff0ed; color: #a44e43; }
.application-actions { display: flex; gap: .55rem; flex-wrap: wrap; align-items: center; margin-top: 1rem; }
.application-actions form { margin: 0; }
.application-actions .button { margin-top: 0; }
.application-pending { background: #fff4cc; color: #866c1e; }
.application-approved { background: #e4f5ed; color: #267252; }
.application-denied { background: #fff0ed; color: #a44e43; }
.provider-application-list { margin-top: 1.2rem; }
.provider-application-row { padding: clamp(1.1rem, 3vw, 1.6rem); }
.report-launch-card, .report-choice-card { display: flex; align-items: flex-start; gap: 1.2rem; padding: clamp(1.3rem, 3vw, 2rem); }
.report-launch-card { margin-top: 1.4rem; background: linear-gradient(120deg, var(--paper), var(--soft-highlight)); }
.report-choice-card { margin-top: 1.4rem; }
.report-launch-icon { display: grid; width: 52px; height: 52px; flex: 0 0 52px; place-items: center; border-radius: 16px; background: var(--soft-primary); color: var(--teal-dark); font-size: 1.8rem; font-weight: 850; }
.report-filter-card { padding: clamp(1.2rem, 3vw, 1.7rem); }
.report-filter-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: .8rem; }
.report-filter-form label { margin-top: 0; }
.report-filter-form .button { margin-top: 0; }
.report-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .85rem; }
.report-summary strong { color: var(--teal-dark); font-size: 1.25rem; }
.report-groups { display: grid; gap: 1.4rem; margin-top: 1.4rem; }
.report-group { overflow: hidden; }
.report-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.4rem; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, var(--paper), var(--soft-highlight)); }
.report-group-heading .eyebrow { margin-bottom: .2rem; }
.report-table-wrap { overflow-x: auto; }
.report-table { width: 100%; min-width: 760px; border-collapse: collapse; }
.report-table th, .report-table td { padding: .85rem 1rem; border-bottom: 1px solid #edf0eb; text-align: left; vertical-align: top; }
.report-table th { color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; background: var(--soft-primary); }
.report-table tbody tr:last-child td { border-bottom: 0; }
.report-table tbody tr:hover { background: var(--soft-highlight); }
.report-table td:first-child { min-width: 170px; }
.report-secondary { display: block; margin-top: .18rem; color: var(--muted); font-size: .78rem; }
.report-transition { display: grid; gap: .18rem; justify-items: start; }
.report-transition .stage-badge { margin-bottom: .1rem; }
.settings-card { padding: clamp(1.25rem, 3vw, 2rem); }
.settings-intro { max-width: 680px; margin-bottom: 1.5rem; }
.theme-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.theme-choice { position: relative; display: block; margin: 0; cursor: pointer; }
.theme-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.theme-choice-card { display: block; overflow: hidden; border: 2px solid transparent; border-radius: 17px; background: var(--paper); box-shadow: 0 0 0 1px var(--line); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.theme-choice:hover .theme-choice-card { border-color: var(--soft-primary); transform: translateY(-1px); }
.theme-choice input:checked + .theme-choice-card { border-color: var(--preview-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--preview-primary), white 72%); }
.theme-choice input:checked + .theme-choice-card .theme-choice-copy strong::after { content: "✓ Selected"; display: inline-block; margin-left: .55rem; color: var(--preview-primary); font-size: .72rem; font-weight: 800; white-space: nowrap; }
.theme-choice input:focus-visible + .theme-choice-card { outline: 3px solid var(--preview-primary); outline-offset: 2px; }
.theme-preview { display: block; height: 82px; padding: .75rem; background: var(--preview-background); }
.theme-preview-bar { display: flex; gap: .35rem; align-items: center; height: 18px; padding: 0 .45rem; border-radius: 6px; background: var(--preview-primary); }
.theme-preview-dot { display: block; width: 7px; height: 7px; border-radius: 50%; background: var(--preview-highlight); }
.theme-preview-line { display: block; width: 42%; height: 5px; margin-top: 13px; border-radius: 99px; background: var(--preview-primary); opacity: .68; }
.theme-preview-card { display: block; width: 64%; height: 20px; margin-top: 7px; border: 1px solid color-mix(in srgb, var(--preview-primary), white 60%); border-radius: 6px; background: white; box-shadow: 10px 0 0 -5px var(--preview-secondary); }
.theme-choice-copy { display: block; padding: .7rem .8rem .8rem; }
.theme-choice-copy strong { display: block; margin-bottom: .1rem; }
.theme-choice-copy span { display: block; color: var(--muted); font-size: .76rem; line-height: 1.35; }
.settings-actions { display: flex; gap: .7rem; align-items: center; margin-top: 1.4rem; }
.settings-actions .button { margin-top: 0; }
.settings-note { margin: 1.5rem 0 0; padding: .85rem 1rem; border-radius: 14px; background: var(--soft-highlight); color: var(--ink); font-size: .84rem; }
@media (max-width: 1050px) { .stat-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .content-grid, .setup-grid, .room-types-layout { grid-template-columns: 1fr; } .room-create-form { grid-template-columns: 1fr 1fr; } .room-create-form .button { grid-column: 1 / -1; justify-self: start; } .children-toolbar { grid-template-columns: 1fr 1fr; } .children-toolbar .button { justify-self: start; } .progression-defaults-form { grid-template-columns: 1fr 1fr; } .progression-defaults-form .button { justify-self: start; } .report-filter-form { grid-template-columns: 1fr 1fr; } .report-filter-form .button { justify-self: start; } }
@media (max-width: 900px) { .stat-grid { grid-template-columns: repeat(2, 1fr); } .waitlist-layout { grid-template-columns: 1fr; } }
@media (max-width: 820px) { .page-heading, .portal-hero { align-items: flex-start; } .page-heading-actions { align-items: flex-start; flex-wrap: wrap; justify-content: flex-end; } .heading-orbit { width: 58px; height: 58px; font-size: 1.8rem; } .room-fields { grid-template-columns: 1fr 1fr; } .room-fields > div:nth-child(3), .room-fields > div:nth-child(4) { grid-column: span 2; } .detail-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .stat-grid { grid-template-columns: 1fr; } .topbar-label { display: none; } .topbar-actions { gap: .35rem; flex-wrap: wrap; justify-content: flex-end; } .topbar-actions .button { padding-right: .55rem; padding-left: .55rem; font-size: .76rem; } .provider-row { grid-template-columns: auto 1fr; } .row-actions { grid-column: 2; justify-content: flex-start; } .portal-hero { display: block; } .page-heading { display: block; } .page-heading-actions { justify-content: space-between; margin-top: 1.2rem; } .heading-orbit { margin-top: 0; } .compact-form, .type-row, .staff-add-form { align-items: stretch; flex-direction: column; } .compact-form .button, .type-row .button, .staff-add-form .button { width: 100%; } .type-row form:first-child { width: 100%; align-items: stretch; flex-direction: column; } .type-row form:first-child input:not(:first-child) { width: 100%; max-width: none; } .room-create-form, .room-fields { grid-template-columns: 1fr; } .room-create-form .button, .room-fields > div:nth-child(3), .room-fields > div:nth-child(4) { grid-column: auto; } .compact-row { align-items: flex-start; } .compact-row-main { min-width: 0; flex-wrap: wrap; } .compact-row-main .status-pill { margin-left: 2.7rem; } .enrolment-empty { flex-direction: column; gap: .1rem; } .detail-heading { align-items: flex-start; flex-wrap: wrap; } .detail-heading-action { margin-left: 0; } .assign-controls { flex-direction: column; } .form-grid-two { grid-template-columns: 1fr; } .waitlist-row { grid-template-columns: 1fr; } .waitlist-row-side { justify-content: flex-start; } .children-toolbar, .profile-grid { grid-template-columns: 1fr; } .child-row { grid-template-columns: auto minmax(0, 1fr) auto; } .child-row-placement { grid-column: 2 / -1; } .child-row-waitlist { grid-column: 2; justify-self: start; } .timeline-row { grid-template-columns: 1fr auto; } .timeline-row span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; } .managed-contact-heading { align-items: flex-start; flex-direction: column; } .progression-defaults-form { grid-template-columns: 1fr; } .theme-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .report-filter-form { grid-template-columns: 1fr; } .report-filter-form .button { width: 100%; } .report-launch-card, .report-choice-card { flex-direction: column; align-items: stretch; } }
@media (max-width: 700px) { .room-overview-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .room-roster-row { grid-template-columns: auto minmax(0, 1fr) auto; } .room-roster-row .stage-badge { grid-column: 2; justify-self: start; } .room-roster-row .row-arrow { grid-column: 3; grid-row: 1; } }
@media (max-width: 560px) { .detail-heading-actions { width: 100%; margin-left: 0; } .detail-heading-actions .button { flex: 1; } .journey-month-column { flex-basis: 178px; } .journey-month-header { min-height: 108px; padding: .72rem .65rem; } .journey-month-roster { padding: .55rem; } }
@media (max-width: 820px) { .room-journey-scroll-hint { display: block; } }
@media (max-width: 560px) { .type-row { grid-template-columns: 1fr; } .type-row form:first-child { display: grid; grid-template-columns: 1fr; } .type-row form:last-child { min-width: 0; width: 100%; } .type-create-form { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); } .type-create-form input:first-child, .type-create-form .button { grid-column: 1 / -1; } .type-create-form input:not(:first-child) { width: 100%; max-width: none; } }
@media (max-width: 760px) { .application-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .parent-hero { display: block; } .parent-hero .heading-orbit { margin-top: 1.2rem; } .parent-search-controls { align-items: stretch; flex-direction: column; } .parent-search-controls .button { width: 100%; } .parent-daycare-row { grid-template-columns: auto minmax(0, 1fr); } .parent-daycare-row > .button, .parent-daycare-row > .status-pill { grid-column: 2; justify-self: start; } .application-heading { align-items: flex-start; flex-direction: column; } .application-detail-grid { grid-template-columns: 1fr; } .application-actions .button, .application-actions form { width: 100%; } .application-actions form .button { width: 100%; } }
@media (max-width: 700px) { .claim-child-card, .parent-claim-code-card { align-items: stretch; flex-direction: column; } .claim-child-form { min-width: 0; width: 100%; } .claim-code-display { justify-content: space-between; } }
@media (max-width: 560px) { .parent-waitlist-progress-heading { align-items: flex-start; flex-direction: column; } }
@media (max-width: 900px) {
    .waitlist-row { grid-template-areas: "child flags actions" "dates dates notes"; grid-template-columns: minmax(0, 1fr) auto auto; min-height: 90px; }
    .waitlist-row-flags { align-items: flex-end; }
}
@media (max-width: 560px) {
    .waitlist-row { grid-template-areas: "child child notes" "dates dates dates" "flags flags flags" "actions actions actions"; grid-template-columns: minmax(0, 1fr) auto auto; min-height: 0; gap: .35rem .5rem; padding: .65rem; }
    .waitlist-row-flags { flex-direction: row; justify-content: flex-start; align-items: center; }
    .waitlist-row-side { justify-content: flex-start; }
    .waitlist-row-dates { max-width: 240px; }
}
