*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f7f5;color:#172234;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.hidden{display:none!important}:root{--navy:#0b3267;--navy2:#08264f;--teal:#2e8b8f;--teal2:#e3f2f1;--gold:#d4a22b;--gold2:#fbf3da;--ink:#172234;--muted:#647584;--line:#dce3e5;--paper:#fff;--cream:#f6f7f5;--success:#1f7a50;--success-bg:#e7f5ed;--danger:#a33a3a;--shadow:0 18px 50px rgba(16,38,62,.10);--radius:20px}.shell{width:min(1180px,calc(100% - 40px));margin:0 auto}.eyebrow{display:inline-block;font-size:11px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}.muted{color:var(--muted)}.tiny{font-size:12px}.button{appearance:none;border:0;border-radius:11px;padding:11px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:.15s ease}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--navy);color:#fff;box-shadow:0 7px 18px rgba(11,50,103,.18)}.button-primary:hover{background:var(--navy2);transform:translateY(-1px)}.button-outline{border:1px solid #b7c6d1;background:#fff;color:var(--navy)}.button-quiet{background:transparent;color:var(--navy)}.button-large{padding:14px 20px;font-size:16px}.button-full{width:100%}.text-button{background:none;border:0;padding:4px;color:var(--navy);font-weight:750;cursor:pointer}.text-button.danger{color:var(--danger)}.text-link{color:var(--navy);font-weight:750}.icon-button{width:42px;height:42px;border:0;border-radius:50%;background:#edf2f4;color:#354b5b;font-size:25px;cursor:pointer}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.93);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,227,229,.8);position:sticky;top:0;z-index:20}.brand-lockup img{width:170px;height:74px;object-fit:contain;display:block}.small-brand img{width:145px;height:64px}.public-hero{min-height:660px;padding:64px 0 72px;display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}.hero-copy h1{font-family:Georgia,"Times New Roman",serif;color:var(--navy2);font-size:clamp(45px,6vw,76px);line-height:.98;letter-spacing:-.035em;margin:8px 0 24px}.hero-copy h1 span{color:var(--teal)}.hero-lede{font-size:19px;line-height:1.65;color:#4d6170;max-width:680px}.hero-actions{display:flex;align-items:center;gap:22px;margin:30px 0}.trust-row{display:flex;flex-wrap:wrap;gap:8px}.trust-row span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:750;color:#516675}.hero-photo-wrap{position:relative;max-width:470px;margin-left:auto}.hero-photo-accent{position:absolute;inset:9% -5% -4% 16%;background:linear-gradient(145deg,var(--teal2),#e9eef2);border-radius:42% 42% 28% 28%}.hero-photo{position:relative;width:100%;aspect-ratio:.86;object-fit:cover;object-position:center 18%;border-radius:46% 46% 26px 26px;box-shadow:var(--shadow);display:block}.hero-photo-card{position:absolute;left:-38px;bottom:22px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 45px rgba(15,39,61,.15);border-radius:15px;padding:16px 18px;max-width:285px;display:grid;gap:4px}.hero-photo-card strong{color:var(--navy);font-size:16px}.hero-photo-card span{font-size:12px;color:var(--muted)}.public-feature-band{background:var(--navy2);color:#fff;padding:56px 0}.feature-three{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}.feature-three article{position:relative}.feature-num{color:#76c4c4;font-weight:900;font-size:12px;letter-spacing:.12em}.feature-three h2{font-family:Georgia,serif;font-size:27px;margin:10px 0 12px}.feature-three p{color:#c8d5df;margin:0;line-height:1.65}.public-portal-promo{padding:76px 0;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.public-portal-promo h2{font-family:Georgia,serif;color:var(--navy2);font-size:42px;margin:4px 0 14px}.public-portal-promo p{color:var(--muted);font-size:17px}.mini-steps{display:flex;align-items:center;justify-content:flex-end}.mini-steps span{width:46px;height:46px;border-radius:50%;background:#fff;border:2px solid var(--teal);color:var(--navy);display:grid;place-items:center;font-weight:900;box-shadow:0 6px 16px rgba(15,44,60,.08)}.mini-steps i{height:2px;background:#9fc9c9;width:34px}.public-footer{border-top:1px solid var(--line);padding:28px 0 36px;display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.public-footer a{color:var(--navy);font-weight:800}.auth-screen{position:fixed;inset:0;z-index:100;background:rgba(7,24,45,.67);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px;overflow:auto}.auth-card{position:relative;background:#fff;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.26);width:min(500px,100%);padding:34px}.auth-close{position:absolute;right:18px;top:18px}.auth-logo{display:block;width:170px;height:112px;object-fit:contain;margin:0 auto 14px}.auth-card h1{font-family:Georgia,serif;color:var(--navy2);font-size:34px;margin:2px 0 8px}.stack-form{display:grid;gap:16px;margin-top:22px}.stack-form label,.form-layout label{display:grid;gap:7px;font-size:13px;font-weight:750;color:#425565}.stack-form input,.stack-form select,.form-layout input,.form-layout textarea,.form-layout select,.small-search,.resource-search,.invite-result input{width:100%;border:1px solid #c8d4da;background:#fff;border-radius:11px;padding:12px 13px;color:var(--ink);outline:none}.stack-form input:focus,.form-layout input:focus,.form-layout textarea:focus,.form-layout select:focus,.small-search:focus,.resource-search:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(46,139,143,.11)}.password-wrap{position:relative}.password-wrap input{padding-right:66px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:#eef3f5;border-radius:7px;padding:7px;color:var(--navy);font-size:12px;font-weight:800;cursor:pointer}.form-message{min-height:20px;color:var(--danger);font-size:13px;margin:0}.invite-summary{display:grid;gap:4px;background:var(--teal2);border-radius:13px;padding:14px 16px;color:#38535c}.invite-summary strong{font-size:16px;color:var(--navy)}.app-header-actions{display:flex;align-items:center;gap:12px}.header-link{color:var(--navy);font-weight:800;text-decoration:none;font-size:13px}.parent-chip{background:var(--teal2);color:#28686d;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}.parent-main{padding:42px 0 80px}.parent-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.parent-welcome h1{font-family:Georgia,serif;color:var(--navy2);font-size:44px;margin:4px 0 6px}.complete-chip{background:var(--success-bg);color:var(--success);border:1px solid #baddc8;border-radius:999px;padding:10px 14px;font-weight:850;font-size:13px}.section-title-row{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:18px}.section-title-row h2{font-family:Georgia,serif;color:var(--navy2);font-size:32px;margin:3px 0}.section-title-row>p{max-width:520px;color:var(--muted);margin:0}.quick-section{margin-bottom:48px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.quick-card{min-height:145px;border:1px solid var(--line);border-radius:17px;background:#fff;padding:18px;text-align:left;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:7px;cursor:pointer;transition:.15s ease;box-shadow:0 7px 20px rgba(19,42,62,.035)}.quick-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(19,42,62,.08);border-color:#b8cbd2}.quick-icon{font-size:20px;color:var(--teal)}.quick-card strong{font-size:16px;color:var(--navy)}.quick-card>span:last-child{font-size:13px;color:var(--muted)}.meet-card{background:linear-gradient(145deg,var(--navy),#14517d);border-color:transparent}.meet-card strong,.meet-card .quick-icon{color:#fff}.meet-card>span:last-child{color:#d3e1ea}.onboarding-shell{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 12px 34px rgba(14,41,62,.06);padding:28px}.setup-heading{display:flex;align-items:center;justify-content:space-between;gap:34px;padding:2px 4px 24px}.setup-heading h2{font-family:Georgia,serif;color:var(--navy2);font-size:34px;margin:3px 0 7px}.setup-heading p{margin:0;color:var(--muted)}.progress-ring-wrap{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;font-weight:800}.progress-ring{--progress:0deg;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--teal) var(--progress),#e9eef0 0);display:grid;place-items:center;position:relative}.progress-ring:before{content:"";position:absolute;width:56px;height:56px;border-radius:50%;background:#fff}.progress-ring span{position:relative;font-size:14px;color:var(--navy);font-weight:900}.step-list{border-top:1px solid var(--line)}.step-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:18px 8px;display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;text-align:left;cursor:pointer}.step-row:last-child{border-bottom:0}.step-row:hover{background:#f8faf9}.step-number{width:38px;height:38px;border-radius:50%;background:#edf2f3;color:var(--navy);display:grid;place-items:center;font-weight:900}.step-row.done .step-number{background:var(--success-bg);color:var(--success)}.step-copy{display:grid;gap:3px}.step-copy strong{color:var(--navy2);font-size:15px}.step-copy span{color:var(--muted);font-size:13px}.step-status{font-size:12px;color:var(--teal);font-weight:850;display:flex;align-items:center;gap:8px}.step-row.done .step-status{color:var(--success)}.step-status b{font-size:22px}.app-dialog{width:min(820px,calc(100% - 24px));max-height:min(900px,calc(100vh - 24px));border:0;padding:0;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.27);overflow:hidden;background:#fff}.app-dialog::backdrop{background:rgba(7,24,45,.65);backdrop-filter:blur(6px)}.dialog-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--line);padding:20px 24px;display:grid;grid-template-columns:1fr auto;align-items:center}.dialog-head .eyebrow{grid-column:1}.dialog-head h1{grid-column:1;font-family:Georgia,serif;color:var(--navy2);font-size:30px;margin:0}.dialog-head .icon-button{grid-column:2;grid-row:1/3}.dialog-body{padding:24px;max-height:calc(100vh - 130px);overflow:auto}.readable{font-size:15px;line-height:1.65}.readable h3{color:var(--navy2);margin-top:26px;margin-bottom:8px}.dialog-footer{padding-top:20px}.inline-footer{display:flex;gap:10px;flex-wrap:wrap}.dialog-loading,.center-screen{min-height:260px;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted)}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid #dbe4e7;border-top-color:var(--teal);animation:spin .75s linear infinite}.spinner.small{width:22px;height:22px}@keyframes spin{to{transform:rotate(360deg)}}.form-layout{display:grid;gap:17px}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.info-callout,.success-callout{border-radius:14px;padding:15px 17px;display:grid;gap:4px;margin:16px 0}.info-callout{background:var(--teal2);color:#355c60}.success-callout{background:var(--success-bg);color:#315e48}.policy-highlight{background:var(--gold2);border-left:4px solid var(--gold);padding:11px 13px;margin:14px 0;border-radius:9px;color:#55451d;font-weight:750}.policy-highlight.large{padding:15px 16px}.agreement-section{padding:20px 0;border-bottom:1px solid var(--line)}.agreement-section h3{margin-top:0}.agreement-section p{margin:7px 0}.ack-row{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px!important;background:#f8faf9;border:1px solid var(--line);border-radius:11px;padding:12px 13px;margin-top:12px;font-weight:650!important;color:#415662!important}.ack-row input{width:20px!important;height:20px;flex:0 0 auto;margin-top:1px}.ack-signed{color:var(--success);font-size:12px;font-weight:800}.signature-card{background:#f6f8f7;border:1px solid var(--line);padding:18px;border-radius:15px;margin-top:22px}.prominent-ack{margin:22px 0}.resource-launch{display:grid;text-decoration:none;background:var(--navy);color:#fff;padding:18px;border-radius:14px;margin:18px 0}.resource-launch span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#a9d7d7}.resource-launch strong{font-size:18px}.check-stack{display:grid;gap:9px;margin:18px 0}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.payment-grid>div{background:#f3f6f6;border:1px solid var(--line);border-radius:13px;padding:16px;display:grid;gap:5px}.payment-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:850}.payment-grid strong{font-size:20px;color:var(--navy)}.clean-list{padding-left:22px}.clean-list li{margin:8px 0}.upload-zone{margin:18px 0}.upload-zone input{position:absolute;opacity:0;width:1px;height:1px}.upload-zone label{border:2px dashed #a8c4c8;background:#f7fbfb;border-radius:16px;padding:24px;display:grid;place-items:center;text-align:center;gap:4px;cursor:pointer;color:var(--navy)}.upload-zone label:hover{background:#eef8f7}.upload-zone label>span:last-child{font-size:12px;color:var(--muted)}.upload-icon{font-size:30px;color:var(--teal)}.upload-preview{display:grid;gap:8px;margin-bottom:12px}.upload-item{display:flex;align-items:center;gap:10px;background:#f6f8f8;border-radius:10px;padding:9px 11px}.upload-item>span{width:28px;height:28px;border-radius:50%;background:var(--teal2);display:grid;place-items:center;color:var(--teal);font-weight:900}.upload-item>div{display:grid}.upload-item small{color:var(--muted)}.upload-progress>div{height:8px;background:#e5ecee;border-radius:999px;overflow:hidden}.upload-progress>div span{display:block;height:100%;width:0;background:var(--teal);transition:.15s}.upload-progress p{font-size:12px;color:var(--muted)}.toast{position:fixed;right:20px;bottom:20px;z-index:200;background:#263746;color:#fff;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);font-size:13px;font-weight:750;max-width:360px}.toast.success{background:#236b49}.toast.error{background:#923d3d}.admin-login-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#eef4f4,#f8f7f2)}.admin-auth-card{width:min(460px,100%)}.admin-main{padding:42px 0 80px}.admin-hero{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}.admin-hero h1{font-family:Georgia,serif;color:var(--navy2);font-size:46px;margin:3px 0 6px}.admin-hero p{color:var(--muted);margin:0}.admin-stats{display:flex;gap:10px}.admin-stats>div{min-width:96px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;text-align:center;display:grid}.admin-stats strong{font-size:22px;color:var(--navy)}.admin-stats span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}.admin-grid{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}.admin-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 9px 25px rgba(20,44,62,.045)}.admin-panel h2{font-family:Georgia,serif;color:var(--navy2);margin:3px 0 14px}.compact-form{gap:12px}.invite-result{margin-top:14px;background:var(--teal2);border-radius:12px;padding:13px;display:grid;gap:9px}.invite-result input{font-size:12px}.admin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.small-search{max-width:210px;padding:9px 10px}.family-list{border-top:1px solid var(--line)}.family-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 4px;display:grid;grid-template-columns:42px 1fr auto 18px;gap:10px;align-items:center;text-align:left;cursor:pointer}.family-row:hover{background:#f8faf9}.family-avatar{width:36px;height:36px;border-radius:50%;background:var(--teal2);color:var(--navy);display:grid;place-items:center;font-weight:900}.family-main{display:grid}.family-main strong{color:var(--navy2)}.family-main span{font-size:12px;color:var(--muted)}.family-progress{background:#edf2f3;color:#516776;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850}.family-progress.complete{background:var(--success-bg);color:var(--success)}.invites-list-panel{margin-top:18px}.invite-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.invite-row>div{display:grid}.invite-row>div span{font-size:12px;color:var(--muted)}.invite-status{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;padding:5px 8px;border-radius:999px;background:#eef2f3;color:#60717d}.invite-status.active{background:var(--teal2);color:#28686d}.invite-status.used{background:var(--success-bg);color:var(--success)}.mini-button{padding:7px 9px;font-size:11px}.empty-state{color:var(--muted);text-align:center;padding:30px}.family-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.family-summary-grid>div{background:#f5f8f7;border-radius:10px;padding:11px;display:grid}.family-summary-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}.family-summary-grid strong{color:var(--navy)}.admin-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 18px}.admin-check-grid span{background:#f6f8f8;border-radius:9px;padding:9px;font-size:12px}.detail-block{border-top:1px solid var(--line);padding:11px 0}.detail-block>span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:850}.detail-block p{margin:4px 0}.assessment-file-grid{display:flex;flex-wrap:wrap;gap:8px}.assessment-file-grid a{background:var(--teal2);color:var(--navy);padding:9px 11px;border-radius:9px;text-decoration:none;font-weight:800;font-size:12px}.resources-main{padding:48px 0 80px}.resource-hero{max-width:900px;margin-bottom:44px}.resource-hero h1{font-family:Georgia,serif;color:var(--navy2);font-size:48px;margin:4px 0 12px}.resource-hero>p{font-size:17px;color:var(--muted)}.session-example{background:var(--gold2);border-left:4px solid var(--gold);border-radius:10px;padding:13px 15px;display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.resource-search-label{display:grid;gap:6px;font-size:12px;font-weight:850;color:#465c6b;max-width:620px}.resource-search{font-size:16px}.resource-jump-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.resource-jump-nav a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 11px;color:var(--navy);font-size:12px;font-weight:800;text-decoration:none}.resource-section{border-top:1px solid var(--line);padding:34px 0}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.resource-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;display:flex;flex-direction:column;min-height:235px;box-shadow:0 7px 20px rgba(18,40,59,.035)}.resource-card.featured{border-top:4px solid var(--teal)}.resource-card.wide{grid-column:span 2}.resource-tag{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#2d6b6e;background:var(--teal2);padding:5px 7px;border-radius:999px;width:max-content;font-weight:900}.resource-card h3{color:var(--navy2);margin:10px 0 7px}.resource-card p{color:var(--muted);font-size:13px;flex:1}.resource-actions{display:flex;gap:7px;flex-wrap:wrap}.resource-actions .button{font-size:12px;padding:9px 11px}.center-screen{min-height:70vh}.danger{color:var(--danger)}@media(max-width:980px){.public-hero{grid-template-columns:1fr;min-height:auto}.hero-photo-wrap{margin:0 auto;max-width:430px}.hero-copy{text-align:center}.hero-lede{margin-left:auto;margin-right:auto}.hero-actions,.trust-row{justify-content:center}.feature-three{grid-template-columns:1fr}.public-portal-promo{grid-template-columns:1fr}.mini-steps{justify-content:flex-start}.quick-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.resource-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.shell{width:min(100% - 24px,1180px)}.topbar{height:72px;padding:0 12px}.brand-lockup img{width:128px;height:58px}.public-topbar .button{padding:9px 11px;font-size:12px}.public-hero{padding:38px 0 50px;gap:38px}.hero-copy h1{font-size:45px}.hero-lede{font-size:16px}.hero-actions{flex-direction:column;gap:12px}.hero-photo-card{left:10px;right:10px;bottom:10px;max-width:none}.feature-three{gap:30px}.public-feature-band{padding:42px 0}.public-portal-promo{padding:50px 0}.public-portal-promo h2{font-size:34px}.mini-steps i{width:10px}.mini-steps span{width:37px;height:37px}.public-footer{padding-left:4px;padding-right:4px}.auth-card{padding:28px 20px}.app-header-actions .header-link,.parent-chip{display:none}.parent-main{padding-top:28px}.parent-welcome{align-items:flex-start;flex-direction:column}.parent-welcome h1{font-size:36px}.section-title-row{align-items:flex-start;flex-direction:column;gap:5px}.quick-grid{grid-template-columns:1fr 1fr;gap:10px}.quick-card{min-height:132px;padding:15px}.onboarding-shell{padding:18px 12px;border-radius:18px}.setup-heading{align-items:flex-start;flex-direction:column;padding:4px 6px 18px}.progress-ring-wrap{width:100%;justify-content:flex-start}.step-row{grid-template-columns:40px 1fr;gap:10px;padding:15px 5px}.step-status{grid-column:2}.app-dialog{width:calc(100% - 12px);max-height:calc(100vh - 12px);border-radius:18px}.dialog-head{padding:16px}.dialog-head h1{font-size:25px}.dialog-body{padding:16px;max-height:calc(100vh - 105px)}.form-grid.two,.payment-grid{grid-template-columns:1fr}.inline-footer{flex-direction:column}.inline-footer .button{width:100%}.admin-hero{align-items:flex-start;flex-direction:column}.admin-hero h1{font-size:38px}.admin-stats{width:100%}.admin-stats>div{flex:1;min-width:0}.admin-panel{padding:16px}.admin-panel-head{align-items:flex-start;flex-direction:column}.small-search{max-width:none}.family-row{grid-template-columns:40px 1fr auto}.family-row>b{display:none}.invite-row{grid-template-columns:1fr auto}.invite-row .button,.invite-row .text-button{grid-column:auto}.family-summary-grid{grid-template-columns:1fr 1fr}.admin-check-grid{grid-template-columns:1fr 1fr}.resource-grid{grid-template-columns:1fr}.resource-card.wide{grid-column:span 1}.resource-hero h1{font-size:40px}}@media(max-width:430px){.quick-grid{grid-template-columns:1fr}.trust-row span{font-size:11px}.mini-steps i{display:none}.mini-steps{gap:7px}.family-summary-grid{grid-template-columns:1fr}}
.upload-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.upload-choice-grid .upload-zone{margin:0}.upload-item{position:relative;padding-right:44px}.upload-remove{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:50%;background:#e8edef;color:#526875;font-size:18px;cursor:pointer}@media(max-width:560px){.upload-choice-grid{grid-template-columns:1fr}}

/* MULTI-STUDENT FAMILY INVITATION */
.invite-students-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:4px;
}
.invite-students-head>strong{
  color:var(--navy2);
  font-size:13px;
}
.invite-students{
  display:grid;
  gap:10px;
}
.invite-student-card{
  display:grid;
  gap:10px;
  padding:13px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#f8faf9;
}
.invite-student-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.invite-student-card-head strong{
  color:var(--navy);
  font-size:13px;
}
.invite-result-summary{
  color:var(--muted);
  font-size:12px;
}

