/* Phase 3: One dashboard design, corresponding to the locked Beauty Bank overview. */
.vesta-dashboard-page{--vesta-clinic-gap:14px;color:var(--vesta-text)}
.vesta-clinic-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:4px 0 20px}
.vesta-clinic-heading h1{font-size:30px;line-height:1.18;letter-spacing:-.045em;margin:0 0 8px;font-weight:600}
.vesta-clinic-heading p{font-size:14px;color:var(--vesta-text-2);margin:0}
.vesta-clinic-date{display:inline-flex;align-items:center;gap:10px;background:var(--vesta-card-bg);padding:13px 17px;border:1px solid var(--vesta-border);border-radius:12px;white-space:nowrap;font-size:13px;color:var(--vesta-text)}
.vesta-clinic-date .vesta-icon{width:18px;height:18px}
.vesta-clinic-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--vesta-clinic-gap);margin-bottom:var(--vesta-clinic-gap)}
.vesta-clinic-stat{min-width:0;display:flex;align-items:flex-start;gap:16px;border:1px solid var(--vesta-border);background:var(--vesta-card-bg);padding:21px;border-radius:13px;text-decoration:none;box-shadow:0 8px 24px rgba(16,24,40,.025);color:var(--vesta-text)}
.vesta-clinic-stat:hover{border-color:var(--vesta-accent)}.vesta-clinic-stat__icon{width:52px;height:52px;flex:0 0 52px;border-radius:13px;background:#f8f0dc;display:grid;place-items:center;color:var(--vesta-accent)}
.vesta-clinic-stat__icon .vesta-icon{height:24px;width:24px}.vesta-clinic-stat--blue .vesta-clinic-stat__icon{color:#1869ef;background:#eaf3ff}.vesta-clinic-stat--green .vesta-clinic-stat__icon{color:#11ad72;background:#e6f9f1}.vesta-clinic-stat--orange .vesta-clinic-stat__icon{color:#fa790c;background:#fff1e6}
.vesta-clinic-stat strong{font-size:24px;line-height:1.1;display:block;margin:3px 0 7px}.vesta-clinic-stat span:not(.vesta-clinic-stat__icon){font-size:13px;color:var(--vesta-text-2)}
.vesta-clinic-primary-grid,.vesta-clinic-secondary-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:var(--vesta-clinic-gap);margin-bottom:var(--vesta-clinic-gap)}
.vesta-clinic-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.vesta-clinic-panel{min-width:0;background:var(--vesta-card-bg);border:1px solid var(--vesta-border);border-radius:13px;overflow:hidden;box-shadow:0 8px 24px rgba(16,24,40,.025)}
.vesta-clinic-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:55px;padding:14px 19px;border-bottom:1px solid var(--vesta-border)}
.vesta-clinic-panel h2{font-size:17px;letter-spacing:-.025em;margin:0;font-weight:600}.vesta-clinic-panel header a{color:var(--vesta-accent);text-decoration:none;font-size:13px;font-weight:600}.vesta-clinic-panel header a:hover{text-decoration:underline}
.vesta-clinic-panel__body{padding:0 18px}.vesta-clinic-empty{font-size:14px;color:var(--vesta-text-2);padding:18px 0;margin:0}
.vesta-clinic-appointment{min-height:55px;display:grid;grid-template-columns:85px 34px minmax(90px,1fr) minmax(88px,.7fr) 84px;align-items:center;gap:9px;border-bottom:1px solid var(--vesta-border);text-decoration:none;color:var(--vesta-text);font-size:13px}
.vesta-clinic-appointment:last-child,.vesta-clinic-person:last-child,.vesta-clinic-follow:last-child{border-bottom:0}.vesta-clinic-appointment time,.vesta-clinic-therapist{color:var(--vesta-text-2);font-size:12px}.vesta-clinic-appointment strong{font-size:13px;overflow-wrap:anywhere}
.vesta-clinic-initial{width:30px;height:30px;border-radius:50%;background:#f8f0dc;color:var(--vesta-accent);font-size:12px;font-weight:600;display:grid;place-items:center;flex:0 0 30px}
.vesta-clinic-state{justify-self:end;font-size:11px;font-weight:600;color:#0b9f64;background:#e4f9ee;border-radius:8px;padding:6px 8px}
.vesta-clinic-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:12px 16px 17px;text-align:center;gap:0}.vesta-clinic-calendar__weekday{font-size:11px;color:var(--vesta-text-2);padding:10px 0}
.vesta-clinic-calendar__day,.vesta-clinic-calendar__blank{height:43px;display:grid;place-items:center;position:relative;font-size:13px}.vesta-clinic-calendar__day.is-today{color:#fff;font-weight:600;z-index:1}.vesta-clinic-calendar__day.is-today:before{content:"";width:34px;height:34px;border-radius:50%;background:var(--vesta-accent);position:absolute;z-index:-1}.vesta-clinic-calendar__day.has-events:after{content:"";position:absolute;bottom:1px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--vesta-accent)}.vesta-clinic-calendar__day.is-today.has-events:after{background:#fff}
.vesta-clinic-person{display:grid;grid-template-columns:30px minmax(90px,1fr) minmax(95px,1fr) auto;align-items:center;gap:12px;min-height:53px;border-bottom:1px solid var(--vesta-border);font-size:12px}.vesta-clinic-person strong{font-size:13px}.vesta-clinic-person>span:not(.vesta-clinic-initial),.vesta-clinic-person small{color:var(--vesta-text-2)}
.vesta-clinic-follow{display:flex;align-items:center;gap:12px;min-height:64px;border-bottom:1px solid var(--vesta-border)}.vesta-clinic-follow__dot{width:8px;height:8px;border-radius:50%;background:#ef7623;flex-shrink:0}.vesta-clinic-follow>div{display:grid;gap:5px;min-width:0;flex:1}.vesta-clinic-follow strong{font-size:13px}.vesta-clinic-follow small{font-size:12px;color:var(--vesta-text-2);overflow-wrap:anywhere}.vesta-clinic-follow time{font-size:12px;color:var(--vesta-text-2);white-space:nowrap}
@media(max-width:1250px){.vesta-clinic-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.vesta-clinic-primary-grid,.vesta-clinic-secondary-grid{grid-template-columns:1fr}}
@media(max-width:650px){.vesta-clinic-heading{align-items:flex-start;flex-direction:column}.vesta-clinic-heading h1{font-size:24px}.vesta-clinic-stats{gap:10px}.vesta-clinic-stat{padding:13px;gap:10px}.vesta-clinic-stat__icon{width:39px;height:39px;flex-basis:39px}.vesta-clinic-stat strong{font-size:21px}.vesta-clinic-stat span:not(.vesta-clinic-stat__icon){font-size:11px}.vesta-clinic-appointment{grid-template-columns:65px 26px minmax(0,1fr) 70px;gap:6px}.vesta-clinic-appointment .vesta-clinic-therapist{display:none}.vesta-clinic-appointment time{font-size:10px}.vesta-clinic-appointment strong{font-size:12px}.vesta-clinic-initial{width:26px;height:26px;flex-basis:26px}.vesta-clinic-panel__body{padding:0 10px}.vesta-clinic-person{grid-template-columns:26px minmax(0,1fr) minmax(65px,1fr);gap:8px}.vesta-clinic-person small{display:none}}

/* Upcoming appointments: one full-width panel between the two existing dashboard rows. */
.vesta-clinic-upcoming{margin-bottom:var(--vesta-clinic-gap)}
.vesta-clinic-upcoming__head,.vesta-clinic-upcoming__row{display:grid;grid-template-columns:minmax(135px,1.15fr) minmax(95px,1fr) minmax(95px,1fr) 100px;gap:16px;align-items:center}
.vesta-clinic-upcoming__head{padding:14px 0 10px;color:var(--vesta-text-2);font-size:12px;border-bottom:1px solid var(--vesta-border)}
.vesta-clinic-upcoming__row{padding:14px 0;min-height:63px;border-bottom:1px solid var(--vesta-border);color:var(--vesta-text);text-decoration:none;font-size:13px}
.vesta-clinic-upcoming__row:last-child{border-bottom:0}
.vesta-clinic-upcoming__row:hover{background:var(--vesta-card-hover,transparent)}
.vesta-clinic-upcoming__row time{font-size:13px}
.vesta-clinic-upcoming__row time small{display:block;margin-top:4px;color:var(--vesta-text-2);font-size:12px}
.vesta-clinic-upcoming__row strong{font-weight:600;overflow-wrap:anywhere}
.vesta-clinic-upcoming__therapist{color:var(--vesta-text-2);overflow-wrap:anywhere}
.vesta-clinic-upcoming__row .vesta-clinic-state{white-space:nowrap}
@media(max-width:650px){.vesta-clinic-upcoming__head{display:none}.vesta-clinic-upcoming__row{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}.vesta-clinic-upcoming__row time{grid-column:1;grid-row:1}.vesta-clinic-upcoming__row strong{grid-column:1;grid-row:2}.vesta-clinic-upcoming__therapist{grid-column:1;grid-row:3}.vesta-clinic-upcoming__row .vesta-clinic-state{grid-column:2;grid-row:2;align-self:center}}
