.portal-shell{--muted:#655b70;min-height:100dvh}.portal-shell *,.portal-shell :before,.portal-shell :after{box-sizing:border-box}.portal-shell :is(button,input,select,textarea){font:inherit}.portal-shell :is(button,a,input,select,textarea):focus-visible{outline-offset:3px;outline:3px solid #b380ec}.portal-shell :is(button,a){touch-action:manipulation}.portal-shell button:disabled{opacity:.65;cursor:default}.portal-shell :is(.portal-grid>*,.portal-card>*,.portal-opening>*){min-width:0}.portal-shell :is(h1,h2,h3,p,small,strong,span,a,label){overflow-wrap:anywhere}.portal-shell :is(#portal-schedule,#portal-openings,#portal-availability){scroll-margin-top:145px}.portal-mobile-nav{display:none}@media (max-width:760px){.portal-shell{padding-bottom:calc(90px + env(safe-area-inset-bottom));font-size:16px;line-height:1.5}.portal-header{z-index:40;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;flex-wrap:wrap;gap:12px;position:sticky;top:0;box-shadow:0 3px 16px #35144b20}.portal-header>div:first-child{gap:0;display:grid}.portal-header b{font-size:1.25rem}.portal-header span{font-size:.875rem}.portal-header-actions{flex-wrap:wrap}.portal-header button{min-height:44px;font-size:.875rem}.portal-header .install-app-button.portal-header{width:auto;height:auto;min-height:44px;padding:9px 12px}.portal-header .install-app-button.portal-header b{font-size:.875rem;display:block}.portal-header .install-app-button.portal-header span{font-size:1rem}.portal-body{padding:22px 16px 24px}.portal-welcome h1{margin:8px 0;font-family:inherit;font-size:1.65rem;font-weight:750;line-height:1.2}.portal-welcome>p,.portal-kicker{font-size:.8rem}.portal-welcome>span{color:#655b70;font-size:1rem}.portal-grid{grid-template-columns:minmax(0,1fr);gap:24px;margin:24px 0}.portal-section-title{align-items:flex-start;gap:12px}.portal-section-title h2,.portal-preferences h2,.portal-calendar h2{font-family:inherit;font-size:1.2rem;font-weight:700;line-height:1.35}.portal-section-title span{flex-shrink:0;font-size:.875rem}.portal-card{border-radius:16px;grid-template-columns:82px minmax(0,1fr);gap:14px;margin-bottom:14px;padding:16px;box-shadow:0 3px 12px #35144b08}.portal-card time{align-self:start;padding:8px 10px 8px 0}.portal-card time b{font-size:1.1rem}.portal-card time span{color:#51445e;font-size:.875rem}.portal-card h3{font-size:1.1rem;line-height:1.4}.portal-card p,.portal-member-name{font-size:1rem;line-height:1.5}.portal-status{padding:5px 10px;font-size:.875rem}.portal-card aside{flex-wrap:wrap;grid-column:1/-1;gap:10px;display:flex}.portal-card aside button{flex:135px}.portal-card .portal-link{background:#f8f4fb;border:1px solid #d9cce4;padding:10px;font-size:.9375rem}.portal-shell button{white-space:normal;min-height:46px}.portal-preferences{border-radius:16px;padding:18px}.portal-preferences label,.portal-login label,.portal-household label{font-size:1rem}.portal-shell :is(input:not([type=checkbox]),select,textarea){max-width:100%;min-height:48px;font-size:16px}.portal-shell textarea{min-height:100px}.portal-preferences>button{width:100%}.portal-sms-checkbox{display:flex!important}.portal-sms-choice>p:not(.portal-kicker),.portal-sms-checkbox b,.portal-sms-checkbox small,.portal-sms-disclosure,.portal-sms-status{font-size:.9375rem;line-height:1.55}.portal-sms-checkbox input{width:24px;height:24px}.portal-opening{border-radius:16px;flex-direction:column;align-items:stretch;padding:18px}.portal-opening b{font-size:1.05rem}.portal-opening span,.portal-opening em,.portal-empty{font-size:1rem;line-height:1.5}.portal-error,.portal-success{margin:12px 0;font-size:1rem}.portal-calendar{max-width:100%;margin-top:24px}.portal-calendar :is(p,label,summary,a){font-size:1rem}.portal-calendar-actions{flex-wrap:wrap}.portal-calendar-actions>*{min-width:0;max-width:100%}.portal-shell .notification-control{grid-template-columns:auto minmax(0,1fr)}.portal-shell .notification-control button{grid-column:1/-1;width:100%}.portal-shell .notification-control :is(p,small){font-size:.875rem}.portal-login{width:100%;max-width:470px;padding:28px 18px}.portal-login h1{font-family:inherit;font-size:1.8rem;font-weight:750}.portal-login>p:not(.portal-kicker),.portal-login>small{color:#655b70;font-size:1rem}.portal-login form{padding:20px}.portal-login button,.portal-install-callout>div b{font-size:1rem}.portal-install-callout>div small{font-size:.875rem}.portal-mobile-nav{z-index:25;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #ded2ea;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #35144b10}.portal-mobile-nav a{color:#511492;text-align:center;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:8px 4px;font-size:.875rem;font-weight:750;text-decoration:none;display:flex}.portal-mobile-nav a:hover,.portal-mobile-nav a:focus{background:#eee4f8}.install-guide{width:100%;max-height:calc(100dvh - 32px)}.install-guide li b,.install-guide li span,.install-guide>p:not(.eyebrow){font-size:1rem}}.portal-shell .install-guide-backdrop{align-items:center;display:grid}.portal-substitutes{background:#fff;border:1px solid #dac9ed;border-left:5px solid #6822ad;border-radius:16px;margin:24px 0;padding:20px;scroll-margin-top:145px}.portal-substitutes>p{color:#655b70;font-size:1rem}.portal-substitutes .portal-opening{margin:12px 0}.portal-substitutes>small{color:#655b70;font-size:.875rem;line-height:1.5}.portal-open-position-notice{background:#fbfffd;border-color:#b9d9cb #b9d9cb #b9d9cb #347562}.portal-open-position-notice .portal-section-title span{color:#267147;background:#e3f4ec}.portal-preferences select{color:#4a3e51;width:100%;min-height:48px;font:inherit;box-sizing:border-box;background:#fff;border:1px solid #ddd3e5;border-radius:9px;padding:13px}.portal-preferences small,.portal-service-help{color:#74677e;font-size:13px;line-height:1.6}.portal-service-list{gap:16px;display:grid}.portal-service{background:#fff;border:1px solid #e5ddea;border-radius:14px;min-width:0;padding:20px}.portal-service h3{margin:0 0 8px;font-size:19px}.portal-service time{color:#5b18a8;font-size:14px;font-weight:650}.portal-service header p{color:#74677e;font-size:14px}.portal-service .portal-openings{margin-top:16px}.portal-service-assigned{color:#267147;font-size:14px}.portal-status.draft{color:#7a5700;background:#fff1d6}.portal-card aside .portal-checkin-button{color:#fff;background:#2f765f;border-color:#2f765f;font-weight:800}.portal-checkin-status{color:#24634f;background:#e5f5ed;border-radius:10px;flex:100%;justify-content:center;align-items:center;min-height:46px;padding:10px 14px;font-weight:800;display:flex}.portal-checkin-status.late{color:#7a5700;background:#fff1d6}@media (max-width:760px){.portal-preferences select{font-size:16px}.portal-service{padding:16px}.portal-service .portal-openings{grid-template-columns:1fr}.portal-service .portal-opening{flex-wrap:wrap}.portal-service .portal-opening button{min-height:46px}.portal-service time{line-height:1.6;display:block}}