/* MULTI-STUDENT PARENT PORTAL */
.student-switcher-shell{
  margin-bottom:32px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:20px;
  box-shadow:0 9px 25px rgba(20,44,62,.045);
}
.student-switcher-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:14px;
}
.student-switcher-head h2{
  font-family:Georgia,serif;
  color:var(--navy2);
  margin:2px 0;
  font-size:26px;
}
.student-switcher-head p{
  max-width:520px;
  color:var(--muted);
  font-size:13px;
  margin:0;
}
.student-tabs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.student-tab{
  appearance:none;
  border:1px solid var(--line);
  background:#f8faf9;
  border-radius:14px;
  padding:13px;
  display:grid;
  grid-template-columns:40px 1fr auto;
  align-items:center;
  gap:10px;
  text-align:left;
  cursor:pointer;
}
.student-tab:hover{
  border-color:#b8cbd2;
  background:#f3f8f7;
}
.student-tab.active{
  border:2px solid var(--teal);
  background:var(--teal2);
  padding:12px;
}
.student-tab-avatar{
  width:36px;
  height:36px;
  border-radius:50%;
  background:#fff;
  color:var(--navy);
  display:grid;
  place-items:center;
  font-weight:900;
}
.student-tab-main{
  display:grid;
  gap:2px;
}
.student-tab-main strong{
  color:var(--navy2);
}
.student-tab-main span{
  color:var(--muted);
  font-size:12px;
}
.student-tab-progress{
  background:#edf2f3;
  color:#516776;
  border-radius:999px;
  padding:5px 8px;
  font-size:11px;
  font-weight:850;
}
.student-tab-progress.complete{
  background:var(--success-bg);
  color:var(--success);
}
.invite-student-summary-list{
  display:grid;
  gap:7px;
  margin:7px 0 10px;
}
.invite-student-summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1px solid rgba(46,139,143,.22);
  border-radius:9px;
  padding:8px 10px;
}
.invite-student-summary strong{
  font-size:13px;
}
.invite-student-summary span{
  font-size:11px;
  font-weight:800;
  color:var(--teal);
}
@media(max-width:700px){
  .student-switcher-head{
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .student-tabs{
    grid-template-columns:1fr;
  }
}

/* MULTI-STUDENT ADMIN FAMILY DASHBOARD */
.family-row-multi{
  align-items:start;
  padding-top:15px;
  padding-bottom:15px;
}
.family-row-multi .family-main{
  gap:3px;
}
.family-student-mini-list{
  display:grid;
  gap:5px;
  margin-top:7px;
}
.family-student-mini-row{
  display:grid;
  grid-template-columns:minmax(90px,1fr) auto auto;
  align-items:center;
  gap:8px;
  background:#f6f8f8;
  border-radius:8px;
  padding:6px 8px;
}
.family-student-mini-row b{
  color:var(--navy2);
  font-size:12px;
}
.family-student-mini-row>span{
  font-size:11px;
  color:var(--muted);
}
.family-student-mini-row em{
  font-style:normal;
  font-size:10px;
  font-weight:850;
  color:#60717d;
  background:#e9eef0;
  border-radius:999px;
  padding:4px 7px;
  white-space:nowrap;
}
.family-student-mini-row em.complete{
  color:var(--success);
  background:var(--success-bg);
}
.family-student-loading{
  margin-top:5px;
  font-size:11px!important;
  color:var(--muted);
}
.admin-family-shared{
  border-top:1px solid var(--line);
  margin-top:22px;
  padding-top:18px;
}
.admin-family-shared h3{
  margin-top:0;
}
.admin-family-students{
  display:grid;
  gap:24px;
  margin-top:24px;
}
.admin-student-detail{
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  background:#fbfcfb;
}
.admin-student-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.admin-student-head h3{
  margin:0;
  font-size:24px;
}
.admin-student-head .eyebrow{
  margin-bottom:4px;
}
.admin-student-summary-grid{
  margin-bottom:18px;
}
.admin-student-detail h4{
  color:var(--navy2);
  margin:20px 0 8px;
  font-size:15px;
}
.admin-student-detail .admin-check-grid{
  margin-bottom:16px;
}
.admin-check-grid span{
  display:grid;
  gap:2px;
}
.admin-check-grid small{
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:800;
}
.admin-student-about{
  margin-top:18px;
}
.admin-student-assessment{
  margin-top:18px;
  border-top:1px solid var(--line);
  padding-top:2px;
}

@media(max-width:700px){
  .family-student-mini-row{
    grid-template-columns:1fr auto;
  }

  .family-student-mini-row>span{
    grid-column:1;
  }

  .family-student-mini-row em{
    grid-column:2;
    grid-row:1 / span 2;
  }

  .admin-student-head{
    flex-direction:column;
    gap:8px;
  }

  .admin-student-summary-grid{
    grid-template-columns:1fr 1fr;
  }
}

/* ADMIN ADD STUDENT TO FAMILY */
.admin-add-student-shell{
  border-top:1px solid var(--line);
  margin-top:22px;
  padding-top:18px;
}
.admin-add-student-form{
  display:grid;
  gap:14px;
  margin-top:4px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8faf9;
}
.admin-add-student-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.admin-add-student-head h3{
  margin:0;
}
.admin-add-student-form label{
  display:grid;
  gap:7px;
  font-size:13px;
  font-weight:750;
  color:#425565;
}
.admin-add-student-form input,
.admin-add-student-form select{
  width:100%;
  border:1px solid #c8d4da;
  background:#fff;
  border-radius:11px;
  padding:12px 13px;
  color:var(--ink);
  outline:none;
}
.admin-add-student-form input:focus,
.admin-add-student-form select:focus{
  border-color:var(--teal);
  box-shadow:0 0 0 4px rgba(46,139,143,.11);
}

@media(max-width:700px){
  .admin-add-student-head{
    flex-direction:column;
    gap:5px;
  }
}


/* FAMILY + STUDENT ONBOARDING REFINEMENT */
.family-onboarding-shell{
  margin-bottom:24px;
}

.child-onboarding-shell{
  margin-bottom:24px;
}

.step-row.coming-soon{
  cursor:default;
  opacity:.78;
  background:#fbfcfa;
}

.step-row.coming-soon:hover{
  background:#fbfcfa;
}

.coming-soon-status{
  color:var(--muted);
}

.tech-reference-list{
  display:grid;
  gap:8px;
  margin:18px 0;
}

.tech-reference-list>div{
  display:flex;
  align-items:flex-start;
  gap:10px;
  background:#f6f8f8;
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 12px;
}

.tech-reference-list b{
  color:var(--success);
  flex:0 0 auto;
}

.app-topbar{
  height:100px;
}

.app-topbar .small-brand{
  overflow:visible;
}

.app-topbar .small-brand img{
  width:170px;
  height:74px;
  transform:scale(1.55);
  transform-origin:left center;
}

@media(max-width:700px){
  .app-topbar{
    height:82px;
  }

  .app-topbar .small-brand img{
    width:135px;
    height:60px;
    transform:scale(1.35);
  }
}

/* PARENT PORTAL HEADER LOGO — USE REAL HEIGHT, NOT TRANSFORM SCALING */
.app-topbar{
  height:150px;
}

.app-topbar .small-brand{
  display:flex;
  align-items:center;
  height:100%;
  overflow:visible;
}

.app-topbar .small-brand img{
  width:320px;
  height:175px;
  object-fit:contain;
  transform:none;
  transform-origin:center;
}

@media(max-width:700px){
  .app-topbar{
    height:100px;
  }

  .app-topbar .small-brand img{
    width:190px;
    height:105px;
    transform:none;
  }
}

/* WHOLE-FAMILY ONBOARDING COMPLETION */
.completion-celebration{
  text-align:center;
  padding:38px 34px 34px;
}

.completion-checkmark{
  width:82px;
  height:82px;
  border-radius:50%;
  margin:0 auto 18px;
  display:grid;
  place-items:center;
  background:var(--success-bg);
  border:2px solid #baddc8;
  color:var(--success);
  font-size:42px;
  font-weight:900;
}

.completion-celebration h2{
  margin:0 0 10px;
  color:var(--navy2);
  font-family:Georgia,"Times New Roman",serif;
  font-size:34px;
}

.completion-celebration>p{
  max-width:570px;
  margin:0 auto;
  color:var(--muted);
  font-size:17px;
  line-height:1.65;
}

.completion-phone{
  margin:24px auto 8px;
  color:var(--navy);
  font-size:28px;
  font-weight:900;
  letter-spacing:.02em;
}

.completion-actions{
  margin-top:24px;
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

@media(max-width:560px){
  .completion-celebration{
    padding:28px 18px 24px;
  }

  .completion-actions{
    flex-direction:column;
  }

  .completion-actions .button{
    width:100%;
  }

  .completion-phone{
    font-size:24px;
  }
}


/* ---------------------------------------------------------
   Optional student onboarding
--------------------------------------------------------- */

.optional-onboarding-note {
  margin: 0 0 22px;
  padding: 18px 20px;
  border: 1px solid #d8e2ec;
  border-radius: 16px;
  background: #f6f9fc;
  line-height: 1.55;
}

.optional-onboarding-note strong {
  display: block;
  margin-bottom: 6px;
  color: #0b3267;
  font-size: 1.02rem;
}

.optional-onboarding-note span {
  display: block;
  color: #4f6070;
}

.optional-step-wrap {
  display: block;
}

.optional-step-wrap .step-row {
  width: 100%;
}

.optional-skip-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -1px 14px 12px 62px;
  padding: 10px 12px;
  border: 1px solid #dce4ec;
  border-top: 0;
  border-radius: 0 0 12px 12px;
  background: #fafbfd;
  color: #4f6070;
  font-size: .92rem;
  cursor: pointer;
}

.optional-skip-row input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  flex: 0 0 auto;
  accent-color: #0b3267;
}

