html.mobile-preview{background:#d9dfdc}
html.mobile-preview body{width:min(430px,100%);min-height:100vh;margin:0 auto;background:var(--paper);box-shadow:0 0 0 1px #bdc7c2,0 12px 35px #18332b33}
html.mobile-preview .portal-header{height:68px;padding:0 16px}
html.mobile-preview .portal-shell{width:100%;padding:20px 14px 42px}
html.mobile-preview .access-card{margin:20px 0;padding:25px 20px}
html.mobile-preview .access-card h1{font-size:30px}
html.mobile-preview .welcome{margin-bottom:17px}
html.mobile-preview .welcome h1{font-size:32px}
html.mobile-preview .summary-grid,html.mobile-preview .portal-grid{grid-template-columns:1fr;gap:12px}
html.mobile-preview .panel.appointments{grid-column:auto}
html.mobile-preview .summary-grid article,html.mobile-preview .panel{padding:17px}
html.mobile-preview .appointment{grid-template-columns:1fr;gap:6px;padding:13px 0}
html.mobile-preview .appointment-actions{justify-content:flex-start}
html.mobile-preview .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
html.mobile-preview .sheet{width:min(402px,94vw);padding:22px 18px}
html.mobile-preview .portal-gift-search,html.mobile-preview .portal-gift-result{grid-template-columns:1fr}
.portal-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.portal-quick-actions button{flex:1 1 138px;min-height:46px;border:1px solid #b7c9c1;border-radius:8px;padding:9px 12px;background:#fff;color:var(--green);font-weight:800;text-align:left}.portal-quick-actions button::after{content:'→';float:right}.portal-quick-actions button:hover{background:var(--green-soft)}
html.mobile-preview .portal-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}html.mobile-preview .portal-quick-actions button{min-width:0;min-height:48px;padding:9px 10px;font-size:14px}
.appointment-summary{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:15px;width:100%;border:0;padding:0;background:transparent;color:inherit;text-align:left}.appointment-summary .service-copy{min-width:0}.detail-arrow{color:var(--green);font-size:13px;font-weight:800;white-space:nowrap}.detail-services{display:grid;gap:12px;margin:18px 0}.detail-service{display:grid;gap:3px;padding:12px 0;border-top:1px solid #e7e9e5}.detail-service:first-child{border-top:0}.detail-service span,.detail-service small{color:var(--muted)}.sheet .appointment-actions{margin-top:18px;justify-content:flex-start}.sheet form>.small-button{justify-self:start}
html.mobile-preview .appointment-summary{grid-template-columns:1fr auto;gap:6px}.appointment-summary .date-time{grid-column:1}.appointment-summary .service-copy{grid-column:1}.appointment-summary .detail-arrow{grid-column:2;grid-row:1 / span 2}.appointment-summary .service-copy strong{white-space:normal}
.slot-grid{display:grid;grid-template-columns:1fr;gap:9px}.portal-time-period{border:1px solid #c6d5ce;border-radius:9px;background:#fff;overflow:hidden}.portal-time-period summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 12px;color:#294f48;cursor:pointer;list-style:none}.portal-time-period summary::-webkit-details-marker{display:none}.portal-time-period summary::after{content:'+';font-size:20px}.portal-time-period[open] summary{border-bottom:1px solid #e0e6e2}.portal-time-period[open] summary::after{content:'−'}.portal-time-period small{color:var(--muted);font-size:12px}.portal-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px}.portal-time-grid button{min-width:0}.portal-time-period:not([open]) .portal-time-grid{display:none}
