:root{--navy: #001A4D;--navy-deep: #00133A;--teal: #07A19F;--teal-bg: #E6F5F5;--orange: #EE7612;--cream: #FFFBF5;--paper: #FFFFFF;--ink: #062B63;--ink-soft: #4A5B7A;--line: #E8E4DA;--danger: #C0392B;--radius-sm: 10px;--radius-md: 18px;--font-display: "Fraunces", Georgia, serif;--font-body: "Plus Jakarta Sans", system-ui, sans-serif;--header-h: 68px}*,*:before,*:after{box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}.portal-header{background:#fefefe;border-bottom:1px solid rgba(6,43,99,.06);padding:12px clamp(14px,4vw,24px);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--header-h)}.portal-header .brand{display:inline-flex;align-items:center;flex-shrink:0}.portal-header .brand img{height:clamp(28px,6vw,38px);width:auto;display:block}.portal-header .actions{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--ink-soft);min-width:0}.portal-header .actions .email-pill{max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-header .actions button,.portal-header .actions a{font-family:inherit;font-size:14px;font-weight:600;border:1px solid var(--line);background:var(--paper);padding:9px 14px;border-radius:999px;cursor:pointer;color:var(--navy);min-height:40px;display:inline-flex;align-items:center;white-space:nowrap}.portal-header .actions a{text-decoration:none}@media(max-width:600px){.portal-header .actions .email-pill{display:none}}@media(max-width:380px){.portal-header .actions button,.portal-header .actions a{padding:8px 12px;font-size:13px}}.auth-wrap{min-height:calc(100dvh - var(--header-h));display:flex;align-items:center;justify-content:center;padding:clamp(20px,5vw,40px) clamp(14px,4vw,24px)}.auth-card{width:100%;max-width:480px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:clamp(22px,5vw,32px) clamp(20px,4vw,28px);box-shadow:0 4px 12px #062b630f,0 12px 32px #062b630a}.auth-card h1{font-family:var(--font-display);color:var(--navy);margin:0 0 6px;font-size:clamp(22px,5.5vw,28px);line-height:1.15}.auth-card p.lede{color:var(--ink-soft);margin:0 0 22px;font-size:clamp(14px,3.6vw,15px);line-height:1.5}.auth-card .switch{margin-top:18px;font-size:14px;color:var(--ink-soft);text-align:center}.auth-card .section-label{font-family:var(--font-display);font-size:clamp(15px,4vw,17px);color:var(--navy);margin:18px 0 10px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--navy)}.field input{font-family:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);width:100%;min-width:0;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #07a19f26}.field .hint{font-size:12px;color:var(--ink-soft)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:520px){.row-2{grid-template-columns:1fr}}.role-group{border:0;padding:0;margin:0 0 18px}.role-group legend{font-size:13px;font-weight:600;color:var(--navy);padding:0;margin-bottom:8px}.role-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media(max-width:480px){.role-options{grid-template-columns:1fr}}.role-option{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 10px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--navy);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.role-option:hover{border-color:var(--teal)}.role-option input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;margin:0;border:1.5px solid var(--line);border-radius:50%;background:var(--paper);display:inline-grid;place-content:center;flex-shrink:0}.role-option input[type=radio]:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal);transform:scale(0);transition:transform .12s ease}.role-option input[type=radio]:checked:before{transform:scale(1)}.role-option.is-selected{border-color:var(--teal);background:var(--teal-bg);box-shadow:0 0 0 3px #07a19f26}.role-option.is-selected input[type=radio]{border-color:var(--teal)}.role-option:focus-within{outline:none;box-shadow:0 0 0 3px #07a19f26}.kid-block{background:var(--teal-bg);border-radius:var(--radius-sm);padding:14px;margin-bottom:12px;position:relative}.kid-block .kid-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px}.kid-block .kid-head strong{color:var(--navy);font-size:14px}.kid-block .kid-head button{background:none;border:none;color:var(--danger);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;padding:6px 8px;min-height:36px}.add-kid-btn{background:transparent;color:var(--teal);border:1.5px dashed var(--teal);padding:12px;border-radius:var(--radius-sm);width:100%;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;margin-bottom:16px;min-height:44px}.add-kid-btn:hover{background:var(--teal-bg)}.btn-primary{width:100%;background:var(--orange);color:#fff;border:none;padding:14px;font-size:15px;font-weight:600;border-radius:999px;cursor:pointer;font-family:inherit;min-height:48px;transition:background .15s ease,transform .15s ease}.btn-primary:hover:not(:disabled){background:#e07a05;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.error-banner,.info-banner{border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;margin-bottom:14px;line-height:1.4;word-wrap:break-word}.error-banner{background:#fde8e6;color:var(--danger);border:1px solid #F4C2BD}.info-banner{background:var(--teal-bg);color:var(--navy);border:1px solid #B5E0DF}.dash-wrap{padding:clamp(24px,5vw,40px) clamp(14px,4vw,24px);max-width:980px;margin:0 auto}.dash-wrap h1{font-family:var(--font-display);color:var(--navy);margin:0 0 6px;font-size:clamp(26px,6.5vw,36px);line-height:1.15;word-wrap:break-word}.dash-wrap p.lede{color:var(--ink-soft);margin:0 0 28px;font-size:clamp(15px,3.8vw,17px);line-height:1.5}.dash-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:clamp(18px,4vw,22px) clamp(18px,4vw,24px);margin-bottom:16px}.dash-card h2{font-family:var(--font-display);font-size:clamp(16px,4vw,18px);color:var(--navy);margin:0 0 10px}.dash-card .kid-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}.dash-card .kid-row:last-child{border-bottom:none}.dash-card .kid-row .yob{color:var(--ink-soft);font-size:14px;white-space:nowrap}.dash-card .account-grid{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:15px;line-height:1.6}.dash-card .account-grid dt{font-weight:600;color:var(--navy)}.dash-card .account-grid dd{margin:0;color:var(--ink);overflow-wrap:anywhere}@media(max-width:480px){.dash-card .account-grid{grid-template-columns:1fr;gap:2px}.dash-card .account-grid dd{margin-bottom:8px}}.dash-card ul.feature-list{margin:0;padding-left:18px;color:var(--ink-soft);line-height:1.7;font-size:15px}.loading{padding:clamp(40px,10vw,60px) 24px;text-align:center;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
