.svc-m-tabs{display:flex;
gap:0;
padding:0.25rem;
margin:0 var(--space-6);
border-radius:var(--radius-sm);
background:color-mix(in oklch, var(--text) 5%, var(--bg));
flex-shrink:0;}
.svc-m-tab{flex:1 1 0;
display:flex;
align-items:center;
justify-content:center;
gap:0.375rem;
padding:0.5rem 0.875rem;
border:none;
border-radius:calc(var(--radius-sm) - 2px);
background:transparent;
color:var(--text-muted);
font-size:var(--font-sm);
font-weight:500;
cursor:pointer;
transition:all 0.2s ease;
white-space:nowrap;
-webkit-tap-highlight-color:transparent;}
.svc-m-tab:hover{color:var(--text);}
.svc-m-tab.active{background:var(--card-bg);
color:var(--text);
box-shadow:0 1px 3px oklch(0 0 0 / 0.1), 0 1px 2px oklch(0 0 0 / 0.06);
font-weight:600;}
.svc-m-tab:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:-2px;}
.svc-m-tab-badge{display:inline-flex;
align-items:center;
justify-content:center;
min-width:18px;
height:18px;
border-radius:9px;
padding:0 5px;
font-size:var(--font-2xs);
font-weight:700;
background:var(--brand-hover);
color:var(--brand-primary);}
.svc-m-tab.active .svc-m-tab-badge{background:var(--brand-primary);
color:var(--brand-text);}
@media (max-width:640px){.svc-m-tabs{margin:0 var(--space-3);}}
.svc-m-grid{display:flex;
flex-direction:column;
gap:0;}
.svc-m-section{display:flex;
flex-direction:column;
gap:var(--space-4);
padding:var(--space-5) 0;
border:none;
border-bottom:1px solid var(--border-section);
border-radius:0;
background:transparent;}
.svc-m-section:first-child{padding-top:0;}
.svc-m-section:last-child,
.svc-m-section:last-of-type{border-bottom:none;
margin-bottom:0;}
.svc-m-section .cal-modal-label,
.svc-m-top-row .cal-modal-label,
.svc-m-rules-row .cal-modal-label{text-transform:none;
font-weight:500;
letter-spacing:0;
font-size:var(--font-xs);
color:var(--text-muted);
margin-bottom:0.375rem;}
.svc-m-section-title{font-size:0.875rem;
font-weight:600;
text-transform:none;
letter-spacing:-0.01em;
color:var(--text);
margin:0;
line-height:1.3;}
.svc-m-section-desc{font-size:var(--font-xs);
color:var(--text-muted);
margin:-0.375rem 0 0;
line-height:1.5;}
.svc-m-field-hint{font-size:var(--font-xs);
color:var(--text-muted);
margin:0.25rem 0 0;
line-height:1.4;}
.svc-m-sticky-actions{position:sticky;
bottom:0;
flex-shrink:0;
padding:var(--space-4) var(--space-6);
border-top:1px solid var(--border-subtle);
background:transparent;
margin:0;
z-index:2;}
.svc-m-avail-grid{display:grid;
grid-template-columns:1fr 1fr;
gap:var(--space-4);}
.svc-m-identity-row{display:flex;
align-items:flex-start;
gap:var(--space-4);}
.svc-m-active-pill{display:flex;
align-items:center;
gap:0.5rem;
cursor:pointer;
flex-shrink:0;
padding-top:1.5rem;}
.svc-m-active-pill input{position:absolute;
opacity:0;
width:0;
height:0;}
.svc-m-active-label{font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
white-space:nowrap;
user-select:none;}
.svc-m-appearance-row{display:flex;
gap:var(--space-5);
align-items:flex-start;}
.svc-m-image-col{flex-shrink:0;
width:8rem;}
.svc-m-image-col .img-upload--square{min-height:unset;
aspect-ratio:1 / 1;
padding:0.75rem;}
.svc-m-image-col .img-upload-remove{opacity:1;}
.svc-m-pricing-grid{display:grid;
grid-template-columns:repeat(3, 1fr);
gap:var(--space-4);}
.svc-m-prep-row{display:grid;
grid-template-columns:1fr 1fr;
gap:var(--space-4);}
.svc-m-top-row{display:grid;
grid-template-columns:1fr;
gap:var(--space-5);
padding:0 0 var(--space-5);
border-bottom:1px solid var(--border-section);}
@media (min-width:640px){.svc-m-top-row{grid-template-columns:1fr 1fr;}}
.svc-m-rules-row{display:grid;
grid-template-columns:1fr;
gap:var(--space-5);
padding:var(--space-5) 0;
border-bottom:1px solid var(--border-section);}
@media (min-width:640px){.svc-m-rules-row{grid-template-columns:1fr 1fr;
align-items:start;}}
.svc-m-subsection{display:flex;
flex-direction:column;
gap:var(--space-4);}
.svc-addon-list{display:flex;
flex-direction:column;
gap:0;
border-radius:10px;
overflow:hidden;
border:1px solid var(--inset-separator);
background:var(--input-bg);}
.svc-addon-row{display:flex;
align-items:center;
justify-content:space-between;
gap:var(--space-3);
padding:0.625rem 0.875rem;
border-radius:0;
border:none;
border-bottom:0.5px solid var(--inset-separator);
background:transparent;
transition:background 150ms ease, opacity 150ms ease;}
.svc-addon-row:last-child{border-bottom:none;}
.svc-addon-row:hover{background:var(--hover-bg-subtle);}
.svc-addon-row.inactive{opacity:0.5;}
.svc-addon-info{display:flex;
flex-direction:column;
gap:0.125rem;
min-width:0;}
.svc-addon-name{font-size:var(--font-sm);
font-weight:500;
color:var(--text);
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;}
.svc-addon-meta{font-size:var(--font-xs);
color:var(--text-muted);}
.svc-addon-actions{display:flex;
align-items:center;
gap:0.375rem;
flex-shrink:0;}
.svc-addon-toggle{font-size:var(--font-xs);
font-weight:500;
padding:0.25rem 0.625rem;
border-radius:var(--radius-pill);
border:1px solid var(--inset-separator);
background:transparent;
color:var(--text-muted);
cursor:pointer;
transition:all 150ms ease;}
.svc-addon-toggle:hover{border-color:var(--brand-primary);
color:var(--brand-primary);
background:var(--brand-hover);}
.svc-addon-toggle.active{border-color:var(--state-success-border);
color:var(--state-success);
background:var(--state-success-bg);}
.svc-addon-delete{display:flex;
align-items:center;
justify-content:center;
width:1.75rem;
height:1.75rem;
border:none;
border-radius:var(--radius-sm);
background:transparent;
color:var(--text-muted);
cursor:pointer;
transition:all 150ms ease;}
.svc-addon-delete:hover{background:var(--state-error-bg);
color:var(--state-error);}
.svc-addon-new{display:flex;
gap:0.5rem;
align-items:center;}
.svc-addon-add-btn{flex-shrink:0;
padding:0.5625rem 0.875rem;
font-size:var(--font-xs);}
@media (max-width:640px){.svc-addon-new{flex-wrap:wrap;}
.svc-addon-new .input{min-width:0;}}
.svc-pricing-new{display:flex;
flex-direction:column;
gap:0.5rem;}
.svc-pricing-new-row{display:flex;
gap:0.5rem;
align-items:center;}
@media (max-width:640px){.svc-pricing-new-row{flex-wrap:wrap;}
.svc-pricing-new-row .input{min-width:0;}}
.svc-m-staff-block{margin-top:var(--space-3);
padding-top:var(--space-3);
border-top:1px solid var(--border-subtle);}
.svc-m-empty-hint{font-size:var(--font-xs);
color:var(--text-muted);
font-style:italic;
margin:var(--space-2) 0 0;}
@media (max-width:640px){.svc-m-identity-row{flex-direction:column;
gap:var(--space-3);}
.svc-m-active-pill{padding-top:0;}
.svc-m-appearance-row{flex-direction:column;}
.svc-m-image-col{width:100%;}
.svc-m-pricing-grid{grid-template-columns:1fr;}
.svc-m-prep-row{grid-template-columns:1fr;}
.svc-m-avail-grid{grid-template-columns:1fr;}}
.svc-catalog{display:flex;
flex-direction:column;
gap:var(--space-8);}
.svc-group-section{display:flex;
flex-direction:column;
gap:var(--space-4);
animation:svcFadeIn 300ms ease both;}
.svc-inline-add-group{margin-top:var(--space-2);}
.svc-inline-add-group-btn{display:inline-flex;
align-items:center;
gap:0.4rem;
padding:0.5rem 0.875rem;
border-radius:var(--radius-md);
border:1px dashed var(--border-subtle);
background:transparent;
color:var(--text-muted);
font-size:var(--font-sm);
font-weight:500;
font-family:inherit;
cursor:pointer;
transition:all 150ms ease;}
.svc-inline-add-group-btn:hover{border-color:var(--brand-primary);
color:var(--brand-primary);
background:color-mix(in oklch, var(--brand-primary) 6%, transparent);}
.svc-inline-add-group-btn:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:2px;}
.svc-inline-add-group-form{display:flex;
align-items:center;
gap:0.5rem;}
.svc-inline-add-group-input{flex:1;
max-width:260px;
padding:0.4375rem 0.75rem;
border-radius:var(--radius-md);
border:1px solid var(--input-border);
background:var(--input-bg);
color:var(--text);
font-size:var(--font-sm);
font-family:inherit;
outline:none;
transition:border-color 150ms ease, box-shadow 150ms ease;}
.svc-inline-add-group-input:focus{border-color:var(--brand-primary);
box-shadow:var(--input-focus-ring);}
.svc-inline-add-group-input::placeholder{color:var(--placeholder-color);}
@media (max-width:640px){.svc-inline-add-group{margin-top:var(--space-3);}
.svc-inline-add-group-btn{width:100%;
justify-content:center;
padding:0.625rem;
font-size:0.82rem;}
.svc-inline-add-group-form{flex-wrap:wrap;
gap:0.375rem;}
.svc-inline-add-group-input{max-width:none;
width:100%;
min-height:2.5rem;}}
.svc-group-header{display:flex;
align-items:center;
gap:0.625rem;
padding:var(--space-2) var(--space-2);
border-bottom:1px solid var(--border-subtle);
border-radius:var(--radius-sm);
cursor:pointer;
user-select:none;
transition:background 150ms ease;}
.svc-group-header:hover{background:var(--hover-bg-subtle);}
.svc-group-header:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:2px;}
.svc-group-chevron{flex-shrink:0;
color:var(--text-muted);
transition:transform 200ms ease;}
.svc-group-chevron-open{transform:rotate(90deg);}
.svc-group-color{width:12px;
height:12px;
border-radius:4px;
flex-shrink:0;}
.svc-group-label{font-size:var(--font-sm);
font-weight:600;
color:var(--text);
letter-spacing:0.01em;}
.svc-group-count{font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
margin-left:auto;}
.svc-group-add{display:flex;
align-items:center;
justify-content:center;
width:1.625rem;
height:1.625rem;
border-radius:var(--radius-sm);
border:none;
background:transparent;
color:var(--text-muted);
cursor:pointer;
transition:all 150ms ease;
padding:0;
flex-shrink:0;
opacity:0;}
.svc-group-header:hover .svc-group-add{opacity:1;}
@media (hover:none){.svc-group-add{opacity:1;}}
.svc-group-add:hover{background:color-mix(in oklch, var(--brand-primary) 14%, transparent);
color:var(--brand-primary);}
.svc-group-add:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:1px;
opacity:1;}
.svc-group-drop-target{border-radius:12px;
outline:2px dashed var(--brand-primary);
outline-offset:4px;
background:color-mix(in oklch, var(--brand-primary) 4%, transparent);
transition:outline-color 200ms ease, background 200ms ease;}
.svc-card-dragging{opacity:0.4;
transform:scale(0.97);
box-shadow:none !important;}
.svc-card[draggable="true"]{cursor:grab;}
.svc-card[draggable="true"]:active{cursor:grabbing;}
.svc-grid{display:grid;
grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
gap:var(--space-4);}
.svc-card{position:relative;
display:flex;
flex-direction:column;
border-radius:14px;
border:1px solid var(--card-border);
background:var(--card-bg);
cursor:pointer;
transition:transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
overflow:hidden;}
.svc-card:hover{transform:translateY(-2px);
box-shadow:var(--card-shadow);
border-color:color-mix(in oklch, var(--brand-primary) 30%, var(--card-border));}
.svc-card:active{transform:translateY(0);}
.svc-card:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:2px;}
.svc-card-inactive{opacity:0.55;}
.svc-card-inactive:hover{opacity:0.8;}
.svc-card-accent{height:4px;
border-radius:14px 14px 0 0;
flex-shrink:0;}
.svc-card-body{display:flex;
flex-direction:column;
gap:var(--space-3);
padding:var(--space-4) var(--space-4) var(--space-3);}
.svc-card-top{display:flex;
align-items:flex-start;
justify-content:space-between;
gap:var(--space-2);
min-height:1.5rem;}
.svc-card-identity{display:flex;
align-items:center;
gap:0.625rem;
min-width:0;}
.svc-card-thumb{width:2.25rem;
height:2.25rem;
border-radius:8px;
object-fit:cover;
flex-shrink:0;
background:var(--hover-bg-subtle);}
.svc-card-name{font-size:var(--font-base);
font-weight:600;
color:var(--text);
line-height:1.4;
word-break:break-word;}
.svc-card-meta{display:flex;
align-items:center;
gap:var(--space-2);
flex-wrap:wrap;}
.svc-card-chip{display:inline-flex;
align-items:center;
gap:0.25rem;
padding:0.2rem 0.5rem;
border-radius:var(--radius-pill);
font-size:var(--font-xs);
font-weight:500;
font-variant-numeric:tabular-nums;
color:var(--text-muted);
background:var(--hover-bg-subtle);
line-height:1.2;}
.svc-card-chip svg{flex-shrink:0;
opacity:0.7;}
.svc-card-group{display:inline-flex;
align-items:center;
gap:0.375rem;
font-size:var(--font-2xs);
font-weight:500;
color:var(--text-muted);
padding-top:var(--space-2);
border-top:1px solid var(--border-subtle);
margin-top:auto;}
.svc-card-group-dot{width:7px;
height:7px;
border-radius:50%;
flex-shrink:0;}
.svc-card-inactive-badge{display:inline-flex;
align-items:center;
padding:0.15rem 0.45rem;
border-radius:var(--radius-pill);
font-size:var(--font-2xs);
font-weight:500;
background:color-mix(in oklch, var(--text-muted) 14%, transparent);
color:var(--text-muted);
line-height:1;}
.svc-card-deposit-badge{display:inline-flex;
align-items:center;
padding:0.15rem 0.45rem;
border-radius:var(--radius-pill);
font-size:var(--font-2xs);
font-weight:500;
background:var(--state-info-bg);
color:var(--state-info);
border:1px solid var(--state-info-border);
line-height:1;}
.svc-m-deposit-chips{display:flex;
gap:2px;
background:var(--inset-bg);
border:1px solid var(--inset-border);
border-radius:10px;
padding:0.1875rem;}
.svc-m-deposit-chip{padding:0.4375rem 0.875rem;
font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
background:transparent;
border:none;
border-radius:8px;
cursor:pointer;
transition:all 200ms ease;
white-space:nowrap;
flex:1;
text-align:center;}
.svc-m-deposit-chip:hover{color:var(--text);
background:var(--hover-bg-subtle);}
.svc-m-deposit-chip.active{color:var(--brand-text);
background:var(--brand-primary);
box-shadow:var(--brand-shadow);
font-weight:600;}
.svc-card-actions{display:flex;
gap:0.25rem;
opacity:0;
transition:opacity 150ms ease;}
.svc-card:hover .svc-card-actions{opacity:1;}
@media (hover:none){.svc-card-actions{opacity:1;}}
.svc-card-action{display:flex;
align-items:center;
justify-content:center;
width:1.75rem;
height:1.75rem;
border-radius:var(--radius-sm);
border:none;
background:transparent;
color:var(--text-muted);
cursor:pointer;
transition:all 150ms ease;
padding:0;}
.svc-card-action:hover{background:color-mix(in oklch, var(--brand-primary) 14%, transparent);
color:var(--brand-primary);}
.svc-card-action:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:1px;}
.svc-card-action-danger:hover{background:color-mix(in oklch, var(--state-error) 14%, transparent);
color:var(--state-error);}
.svc-empty{display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:var(--space-4);
padding:var(--space-12) var(--space-6);
text-align:center;}
.svc-empty-icon{display:flex;
align-items:center;
justify-content:center;
width:4rem;
height:4rem;
border-radius:1rem;
background:var(--hover-bg);}
.svc-empty-title{font-size:var(--font-base);
font-weight:600;
color:var(--text);}
.svc-empty-desc{font-size:var(--font-sm);
color:var(--text-muted);
max-width:280px;
line-height:1.5;}
.svc-skeleton-grid{display:grid;
grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
gap:var(--space-4);}
.svc-skeleton-card{height:7.5rem;
border-radius:14px;
background:var(--card-bg);
border:1px solid var(--card-border);
animation:svcPulse 1.6s ease-in-out infinite;}
@keyframes svcPulse{0%, 100%{opacity:0.6;}
50%{opacity:0.3;}}
@keyframes svcFadeIn{from{opacity:0;transform:translateY(6px);}
to{opacity:1;transform:translateY(0);}}
.svc-group-empty{display:flex;
align-items:center;
gap:var(--space-3);
padding:var(--space-4) var(--space-4);
border:1px dashed var(--border-subtle);
border-radius:12px;
color:var(--text-muted);
font-size:var(--font-sm);}
.svc-group-empty-add{font-size:var(--font-xs);
font-weight:500;
color:var(--brand-primary);
background:none;
border:none;
cursor:pointer;
padding:0;
text-decoration:none;
transition:opacity 150ms ease;}
.svc-group-empty-add:hover{opacity:0.8;
text-decoration:underline;}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr;
gap:0.5rem;}
.svc-skeleton-grid{grid-template-columns:1fr;
gap:0.5rem;}
.svc-card{flex-direction:row;
border-radius:var(--radius-lg);
overflow:hidden;}
.svc-card:hover{transform:none;}
.svc-card-accent{width:4px;
height:auto;
border-radius:var(--radius-lg) 0 0 var(--radius-lg);
flex-shrink:0;}
.svc-card-body{flex:1;
flex-direction:row;
align-items:center;
gap:0.5rem;
padding:0.625rem 0.5rem 0.625rem 0.625rem;
min-width:0;}
.svc-card-top{flex:1;
min-width:0;
align-items:center;}
.svc-card-identity{gap:0.5rem;
min-width:0;
flex:1;}
.svc-card-thumb{width:2rem;
height:2rem;
border-radius:6px;}
.svc-card-name{font-size:0.85rem;
line-height:1.3;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;}
.svc-card-meta{flex-shrink:0;
gap:0.25rem;
flex-wrap:nowrap;}
.svc-card-chip{font-size:0.68rem;
padding:0.125rem 0.375rem;
white-space:nowrap;}
.svc-card-inactive-badge,
.svc-card-deposit-badge{font-size:0.6rem;
padding:0.1rem 0.35rem;}
.svc-card-group{display:none;}
.svc-card-actions{opacity:1;
flex-shrink:0;
gap:0.125rem;}
.svc-card-action{width:2rem;
height:2rem;}
.svc-card-action:nth-child(2),
.svc-card-action:nth-child(3){display:none;}
.svc-card-check{position:static;
display:flex;
align-items:center;
padding:0 0.125rem 0 0.375rem;
flex-shrink:0;}
.svc-card-checkbox{width:1.375rem;
height:1.375rem;}
.svc-card-selected .svc-card-top,
.svc-card .svc-card-check + .svc-card-accent + .svc-card-body .svc-card-top{padding-right:0;}
.svc-catalog{gap:var(--space-5);}
.svc-group-section{gap:0.375rem;}
.svc-group-header{padding:var(--space-2) var(--space-1);
gap:0.5rem;}
.svc-group-label{font-size:0.82rem;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
min-width:0;
flex:1;}
.svc-group-count{font-size:0.68rem;
flex-shrink:0;
margin-left:0;}
.svc-group-add{opacity:1;
width:1.75rem;
height:1.75rem;}
.svc-group-empty{padding:var(--space-3);
font-size:var(--font-xs);}
.svc-empty{padding:var(--space-8) var(--space-4);}
.svc-empty-icon{width:3rem;
height:3rem;
border-radius:0.75rem;}
.svc-skeleton-card{height:3.5rem;
border-radius:var(--radius-lg);}}
.svc-color-swatch{width:1.5rem;
height:1.5rem;
border-radius:var(--radius-sm);
border:2px solid transparent;
cursor:pointer;
transition:all 0.15s;}
.svc-color-swatch:hover{transform:scale(1.15);}
.svc-color-swatch.active{border-color:var(--text);
box-shadow:0 0 0 2px var(--card-bg), 0 0 0 4px var(--text);}
.svc-color-custom{width:1.5rem;
height:1.5rem;
padding:0;
border:1px solid var(--border-subtle);
border-radius:var(--radius-sm);
cursor:pointer;
background:transparent;}
.svc-toggle,
.svc-m-active-pill{display:flex;
align-items:center;
gap:0.625rem;
cursor:pointer;}
.svc-toggle input,
.svc-m-active-pill input{position:absolute;
opacity:0;
width:0;
height:0;}
.svc-toggle-track{position:relative;
width:2.75rem;
height:1.5rem;
border-radius:var(--radius-pill);
background:var(--input-border);
transition:background 0.25s cubic-bezier(0.4, 0, 0.2, 1);
flex-shrink:0;}
.svc-toggle input:checked + .svc-toggle-track,
.svc-m-active-pill input:checked + .svc-toggle-track{background:var(--brand-primary);}
.svc-toggle-thumb{position:absolute;
top:2px;
left:2px;
width:1.25rem;
height:1.25rem;
border-radius:50%;
background:var(--toggle-color);
transition:transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow:0 1px 3px rgba(0, 0, 0, 0.2), 0 1px 1px rgba(0, 0, 0, 0.14);}
.svc-toggle input:checked + .svc-toggle-track .svc-toggle-thumb,
.svc-m-active-pill input:checked + .svc-toggle-track .svc-toggle-thumb{transform:translateX(1.25rem);}
.svc-hint{font-size:0.8rem;
color:var(--text-muted);
margin:0 0 0.5rem;
line-height:1.4;}
.svc-loc-tabs{display:flex;
gap:0.375rem;
flex-wrap:wrap;
margin-bottom:1rem;
padding:0.25rem;
border-radius:var(--radius-sm);
background:color-mix(in oklch, var(--text) 5%, var(--bg));}
.svc-loc-tab{position:relative;
padding:0.375rem 0.875rem;
border-radius:var(--radius-sm);
border:none;
background:transparent;
color:var(--text-muted);
font-size:0.8125rem;
font-weight:500;
cursor:pointer;
transition:all 0.15s;
white-space:nowrap;}
.svc-loc-tab:hover{color:var(--text);
background:color-mix(in oklch, var(--text) 6%, transparent);}
.svc-loc-tab.active{background:var(--card-bg);
color:var(--text);
box-shadow:0 1px 3px rgba(0, 0, 0, 0.08);}
.svc-loc-tab.linked::after{content:"";
position:absolute;
top:0.25rem;
right:0.25rem;
width:6px;
height:6px;
border-radius:50%;
background:var(--brand-primary);}
.svc-loc-content{padding:0.75rem;
border-radius:var(--radius-sm);
border:1px solid var(--border-subtle);
background:var(--card-bg);}
.svc-loc-list{display:flex;
flex-direction:column;
gap:0.5rem;}
.svc-loc-item{padding:0.625rem 0.75rem;
border-radius:var(--radius-sm);
border:1px solid var(--border-subtle);
background:var(--card-bg);
transition:border-color 0.15s;}
.svc-loc-item.svc-loc-active{border-color:var(--brand-primary);
background:color-mix(in oklch, var(--brand-primary) 5%, var(--card-bg));}
.svc-loc-overrides{margin-top:0.5rem;
padding-top:0.5rem;
border-top:1px solid var(--border-subtle);}
.svc-loc-fields{display:grid;
grid-template-columns:repeat(3, 1fr);
gap:0.5rem;
margin-top:0.5rem;}
.svc-loc-fields .cal-form-group{margin-bottom:0;
min-width:0;}
.svc-loc-fields .cal-modal-label{font-size:0.7rem;}
.svc-loc-fields .cal-form-input{width:100%;
min-width:0;
box-sizing:border-box;}
@media (max-width:640px){.svc-loc-fields{grid-template-columns:1fr;}}
.svc-loc-tab:focus-visible,
.svc-color-swatch:focus-visible,
.svc-color-custom:focus-visible,
.svc-toggle:focus-visible,
.svc-m-active-pill:focus-visible{outline:2px solid var(--brand-primary);
outline-offset:2px;}
.svc-card-selected{border-color:var(--brand-primary) !important;
box-shadow:0 0 0 2px color-mix(in oklch, var(--brand-primary) 20%, transparent) !important;}
.svc-card-check{position:absolute;
top:0.5rem;
right:0.5rem;
z-index:2;
cursor:pointer;}
.svc-card-selected .svc-card-top,
.svc-card .svc-card-check + .svc-card-accent + .svc-card-body .svc-card-top{padding-right:1.75rem;}
.svc-card-checkbox{width:1.25rem;
height:1.25rem;
border-radius:0.375rem;
border:2px solid var(--input-border);
background:var(--input-bg);
display:flex;
align-items:center;
justify-content:center;
transition:all 150ms ease;}
.svc-card-checkbox.checked{background:var(--brand-primary);
border-color:var(--brand-primary);
color:#fff;}
.svc-bulk-bar{position:fixed;
bottom:1.5rem;
left:50%;
transform:translateX(-50%);
z-index:100;
animation:svcBulkBarIn 250ms ease-out both;}
@keyframes svcBulkBarIn{from{opacity:0;transform:translateX(-50%) translateY(12px);}
to{opacity:1;transform:translateX(-50%) translateY(0);}}
.svc-bulk-bar-inner{display:flex;
align-items:center;
gap:0.75rem;
padding:0.625rem 1rem;
border-radius:0.875rem;
background:var(--popup-glass-bg);
border:1px solid var(--popup-glass-border);
box-shadow:var(--popup-glass-shadow);
backdrop-filter:blur(var(--popup-glass-blur));
-webkit-backdrop-filter:blur(var(--popup-glass-blur));}
.svc-bulk-count{font-size:0.8125rem;
font-weight:600;
color:var(--text);
white-space:nowrap;}
.svc-bulk-select-all{font-size:0.75rem;
color:var(--brand-primary);
background:none;
border:none;
cursor:pointer;
font-weight:500;
padding:0;
white-space:nowrap;}
.svc-bulk-select-all:hover{text-decoration:underline;}
.svc-bulk-select-all:disabled{color:var(--text-muted);
cursor:default;
text-decoration:none;}
.svc-bulk-actions{display:flex;
align-items:center;
gap:0.375rem;
border-left:1px solid var(--card-border);
padding-left:0.75rem;}
.svc-bulk-delete{color:var(--state-error) !important;}
.svc-bulk-delete:hover{background:color-mix(in oklch, var(--state-error) 12%, transparent) !important;}
@media (max-width:640px){.svc-bulk-bar{bottom:calc(var(--bottomnav-height) + 0.75rem);}
.svc-bulk-bar-inner{flex-wrap:wrap;
justify-content:center;
max-width:calc(100vw - 2rem);}
.svc-bulk-actions{border-left:none;
padding-left:0;
border-top:1px solid var(--card-border);
padding-top:0.5rem;
width:100%;
justify-content:center;}}
.sa-panel{border-radius:var(--radius-xl);
border:1px solid var(--card-border);
background:var(--card-bg);
box-shadow:var(--card-shadow);
padding:var(--space-6);
display:flex;
flex-direction:column;
gap:var(--space-5);
animation:saFadeIn 250ms ease forwards;}
@keyframes saFadeIn{from{opacity:0;transform:translateY(8px);}
to{opacity:1;transform:translateY(0);}}
.sa-header{display:flex;
align-items:flex-start;
justify-content:space-between;
gap:var(--space-4);}
.sa-header-left{flex:1;}
.sa-title{font-size:var(--font-lg);
font-weight:600;
color:var(--text);
margin:0;}
.sa-subtitle{font-size:var(--font-xs);
color:var(--text-muted);
margin:0.25rem 0 0;}
.sa-close{display:flex;
align-items:center;
justify-content:center;
width:2rem;
height:2rem;
border-radius:var(--radius-md);
border:none;
background:transparent;
color:var(--text-muted);
cursor:pointer;
transition:all 150ms ease;
flex-shrink:0;}
.sa-close:hover{background:var(--hover-bg);
color:var(--text);}
.sa-filters{display:flex;
flex-wrap:wrap;
align-items:center;
gap:var(--space-3);}
.sa-range-chips{display:flex;
gap:0.25rem;
background:var(--input-bg);
border:1px solid var(--input-border);
border-radius:var(--radius-lg);
padding:0.1875rem;}
.sa-range-chip{padding:0.375rem 0.75rem;
font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
background:transparent;
border:none;
border-radius:var(--radius-md);
cursor:pointer;
transition:all 150ms ease;
white-space:nowrap;}
.sa-range-chip:hover{color:var(--text);
background:var(--hover-bg-subtle);}
.sa-range-chip.active{color:var(--brand-text);
background:var(--brand-primary);
font-weight:600;}
.sa-custom-dates{display:flex;
align-items:center;
gap:0.5rem;}
.sa-date-input{max-width:10rem;
font-size:var(--font-xs);}
.sa-loc-filter{min-width:10rem;}
.sa-stats{display:grid;
grid-template-columns:repeat(4, 1fr);
gap:var(--space-3);}
.sa-stat-card{display:flex;
flex-direction:column;
gap:0.125rem;
padding:var(--space-4);
border-radius:var(--radius-lg);
border:1px solid var(--card-border);
background:var(--glass-bg);}
.sa-stat-label{font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
text-transform:uppercase;
letter-spacing:0.04em;}
.sa-stat-value{font-size:1.5rem;
font-weight:700;
color:var(--text);
line-height:1.2;}
.sa-stat-sub{font-size:var(--font-xs);
color:var(--text-muted);
margin-top:0.125rem;}
.sa-stat-warn .sa-stat-value{color:var(--state-warning);}
.sa-top-service{display:flex;
align-items:center;
gap:var(--space-3);
padding:var(--space-3) var(--space-4);
border-radius:var(--radius-lg);
background:var(--brand-hover);
border:1px solid var(--brand-border);
font-size:var(--font-sm);
color:var(--text);}
.sa-top-service-dot{width:0.625rem;
height:0.625rem;
border-radius:50%;
flex-shrink:0;}
.sa-top-service-text strong{font-weight:600;}
.sa-trends{display:grid;
grid-template-columns:1fr 1fr;
gap:var(--space-3);}
.sa-trend-card{display:flex;
flex-direction:column;
gap:var(--space-2);
padding:var(--space-4);
border-radius:var(--radius-lg);
border:1px solid var(--card-border);
background:var(--glass-bg);}
.sa-trend-title{font-size:var(--font-xs);
font-weight:500;
color:var(--text-muted);
text-transform:uppercase;
letter-spacing:0.04em;}
.sa-sparkline{display:flex;
align-items:flex-end;
gap:2px;
height:3.5rem;}
.sa-sparkline-bar{flex:1;
min-width:2px;
background:var(--brand-primary);
border-radius:1px 1px 0 0;
opacity:0.7;
transition:opacity 150ms ease;
animation:saBarGrow 300ms ease forwards;}
@keyframes saBarGrow{from{transform:scaleY(0);}
to{transform:scaleY(1);}}
.sa-sparkline-bar:hover{opacity:1;}
.sa-table-wrap{display:flex;
flex-direction:column;
border:1px solid var(--card-border);
border-radius:var(--radius-lg);
overflow:hidden;}
.sa-table-header{display:grid;
grid-template-columns:1.5fr repeat(4, 1fr);
gap:0;
padding:var(--space-2) var(--space-3);
background:var(--input-bg);
border-bottom:1px solid var(--card-border);}
.sa-th{font-size:var(--font-xs);
font-weight:600;
color:var(--text-muted);
text-transform:uppercase;
letter-spacing:0.04em;
padding:0.25rem 0.5rem;
background:transparent;
border:none;
text-align:left;
cursor:default;}
.sa-th-sort{cursor:pointer;
text-align:right;
transition:color 150ms ease;}
.sa-th-sort:hover,
.sa-th-sort.active{color:var(--text);}
.sa-table-row{display:grid;
grid-template-columns:1.5fr repeat(4, 1fr);
gap:0;
padding:var(--space-2) var(--space-3);
border-bottom:1px solid var(--card-border);
transition:background 150ms ease;
animation:saRowIn 200ms ease forwards;
opacity:0;}
@keyframes saRowIn{from{opacity:0;transform:translateX(-4px);}
to{opacity:1;transform:translateX(0);}}
.sa-table-row:last-child{border-bottom:none;}
.sa-table-row:hover{background:var(--hover-bg-subtle);}
.sa-td{display:flex;
align-items:center;
font-size:var(--font-sm);
color:var(--text);
padding:0.25rem 0.5rem;}
.sa-td-name{display:flex;
align-items:center;
gap:0.5rem;
font-weight:500;}
.sa-svc-dot{width:0.5rem;
height:0.5rem;
border-radius:50%;
flex-shrink:0;}
.sa-svc-name{white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;}
.sa-td-num{justify-content:flex-end;
gap:0.5rem;
font-variant-numeric:tabular-nums;}
.sa-td-bar-bg{flex:1;
height:0.375rem;
border-radius:2px;
background:var(--input-bg);
overflow:hidden;}
.sa-td-bar-fill{height:100%;
border-radius:2px;
transition:width 350ms ease;}
.sa-td-warn{color:var(--state-warning);
font-weight:600;}
.sa-mini-bar{display:flex;flex-direction:column;gap:0.375rem;}
.sa-mini-bar-row{display:flex;align-items:center;gap:0.5rem;}
.sa-mini-bar-label{width:5rem;font-size:var(--font-xs);color:var(--text-muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}
.sa-mini-bar-track{flex:1;height:0.375rem;background:var(--input-bg);border-radius:2px;overflow:hidden;}
.sa-mini-bar-fill{height:100%;border-radius:2px;transition:width 350ms ease;}
.sa-mini-bar-value{width:2.5rem;text-align:right;font-size:var(--font-xs);font-weight:600;color:var(--text);}
.sa-skeleton{display:grid;
grid-template-columns:repeat(4, 1fr);
gap:var(--space-3);}
.sa-skeleton-card{height:5.5rem;
border-radius:var(--radius-lg);
background:var(--card-border);
animation:pulse 1.5s ease infinite;}
.sa-skeleton-table{grid-column:1 / -1;
height:12rem;
border-radius:var(--radius-lg);
background:var(--card-border);
animation:pulse 1.5s ease infinite;}
@keyframes pulse{0%, 100%{opacity:0.4;}
50%{opacity:0.7;}}
.sa-error{display:flex;
flex-direction:column;
align-items:center;
gap:var(--space-3);
padding:var(--space-8);
text-align:center;
color:var(--state-error);}
.sa-empty{padding:var(--space-8);
text-align:center;}
@media (max-width:768px){.sa-panel{padding:var(--space-4);}
.sa-stats{grid-template-columns:1fr 1fr;}
.sa-trends{grid-template-columns:1fr;}
.sa-table-header,
.sa-table-row{grid-template-columns:1.2fr repeat(4, 1fr);
font-size:var(--font-xs);}
.sa-filters{flex-direction:column;
align-items:flex-start;}}
@media (max-width:480px){.sa-stats{grid-template-columns:1fr;}
.sa-table-header,
.sa-table-row{grid-template-columns:1fr 1fr;}
.sa-th:nth-child(n+4),
.sa-td:nth-child(n+4){display:none;}}