.portal-login,.portal-account{max-width:1120px;margin:auto;padding:65px 28px 100px}.portal-choice-intro{max-width:760px;margin-bottom:35px}.portal-choice-intro h1,.portal-account h1{font:700 clamp(42px,6vw,68px)/1 Georgia,serif;margin:12px 0 20px;color:#0c2523}.portal-choice-intro>p:last-child,.portal-account-hero>p{color:#637672;font-size:18px}.portal-choices{display:grid;grid-template-columns:1fr 1fr;gap:22px}.portal-choice-card{display:flex;flex-direction:column;gap:14px;padding:30px;border:1px solid #cfe6df;border-radius:26px;background:#fff;box-shadow:0 18px 45px rgba(9,67,63,.08)}.portal-choice-card.selected{background:linear-gradient(145deg,#fbfefd,#edf9f5)}.portal-choice-card h2{font:700 31px/1.1 Georgia,serif;margin:0}.portal-choice-card p{color:#637672}.portal-choice-card form{display:grid;gap:15px}.portal-choice-card .button{margin-top:auto;border:0;cursor:pointer}.portal-choice-card small{color:#637672;text-align:center}.portal-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#dff5ed;color:#176c58;font-size:26px}.button.secondary{background:#dff5ed;color:#075541;box-shadow:none}.portal-create{text-align:center;margin-top:25px}.portal-create a{color:#176c58;font-weight:800}.portal-account{display:grid;gap:55px}.portal-account-hero{padding:35px;border-radius:28px;background:linear-gradient(135deg,#e0f6ef,#fff9e9)}.account-state{margin-top:22px}.account-state span{display:inline-flex;padding:9px 13px;border-radius:999px;background:#fff;color:#176c58;font-weight:800;font-size:13px}.section-heading h2,.portal-services h2{font:700 clamp(30px,4vw,44px)/1.1 Georgia,serif;margin:8px 0 20px}.portal-resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.portal-resource-grid a{display:grid;gap:10px;padding:24px;border:1px solid #cfe6df;border-radius:20px;background:#fff}.portal-resource-grid strong{font:700 24px Georgia,serif}.portal-resource-grid span{color:#637672}.portal-resource-grid b{color:#176c58}.portal-services{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portal-services>div{padding:28px;border-radius:22px;background:#eff9f6}.portal-logout{border:0;background:none;cursor:pointer}.portal-choice-card .password-input{position:relative}.portal-choice-card .field input{background:#fff}@media(max-width:760px){.portal-choices,.portal-resource-grid,.portal-services{grid-template-columns:1fr}.portal-login,.portal-account{padding:42px 20px 75px}}
.portal-forgot-link { border: 0; background: transparent; color: #176f63; padding: 0; text-decoration: underline; cursor: pointer; font: inherit; text-align: left; }
.portal-forgot { width: min(92vw, 480px); border: 0; border-radius: 24px; padding: 32px; box-shadow: 0 24px 80px #12352f55; }
.portal-forgot::backdrop { background: #102a2866; backdrop-filter: blur(4px); }
.portal-forgot-close { position: absolute; right: 18px; top: 14px; border: 0; background: transparent; font-size: 2rem; cursor: pointer; }
.account-page-nav { display: flex; align-items: center; gap: 22px; margin-left: auto; font-size: .92rem; }
.account-page-nav a, .account-page-nav button { color: #176f63; }
@media (max-width: 680px) { .account-page-nav { gap: 10px; font-size: .78rem; } }
.gift-nav strong { color: #176f63; white-space: nowrap; }
.portal-services { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.portal-services > div { display: flex; flex-direction: column; }
.portal-service-action { min-height: 82px; display: flex; flex-direction: column; align-items: flex-start; margin-top: auto; }
.portal-service-action .button { min-height: 54px; margin: 0; border: 0; cursor: pointer; }
.portal-service-action .form-status { min-height: 20px; margin: 7px 0 0; font-size: 12px; }
.portal-site-label { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.portal-site-label .eyebrow { margin: 0; }
.portal-free-badge { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border-radius: 999px; background: #176c58; color: #fff; font-size: clamp(15px, 1.5vw, 19px); font-weight: 900; line-height: 1.1; text-decoration: none; box-shadow: 0 9px 22px rgba(23, 108, 88, .22); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.portal-free-badge:hover, .portal-free-badge:focus-visible { background: #0f5949; color: #fff; transform: translateY(-2px); box-shadow: 0 13px 28px rgba(23, 108, 88, .3); outline: 3px solid rgba(99, 201, 168, .35); outline-offset: 3px; }
.portal-free-badge > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #fff; color: #176c58; font-size: 15px; }
@media (max-width: 560px) { .portal-free-badge { width: 100%; justify-content: center; text-align: center; } }