.optional-skip-row.completed {
  cursor: default;
}

.optional-skip-check {
  color: #217346;
  font-weight: 800;
}

.step-row.skipped .step-status {
  white-space: nowrap;
}

@media (max-width: 700px) {
  .optional-skip-row {
    margin-left: 14px;
  }

  .optional-onboarding-note {
    padding: 16px;
  }
}


/* ---------------------------------------------------------
   ADMIN FAMILY ARCHIVE
--------------------------------------------------------- */

.family-view-switch {
  display: inline-flex;
  gap: 4px;
  margin: 15px 0 8px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f4f7f7;
}

.family-view-button {
  appearance: none;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  padding: 7px 13px;
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
}

.family-view-button.active {
  background: #fff;
  color: var(--navy);
  box-shadow: 0 2px 7px rgba(20, 44, 62, .10);
}

.admin-family-archive-shell {
  border-top: 1px solid var(--line);
  margin-top: 22px;
  padding-top: 18px;
}

.admin-archive-action,
.admin-archive-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 16px;
  border-radius: 14px;
}

.admin-archive-action {
  border: 1px solid #ead4d4;
  background: #fffafa;
}

.admin-archive-notice {
  border: 1px solid #dccb9e;
  background: var(--gold2);
}

.admin-archive-action > div,
.admin-archive-notice > div {
  display: grid;
  gap: 4px;
}

