[hidden]{display:none!important}
.portalPage{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans',Arial,sans-serif}
.portalMain{min-height:72vh;background:linear-gradient(120deg,#fcfcfb 0%,#faf9f7 36%,#eef0f1 100%);border-bottom:1px solid #edf0f2}
.portalWrap{width:calc(100% - var(--page-gutter) * 2);max-width:1200px;margin-inline:auto;padding:54px 0 76px}
.portalMain a{color:var(--ink);text-underline-offset:3px}
.portalMain button,.portalMain input,.portalMain select{font:inherit}
.portalMain button,.portalMain a,.portalMain input{touch-action:manipulation}
.portalMain button{cursor:pointer;min-height:44px;border:1px solid #ccd7df;border-radius:10px;background:#fff;color:var(--ink);padding:10px 18px;font-weight:600;transition:background .2s,border-color .2s,box-shadow .2s}
.portalMain button:disabled{opacity:.6;cursor:wait}
.portalMain button:hover{background:#f2f6f7;border-color:#b9c9d3}
.portalMain a:focus-visible,.portalMain button:focus-visible,.portalMain input:focus-visible,.portalMain select:focus-visible{outline:3px solid #14896e;outline-offset:4px}

.authLayout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:76px;align-items:center;min-height:610px}
.intro{padding:18px 0}
.intro h1,.dashboardHeading h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em;color:var(--ink)}
.intro h1{font-size:clamp(54px,6vw,82px);line-height:.95;margin:18px 0 24px;max-width:560px}
.intro>p{max-width:510px;margin:0;color:var(--text);font-size:18px;line-height:1.55;letter-spacing:-.015em}
.intro ul{padding:0;margin:30px 0;list-style:none;max-width:510px;border-top:1px solid var(--line)}
.intro li{position:relative;padding:13px 0 13px 30px;color:var(--text);border-bottom:1px solid var(--line)}
.intro li:before{content:'✓';position:absolute;left:0;top:13px;color:var(--green);font-weight:700}
.intro .muted{font-size:13px;line-height:1.55}
.intro .muted a{text-decoration:underline}

.assessmentEntry{align-items:start}
.assessmentEntry .intro h1{font-size:clamp(42px,5vw,66px);line-height:1.03}
.assessmentSteps{list-style:decimal;padding-left:24px;margin:28px 0;color:var(--ink)}
.assessmentSteps li{padding:12px 0 12px 8px;font-size:16px}
.assessmentSteps li::before{content:none}
.assessmentSteps li::marker{color:#075292;font-weight:700}
.authCard .assessmentContext{margin-top:16px;padding:12px 14px;border-radius:10px;background:#eef5fa;color:#103a62;font-size:14px;line-height:1.5}
@media(max-width:600px){.assessmentEntry{gap:24px}.assessmentEntry .intro h1{font-size:38px;margin:12px 0}.assessmentEntry .assessmentSteps,.assessmentEntry .intro .muted{display:none}.assessmentEntry .intro>p{font-size:16px}.assessmentEntry .authCard{padding:22px 18px}.assessmentEntry .authCard h2{font-size:28px}}

.authCard,.panel{background:#fff;border:1px solid #dfe5e9;border-radius:16px;padding:30px;box-shadow:0 8px 28px #071f400b}
.authCard{max-width:560px;width:100%;justify-self:end}
.authCard h2,.panel h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em;color:var(--ink)}
.authCard h2{font-size:32px;margin:25px 0 6px}
.authCard>p{margin:0;color:var(--text)}
.tabs{display:flex;gap:7px;padding:6px;border:1px solid var(--line);border-radius:14px;background:#f4f7f9}
.tabs button{flex:1;border:0;background:transparent;box-shadow:none}
.tabs button[aria-pressed=true]{background:var(--ink);color:#fff}
.portalMain label{display:block;font-size:14px;font-weight:600;margin:18px 0 8px;color:var(--ink)}
.portalMain input:not([type=checkbox]),.portalMain select{display:block;width:100%;margin-top:8px;min-height:48px;border:1px solid #bccbd5;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink)}
.portalMain input:not([type=checkbox]):focus,.portalMain select:focus{border-color:#14896e}
.primary{width:100%;min-height:50px!important;margin-top:22px;border:1px solid #103a62!important;background:linear-gradient(150deg,#075292,#06234a 82%)!important;color:#fff!important;box-shadow:0 3px 8px #06234a08}
.primary:hover{filter:brightness(1.08)}
.textButton{border:0!important;background:transparent!important;color:var(--green)!important;padding:8px 0!important;min-height:0!important;font-size:14px;box-shadow:none!important}
.checkbox:not([hidden]){display:flex!important;align-items:flex-start;gap:10px;line-height:1.5}
.checkbox input{margin-top:3px;width:18px;height:18px;flex-shrink:0}
.checkbox a{text-decoration:underline}
.small,.muted{font-size:13px;color:#687887}
#ageDisplay{display:block;margin-top:6px}

#notice:not(:empty){padding:15px 18px;border:1px solid #cce0dd;border-radius:12px;background:#edf7f4;margin-bottom:24px;line-height:1.5;color:#0b574a}
#notice.error{background:#fff1ee;border-color:#f0cfc7;color:#8b3020}
.dashboardHeading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:8px 0 2px}
.dashboardHeading h1{font-size:clamp(42px,4.6vw,64px);line-height:1;margin:16px 0 10px}
.dashboardHeading p{margin:0;color:var(--text)}
.actions{display:flex;gap:10px;padding-bottom:10px}
.actions button:last-child{background:var(--ink);border-color:var(--ink);color:#fff}
#updated{margin:8px 0 0}
.sectionNav{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0 24px}
.sectionNav a{background:#fff;border:1px solid #d9e1e6;border-radius:100px;padding:10px 18px;text-decoration:none;font-size:14px;font-weight:500;box-shadow:0 2px 8px #071f4005}
.sectionNav a:hover{border-color:#aebfc9;background:#f7f9fa}
.dashboardGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{scroll-margin-top:100px}
.panel h2{font-size:28px;margin:0 0 10px}
.panel>p,.panel form>p,.record p{color:var(--text)}
.panel details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.panel summary{cursor:pointer;font-weight:600;color:var(--ink);padding:7px 0}
.record{border-top:1px solid #e4e9ed;padding:18px 0;overflow-wrap:anywhere}
.record h3{font-size:17px;margin:0 0 8px;color:var(--ink)}
.record p{font-size:14px;margin:6px 0}
.badge{display:inline-block;border-radius:20px;padding:5px 10px;font-size:12px;background:#e8f2f0;color:#18584e}
.empty{padding:20px;background:#f6f8f9;border-radius:10px;font-size:14px;color:var(--text)}
.record button{margin-top:10px}
.amount{font-size:22px!important;font-weight:700;color:var(--ink)!important}
.paymentNote{font-size:13px}

/* Account assessment workspace injected after sign-in. */
.accountWorkspace{margin:0 0 18px}
.accountWorkspace>h2{margin-top:0}
.accountChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}
.accountChoices article{padding:20px;border:1px solid #dfe5e9;border-radius:12px;background:#f8fafb;min-width:0}
.accountChoices h3{font-family:Georgia,'Times New Roman',serif;font-size:22px;font-weight:400;letter-spacing:-.03em;margin:0 0 8px;color:var(--ink)}
.accountChoices p{font-size:14px;line-height:1.5;margin:0;color:var(--text)}
.accountChoices a{display:inline-block;margin-top:16px;color:#075292;font-weight:700;text-decoration:underline}
.accountWorkspace details{padding:16px 0;border-top:1px solid var(--line)}
.accountWorkspace summary{cursor:pointer;font-weight:600;padding:8px 0}
.accountWorkspace form{max-width:540px}
.accountWorkspace dl{line-height:1.6;overflow-wrap:anywhere}
.accountWorkspace dt{font-weight:600;margin-top:12px}
.accountWorkspace dd{margin:4px 0;white-space:pre-wrap;color:var(--text)}

@media(max-width:900px){
  .portalWrap{padding:36px 0 60px}
  .authLayout{grid-template-columns:1fr;gap:26px;min-height:0}
  .intro{padding:0}
  .intro h1{font-size:clamp(48px,9vw,68px);max-width:680px}
  .intro>p{max-width:650px}
  .intro ul{max-width:650px}
  .authCard{justify-self:stretch;max-width:none;order:-1}
  .dashboardGrid{grid-template-columns:1fr}
  .dashboardHeading{align-items:flex-start;flex-direction:column;gap:10px}
  .actions{padding-bottom:0}
  .accountChoices{grid-template-columns:1fr}
}
@media(max-width:480px){
  .portalWrap{padding:28px 0 48px}
  .intro h1{font-size:46px;line-height:1}
  .intro>p{font-size:16px}
  .intro ul{margin:22px 0}
  .authCard,.panel{padding:22px 19px;border-radius:14px}
  .authCard h2{font-size:28px}
  .dashboardHeading h1{font-size:46px}
  .sectionNav{gap:7px}
  .sectionNav a{padding:9px 13px;font-size:13px}
  .actions{width:100%}
  .actions button{flex:1}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Account tabs keep one task visible and preserve form values between views. */
.accountTabs{display:flex;flex-wrap:wrap;gap:6px;margin:26px 0 20px;padding:6px;background:#e8edee;border:1px solid #d5dfe0;border-radius:14px}
.portalMain .accountTabs button{border:1px solid transparent;background:transparent;box-shadow:none;font-size:14px;flex:1 0 auto}
.portalMain .accountTabs button[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.portalMain .accountTabs button:hover:not([aria-selected=true]){background:#fff}
.dashboardGrid{display:block;min-width:0}
.dashboardGrid>.panel{margin:0;min-width:0}
[role=tabpanel]:focus-visible{outline:3px solid #14896e;outline-offset:4px}
#profileContent form{max-width:560px}
#insuranceForm{max-width:620px}
.portalMain input[type=file]{white-space:normal;max-width:100%;font-size:14px}
.dashboardHeading>div{min-width:0;overflow-wrap:anywhere}
.panel,.portalMain form{overflow-wrap:anywhere}
.badge{font-size:14px}
@media(max-width:480px){.portalMain .accountTabs button{padding:10px 8px;flex:1 0 calc(33.333% - 8px)}}

.accountActions,.staffFilters{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.staffFilters label{display:grid;gap:6px;flex:1 1 220px}.securityPanel{padding:20px;margin-block:16px 28px;border:1px solid #cdd8df;border-radius:14px;background:#f5f9fc}.securityPanel code{display:block;overflow-wrap:anywhere;user-select:all;padding:12px;background:#fff}.securityPanel form,.record form{display:grid;gap:12px;margin-block:16px}.securityPanel label,.record label{display:grid;gap:6px}.securityPanel input,.staffFilters input,.staffFilters select,.record textarea{width:100%;padding:12px;border:1px solid #a5b7c5;border-radius:8px;font:inherit;box-sizing:border-box}.record textarea{min-height:110px}.record p{white-space:pre-wrap;overflow-wrap:anywhere}.reviewAnswers dt{font-weight:600;margin-top:14px}.reviewAnswers dd{margin:5px 0 15px;white-space:pre-wrap;overflow-wrap:anywhere}.securityPanel button,.record button,.staffFilters button,#staffContent section>button,#assessments>button,#historyList>button{min-height:44px;margin:6px 8px 6px 0;padding:10px 16px;border-radius:8px;border:1px solid #075292;background:#fff;color:#075292;cursor:pointer;font:inherit}button:disabled{cursor:default;opacity:.65}
.authenticatorQr{display:block;width:280px;max-width:100%;height:auto;box-sizing:border-box;margin:16px 0;padding:12px;border:1px solid #cdd8df;border-radius:12px;background:#fff;color-scheme:light}
.authenticatorManual{margin-block:16px}.authenticatorManual summary{padding-block:10px;cursor:pointer;font-weight:600}.authenticatorManual p{margin-block:8px}
