@keyframes dash-enter{from{opacity:0;transform:translateY(16px);}
to{opacity:1;transform:none;}}
@keyframes dash-shimmer{0%{background-position:-200% 0;}
100%{background-position:200% 0;}}
@keyframes dash-pulse{0%, 100%{opacity:1;}
50%{opacity:0.4;}}
@keyframes dash-glow{0%, 100%{box-shadow:0 0 8px oklch(0.82 0.17 78 / 0.2);}
50%{box-shadow:0 0 16px oklch(0.82 0.17 78 / 0.4);}}
@keyframes dash-slide-up{from{opacity:0;transform:translateY(8px);}
to{opacity:1;transform:none;}}
.dash-stagger{display:flex;
flex-direction:column;
gap:var(--space-6);}
.dash-stagger > *{animation:dash-enter 500ms cubic-bezier(0.16, 1, 0.3, 1) both;}
.dash-stagger > *:nth-child(1){animation-delay:0ms;}
.dash-stagger > *:nth-child(2){animation-delay:60ms;}
.dash-stagger > *:nth-child(3){animation-delay:120ms;}
.dash-stagger > *:nth-child(4){animation-delay:180ms;}
.dash-stagger > *:nth-child(5){animation-delay:240ms;}
.dash-stagger > *:nth-child(6){animation-delay:300ms;}
@media (max-width:640px){.dash-stagger > *{animation-duration:350ms;}
.dash-stagger > *:nth-child(2){animation-delay:40ms;}
.dash-stagger > *:nth-child(3){animation-delay:80ms;}
.dash-stagger > *:nth-child(4){animation-delay:120ms;}
.dash-stagger > *:nth-child(5){animation-delay:160ms;}
.dash-stagger > *:nth-child(6){animation-delay:200ms;}}
@media (prefers-reduced-motion:reduce){.dash-stagger,
.dash-stagger *{animation:none !important;
transition:none !important;
scroll-behavior:auto !important;}}
.dash-header{position:relative;
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-8, 2.5rem) var(--space-6);
margin-bottom:var(--space-6);
overflow:hidden;
background:
radial-gradient(ellipse at 70% 0%, oklch(0.55 0.15 220 / 0.08) 0%, transparent 50%),
var(--card-bg);
border:1px solid var(--card-border);
box-shadow:var(--card-shadow);}
.dash-header::before{content:"";
position:absolute;
top:0;
left:10%;
right:10%;
height:1px;
background:linear-gradient(90deg, transparent, var(--brand-primary), transparent);
opacity:0.2;}
:root.light .dash-header{background:
radial-gradient(ellipse at 70% 0%, oklch(0.55 0.15 220 / 0.04) 0%, transparent 50%),
var(--card-bg);}
.dash-header-left{display:flex;
flex-direction:column;
gap:var(--space-4);}
.dash-header-top{display:flex;
align-items:center;
justify-content:space-between;
gap:var(--space-4);}
.dash-greeting{font-size:clamp(1.5rem, 3vw, 2rem);
font-weight:800;
color:var(--text);
margin:0;
letter-spacing:-0.04em;
line-height:1.1;}
.dash-date{font-size:var(--font-sm);
color:var(--text-muted);
margin:4px 0 0;
font-weight:500;}
.dash-header-cta{display:inline-flex;
align-items:center;
gap:var(--space-2);
padding:0.625rem 1.25rem;
border-radius:var(--radius-xl, 0.875rem);
background:var(--brand-bg);
color:var(--brand-text);
font-size:var(--font-sm);
font-weight:600;
text-decoration:none;
white-space:nowrap;
box-shadow:var(--brand-shadow), inset 0 1px 0 oklch(1 0 0 / 0.1);
transition:all 250ms cubic-bezier(0.16, 1, 0.3, 1);
flex-shrink:0;}
.dash-header-cta:hover{transform:translateY(-2px) scale(1.02);
box-shadow:var(--brand-shadow-hover, var(--brand-shadow)), inset 0 1px 0 oklch(1 0 0 / 0.1);}
.dash-header-cta:active{transform:scale(0.97);
transition-duration:100ms;}
.dash-kpi-row{display:flex;
gap:var(--space-3);
flex-wrap:wrap;}
.dash-kpi-chip{display:inline-flex;
align-items:center;
gap:6px;
padding:0.5rem 0.875rem;
border-radius:var(--radius-xl, 0.875rem);
background:var(--hover-bg-subtle);
border:1px solid var(--border-subtle);
color:var(--text);
font-size:var(--font-xs);
font-weight:500;
text-decoration:none;
transition:all 250ms cubic-bezier(0.16, 1, 0.3, 1);
white-space:nowrap;
backdrop-filter:blur(8px);}
.dash-kpi-chip svg{color:var(--text-muted);
flex-shrink:0;
opacity:0.7;}
.dash-kpi-chip:hover{background:var(--hover-bg);
border-color:var(--brand-primary);
transform:translateY(-1px);
box-shadow:0 4px 12px oklch(0 0 0 / 0.08);}
.dash-kpi-chip-value{font-weight:800;
font-variant-numeric:tabular-nums;
color:var(--text);
font-size:var(--font-sm);}
.dash-kpi-chip-label{color:var(--text-muted);}
.dash-kpi-chip-sub{color:var(--text-muted);
font-size:var(--font-2xs);
opacity:0.6;}
.dash-kpi-chip--attention{background:var(--chip-bg);
border-color:color-mix(in oklch, var(--chip-color) 30%, transparent);
color:var(--chip-color);}
.dash-kpi-chip--attention .dash-kpi-chip-value,
.dash-kpi-chip--attention .dash-kpi-chip-label,
.dash-kpi-chip--attention svg{color:var(--chip-color);}
.dash-kpi-chip--attention:hover{background:var(--chip-bg);
filter:brightness(1.12);
border-color:var(--chip-color);}
.dash-next-appt{display:flex;
align-items:center;
gap:var(--space-2);
font-size:var(--font-sm);
color:var(--text-muted);
padding:var(--space-2) var(--space-3);
background:var(--hover-bg-subtle);
border-radius:var(--radius-lg);
border:1px solid var(--border-subtle);
width:fit-content;}
.dash-next-appt svg{color:var(--brand-primary);
flex-shrink:0;
animation:dash-pulse 2.5s ease infinite;}
.dash-late-alert{background:var(--card-bg);
border:1px solid var(--card-border);
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-5) var(--space-6);
box-shadow:var(--card-shadow);}
.dash-late-alert-header{display:flex;
align-items:center;
gap:var(--space-2);
margin-bottom:var(--space-4);}
.dash-late-alert .dash-section-title::before{background:var(--state-warning);
box-shadow:0 0 6px var(--state-warning);}
.dash-late-alert-list{display:flex;
flex-direction:column;
gap:var(--space-2);}
.dash-late-alert-item{display:flex;
align-items:center;
gap:var(--space-3);
padding:var(--space-3) var(--space-4);
border-radius:var(--radius-lg);
background:var(--hover-bg-subtle);
border:1px solid var(--border-subtle);
transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);
animation:dash-slide-up 300ms cubic-bezier(0.16, 1, 0.3, 1) both;}
.dash-late-alert-item:hover{border-color:var(--state-warning-border);
background:var(--state-warning-bg);}
.dash-late-alert-info{display:flex;
align-items:center;
gap:var(--space-3);
flex:1;
min-width:0;
background:none;
border:none;
padding:0;
cursor:pointer;
text-align:left;
color:inherit;
font:inherit;}
.dash-late-alert-name{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-late-alert-service{font-size:var(--font-xs);
color:var(--text-muted);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-late-alert-time{font-size:var(--font-xs);
color:var(--text-muted);
white-space:nowrap;
font-variant-numeric:tabular-nums;}
.dash-late-alert-badge{display:inline-flex;
align-items:center;
padding:3px 10px;
border-radius:var(--radius-pill);
font-size:var(--font-2xs);
font-weight:700;
white-space:nowrap;
color:var(--state-warning);
background:var(--state-warning-bg);
border:1px solid var(--state-warning-border);
letter-spacing:0.02em;}
.dash-late-alert-actions{display:flex;
gap:var(--space-2);
flex-shrink:0;}
.dash-late-alert-btn{padding:6px 14px;
border-radius:var(--radius-lg);
font-size:var(--font-xs);
font-weight:600;
border:1px solid transparent;
cursor:pointer;
transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);
white-space:nowrap;}
.dash-late-alert-btn:disabled{opacity:0.4;
cursor:not-allowed;}
.dash-late-alert-btn--confirm{color:var(--brand-text);
background:var(--state-success);
border-color:var(--state-success);
box-shadow:0 2px 8px oklch(0.74 0.19 152 / 0.25);}
.dash-late-alert-btn--confirm:hover:not(:disabled){transform:translateY(-1px);
box-shadow:0 4px 12px oklch(0.74 0.19 152 / 0.35);}
.dash-late-alert-btn--noshow{color:var(--state-error);
background:var(--state-error-bg);
border-color:var(--state-error-border);}
.dash-late-alert-btn--noshow:hover:not(:disabled){background:var(--state-error);
color:#fff;
transform:translateY(-1px);}
@media (max-width:768px){.dash-late-alert-item{flex-wrap:wrap;
gap:var(--space-2);}
.dash-late-alert-actions{width:100%;}
.dash-late-alert-btn{flex:1;
text-align:center;
min-height:44px;
display:inline-flex;
align-items:center;
justify-content:center;}}
.dash-pending{background:var(--card-bg);
border:1px solid var(--card-border);
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-5) var(--space-6);
box-shadow:var(--card-shadow);}
.dash-pending-header{display:flex;
align-items:center;
gap:var(--space-3);
margin-bottom:var(--space-4);}
.dash-pending-count{font-size:var(--font-xs);
font-weight:600;
color:var(--text-muted);
background:var(--hover-bg-subtle);
border:1px solid var(--border-subtle);
padding:2px 10px;
border-radius:var(--radius-pill);
font-variant-numeric:tabular-nums;}
.dash-pending-list{list-style:none;
margin:0;
padding:0;
display:flex;
flex-direction:column;}
.dash-pending-row{display:flex;
align-items:center;
gap:var(--space-4);
padding:var(--space-4) 0;
border-bottom:1px solid var(--border-subtle);
animation:dash-slide-up 300ms cubic-bezier(0.16, 1, 0.3, 1) both;}
.dash-pending-row:last-child{border-bottom:none;
padding-bottom:0;}
.dash-pending-row:first-child{padding-top:0;}
.dash-pending-content{flex:1;
min-width:0;
display:flex;
flex-direction:column;
gap:3px;
background:none;
border:none;
padding:0;
cursor:pointer;
text-align:left;
color:inherit;
border-radius:var(--radius-md);
transition:opacity 150ms ease;}
.dash-pending-content:hover{opacity:0.7;}
.dash-pending-primary{display:flex;
align-items:baseline;
gap:var(--space-2);}
.dash-pending-name{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
line-height:1.4;}
.dash-pending-until{font-size:var(--font-2xs);
font-weight:500;
color:var(--state-info);
white-space:nowrap;
flex-shrink:0;}
.dash-pending-secondary{display:flex;
align-items:center;
gap:0;
font-size:var(--font-xs);
color:var(--text-muted);
line-height:1.4;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-pending-separator{margin:0 6px;
opacity:0.4;}
.dash-pending-trailing{display:flex;
flex-direction:column;
align-items:flex-end;
gap:var(--space-2);
flex-shrink:0;}
.dash-pending-time{font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
font-variant-numeric:tabular-nums;
white-space:nowrap;}
.dash-pending-actions{display:flex;
gap:var(--space-2);}
.dash-pending-btn{padding:5px 12px;
border-radius:var(--radius-md);
font-size:var(--font-2xs);
font-weight:600;
border:none;
cursor:pointer;
transition:all 150ms ease;
white-space:nowrap;
letter-spacing:0.01em;}
.dash-pending-btn:disabled{opacity:0.35;
cursor:not-allowed;}
.dash-pending-btn--confirm{color:var(--state-success);
background:var(--state-success-bg);}
.dash-pending-btn--confirm:hover:not(:disabled){background:var(--state-success);
color:#fff;}
.dash-pending-btn--decline{color:var(--text-muted);
background:transparent;}
.dash-pending-btn--decline:hover:not(:disabled){color:var(--state-error);
background:var(--state-error-bg);}
@media (max-width:640px){.dash-pending-row{flex-direction:column;
align-items:flex-start;
gap:var(--space-3);}
.dash-pending-trailing{flex-direction:row;
align-items:center;
width:100%;
justify-content:space-between;}}
.dash-open-slots{background:var(--card-bg);
border:1px solid var(--card-border);
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-5) var(--space-6);
box-shadow:var(--card-shadow);}
.dash-open-slots-list{list-style:none;
margin:0;
padding:0;
display:flex;
flex-direction:column;
min-height:232px;
justify-content:center;}
.dash-open-slots-row{display:flex;
align-items:center;
justify-content:space-between;
gap:var(--space-3);
padding:var(--space-3) 0;
border-bottom:1px solid var(--border-subtle);
animation:dash-slide-up 300ms cubic-bezier(0.16, 1, 0.3, 1) both;}
.dash-open-slots-row:last-child{border-bottom:none;
padding-bottom:0;}
.dash-open-slots-row:first-child{padding-top:0;}
.dash-open-slots-info{display:flex;
flex-direction:column;
gap:2px;
min-width:0;}
.dash-open-slots-time{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
font-variant-numeric:tabular-nums;}
.dash-open-slots-employee{font-size:var(--font-xs);
color:var(--text-muted);}
.dash-open-slots-btn{padding:6px 14px;
border-radius:var(--radius-md);
font-size:var(--font-xs);
font-weight:600;
border:none;
cursor:pointer;
color:var(--brand-primary);
background:var(--brand-hover);
transition:all 150ms ease;
white-space:nowrap;
flex-shrink:0;}
.dash-open-slots-btn:hover{background:var(--brand-bg);
color:var(--brand-text);}
.dash-open-slots-empty{text-align:center;
padding:var(--space-4) 0;
min-height:232px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;}
.dash-open-slots-empty-title{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
margin:0 0 4px;}
.dash-open-slots-empty-desc{font-size:var(--font-xs);
color:var(--text-muted);
margin:0;}
.dash-waitlist-list{display:flex;
flex-direction:column;
gap:var(--space-2);
flex:1;
max-height:360px;
overflow-y:auto;}
.dash-waitlist-item{display:flex;
align-items:center;
gap:var(--space-3);
padding:var(--space-3) var(--space-4);
border-radius:var(--radius-lg);
background:var(--hover-bg-subtle);
border:1px solid var(--border-subtle);
transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);}
.dash-waitlist-item:hover{border-color:var(--brand-primary);
background:var(--brand-hover);}
.dash-waitlist-status-dot{width:10px;
height:10px;
border-radius:50%;
flex-shrink:0;}
.dash-waitlist-status-dot--waiting{background:var(--state-warning);
box-shadow:0 0 6px var(--state-warning);}
.dash-waitlist-status-dot--available{background:var(--state-success);
box-shadow:0 0 6px var(--state-success);
animation:dash-pulse 2s ease infinite;}
.dash-waitlist-info{flex:1;
min-width:0;
display:flex;
flex-direction:column;
gap:2px;}
.dash-waitlist-name{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-waitlist-meta{font-size:var(--font-xs);
color:var(--text-muted);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-waitlist-actions{display:flex;
gap:var(--space-2);
flex-shrink:0;}
.dash-waitlist-btn{padding:5px 12px;
border-radius:var(--radius-lg);
font-size:var(--font-2xs);
font-weight:600;
border:1px solid var(--card-border);
background:transparent;
color:var(--text-muted);
cursor:pointer;
transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);
white-space:nowrap;}
.dash-waitlist-btn:hover:not(:disabled){background:var(--brand-hover);
color:var(--text);
border-color:var(--brand-primary);
transform:translateY(-1px);}
.dash-waitlist-btn--book{color:var(--brand-text);
background:var(--state-success);
border-color:var(--state-success);
box-shadow:0 2px 6px oklch(0.74 0.19 152 / 0.2);}
.dash-waitlist-btn--book:hover:not(:disabled){transform:translateY(-1px);
box-shadow:0 4px 10px oklch(0.74 0.19 152 / 0.3);
background:var(--state-success);
color:var(--brand-text);}
.dash-waitlist-btn:disabled{opacity:0.4;
cursor:not-allowed;}
.dash-waitlist-footer{display:flex;
justify-content:flex-end;
padding-top:var(--space-3);}
.dash-waitlist-footer a{font-size:var(--font-xs);
font-weight:600;
color:var(--brand-primary);
text-decoration:none;
display:inline-flex;
align-items:center;
gap:var(--space-1);
transition:all 150ms ease;}
.dash-waitlist-footer a:hover{opacity:0.8;
transform:translateX(2px);}
.dash-content{display:grid;
grid-template-columns:1.1fr 0.9fr;
gap:var(--space-6);
align-items:start;}
@media (max-width:900px){.dash-content{grid-template-columns:1fr;}}
@media (max-width:640px){.dash-content{gap:var(--space-4);}
.dash-sidebar{gap:var(--space-4);}}
.dash-sidebar{display:flex;
flex-direction:column;
gap:var(--space-5);}
.dash-section{background:var(--card-bg);
border:1px solid var(--card-border);
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-6);
box-shadow:var(--card-shadow);
position:relative;
display:flex;
flex-direction:column;}
.dash-section-title{font-size:var(--font-xs);
font-weight:700;
text-transform:uppercase;
letter-spacing:0.08em;
color:var(--text-muted);
margin:0 0 var(--space-5);
display:flex;
align-items:center;
gap:var(--space-2);}
.dash-section-title::before{content:"";
width:6px;
height:6px;
border-radius:50%;
background:var(--brand-primary);
box-shadow:0 0 6px var(--brand-primary);}
.dash-schedule-list{display:flex;
flex-direction:column;
gap:var(--space-1);
flex:1;
min-height:360px;
max-height:460px;
overflow-y:auto;}
.dash-schedule-filter{margin-bottom:var(--space-3);}
.dash-schedule-item{display:flex;
align-items:center;
gap:var(--space-3);
padding:var(--space-3) var(--space-4);
border-radius:var(--radius-lg);
background:none;
border:1px solid transparent;
cursor:pointer;
text-align:left;
font:inherit;
color:inherit;
width:100%;
transition:all 250ms cubic-bezier(0.16, 1, 0.3, 1);}
.dash-schedule-item:hover{background:var(--hover-bg-subtle);
border-color:var(--border-subtle);}
.dash-schedule-color{width:4px;
height:2.5rem;
border-radius:4px;
flex-shrink:0;}
.dash-schedule-time{font-size:var(--font-sm);
font-weight:700;
color:var(--text-muted);
font-variant-numeric:tabular-nums;
white-space:nowrap;
min-width:4.5rem;}
.dash-schedule-info{flex:1;
min-width:0;}
.dash-schedule-title{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-schedule-meta{font-size:var(--font-xs);
color:var(--text-muted);
margin-top:2px;}
.dash-schedule-status{flex-shrink:0;
display:inline-flex;
align-items:center;
justify-content:center;
width:28px;
height:28px;
border-radius:var(--radius-lg);
transition:transform 200ms ease;}
.dash-schedule-item:hover .dash-schedule-status{transform:scale(1.1);}
.dash-schedule-now{display:flex;
align-items:center;
gap:var(--space-2);
padding:var(--space-2) var(--space-4);
margin:var(--space-1) 0;}
.dash-schedule-now-dot{width:10px;
height:10px;
border-radius:50%;
background:var(--state-error);
box-shadow:0 0 8px var(--state-error), 0 0 16px oklch(0.72 0.22 20 / 0.3);
animation:dash-pulse 1.5s ease infinite;
flex-shrink:0;}
.dash-schedule-now-line{flex:1;
height:2px;
background:linear-gradient(90deg, var(--state-error), transparent);
border-radius:1px;}
.dash-schedule-now-label{font-size:var(--font-2xs);
font-weight:800;
text-transform:uppercase;
letter-spacing:0.08em;
color:var(--state-error);
flex-shrink:0;}
.dash-schedule-footer{display:flex;
align-items:center;
justify-content:space-between;
margin-top:var(--space-5);
padding-top:var(--space-4);
border-top:1px solid var(--border-subtle);}
.dash-schedule-more{font-size:var(--font-xs);
font-weight:600;
color:var(--brand-primary);
background:none;
border:none;
cursor:pointer;
padding:0;
transition:all 150ms ease;}
.dash-schedule-more:hover{opacity:0.8;
transform:translateX(2px);}
.dash-schedule-cal-link{font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
text-decoration:none;
display:inline-flex;
align-items:center;
gap:var(--space-1);
transition:all 150ms ease;
margin-left:auto;}
.dash-schedule-cal-link:hover{color:var(--brand-primary);
transform:translateX(2px);}
.dash-revenue-card{background:var(--card-bg);
border:1px solid var(--card-border);
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-6);
box-shadow:var(--card-shadow);}
.dash-revenue-header{display:flex;
align-items:center;
justify-content:space-between;
margin-bottom:var(--space-1);}
.dash-revenue-label{font-size:var(--font-xs);
font-weight:700;
text-transform:uppercase;
letter-spacing:0.06em;
color:var(--text-muted);}
.dash-revenue-value{font-size:1.75rem;
font-weight:800;
color:var(--text);
letter-spacing:-0.03em;
font-variant-numeric:tabular-nums;
line-height:1.2;}
.dash-revenue-sub{font-size:var(--font-xs);
color:var(--text-muted);
margin-top:2px;}
.dash-revenue-chart{margin-top:var(--space-4);
display:flex;
justify-content:stretch;}
.dash-revenue-chart svg{width:100%;
height:auto;}
.dash-revenue-link{display:inline-flex;
align-items:center;
gap:var(--space-1);
font-size:var(--font-xs);
font-weight:600;
color:var(--brand-primary);
text-decoration:none;
margin-top:var(--space-3);
transition:all 150ms ease;}
.dash-revenue-link:hover{opacity:0.8;
transform:translateX(2px);}
.dash-delta{font-size:var(--font-2xs);
font-weight:700;
padding:0.125rem 0.5rem;
border-radius:var(--radius-pill);
white-space:nowrap;
font-variant-numeric:tabular-nums;}
.dash-delta--positive{color:var(--analytics-positive, var(--state-success));
background:var(--analytics-badge-positive-bg, var(--state-success-bg));}
.dash-delta--negative{color:var(--analytics-negative, var(--state-error));
background:var(--analytics-badge-negative-bg, var(--state-error-bg));}
.dash-activity-list{display:flex;
flex-direction:column;
flex:1;
min-height:280px;
max-height:360px;
overflow-y:auto;}
.dash-activity-item{display:flex;
gap:var(--space-3);
width:100%;
background:none;
border:none;
padding:var(--space-3);
margin:0;
border-radius:var(--radius-lg);
cursor:pointer;
text-align:left;
font:inherit;
color:inherit;
transition:all 200ms cubic-bezier(0.16, 1, 0.3, 1);
animation:dash-slide-up 300ms cubic-bezier(0.16, 1, 0.3, 1) both;}
.dash-activity-item:hover{background:var(--hover-bg-subtle);}
.dash-activity-rail{display:flex;
flex-direction:column;
align-items:center;
flex-shrink:0;
padding-top:2px;}
.dash-activity-icon-wrap{width:30px;
height:30px;
border-radius:var(--radius-lg);
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
transition:all 200ms ease;}
.dash-activity-item:hover .dash-activity-icon-wrap{transform:scale(1.1);
box-shadow:0 2px 8px oklch(0 0 0 / 0.15);}
.dash-activity-line{width:2px;
flex:1;
min-height:14px;
opacity:0.12;
border-radius:1px;}
.dash-activity-body{flex:1;
min-width:0;
padding-bottom:var(--space-3);}
.dash-activity-header{display:flex;
align-items:center;
justify-content:space-between;
gap:var(--space-2);
margin-bottom:3px;}
.dash-activity-label{font-size:var(--font-2xs);
font-weight:700;
letter-spacing:0.04em;
text-transform:uppercase;}
.dash-activity-time{font-size:var(--font-2xs);
color:var(--text-muted);
white-space:nowrap;
flex-shrink:0;
opacity:0.7;}
.dash-activity-text{font-size:var(--font-xs);
color:var(--text);
line-height:1.5;}
.dash-activity-footer{display:flex;
justify-content:center;
padding-top:var(--space-3);
margin-top:var(--space-2);}
.dash-activity-toggle{display:inline-flex;
align-items:center;
gap:var(--space-2);
font-size:var(--font-xs);
font-weight:600;
color:var(--text-muted);
background:none;
border:1px solid var(--border-subtle);
border-radius:var(--radius-xl, 0.875rem);
padding:var(--space-2) var(--space-4);
cursor:pointer;
transition:all 250ms cubic-bezier(0.16, 1, 0.3, 1);}
.dash-activity-toggle:hover{color:var(--brand-primary);
border-color:var(--brand-primary);
background:var(--brand-hover);
transform:translateY(-1px);}
.dash-activity-toggle svg{transition:transform 200ms ease;}
.dash-activity-chevron--up{transform:rotate(180deg);}
.dash-top-services{margin-top:var(--space-5);
background:var(--card-bg);
border:1px solid var(--card-border);
border-radius:var(--radius-2xl, 1.25rem);
padding:var(--space-6);
box-shadow:var(--card-shadow);}
.dash-top-services-header{display:flex;
align-items:center;
justify-content:space-between;
margin-bottom:var(--space-5);}
.dash-top-services-header .dash-section-title{margin-bottom:0;}
.dash-top-services-link{display:inline-flex;
align-items:center;
gap:var(--space-1);
font-size:var(--font-xs);
font-weight:600;
color:var(--brand-primary);
text-decoration:none;
transition:all 150ms ease;}
.dash-top-services-link:hover{opacity:0.8;
transform:translateX(2px);}
.dash-top-services-grid{display:grid;
grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
gap:var(--space-4);}
.dash-svc-pill{background:var(--hover-bg-subtle);
border:1px solid var(--border-subtle);
border-radius:var(--radius-xl, 0.875rem);
padding:var(--space-4);
display:flex;
flex-direction:column;
gap:var(--space-3);
transition:all 250ms cubic-bezier(0.16, 1, 0.3, 1);}
.dash-svc-pill:hover{border-color:var(--card-border);
background:var(--hover-bg);
transform:translateY(-2px);
box-shadow:0 4px 16px oklch(0 0 0 / 0.1);}
.dash-svc-pill-top{display:flex;
align-items:center;
gap:var(--space-2);}
.dash-svc-dot{width:10px;
height:10px;
border-radius:50%;
flex-shrink:0;}
.dash-svc-name{font-size:var(--font-xs);
font-weight:600;
color:var(--text);
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.dash-svc-pill-bar{height:6px;
border-radius:3px;
background:var(--input-bg);
overflow:hidden;}
.dash-svc-pill-fill{height:100%;
border-radius:3px;
transition:width 1000ms cubic-bezier(0.16, 1, 0.3, 1);}
.dash-svc-pill-stats{display:flex;
align-items:center;
justify-content:space-between;}
.dash-svc-count{font-size:var(--font-xs);
font-weight:800;
color:var(--text);
font-variant-numeric:tabular-nums;}
.dash-svc-revenue{font-size:var(--font-2xs);
color:var(--text-muted);
font-variant-numeric:tabular-nums;}
.dash-mini-chart{display:block;}
.dash-chart-dot{animation:dash-pulse 2s ease-in-out infinite;}
.dash-ring-wrap{position:relative;
display:flex;
align-items:center;
justify-content:center;}
.dash-ring-label{position:absolute;
font-size:var(--font-xs);
font-weight:700;
font-variant-numeric:tabular-nums;}
@media (max-width:640px){.dash-stagger{gap:var(--space-4);}
.dash-header{padding:var(--space-5) var(--space-5) var(--space-4);
border-radius:var(--radius-xl, 0.875rem);
margin-bottom:0;}
.dash-header::before{display:none;}
.dash-header-left{gap:var(--space-3);}
.dash-header-top{flex-direction:column;
gap:var(--space-3);
align-items:stretch;}
.dash-greeting{font-size:1.375rem;
letter-spacing:-0.03em;}
.dash-date{font-size:var(--font-xs);}
.dash-header-cta{width:100%;
justify-content:center;
padding:0.75rem 1.25rem;
border-radius:var(--radius-lg);
font-size:var(--font-sm);}
.dash-kpi-row{display:grid;
grid-template-columns:1fr 1fr;
gap:var(--space-2);}
.dash-kpi-chip{padding:0.5rem 0.625rem;
font-size:var(--font-2xs);
border-radius:var(--radius-lg);
justify-content:flex-start;
gap:5px;}
.dash-kpi-chip svg{width:14px;
height:14px;}
.dash-kpi-chip-value{font-size:var(--font-sm);}
.dash-kpi-chip--attention{grid-column:span 2;}
.dash-next-appt{padding:0.75rem;
border-radius:var(--radius-lg);
font-size:var(--font-xs);
width:100%;
border-color:var(--brand-border);
background:var(--brand-hover);}
.dash-next-appt svg{width:16px;
height:16px;}
.dash-section,
.dash-open-slots{padding:var(--space-4) var(--space-4);
border-radius:var(--radius-xl, 0.875rem);}
.dash-section-title{font-size:var(--font-sm);
margin-bottom:var(--space-3);}
.dash-late-alert,
.dash-pending{padding:var(--space-4) var(--space-4);
border-radius:var(--radius-xl, 0.875rem);}
.dash-late-alert-header{margin-bottom:var(--space-3);}
.dash-late-alert-item{padding:var(--space-3);
border-radius:var(--radius-lg);}
.dash-pending-row{flex-direction:column;
align-items:stretch;
gap:var(--space-3);
padding:var(--space-3) 0;}
.dash-pending-trailing{flex-direction:row;
align-items:center;
width:100%;
justify-content:space-between;}
.dash-pending-btn{min-height:36px;
padding:6px 14px;}
.dash-schedule-item{padding:var(--space-3) var(--space-2);
border-radius:var(--radius-md);
margin:0 calc(-1 * var(--space-2));}
.dash-schedule-item:active{background:var(--hover-bg-subtle);
transition-duration:50ms;}
.dash-schedule-color{width:3px;
border-radius:2px;
align-self:stretch;}
.dash-schedule-time{font-size:var(--font-xs);
min-width:48px;}
.dash-schedule-title{font-size:var(--font-sm);}
.dash-schedule-meta{font-size:var(--font-2xs);}
.dash-schedule-footer{flex-direction:column;
gap:var(--space-2);
align-items:stretch;
text-align:center;
padding-top:var(--space-3);}
.dash-schedule-more,
.dash-schedule-cal-link{justify-content:center;
margin-left:0;
min-height:44px;
display:flex;
align-items:center;}
.dash-open-slots-row{padding:var(--space-2) 0;}
.dash-open-slots-btn{padding:6px 12px;
min-height:36px;}
.dash-activity-item{padding:var(--space-2) 0;}
.dash-activity-icon-wrap{width:28px;
height:28px;}
.dash-waitlist-item{padding:var(--space-2) var(--space-3);}
.dash-top-services{padding:var(--space-4) var(--space-4);
border-radius:var(--radius-xl, 0.875rem);}
.dash-top-services-grid{grid-template-columns:repeat(2, 1fr);
gap:var(--space-3);}
.dash-svc-pill{padding:var(--space-3);
border-radius:var(--radius-lg);}
.dash-header-cta:active{transform:scale(0.97);
transition-duration:80ms;}
.dash-kpi-chip:active{transform:scale(0.96);
transition-duration:80ms;}
.dash-late-alert-item:active{background:var(--hover-bg);
transition-duration:80ms;}
.dash-open-slots-btn:active{transform:scale(0.95);
transition-duration:80ms;}
.dash-schedule-item:hover,
.dash-activity-item:hover,
.dash-late-alert-item:hover,
.dash-kpi-chip:hover,
.dash-open-slots-btn:hover,
.dash-header-cta:hover{transform:none;}}
@media (max-width:380px){.dash-kpi-row{grid-template-columns:1fr;}
.dash-kpi-chip{width:100%;}
.dash-kpi-chip--attention{grid-column:span 1;}
.dash-greeting{font-size:1.25rem;}
.dash-top-services-grid{grid-template-columns:1fr;}}
@media (max-width:480px){.dash-stagger{overflow-x:hidden;
max-width:100vw;}
.dash-section,
.dash-late-alert,
.dash-pending,
.dash-open-slots,
.dash-top-services{overflow:hidden;
max-width:100%;
box-sizing:border-box;}
.dash-kpi-chip{white-space:normal;
min-width:0;
overflow:hidden;
text-overflow:ellipsis;}
.dash-kpi-chip-value{flex-shrink:0;}
.dash-schedule-item{margin-left:0;
margin-right:0;}
.dash-late-alert-item{flex-wrap:wrap;
gap:var(--space-2);}
.dash-late-alert-info{min-width:0;
max-width:100%;
overflow:hidden;}
.dash-late-alert-name,
.dash-late-alert-service,
.dash-late-alert-time{max-width:100%;
overflow:hidden;
text-overflow:ellipsis;}
.dash-late-alert-actions{width:100%;
justify-content:flex-end;}
.dash-pending-content{min-width:0;
max-width:100%;
overflow:hidden;}
.dash-pending-primary{min-width:0;
max-width:100%;
overflow:hidden;}
.dash-pending-secondary{max-width:100%;}
.dash-waitlist-item{flex-wrap:wrap;}
.dash-waitlist-info{min-width:0;
max-width:100%;
overflow:hidden;}
.dash-waitlist-name,
.dash-waitlist-service{overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
max-width:100%;}
.dash-open-slots-row{min-width:0;
max-width:100%;
overflow:hidden;}
.dash-open-slots-info{min-width:0;
overflow:hidden;}
.dash-activity-text{min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;}
.dash-header-cta{white-space:normal;
text-align:center;}
.dash-next-appt{overflow:hidden;
text-overflow:ellipsis;}}