.admin-archive-action strong,
.admin-archive-notice strong {
  color: var(--navy2);
}

.admin-archive-action p,
.admin-archive-notice p {
  margin: 0;
  font-size: 13px;
}

.danger-button {
  border-color: #d9adad;
  color: var(--danger);
  white-space: nowrap;
}

@media (max-width: 700px) {
  .family-view-switch {
    width: 100%;
  }

  .family-view-button {
    flex: 1;
  }

  .admin-archive-action,
  .admin-archive-notice {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-archive-action .button,
  .admin-archive-notice .button {
    width: 100%;
  }
}


/* ---------------------------------------------------------
   PUBLIC HOMEPAGE VISUAL ADJUSTMENTS
   Scoped to the public page so parent/admin headers stay intact.
--------------------------------------------------------- */

.public-topbar {
  height: 150px;
}

.public-topbar .brand-lockup {
  display: flex;
  align-items: center;
  height: 100%;
  overflow: visible;
}

.public-topbar .brand-lockup img {
  width: 425px;
  height: 185px;
  object-fit: contain;
}

.public-hero {
  grid-template-columns: minmax(0, 1fr) 285px;
  gap: 54px;
}

.public-hero .hero-photo-wrap {
  width: 235px;
  max-width: 235px;
}

.public-hero .hero-photo-card {
  left: -62px;
  bottom: 12px;
  max-width: 190px;
  padding: 12px 14px;
}

.public-hero .hero-photo-card strong {
  font-size: 13px;
}

.public-hero .hero-photo-card span {
  font-size: 10px;
}

@media (max-width: 980px) {
  .public-hero {
    grid-template-columns: 1fr;
  }

  .public-hero .hero-photo-wrap {
    width: 235px;
    max-width: 235px;
    margin: 0 auto;
  }
}

@media (max-width: 700px) {
  .public-topbar {
    height: 112px;
  }

  .public-topbar .brand-lockup img {
    width: 270px;
    height: 118px;
  }

  .public-hero .hero-photo-wrap {
    width: 210px;
    max-width: 210px;
  }

  .public-hero .hero-photo-card {
    left: 10px;
    right: 10px;
    bottom: 10px;
    max-width: none;
    padding: 10px 12px;
  }
}


/* PUBLIC HERO PHOTO — FINAL SIZE + LIGHTING ADJUSTMENT */

.public-hero {
  grid-template-columns: minmax(0, 1fr) 340px;
}

.public-hero .hero-photo-wrap {
  width: 290px;
  max-width: 290px;
}

.public-hero .hero-photo {
  filter: brightness(1.18) contrast(1.04) saturate(1.05);
}

@media (max-width: 980px) {
  .public-hero {
    grid-template-columns: 1fr;
  }

  .public-hero .hero-photo-wrap {
    width: 290px;
    max-width: 290px;
  }
}

@media (max-width: 700px) {
  .public-hero .hero-photo-wrap {
    width: 230px;
    max-width: 230px;
  }
}


/* =========================================================
   PUBLIC HERO — RESPONSIVE BIG-BRAND COMPOSITION
   ========================================================= */

/*
  The login bar is part of normal page flow.
  It does not remain frozen while scrolling.
*/
.public-topbar {
  position: static;
  height: 88px;
  justify-content: flex-end;
  background: #fff;
}


/* ---------- LARGE DESKTOP ---------- */

.public-hero {
  min-height: 560px;
  padding-top: 34px;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 46px;
  align-items: start;
}

.hero-copy {
  min-width: 0;
}

/*
  IMPORTANT:
  The logo is now genuinely large.
  No transform scaling is used, so the grid reserves the
  actual amount of space occupied by the logo.
*/
.hero-brand-row {
  display: grid;
  grid-template-columns:
    minmax(240px, .9fr)
    minmax(230px, 1fr);
  gap: 32px;
  align-items: center;
}

.hero-main-logo-wrap {
  width: 100%;
  height: auto;
  min-width: 0;
  display: block;
  overflow: visible;
}

.hero-main-logo {
  display: block;
  width: 100%;
  max-width: 420px;
  height: auto;
  object-fit: contain;
  transform: none;
  margin: 0 auto;
}

.hero-message {
  min-width: 0;
}

.hero-message h1 {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--navy2);
  font-size: clamp(32px, 3.1vw, 44px);
  line-height: 1.02;
  letter-spacing: -.025em;
  margin: 8px 0 0;
}

