.portal-shell{width:min(100% - 32px,1040px);margin:0 auto;padding:44px 0 56px;color:#4d3b2f}
.portal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 28px}
.portal-brand,.portal-kicker{margin:0;color:#c9793f;font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.portal-header h1{margin:8px 0 7px;font-size:32px;line-height:1.15;letter-spacing:-.035em;color:#3d2c22}
.portal-header p:not(.portal-brand){margin:0;color:#806b5c;font-size:15px}
.portal-header-actions{display:flex;align-items:center;gap:4px}
.portal-profile-link{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 13px;border:1px solid #e7d7c9;border-radius:12px;background:#fffaf6;color:#9d5c2e;font-size:14px;font-weight:700;text-decoration:none;transition:border-color .18s ease,background .18s ease,color .18s ease}
.portal-profile-link svg{width:16px}
.portal-profile-link:hover{border-color:#d89b67;background:#fdf2e8;color:#88491e}
.portal-logout{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 13px;border:1px solid transparent;border-radius:12px;background:transparent;color:#745e4d;font:inherit;font-size:14px;font-weight:650;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}
.portal-logout svg{width:17px}
.portal-logout:hover{border-color:#eadbcd;background:#fffaf6;color:#a75f2b}
.portal-logout:focus-visible,.portal-profile-link:focus-visible,.portal-baby-edit:focus-visible,.portal-text-action:focus-visible{outline:3px solid rgba(211,160,107,.35);outline-offset:2px}
.portal-session-prompt{display:flex;align-items:center;gap:14px;padding:18px 20px;margin:0 0 18px;border:1px solid #cfeef7;border-radius:20px;background:#eaf9fd;color:#23718b}
.portal-prompt-icon,.portal-card-title>span{display:grid;flex:0 0 auto;place-items:center;border-radius:12px}
.portal-prompt-icon{width:42px;height:42px;background:#d8f3fb;color:#1684a8}
.portal-prompt-icon svg{width:20px}
.portal-session-prompt strong{display:block;font-size:15px}
.portal-session-prompt p{margin:3px 0 0;font-size:14px;color:#438198}
.portal-primary-action{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-left:auto;white-space:nowrap;border-radius:13px!important;box-shadow:0 7px 15px rgba(191,119,59,.18)}
.portal-primary-action svg{width:16px}
.portal-card{padding:26px 28px;margin-bottom:18px;border:1px solid #f0e5dc;border-radius:20px;background:#fffdfa;box-shadow:0 12px 30px rgba(87,58,35,.055)}
.portal-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.portal-card h2{margin:5px 0 6px;color:#4b392d;font-size:20px;letter-spacing:-.015em}
.portal-help,.portal-card-title p{margin:0;color:#887363;font-size:14px;line-height:1.5}
.portal-add-baby{display:inline-flex;align-items:center;gap:6px;min-height:40px;border-radius:12px!important;white-space:nowrap}
.portal-add-baby svg{width:16px}
.portal-babies{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin-top:20px}
.portal-baby{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px;border:1px solid #eee0d4;border-radius:15px;background:#fffbf7}
.portal-baby-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#f6ddc6;color:#af6937;font-size:18px;font-weight:750}
.portal-baby-copy strong,.portal-baby-copy span,.portal-baby-copy small{display:block}
.portal-baby-copy strong{color:#4d392d;font-size:16px}
.portal-baby-copy span{margin-top:3px;color:#a38b78;font-size:12px}
.portal-baby-copy small{color:#745f50;font-size:13px}
.portal-baby-edit{display:inline-flex;align-items:center;gap:6px;padding:9px 10px;border:1px solid #e7d7c9;border-radius:10px;color:#a55f2c;font-size:13px;font-weight:700;text-decoration:none}
.portal-baby-edit svg{width:14px}
.portal-card-title{display:flex;align-items:flex-start;gap:11px;margin-bottom:19px}
.portal-card-title>span{width:38px;height:38px;background:#f9ecdf;color:#b87038}
.portal-card-title svg{width:19px}
.portal-card-title h2{margin:0 0 3px}
.portal-reservations{display:grid;gap:10px}
.portal-reservation{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto;align-items:center;gap:15px;padding:13px 0;border-top:1px solid #f1e7df}
.portal-reservation:first-child{border-top:0;padding-top:0}
.portal-date{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:#fbefe4;color:#a7602c;line-height:1}
.portal-date strong{font-size:18px}
.portal-date span{margin-top:3px;font-size:11px;font-weight:700;text-transform:uppercase}
.portal-reservation-copy strong,.portal-reservation-copy span{display:block}
.portal-reservation-copy strong{font-size:15px;color:#4c382c}
.portal-reservation-copy span{margin-top:3px;color:#806b5c;font-size:13px}
.portal-status{display:inline-flex;justify-content:center;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.portal-status-confirmed{background:#e8f5ec;color:#36704a}
.portal-status-pending{background:#fff3d6;color:#976a19}
.portal-status-completed{background:#f3ede7;color:#765f4e}
.portal-status-cancelled{background:#fdebea;color:#a84e48}
.portal-change-form{display:flex;align-items:center;gap:8px}
.portal-change-form input{max-width:138px;padding:7px;border:1px solid #e4d7cc;border-radius:8px;background:#fff;font:inherit;font-size:12px}
.portal-text-action{border:0;background:transparent;color:#a45e2b;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}
.portal-empty-state{display:grid;justify-items:start;max-width:450px;padding:8px 0 2px}
.portal-empty-state>span{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:12px;background:#f9ecdf;color:#bc7440}
.portal-empty-state svg{width:20px}
.portal-empty-state strong{color:#524033;font-size:15px}
.portal-empty-state p{margin:4px 0 13px;color:#887363;font-size:14px;line-height:1.5}
.portal-empty-state-compact{padding-bottom:0}
.portal-empty-inline{display:flex;align-items:center;gap:12px;padding:16px;border:1px dashed #e7d7c9;border-radius:14px;color:#806b5c}
.portal-empty-inline>i{color:#bd7743}
.portal-empty-inline strong,.portal-empty-inline span{display:block}
.portal-empty-inline span{margin-top:2px;font-size:13px}
.portal-info-callout{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin:-4px 0 18px;border-radius:12px;background:#f8f2ec;color:#806b5c;font-size:13px;line-height:1.45}
.portal-info-callout svg{width:17px;flex:0 0 auto;color:#b36c38}
.portal-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.portal-media{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px;border:1px solid #eee0d4;border-radius:15px;background:#fffbf7;color:#604a3a;text-decoration:none}
.portal-media>span{display:grid;gap:4px}
.portal-media svg{width:18px;color:#b96f37}
.portal-media strong{font-size:14px}
.portal-media small{color:#896f5e;font-size:12px;line-height:1.35}
.portal-media b{display:inline-flex;align-items:center;gap:5px;color:#a45e2b;font-size:12px;white-space:nowrap}
.portal-media b svg{width:14px}
.portal-media-expired{background:#f7f2ed}
.portal-media-expired form{display:block}
.portal-media-expired .button{min-height:36px;border-radius:10px}
.portal-media-section{margin-top:34px}
.flash{margin-bottom:18px}
.portal-edit-card h1{margin-top:.25rem}
.portal-edit-card form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;margin-top:1.5rem}
.portal-edit-card label{display:grid;gap:.35rem;color:#6b5545;font-size:.9rem;font-weight:600}
.portal-edit-card input,.portal-edit-card select{width:100%;padding:.75rem;border:1px solid #eadbce;border-radius:.65rem;background:#fff;font:inherit}
.portal-edit-card button{grid-column:1/-1;justify-self:start}
.portal-check{display:flex!important;align-items:center;gap:.5rem}
.portal-check input{width:auto}
@media(max-width:700px){.portal-shell{width:min(100% - 32px,1040px);padding-top:30px}
.portal-header{margin-bottom:22px}
.portal-header h1{font-size:28px}
.portal-header p:not(.portal-brand){font-size:14px}
.portal-session-prompt{align-items:flex-start;flex-wrap:wrap;padding:16px}
.portal-session-prompt>div{flex:1}
.portal-primary-action{width:100%;justify-content:center;margin-left:0}
.portal-card{padding:22px 18px}
.portal-section-heading{flex-direction:column;gap:14px}
.portal-add-baby{width:100%;justify-content:center}
.portal-babies{grid-template-columns:1fr;margin-top:16px}
.portal-reservation{grid-template-columns:46px minmax(0,1fr);align-items:start}
.portal-status,.portal-text-action,.portal-change-form{grid-column:2}
.portal-change-form{flex-wrap:wrap}
.portal-media-grid{grid-template-columns:1fr}
}
@media(max-width:420px){.portal-shell{width:min(100% - 24px,1040px)}
.portal-header{align-items:center}
.portal-header p:not(.portal-brand){display:none}
.portal-logout span{display:none}
.portal-logout{padding:0 10px}
.portal-baby{grid-template-columns:44px minmax(0,1fr)}
.portal-baby-avatar{width:44px;height:44px}
.portal-baby-edit{grid-column:2;justify-self:start}
.portal-media{align-items:flex-start;flex-direction:column}
.portal-media b{align-self:flex-start}
}

@media(min-width:701px){
    .portal-shell{padding-top:52px;padding-bottom:64px}
    .portal-header{margin-bottom:32px;padding:0 2px 25px;border-bottom:1px solid #ece2d8}
    .portal-header h1{font-size:34px}
    .portal-card{padding:28px 30px;border-radius:22px;box-shadow:0 14px 36px rgba(87,58,35,.06)}
    .portal-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
    .portal-session-grid .portal-card{height:100%}
}

/* Customer sign-in and password screens */
.portal-auth{width:min(100% - 32px,780px);padding-top:32px}
.portal-auth .portal-card{padding:32px}
.portal-auth .portal-card>h1{margin:10px 0 10px;color:#443126;font-size:28px;line-height:1.2}
.portal-auth .portal-card>p:not(.landing-eyebrow){max-width:590px;margin:0;color:#806b5c;font-size:14px;line-height:1.6}
.portal-auth form{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;row-gap:17px;max-width:none;margin-top:26px}
.portal-auth form>.field,.portal-auth form>.flash{grid-column:1/-1}
.portal-auth form>.field{gap:8px}
.portal-auth form>.field input{min-height:50px;padding:12px 14px}
.portal-auth form>.button{min-width:136px;margin-top:2px;justify-self:start}
.portal-auth form>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 15px;border:1px solid #e6d5c7;border-radius:12px;background:#fffaf6;color:#9f5d2e;font-size:14px;font-weight:700;text-decoration:none;transition:border-color .18s ease,background .18s ease,color .18s ease}
.portal-auth form>a:hover{border-color:#d89b67;background:#fdf2e8;color:#8d4e22}
.portal-auth .portal-card>a:last-child{display:inline-flex;align-items:center;gap:7px;margin-top:18px;color:#786355;font-size:13px;font-weight:650;text-decoration:none}
.portal-auth .portal-card>a:last-child::before{content:'←';color:#b16d3b;font-size:16px;line-height:1}
.portal-auth .portal-card>a:last-child:hover{color:#9f5d2e}
.portal-auth .back-link{display:inline-flex;margin-bottom:8px;color:#916f57;font-size:13px}
@media(max-width:700px){.portal-auth{width:min(100% - 32px,780px);padding-top:20px}.portal-auth .portal-card{padding:26px 20px}.portal-auth form{grid-template-columns:1fr;gap:16px;margin-top:22px}.portal-auth form>.button{width:100%;justify-self:stretch}.portal-auth form>a{justify-self:center}}

/* Baby profile forms */
.portal-profile-shell{width:min(100% - 32px,940px);padding-top:34px}
.portal-back-link{display:inline-flex;align-items:center;gap:7px;margin:0 0 12px;color:#7b6351;font-size:14px;font-weight:650;text-decoration:none}
.portal-back-link svg{width:16px}
.portal-back-link:hover{color:#a45e2b}
.portal-edit-card{padding:32px 34px}
.portal-profile-header{display:flex;align-items:center;gap:17px;padding:0 0 24px;margin-bottom:25px;border-bottom:1px solid #f0e5dc}
.portal-profile-avatar{display:grid;place-items:center;flex:0 0 auto;width:58px;height:58px;border-radius:18px;background:#f7e1cc;color:#ad6735;font-family:var(--font-heading);font-size:23px;font-weight:800}
.portal-profile-avatar svg{width:25px}
.portal-profile-avatar-new{background:#e8f4f7;color:#37809a}
.portal-profile-header h1{margin:6px 0 6px;color:#443126;font-size:28px;letter-spacing:-.035em}
.portal-profile-header p:not(.portal-kicker){max-width:650px;margin:0;color:#806b5c;font-size:14px;line-height:1.6}
.portal-edit-card form{display:block;max-width:none;margin:0}
.portal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 16px}
.portal-form-grid .portal-field-wide{grid-column:1/-1}
.portal-form-grid label{display:grid;gap:8px;color:#604c3d;font-size:13px;font-weight:750}
.portal-form-grid input,.portal-form-grid select{min-height:50px;padding:12px 14px;border:1px solid #eadbd0;border-radius:13px;background:#fffdfa;color:#49372b;font:inherit;font-size:14px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.portal-form-grid input:hover,.portal-form-grid select:hover{border-color:#d9bda8}
.portal-form-grid input:focus,.portal-form-grid select:focus{border-color:#c98451;box-shadow:0 0 0 4px rgba(216,155,103,.14);outline:0}
.portal-form-grid .portal-check{display:flex!important;align-items:center;align-self:end;min-height:50px;gap:10px;padding:0 2px;color:#715b4b;font-size:14px}
.portal-check input[type="checkbox"]{width:18px;height:18px;min-height:0;margin:0;accent-color:#d89b67}
.portal-form-actions{display:flex;align-items:center;gap:16px;padding-top:26px;margin-top:26px;border-top:1px solid #f0e5dc}
.portal-form-actions .button{display:inline-flex;align-items:center;gap:8px;min-height:46px;border-radius:13px}
.portal-form-actions .button svg{width:17px}
.portal-form-actions span{color:#8d7766;font-size:13px}
@media(max-width:700px){.portal-profile-shell{width:min(100% - 28px,940px);padding-top:24px}.portal-edit-card{padding:25px 19px}.portal-profile-header{align-items:flex-start;gap:13px;padding-bottom:20px;margin-bottom:20px}.portal-profile-avatar{width:48px;height:48px;border-radius:15px;font-size:19px}.portal-profile-header h1{font-size:25px}.portal-form-grid{grid-template-columns:1fr;gap:15px}.portal-form-grid .portal-field-wide{grid-column:auto}.portal-form-actions{align-items:stretch;flex-direction:column;padding-top:22px;margin-top:22px}.portal-form-actions .button{justify-content:center}.portal-form-actions span{text-align:center}}
