[data-slot=alert-dialog-overlay]{background:#1f142a80}[data-slot=alert-dialog-content]{width:calc(100vw - 32px)}[data-slot=alert-dialog-title]{font-family:var(--font-body), Arial, sans-serif;letter-spacing:-.02em;font-size:1.25rem;font-weight:600;line-height:1.4}.portal{background:var(--p-background);color:var(--p-dark);min-height:100vh;font-family:var(--font-manrope), sans-serif;font-size:14px;line-height:1.6}.portal *{box-sizing:border-box}.portal h1,.portal h2,.portal h3,.portal p{margin:0}.portal h1,.portal h2{font-family:var(--font-lora), serif;color:var(--p-dark);font-weight:500}.portal h1{font-size:clamp(28px,3.2vw,40px);line-height:1.3}.portal h2{font-size:25px;line-height:1.35}.portal h3{font-size:16px;font-weight:700}.portal a{color:var(--p-purple);text-decoration:none}.portal a:hover{text-decoration:underline}.portal button,.portal input,.portal textarea{font:inherit}.portal-header{background:var(--p-surface,#fff);border-bottom:1px solid var(--p-line);justify-content:space-between;align-items:center;gap:20px;padding:15px max(24px,50vw - 720px);display:flex}.portal-brand{align-items:center;gap:14px;display:flex;color:var(--p-dark)!important}.portal-brand img{object-fit:contain}.portal-brand strong{font-family:var(--font-lora), serif;font-size:26px;font-weight:600;line-height:1.2;display:block}.portal-brand small{color:var(--p-muted);font-size:13px}.portal-account{align-items:center;gap:22px;display:flex}.portal-account>span{overflow-wrap:anywhere;max-width:250px}.portal-body{max-width:1440px;margin:auto;padding:44px 28px 70px}.portal-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;display:flex}.portal-heading .p-muted{margin-top:10px}.p-eyebrow{letter-spacing:.7px;color:var(--p-purple);font-size:12px;font-weight:700}.p-muted{color:var(--p-muted);font-size:14px}.p-button{cursor:pointer;background:var(--p-purple);color:var(--p-on-accent,#fff);height:auto!important;min-height:40px!important;box-shadow:none!important;white-space:normal!important;border-radius:8px!important;padding:9px 16px!important}.p-button:disabled{opacity:.5;cursor:wait}.p-button:hover{filter:brightness(.96)}.p-link-button{background:var(--p-purple);border-radius:8px;justify-content:center;align-items:center;min-height:46px;padding:12px 24px;font-weight:600;display:inline-flex;color:var(--p-on-accent,#fff)!important}.portal :focus-visible{outline-offset:3px;outline:3px solid var(--p-purple)!important}.p-form{gap:18px;display:grid}.p-field{gap:7px;min-width:0;display:grid}.p-field>label{color:var(--p-dark);font-size:14px;font-weight:700}.p-input{border:1px solid var(--p-control-line,#858296)!important;background:var(--p-surface,#fff)!important;width:100%!important;height:auto!important;min-height:43px!important;box-shadow:none!important;color:var(--p-dark,#20212b)!important;border-radius:8px!important;padding:10px 12px!important;font-size:14px!important}.p-input::placeholder{color:var(--p-muted,#565b6b);opacity:1}.p-textarea{resize:vertical;min-height:110px!important}.p-check{align-items:center;gap:10px;display:flex}.p-check label{cursor:pointer;line-height:1.5}.p-check [data-slot=checkbox]{border-color:var(--p-control-line)}.p-error{background:var(--p-danger-soft,#fff0ed);color:var(--p-danger,#943327);overflow-wrap:anywhere;border-radius:8px;padding:12px 16px;margin:12px 0!important}.p-success{background:var(--p-success-soft,#ecf4ed);color:var(--p-success,#315e3b);border-radius:8px;padding:12px 16px;margin-bottom:20px!important}.p-empty{text-align:center;color:var(--p-muted);border:1px dashed var(--p-line,#d9cde3);background:var(--p-subtle,#fcfbfd);border-radius:12px;padding:42px 24px}.p-empty svg{color:var(--p-purple,#9475a8);margin:0 auto 12px}.p-empty p{max-width:510px;margin:auto}.loading-page{flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:30px;display:flex}.portal-footer{border-top:1px solid var(--p-line);max-width:1384px;color:var(--p-muted);justify-content:space-between;margin:auto;padding:22px 0;font-size:13px;display:flex}.child-banner{background:var(--p-accent-soft,#eae1f1);border:1px solid var(--p-line,#e0d4e9);border-radius:14px;align-items:center;gap:30px;margin-bottom:28px;padding:25px 30px;display:flex;position:relative;overflow:hidden}.child-banner h2{margin:5px 0}.child-banner p{color:var(--p-muted,#756582);font-size:13px}.child-banner .p-field{min-width:220px;margin-left:auto}.child-banner-icon{color:var(--p-purple,#a68aba);flex-shrink:0;margin-left:auto}.portal-tabs{border-bottom:1px solid var(--p-line);flex-wrap:wrap;margin-bottom:24px;background:0 0!important;justify-content:flex-start!important;gap:8px!important;width:100%!important;height:auto!important;padding:0 0 20px!important;display:flex!important}.portal-tabs [data-slot=tabs-trigger]{color:var(--p-muted);border-radius:8px;flex:none;font-size:14px;font-weight:600;height:43px!important;padding:10px 18px!important}.portal-tabs [data-slot=tabs-trigger]:hover:not([data-active]){background:var(--p-hover,#e6e8ee);color:var(--p-dark)}.portal-tabs [data-active]{background:var(--p-purple)!important;color:var(--p-on-accent,#fff)!important;box-shadow:none!important}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin:7px 0 24px;display:flex}.section-heading p{color:var(--p-muted);margin-top:7px;font-size:12px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.day-column{min-width:0}.day-column>header{border-bottom:1px solid var(--p-line);color:var(--p-muted);margin-bottom:12px;padding:0 0 13px;font-size:14px;font-weight:600}.is-today>header{color:var(--p-purple);border-color:var(--p-purple)}.lesson-card{border:1px solid var(--p-line);background:var(--p-surface,#fff);overflow-wrap:anywhere;border-radius:9px;margin-bottom:10px;padding:13px 11px}.lesson-card h3{margin:8px 0;font-size:15px;line-height:1.4}.lesson-card p{color:var(--p-muted);font-size:13px}.lesson-card.is-active-lesson{background:var(--p-success-soft,#f0f9f4);border-color:var(--p-success-line,#21815a);box-shadow:inset 3px 0 0 var(--p-success-line,#21815a)}.active-lesson-badge{background:var(--p-success-soft,#d5efdf);max-width:100%;color:var(--p-success,#125536);border-radius:5px;margin-bottom:9px;padding:4px 7px;font-size:12px;font-weight:700;line-height:1.4;display:inline-block}.lesson-time{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.cancelled{background:var(--p-subtle,#f2eff4);border-style:dashed}.cancelled h3{color:var(--p-muted);text-decoration:line-through}.status-pill{background:var(--p-accent-soft,#eee7f3);color:var(--p-purple,#755a88);border-radius:5px;margin-top:8px;padding:3px 7px;display:inline-block;font-size:12px!important}.lesson-note{border-top:1px solid var(--p-accent-soft,#eee7f3);padding-top:7px;margin-top:8px!important}.no-lessons{color:var(--p-muted);text-align:center;padding:24px 0;font-size:14px}.day-closure{color:var(--p-purple);background:var(--p-accent-soft,#ede6f4);border-radius:7px;padding:10px;font-size:13px;margin-bottom:10px!important}.section-footnote{font-size:13px;margin-top:24px!important}.is-loading{opacity:.5}.teacher-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.teacher-card{background:var(--p-surface,#fff);border:1px solid var(--p-line);overflow-wrap:anywhere;border-radius:12px;padding:28px}.teacher-card img,.teacher-initials{object-fit:cover;border-radius:50%;width:90px;height:90px;margin-bottom:22px}.teacher-initials{background:var(--p-accent-soft,#eae0f1);color:var(--p-purple,#866298);font-size:27px;font-family:var(--font-lora), serif;place-items:center;display:grid}.teacher-card h3{margin-bottom:8px}.teacher-card p{color:var(--p-muted);margin-top:15px;font-size:15px}.teacher-contact{border-top:1px solid var(--p-line);padding-top:16px}.event-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.calendar-event{background:var(--p-surface,#fff);border:1px solid var(--p-line);overflow-wrap:anywhere;border-radius:12px;align-items:flex-start;gap:18px;padding:23px;display:flex}.event-icon{background:var(--p-accent-soft,#f0edf5);color:var(--p-purple,#836199);border-radius:10px;flex-shrink:0;padding:12px}.event-icon.birthday{background:var(--p-warning-soft,#fff2e2);color:var(--p-warning,#b17c39)}.calendar-event h3{margin:4px 0 8px}.calendar-event p{color:var(--p-muted);font-size:14px}.announcement-list{gap:16px;max-width:900px;display:grid}.announcement{background:var(--p-surface,#fff);border:1px solid var(--p-line);border-radius:12px;padding:28px}.announcement h3{margin:12px 0}.announcement>.preserve-lines{color:var(--p-dark);font-size:16px;line-height:1.65}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.auth-page{padding:30px 6vw}.back-link{align-items:center;gap:8px;font-size:12px;display:flex}.auth-layout{grid-template-columns:1fr 420px;align-items:center;gap:80px;max-width:1100px;margin:65px auto 30px;display:grid}.auth-story>img{object-fit:contain;mix-blend-mode:multiply;margin-bottom:28px}.auth-story .p-eyebrow{margin-bottom:13px}.auth-story h1{font-size:clamp(34px,4vw,52px);line-height:1.25}.auth-story>p:not(.p-eyebrow){max-width:355px;color:var(--p-muted);margin-top:23px;line-height:1.9}.auth-note{border-top:1px solid var(--p-line,#dfd4e8);max-width:355px;color:var(--p-muted,#846d95);align-items:center;gap:15px;margin-top:45px;padding-top:25px;font-size:12px;display:flex}.auth-note strong{color:var(--p-dark,#54455e);font-weight:600}.auth-card{background:var(--p-surface,#fff);border:1px solid var(--p-line);border-radius:18px;padding:35px;box-shadow:0 15px 50px #43304e08}.auth-card>h2{margin-bottom:14px;font-size:29px}.auth-card>.p-muted{margin-bottom:29px;line-height:1.8}.auth-submit{width:100%;margin-top:5px}.auth-footnote{color:var(--p-muted);border-top:1px solid var(--p-line);padding-top:20px;font-size:13px;line-height:1.8;margin-top:27px!important}.auth-recover{text-align:center;font-size:12px}.p-text-button{color:var(--p-purple);justify-self:start;min-height:25px;height:auto!important;padding:0!important;font-size:11px!important}.recovery-copy{color:var(--p-muted);gap:20px;font-size:13px;display:grid}.auth-success{gap:18px;display:grid}.admin-layout{grid-template-columns:190px minmax(0,1fr);gap:32px;display:grid}.admin-nav{flex-direction:column;gap:6px;display:flex}.admin-nav button{text-align:left;color:var(--p-muted,#72617c);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:11px;padding:12px 14px;display:flex}.admin-nav button[aria-current=page]{background:var(--p-accent-soft,#e9dff1);color:var(--p-purple,#583471);font-weight:700}.admin-nav svg{width:17px;height:17px}.admin-list{gap:10px;display:grid}.admin-row{background:var(--p-surface,#fff);border:1px solid var(--p-line);border-radius:10px;justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:18px 20px;display:flex}.admin-row>div:first-child{overflow-wrap:anywhere;min-width:0}.admin-row h3{font-size:14px}.admin-row p{color:var(--p-muted);margin-top:3px;font-size:12px}.row-actions{flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.row-actions .p-button{min-height:34px!important;padding:6px 10px!important;font-size:11px!important}.editor{background:var(--p-surface,#fff);border:1px solid var(--p-line);border-radius:12px;margin-bottom:25px;padding:28px}.editor h3{margin-bottom:20px}.editor-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.editor-grid>.full-width{grid-column:1/-1}.editor-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.child-checks{border:1px solid var(--p-line);border-radius:8px;flex-wrap:wrap;gap:12px 20px;padding:14px;display:flex}.child-checks legend{padding:0 5px;font-size:12px;font-weight:700}.photo-field{align-items:center;gap:16px;display:flex}.photo-field img{object-fit:cover;border-radius:9px;width:70px;height:70px}.invite-panel{background:var(--p-accent-soft,#eee6f4);border-radius:10px;gap:12px;margin-bottom:20px;padding:20px;display:grid}.invite-panel .p-input{font-size:11px!important}.invite-panel p{color:var(--p-muted);font-size:12px}.admin-hint{margin-bottom:20px!important}.copy-week{grid-template-columns:1fr 1fr 1fr auto;align-items:end;gap:12px;margin-bottom:22px;display:grid}.admin-toolbar{gap:16px;margin-bottom:20px;display:flex}.admin-toolbar>.p-field{flex:1}.photo-input{max-width:100%;font-size:12px!important}.no-print{-webkit-print-color-adjust:exact;print-color-adjust:exact}@media (max-width:1100px){.week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:160px minmax(0,1fr);gap:20px}.copy-week{grid-template-columns:1fr 1fr}.auth-layout{grid-template-columns:1fr 390px;gap:40px}}@media (max-width:760px){.portal-header{padding:12px 18px}.portal-account{gap:9px}.portal-account>span{display:none}.portal-body{padding:28px 18px 45px}.portal-heading{align-items:flex-start}.portal-heading h1{font-size:29px}.portal-heading>.p-button{font-size:11px!important}.child-banner{flex-wrap:wrap;gap:18px;padding:22px}.child-banner .p-field{width:100%;margin:0}.child-banner-icon{display:none}.portal-tabs{gap:5px!important}.portal-tabs [data-slot=tabs-trigger]{flex:1;font-size:14px;padding:8px 11px!important}.section-heading{flex-wrap:wrap}.week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-column>header{font-size:14px}.lesson-card{padding:15px}.lesson-card h3{font-size:16px}.lesson-card p{font-size:14px}.teacher-grid,.event-list{grid-template-columns:1fr}.portal-footer{flex-wrap:wrap;gap:12px;margin:0 18px;padding:20px 0}.p-input{font-size:16px!important}.auth-page{padding:22px}.auth-layout{max-width:460px;margin:25px auto;display:block}.auth-story{display:none}.auth-card{padding:27px 23px}.admin-layout{display:block}.admin-nav{flex-flow:wrap;gap:4px;margin-bottom:26px}.admin-nav button{padding:8px 10px;font-size:11px}.admin-row{flex-wrap:wrap;padding:16px}.row-actions{width:100%;padding-top:8px}.editor{padding:22px 17px}.editor-grid{grid-template-columns:1fr}.editor-grid>.full-width{grid-column:auto}.admin-toolbar{flex-wrap:wrap}.admin-toolbar>.p-field{min-width:140px}}@media (max-width:420px){.week-grid{grid-template-columns:1fr}.day-column>header{padding-top:12px}.portal-tabs [data-slot=tabs-trigger]{flex-basis:45%;justify-content:flex-start}.portal-heading{flex-wrap:wrap}.copy-week{grid-template-columns:1fr}.portal-brand small{font-size:12px}.p-button{padding:8px 12px!important}}@media (prefers-reduced-motion:reduce){.portal *{transition:none!important;animation:none!important}}.p-button.border-border{background:var(--p-surface,#fff);color:var(--p-dark);border:1px solid var(--p-control-line)}.editor-fields{border:0;min-width:0;margin:0;padding:0}