.hero-message h1 span {
  color: var(--teal);
}

.hero-message .eyebrow {
  margin-bottom: 5px;
}

.hero-copy .hero-lede {
  max-width: 760px;
  margin-top: 18px;
}

.hero-copy .hero-actions {
  margin-top: 24px;
}

/*
  The portrait now aligns from the top of the hero.
  No negative top offset is used.
*/
.public-hero .hero-photo-wrap {
  width: 290px;
  max-width: 290px;
  top: 0;
  margin: 24px 0 0 auto;
  align-self: start;
}


/* ---------- TABLET / SMALL DESKTOP ---------- */

/*
  At this width, trying to keep all three visual groups
  side-by-side would eventually cause collisions.
  The portrait therefore moves underneath the brand area
  before any overlap can occur.
*/
@media (max-width: 860px) {

  .public-hero {
    min-height: auto;
    padding-top: 30px;
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .hero-brand-row {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    grid-template-columns:
      minmax(240px, .9fr)
      minmax(230px, 1fr);
    gap: 30px;
  }

  .hero-main-logo {
    max-width: 380px;
  }

  .hero-message h1 {
    font-size: clamp(34px, 5vw, 42px);
  }

  .hero-copy .hero-lede {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .hero-copy .hero-actions,
  .hero-copy .trust-row {
    justify-content: center;
  }

  .public-hero .hero-photo-wrap {
    width: 280px;
    max-width: 280px;
    margin: 0 auto;
    top: 0;
  }
}


/* ---------- PHONE ---------- */

@media (max-width: 700px) {

  .public-topbar {
    height: 72px;
  }

  .public-hero {
    padding-top: 22px;
    padding-bottom: 48px;
    gap: 28px;
  }

  /*
    On phones the brand becomes a clean vertical stack:
    large logo first, then headline.
  */
  .hero-brand-row {
    grid-template-columns: 1fr;
    gap: 10px;
    justify-items: center;
    text-align: center;
  }

  .hero-main-logo-wrap {
    width: min(100%, 340px);
    margin: 0 auto;
  }

  .hero-main-logo {
    width: 100%;
    max-width: 340px;
    height: auto;
    transform: none;
  }

  .hero-message {
    width: 100%;
    text-align: center;
  }

  .hero-message h1 {
    font-size: clamp(34px, 10vw, 42px);
    line-height: 1;
  }

  .hero-copy .hero-lede {
    font-size: 16px;
    line-height: 1.55;
    text-align: center;
    margin-top: 22px;
  }

  .hero-copy .hero-actions {
    justify-content: center;
  }

  .hero-copy .trust-row {
    justify-content: center;
  }

  .public-hero .hero-photo-wrap {
    width: 230px;
    max-width: 230px;
    margin: 4px auto 0;
    top: 0;
  }
}


/* ---------- VERY SMALL PHONE ---------- */

@media (max-width: 430px) {

  .hero-main-logo-wrap {
    width: min(100%, 310px);
  }

  .hero-main-logo {
    max-width: 310px;
  }

  .hero-message h1 {
    font-size: 36px;
  }

  .public-hero .hero-photo-wrap {
    width: 215px;
    max-width: 215px;
  }
}

/* EXISTING-FAMILY INVITATION MODE */

.invite-mode-choice {
  display: grid;
  gap: 9px;
  margin-bottom: 2px;
}

.invite-mode-choice > strong {
  color: #425565;
  font-size: 13px;
}

.invite-mode-choice .invite-mode-option {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: flex-start;
  gap: 10px !important;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8faf9;
  cursor: pointer;
}

.invite-mode-choice .invite-mode-option:has(input:checked) {
  border-color: var(--teal);
  background: var(--teal2);
}

.invite-mode-choice .invite-mode-option input {
  width: 18px !important;
  height: 18px;
  flex: 0 0 auto;
  margin: 2px 0 0;
}

.invite-mode-choice .invite-mode-option span {
  display: grid;
  gap: 2px;
}

.invite-mode-choice .invite-mode-option b {
  color: var(--navy);
  font-size: 13px;
}

.invite-mode-choice .invite-mode-option small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
}
