:root{
  --brand-pink:#FF5DB3;
  --accent:#FF2E7E;
  --accent-soft:#FF8FAB;
  --success:#00B85C;
  --radius-card:20px;
  --radius-control:12px;
  --transition-theme:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}

:root[data-theme="dark"]{
  --bg:#0A0A0A;
  --surface:#1A1A1A;
  --surface-2:#222222;
  --surface-soft:#111111;
  --surface-raised:rgba(26,26,26,.94);
  --border:#2A2A2A;
  --border-soft:#1E1E1E;
  --text:#F6F6F6;
  --text-soft:#D6D6D6;
  --muted:#A0A0A0;
  --muted-2:#6B6B6B;
  --sidebar-bg:#0A0A0A;
  --nav-active:#1A1A1A;
  --topbar-bg:rgba(10,10,10,.86);
  --input-bg:#111111;
  --button-bg:#1F1F1F;
  --overlay-glow:rgba(255,93,179,.14);
  --shadow-card:0 24px 70px rgba(0,0,0,.36);
  --status-bg:rgba(0,230,118,.08);
  --status-border:rgba(0,230,118,.22);
  --status-text:#00E676;
  --env-bg:rgba(255,143,171,.07);
  --env-border:rgba(255,143,171,.25);
  --alert-bg:rgba(255,46,126,.10);
  --alert-border:rgba(255,46,126,.28);
  --alert-text:#FFD2E3;
  --calendar-confirmed-bg:#351D2A;
  --calendar-confirmed-border:#FF5DB3;
  --calendar-payment-bg:#34270D;
  --calendar-payment-border:#E4A11B;
  --calendar-completed-bg:#123523;
  --calendar-completed-border:#24C76F;
  --calendar-noshow-bg:#3B230E;
  --calendar-noshow-border:#F18A1B;
  --calendar-cancelled-bg:#252525;
  --calendar-cancelled-border:#777777;
  --calendar-block-bg:#17243A;
  --calendar-block-border:#4B7BEC;
  --calendar-break-bg:#3B171D;
  --calendar-break-border:#E54863;
  --calendar-google-bg:#142A49;
  --calendar-google-border:#55A7FF;
  --calendar-google-text:#CBE6FF;
  --logo-light-display:none;
  --logo-dark-display:block;
}

:root[data-theme="light"]{
  --bg:#F6F6F7;
  --surface:#FFFFFF;
  --surface-2:#F0F0F2;
  --surface-soft:#F8F8F9;
  --surface-raised:rgba(255,255,255,.94);
  --border:#E3E3E6;
  --border-soft:#ECECEF;
  --text:#212121;
  --text-soft:#3D3D3D;
  --muted:#686868;
  --muted-2:#8B8B8B;
  --sidebar-bg:#FFFFFF;
  --nav-active:#F4F4F6;
  --topbar-bg:rgba(246,246,247,.88);
  --input-bg:#FAFAFB;
  --button-bg:#F2F2F4;
  --overlay-glow:rgba(255,93,179,.10);
  --shadow-card:0 24px 70px rgba(33,33,33,.10);
  --status-bg:rgba(0,148,74,.08);
  --status-border:rgba(0,148,74,.20);
  --status-text:#008A45;
  --env-bg:rgba(255,93,179,.08);
  --env-border:rgba(255,93,179,.25);
  --alert-bg:rgba(255,46,126,.08);
  --alert-border:rgba(255,46,126,.22);
  --alert-text:#B31958;
  --calendar-confirmed-bg:#FFD5EA;
  --calendar-confirmed-border:#FF2E8A;
  --calendar-payment-bg:#FFE6A6;
  --calendar-payment-border:#D88900;
  --calendar-completed-bg:#CFF4DD;
  --calendar-completed-border:#00A653;
  --calendar-noshow-bg:#FFD8B5;
  --calendar-noshow-border:#E86D00;
  --calendar-cancelled-bg:#DFE1E5;
  --calendar-cancelled-border:#6E7178;
  --calendar-block-bg:#DCE7FF;
  --calendar-block-border:#3C68D8;
  --calendar-break-bg:#FFD3D9;
  --calendar-break-border:#D93450;
  --calendar-google-bg:#CFE7FF;
  --calendar-google-border:#2F80ED;
  --calendar-google-text:#0E4D97;
  --logo-light-display:block;
  --logo-dark-display:none;
}

*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Poppins,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;transition:var(--transition-theme)}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{color:inherit}

.theme-logo-light{display:var(--logo-light-display)!important}
.theme-logo-dark{display:var(--logo-dark-display)!important}

.brand-symbol{width:48px;height:36px;display:grid;place-items:center;flex:0 0 auto}
.brand-symbol img{display:block;width:100%;height:100%;object-fit:contain}
.brand-full{display:block;width:min(230px,74vw);height:auto}
.brand-lockup,.sidebar-brand{display:flex;align-items:center;gap:12px}
.brand-name{font-weight:700;font-size:13px;letter-spacing:.12em}
.brand-subtitle,.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--muted-2);font-weight:600}

.theme-toggle{min-height:36px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;gap:8px;padding:0 11px;cursor:pointer;transition:var(--transition-theme)}
.theme-toggle:hover{border-color:rgba(255,93,179,.48)}
.theme-toggle svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .icon-sun{display:none}
.theme-toggle .icon-moon{display:block}
:root[data-theme="light"] .theme-toggle .icon-sun{display:block}
:root[data-theme="light"] .theme-toggle .icon-moon{display:none}
.theme-toggle-label{font-size:10px;font-weight:600;letter-spacing:.04em}
.theme-float{position:fixed;top:18px;right:18px;z-index:80}

.auth-body,.public-placeholder{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 70% 20%,var(--overlay-glow),transparent 30%),var(--bg);transition:var(--transition-theme)}
.auth-shell{width:min(100%,460px)}
.auth-card,.placeholder-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-card);padding:28px;box-shadow:var(--shadow-card);transition:var(--transition-theme)}
.auth-card .brand-lockup{justify-content:flex-start}
.auth-copy{margin:32px 0 22px}
.auth-copy h1,.placeholder-card h1{margin:4px 0 8px;font-size:28px;line-height:1.15}
.auth-copy p,.placeholder-card p,.card p,.foundation-card p,.phase-card p{color:var(--muted);font-size:13px;line-height:1.65}
.auth-theme-row{display:flex;justify-content:flex-end;margin-bottom:18px}
.form-stack{display:grid;gap:16px}
.form-stack label{display:grid;gap:7px;font-size:12px;color:var(--text-soft)}
.form-stack input{width:100%;height:46px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--input-bg);color:var(--text);padding:0 14px;outline:none;transition:var(--transition-theme)}
.form-stack input:focus{border-color:rgba(255,93,179,.72);box-shadow:0 0 0 3px rgba(255,93,179,.12)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:var(--radius-control);border:1px solid var(--border);background:var(--button-bg);color:var(--text);font-weight:600;cursor:pointer;transition:var(--transition-theme)}
.button-primary{border:0;background:linear-gradient(135deg,var(--accent),var(--accent-soft));color:#fff}
.alert{padding:12px 14px;border-radius:var(--radius-control);margin-bottom:16px;font-size:12px}
.alert-error{background:var(--alert-bg);border:1px solid var(--alert-border);color:var(--alert-text)}
.microcopy{margin:18px 0 0;text-align:center;color:var(--muted-2);font-size:10px}

.admin-app{min-height:100vh;background:var(--bg);transition:var(--transition-theme)}
.sidebar{position:fixed;inset:0 auto 0 0;width:280px;background:var(--sidebar-bg);border-right:1px solid var(--border-soft);padding:24px 18px;display:flex;flex-direction:column;z-index:50;transition:transform .2s ease,var(--transition-theme)}
.sidebar-brand{padding:0 10px 24px}
.sidebar-nav{display:grid;gap:6px}
.nav-item{min-height:44px;border-radius:var(--radius-control);padding:0 14px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;transition:var(--transition-theme)}
.nav-item.active{background:var(--nav-active);color:var(--text);border:1px solid var(--border)}
.nav-item.disabled{opacity:.48;cursor:not-allowed}
.nav-item small{font-size:9px;color:var(--muted-2)}
.sidebar-footer{margin-top:auto;border-top:1px solid var(--border-soft);padding:18px 8px 0}
.admin-identity{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.avatar{width:36px;height:36px;border-radius:10px;background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--brand-pink);font-weight:700;transition:var(--transition-theme)}
.admin-identity strong,.admin-identity span{display:block;max-width:175px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-identity strong{font-size:11px}
.admin-identity span{font-size:9px;color:var(--muted-2)}
.link-button{border:0;background:transparent;color:var(--muted);padding:0;cursor:pointer;font-size:11px}
.admin-main{padding-left:280px;min-height:100vh;background:var(--bg);transition:var(--transition-theme)}
.topbar{height:72px;position:sticky;top:0;z-index:30;background:var(--topbar-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border-soft);display:flex;align-items:center;gap:16px;padding:0 32px;transition:var(--transition-theme)}
.topbar h1{margin:1px 0 0;font-size:18px}
.topbar .eyebrow{margin:0}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.environment-badge{font-size:9px;font-weight:700;letter-spacing:.14em;color:var(--brand-pink);border:1px solid var(--env-border);background:var(--env-bg);border-radius:999px;padding:7px 10px;transition:var(--transition-theme)}
.environment-badge.env-production{color:var(--status-text);border-color:var(--status-border);background:var(--status-bg)}
.environment-badge.env-staging{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 35%,transparent);background:color-mix(in srgb,var(--warning) 10%,transparent)}
.menu-button{display:none;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:10px;width:40px;height:40px;transition:var(--transition-theme)}
.dashboard-content{padding:32px;max-width:1400px;margin:0 auto}
.foundation-card,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);transition:var(--transition-theme)}
.foundation-card{padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.foundation-card h2{font-size:24px;margin:4px 0 8px}
.pink{color:var(--brand-pink)}
.status-pill{font-size:9px;letter-spacing:.14em;font-weight:700;padding:8px 10px;border-radius:999px;background:var(--status-bg);border:1px solid var(--status-border);color:var(--status-text);white-space:nowrap;transition:var(--transition-theme)}
.foundation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}
.card{padding:20px}
.card strong{display:block;font-size:15px;margin:7px 0 3px}
.card-kicker{font-size:9px;color:var(--muted-2);letter-spacing:.14em;font-weight:700}
.phase-card{margin-top:16px}
.debug-trace{max-width:100%;overflow:auto;text-align:left;background:var(--surface-soft);border:1px solid var(--border);padding:12px;border-radius:10px;font-size:10px;color:var(--muted)}
.placeholder-card{text-align:center;max-width:520px}
.placeholder-brand{display:flex;justify-content:center;margin:0 auto 20px}
.placeholder-card .button{margin-top:12px}
.placeholder-theme{display:flex;justify-content:center;margin-top:20px}

@media(max-width:1050px){.foundation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .admin-main{padding-left:0}
  .menu-button{display:block}
  .topbar{padding:0 18px}
  .dashboard-content{padding:18px}
  .foundation-grid{grid-template-columns:1fr}
  .foundation-card{flex-direction:column}
  .environment-badge{font-size:8px}
  .topbar h1{font-size:15px}
  .theme-toggle-label{display:none}
  .theme-toggle{width:36px;padding:0;justify-content:center}
}

/* v0.1.2 — Design System Core */
:root{
  --danger:#E54863;
  --warning:#D89518;
  --info:#4B7BEC;
  --focus-ring:0 0 0 3px rgba(255,93,179,.14);
  --control-height:44px;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
}
:root[data-theme="dark"]{
  --danger-bg:rgba(229,72,99,.10);
  --danger-border:rgba(229,72,99,.28);
  --warning-bg:rgba(216,149,24,.10);
  --warning-border:rgba(216,149,24,.28);
  --info-bg:rgba(75,123,236,.10);
  --info-border:rgba(75,123,236,.28);
  --neutral-bg:rgba(255,255,255,.055);
  --neutral-border:rgba(255,255,255,.10);
  --table-row-hover:rgba(255,255,255,.025);
  --skeleton:rgba(255,255,255,.07);
  --modal-overlay:rgba(0,0,0,.62);
}
:root[data-theme="light"]{
  --danger-bg:rgba(229,72,99,.07);
  --danger-border:rgba(229,72,99,.20);
  --warning-bg:rgba(216,149,24,.08);
  --warning-border:rgba(216,149,24,.22);
  --info-bg:rgba(75,123,236,.07);
  --info-border:rgba(75,123,236,.20);
  --neutral-bg:rgba(33,33,33,.035);
  --neutral-border:rgba(33,33,33,.09);
  --table-row-hover:rgba(33,33,33,.025);
  --skeleton:rgba(33,33,33,.07);
  --modal-overlay:rgba(20,20,20,.30);
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none;
  box-shadow:var(--focus-ring);
}

.design-system-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}
.ds-hero,.ds-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);transition:var(--transition-theme)}
.ds-hero{padding:26px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.ds-hero h2{font-size:28px;line-height:1.18;margin:5px 0 8px}
.ds-hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.65;max-width:760px}
.ds-section{overflow:hidden}
.ds-section-head{padding:20px 22px 16px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border-soft)}
.ds-section-head.compact{border-bottom:0;padding-bottom:4px}
.ds-section-head h3{font-size:17px;margin:4px 0 0}
.ds-section-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.55;max-width:460px;text-align:right}
.component-surface{padding:22px}
.component-surface.no-pad{padding:0}
.component-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.component-row-spaced{margin-top:20px;justify-content:space-between;border-top:1px solid var(--border-soft);padding-top:18px}
.ds-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}

.button-secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}
.button-ghost{background:transparent;border-color:transparent;color:var(--muted)}
.button-ghost:hover{background:var(--surface-2);color:var(--text)}
.button-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}
.icon-button{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);display:inline-grid;place-items:center;color:var(--muted);cursor:pointer;transition:var(--transition-theme)}
.icon-button:hover{color:var(--text);background:var(--surface-2)}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.field{display:grid;gap:7px;color:var(--text-soft);font-size:11px;font-weight:500}
.field-wide{grid-column:1/-1}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:var(--radius-control);padding:0 13px;outline:none;transition:var(--transition-theme);font-family:inherit}
.field input,.field select{height:var(--control-height)}
.field textarea{min-height:108px;padding-top:12px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(255,93,179,.72);box-shadow:var(--focus-ring)}
.input-prefix{height:var(--control-height);display:flex;align-items:center;border:1px solid var(--border);background:var(--input-bg);border-radius:var(--radius-control);overflow:hidden;transition:var(--transition-theme)}
.input-prefix>span{height:100%;display:flex;align-items:center;padding:0 12px;border-right:1px solid var(--border);color:var(--muted)}
.input-prefix input{border:0!important;border-radius:0!important;box-shadow:none!important;min-width:0}

.switch,.check-control{display:inline-flex;align-items:center;gap:10px;color:var(--text-soft);font-size:11px;cursor:pointer}
.switch input,.check-control input{position:absolute;opacity:0;pointer-events:none}
.switch-track{width:42px;height:24px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px;transition:var(--transition-theme)}
.switch-thumb{display:block;width:18px;height:18px;border-radius:50%;background:var(--muted-2);transition:transform .18s ease,background .18s ease}
.switch input:checked+.switch-track{background:rgba(255,93,179,.18);border-color:rgba(255,93,179,.48)}
.switch input:checked+.switch-track .switch-thumb{transform:translateX(18px);background:var(--brand-pink)}
.check-control input+span{position:relative;padding-left:28px}
.check-control input+span::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:18px;height:18px;border-radius:6px;border:1px solid var(--border);background:var(--input-bg)}
.check-control input:checked+span::before{background:var(--brand-pink);border-color:var(--brand-pink)}
.check-control input:checked+span::after{content:"✓";position:absolute;left:4px;top:50%;transform:translateY(-55%);font-size:12px;color:#fff;font-weight:700}

.badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;border:1px solid var(--neutral-border);background:var(--neutral-bg);color:var(--muted);font-size:9px;letter-spacing:.06em;font-weight:700;white-space:nowrap}
.badge-success{background:var(--status-bg);border-color:var(--status-border);color:var(--status-text)}
.badge-warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}
.badge-danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}
.badge-info{background:var(--info-bg);border-color:var(--info-border);color:var(--info)}
.badge-neutral{background:var(--neutral-bg);border-color:var(--neutral-border);color:var(--muted)}

.tabs{display:flex;align-items:center;gap:2px;padding:12px 14px 0;border-bottom:1px solid var(--border-soft);overflow-x:auto}
.tab{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600;padding:11px 14px;border-bottom:2px solid transparent;white-space:nowrap}
.tab.active{color:var(--text);border-bottom-color:var(--brand-pink)}
.tab-panel{display:none}
.tab-panel.active{display:block}
.table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse;min-width:620px}
.data-table th,.data-table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--border-soft);font-size:11px}
.data-table th{color:var(--muted-2);font-size:9px;letter-spacing:.10em;font-weight:700;text-transform:uppercase}
.data-table td{color:var(--text-soft)}
.data-table tbody tr:hover{background:var(--table-row-hover)}
.data-table tbody tr:last-child td{border-bottom:0}

.empty-state{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--muted)}
.empty-state strong{color:var(--text);font-size:14px}
.empty-state p{margin:6px 0 14px;font-size:11px;line-height:1.55;max-width:420px}
.empty-icon{width:42px;height:42px;border-radius:13px;border:1px solid var(--border);background:var(--surface-2);display:grid;place-items:center;color:var(--brand-pink);font-size:20px;margin-bottom:12px}

.calendar-preview{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:14px;overflow:auto}
.calendar-day{min-height:180px;background:var(--surface);padding:12px;transition:var(--transition-theme)}
.calendar-day.today{box-shadow:inset 0 3px 0 var(--brand-pink)}
.calendar-day-head{font-size:10px;color:var(--muted);font-weight:600;margin-bottom:10px}
.appointment-chip{display:grid;gap:2px;margin-top:8px;padding:8px 9px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2)}
.appointment-chip span{font-size:8px;color:var(--muted-2)}
.appointment-chip strong{font-size:10px;font-weight:600}
.appointment-chip.accent{border-color:rgba(255,93,179,.35);background:rgba(255,93,179,.09)}
.appointment-chip.muted{opacity:.68}

.skeleton-stack{display:grid;gap:10px}
.skeleton{height:12px;border-radius:999px;background:var(--skeleton);position:relative;overflow:hidden}
.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:cherry-skeleton 1.35s infinite}
.skeleton-title{height:18px;width:45%}
.skeleton.short{width:62%}
.skeleton-card-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.skeleton-card{height:82px;border-radius:14px}
@keyframes cherry-skeleton{100%{transform:translateX(100%)}}

.modal-backdrop{position:fixed;inset:0;background:var(--modal-overlay);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:20px;z-index:120}
.modal-backdrop.open{display:flex}
.modal-card{width:min(100%,480px);background:var(--surface-raised);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-card);padding:22px}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.modal-head h3{margin:4px 0 0;font-size:18px}
.modal-card>p{color:var(--muted);font-size:12px;line-height:1.65;margin:16px 0 22px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px}
body.modal-open{overflow:hidden}

.toast-region{position:fixed;right:20px;bottom:20px;z-index:140;display:grid;gap:8px;width:min(360px,calc(100vw - 40px))}
.toast{background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card);padding:13px 15px;display:flex;align-items:flex-start;gap:10px;animation:toast-in .18s ease}
.toast-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-pink);margin-top:5px;flex:0 0 auto}
.toast strong{font-size:11px;display:block}
.toast span{font-size:10px;color:var(--muted);display:block;margin-top:2px;line-height:1.45}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:980px){
  .ds-grid-2{grid-template-columns:1fr}
  .ds-section-head{align-items:flex-start;flex-direction:column;gap:8px}
  .ds-section-head p{text-align:left}
  .calendar-preview{grid-template-columns:repeat(7,150px)}
}
@media(max-width:760px){
  .design-system-content{padding:18px;gap:14px}
  .ds-hero{padding:20px;flex-direction:column}
  .ds-hero h2{font-size:23px}
  .ds-section-head{padding:18px 18px 14px}
  .component-surface{padding:18px}
  .form-grid{grid-template-columns:1fr}
  .field-wide{grid-column:auto}
  .component-row-spaced{align-items:flex-start;flex-direction:column}
  .modal-actions{flex-direction:column-reverse}
  .modal-actions .button{width:100%}
  .skeleton-card-row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* v0.1.3 — Admin Shell & Navigation */
.sidebar{z-index:80}
.sidebar-nav{flex:1;overflow-y:auto;align-content:start;gap:18px;padding:2px 2px 12px;margin:0 -2px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.nav-section{display:grid;gap:7px}
.nav-section-label{padding:0 12px;color:var(--muted-2);font-size:8px;line-height:1.2;font-weight:700;letter-spacing:.16em}
.nav-section-items{display:grid;gap:4px}
.nav-item:hover{background:var(--surface-2);color:var(--text)}
.nav-item.active:hover{background:var(--nav-active)}
.sidebar-footer{margin-top:14px;flex:0 0 auto}
.sidebar-close{display:none;margin-left:auto;width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.sidebar-scrim{display:none}
.topbar-copy{min-width:0}
.topbar-copy h1,.topbar-copy .eyebrow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-nav{display:none}
.neutral-status{background:var(--neutral-bg);border-color:var(--neutral-border);color:var(--muted)}
.module-placeholder-hero h2{margin-bottom:8px}
.module-placeholder-grid .card{min-height:150px}

@media(max-width:760px){
  body.sidebar-open{overflow:hidden}
  .sidebar{width:min(86vw,320px);padding:18px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 28px 80px rgba(0,0,0,.32)}
  .sidebar-brand{padding:0 8px 18px}
  .sidebar-close{display:grid;place-items:center}
  .sidebar-nav{gap:17px;padding-bottom:8px}
  .nav-section-label{padding-left:10px}
  .nav-item{min-height:42px;padding:0 12px}
  .sidebar-footer{padding:14px 6px 0}
  .sidebar-scrim{display:block;position:fixed;inset:0;z-index:70;border:0;background:rgba(0,0,0,.46);opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  body.sidebar-open .sidebar-scrim{opacity:1;pointer-events:auto}
  .topbar{height:66px;padding:0 14px;gap:11px}
  .topbar-actions{gap:7px}
  .environment-badge{display:none}
  .topbar-copy{max-width:calc(100vw - 128px)}
  .topbar .eyebrow{font-size:8px}
  .topbar h1{font-size:14px}
  .admin-main{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .dashboard-content,.design-system-content{padding-bottom:28px}
  .mobile-nav{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;display:grid;grid-template-columns:repeat(4,1fr);min-height:58px;padding:5px;border:1px solid var(--border);border-radius:18px;background:var(--surface-raised);box-shadow:var(--shadow-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
  .mobile-nav-item{min-width:0;border:0;background:transparent;color:var(--muted);border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;font-size:8px;font-weight:600;cursor:pointer}
  .mobile-nav-item.active{background:var(--nav-active);color:var(--text)}
  .mobile-nav-icon{font-size:17px;line-height:1}
  .module-placeholder-grid .card{min-height:auto}
}

/* v0.1.4 — Public Shells */
.public-site{min-height:100vh;background:var(--bg);color:var(--text)}
.public-app{min-height:100vh;display:flex;flex-direction:column;background:
  radial-gradient(circle at 85% 8%,var(--overlay-glow),transparent 28%),
  var(--bg);transition:var(--transition-theme)}
.public-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border-soft);background:var(--topbar-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:var(--transition-theme)}
.public-header-inner{width:min(1180px,calc(100% - 40px));height:72px;margin:0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.public-brand{justify-self:start;display:inline-flex;align-items:center;min-width:0}
.public-brand-logo{width:152px;max-height:48px;object-fit:contain;object-position:left center}
.public-nav{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);transition:var(--transition-theme)}
.public-nav-link{min-height:34px;padding:0 16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;font-weight:600;transition:var(--transition-theme)}
.public-nav-link:hover{color:var(--text);background:var(--surface-2)}
.public-nav-link.active{color:var(--text);background:var(--nav-active);box-shadow:inset 0 0 0 1px var(--border)}
.public-theme-toggle{justify-self:end}
.public-main{width:min(1180px,calc(100% - 40px));margin:0 auto;flex:1;padding:56px 0 64px}
.public-eyebrow,.public-card-kicker{font-size:9px;letter-spacing:.16em;font-weight:700;color:var(--muted-2)}
.public-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:56px;align-items:center;min-height:460px}
.public-hero-copy h1,.public-page-head h1{margin:8px 0 14px;font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-.045em;font-weight:700}
.public-hero-copy p,.public-page-head p{max-width:640px;margin:0;color:var(--muted);font-size:13px;line-height:1.75}
.public-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.public-cta{min-width:180px}
.public-visual-card{position:relative;min-height:390px;border:1px solid var(--border);border-radius:32px;background:linear-gradient(145deg,var(--surface),var(--surface-soft));box-shadow:var(--shadow-card);overflow:hidden;display:grid;place-items:center;transition:var(--transition-theme)}
.public-visual-card::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,93,179,.11);filter:blur(24px)}
.public-visual-orbit{position:absolute;width:275px;height:275px;border-radius:50%;border:1px solid rgba(255,93,179,.28);box-shadow:0 0 0 42px rgba(255,93,179,.035),0 0 0 84px rgba(255,93,179,.018)}
.public-visual-core{position:relative;z-index:2;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-card)}
.public-hero-mark{width:122px;height:82px;object-fit:contain}
.public-visual-label{position:absolute;left:24px;bottom:22px;font-size:8px;letter-spacing:.18em;font-weight:700;color:var(--muted-2)}
.public-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.public-choice-card{position:relative;min-height:220px;padding:24px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);display:grid;grid-template-columns:48px 1fr auto;align-items:start;gap:18px;transition:transform .18s ease,var(--transition-theme);overflow:hidden}
.public-choice-card::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;bottom:-90px;background:var(--overlay-glow);filter:blur(8px);pointer-events:none}
.public-choice-card:hover{transform:translateY(-2px);border-color:rgba(255,93,179,.38);box-shadow:var(--shadow-card)}
.public-choice-number{width:40px;height:40px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--brand-pink);font-size:10px;font-weight:700}
.public-choice-card h2{margin:5px 0 8px;font-size:22px}
.public-choice-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.65;max-width:470px}
.public-choice-arrow{position:relative;z-index:1;font-size:22px;color:var(--muted);line-height:1}
.public-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:28px}
.public-page-head h1{font-size:clamp(34px,4.6vw,58px);max-width:760px}
.public-page-head p{max-width:700px}
/* v0.12.2.1 — Booking hierarchy compaction */
.public-booking-page-head{margin-top:-8px}
.public-booking-page-head h1{font-size:clamp(34px,3.2vw,48px);max-width:none;white-space:nowrap}
.public-payment-step>.public-payment-preview{margin-top:0}
.public-stepper{list-style:none;margin:0 0 18px;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);display:grid;grid-template-columns:repeat(4,1fr);gap:6px;transition:var(--transition-theme)}
.public-stepper li{min-height:54px;border-radius:12px;display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--muted);font-size:10px;transition:var(--transition-theme)}
.public-stepper li span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border);background:var(--surface-2);font-size:9px;font-weight:700}
.public-stepper li strong{font-weight:600;white-space:nowrap}
.public-stepper li.active{background:rgba(255,93,179,.08);color:var(--text)}
.public-stepper li.active span{background:var(--brand-pink);border-color:var(--brand-pink);color:#fff}
.public-flow-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.public-flow-panel,.public-summary-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);transition:var(--transition-theme)}
.public-flow-panel{min-height:420px;padding:24px}
.public-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid var(--border-soft)}
.public-panel-head h2,.public-summary-card h2{margin:5px 0 0;font-size:20px}
.public-empty-catalog{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px}
.public-empty-icon{width:52px;height:52px;border-radius:16px;border:1px solid rgba(255,93,179,.28);background:rgba(255,93,179,.08);display:grid;place-items:center;color:var(--brand-pink);font-size:23px;margin-bottom:16px}
.public-empty-catalog strong{font-size:15px}
.public-empty-catalog p{max-width:520px;margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.7}
.public-summary-card{position:sticky;top:92px;padding:22px;box-shadow:0 18px 48px rgba(0,0,0,.06)}
.public-summary-list{display:grid;margin:20px 0;border-top:1px solid var(--border-soft)}
.public-summary-list>div{min-height:46px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:10px}
.public-summary-list span{color:var(--muted)}
.public-summary-list strong{font-size:11px;font-weight:600}
.public-summary-action{width:100%}
.public-summary-action:disabled{opacity:.42;cursor:not-allowed;filter:saturate(.45)}
.public-summary-card>p{margin:10px 0 0;text-align:center;color:var(--muted-2);font-size:9px}
.gift-preview-card{min-height:138px;margin-top:18px;padding:18px;border-radius:16px;border:1px solid rgba(255,93,179,.26);background:linear-gradient(135deg,rgba(255,93,179,.11),var(--surface-2));display:flex;align-items:center;gap:14px;position:relative;overflow:hidden}
.gift-preview-card::after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-40px;top:-46px;background:rgba(255,93,179,.14);filter:blur(8px)}
.gift-preview-mark{width:72px;height:54px;object-fit:contain;position:relative;z-index:1}
.gift-preview-card div{position:relative;z-index:1;display:grid;gap:3px}
.gift-preview-card span{font-size:8px;letter-spacing:.14em;color:var(--muted-2);font-weight:700}
.gift-preview-card strong{font-size:18px}
.public-location-section{margin-top:28px;padding:24px;border:1px solid var(--border);border-radius:var(--radius-card);background:linear-gradient(135deg,var(--surface),var(--surface-soft));display:flex;align-items:center;justify-content:space-between;gap:24px;transition:var(--transition-theme)}
.public-location-copy h2{margin:5px 0 8px;font-size:24px}
.public-location-copy address{margin:0;color:var(--text-soft);font-size:12px;font-style:normal;font-weight:600}
.public-location-copy p{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.6}
.public-location-action{flex:0 0 auto;gap:8px}
.public-location-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-footer{border-top:1px solid var(--border-soft);background:var(--surface-soft);transition:var(--transition-theme)}
.public-footer-inner{width:min(1180px,calc(100% - 40px));min-height:78px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px}
.public-footer-legal{justify-self:start;display:flex;align-items:center;justify-content:flex-start;gap:7px;color:var(--muted-2);font-size:10px;line-height:1.5;text-align:left;flex-wrap:wrap}
.public-footer-legal a{color:inherit;font-weight:600;transition:color .15s ease}
.public-footer-legal a:hover{color:var(--accent)}
.public-footer-separator{opacity:.55}
.public-footer-contact{justify-self:end;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.public-footer-address{display:inline-flex;align-items:center;gap:7px;min-width:0;color:var(--muted);font-size:9px;font-weight:500;white-space:nowrap;transition:color .15s ease}
.public-footer-address:hover{color:var(--text)}
.public-footer-address svg{width:14px;height:14px;flex:0 0 auto;fill:none;stroke:var(--brand-pink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-footer-contact-separator{width:1px;height:20px;background:var(--border);flex:0 0 auto}
.public-footer-social{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.social-icon-button{width:31px;height:31px;border-radius:999px;border:1px solid var(--border);background:var(--surface);display:inline-grid;place-items:center;color:var(--text-soft);transition:var(--transition-theme)}
.social-icon-button:hover{border-color:rgba(255,93,179,.42);color:var(--brand-pink);transform:translateY(-1px)}
.social-icon-button svg{width:14px;height:14px;display:block;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.social-icon-button:last-child svg{fill:currentColor;stroke:none}

@media(max-width:900px){
  .public-footer-inner{grid-template-columns:1fr;gap:10px;padding:14px 0}
  .public-footer-legal{justify-self:start}
  .public-footer-contact{justify-self:start;justify-content:flex-start}
  .public-header-inner{grid-template-columns:1fr auto auto}
  .public-hero{grid-template-columns:1fr;gap:28px;min-height:auto}
  .public-visual-card{min-height:300px}
  .public-choice-grid{grid-template-columns:1fr}
  .public-flow-layout{grid-template-columns:1fr}
  .public-summary-card{position:static}
}
@media(max-width:680px){
  .public-location-section{margin-top:18px;padding:20px;align-items:flex-start;flex-direction:column;gap:18px}
  .public-location-copy h2{font-size:21px}
  .public-location-action{width:100%}
  .public-header-inner,.public-main,.public-footer-inner{width:min(100% - 28px,1180px)}
  .public-header-inner{height:66px;gap:9px;grid-template-columns:minmax(0,1fr) auto auto}
  .public-brand-logo{width:110px;max-height:40px}
  .public-nav{gap:1px;padding:3px}
  .public-nav-link{min-height:32px;padding:0 10px;font-size:9px}
  .public-theme-toggle{width:34px;height:34px;min-height:34px;padding:0;justify-content:center}
  .public-theme-toggle .theme-toggle-label{display:none}
  .public-main{padding:34px 0 46px}
  .public-hero-copy h1,.public-page-head h1{font-size:38px}
  .public-hero-copy p,.public-page-head p{font-size:12px}
  .public-hero-actions{display:grid;grid-template-columns:1fr}
  .public-cta{width:100%}
  .public-visual-card{min-height:260px;border-radius:24px}
  .public-visual-orbit{width:200px;height:200px;box-shadow:0 0 0 30px rgba(255,93,179,.035),0 0 0 60px rgba(255,93,179,.018)}
  .public-visual-core{width:132px;height:132px}
  .public-hero-mark{width:92px;height:65px}
  .public-choice-card{grid-template-columns:42px 1fr;min-height:auto;padding:20px;gap:14px}
  .public-choice-arrow{position:absolute;right:18px;top:18px}
  .public-page-head{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:20px}
  .public-booking-page-head{margin-top:-6px}
  .public-booking-page-head h1{font-size:36px;white-space:normal}
  .public-stepper{overflow-x:auto;grid-template-columns:repeat(4,132px);padding:7px;margin-bottom:14px}
  .public-stepper li{min-height:48px;padding:0 10px;gap:8px}
  .public-flow-panel{padding:18px;min-height:360px}
  .public-panel-head{padding-bottom:16px}
  .public-empty-catalog{min-height:270px;padding:22px 10px}
  .public-summary-card{padding:18px}



  .public-footer-inner{min-height:0;grid-template-columns:1fr;gap:12px;padding:18px 0}
  .public-footer-legal{justify-self:start;justify-content:flex-start;gap:4px 7px;text-align:left;font-size:9px}
  .public-footer-contact{justify-self:start;justify-content:flex-start;flex-wrap:wrap;gap:8px}
  .public-footer-address{white-space:normal;line-height:1.45;font-size:9px}
  .public-footer-contact-separator{display:none}
  .public-footer-social{gap:7px}
}

/* v0.2.0 — Services Catalog Core */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.badge-pink{background:rgba(255,93,179,.10);border-color:rgba(255,93,179,.28);color:var(--brand-pink)}
.services-content,.service-form-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}
.services-hero,.service-form-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;transition:var(--transition-theme)}
.services-hero h2,.service-form-hero h2{margin:5px 0 8px;font-size:26px;line-height:1.2}
.services-hero p,.service-form-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;max-width:760px}
.service-alert{padding:12px 14px;border-radius:12px;border:1px solid var(--border);font-size:11px}
.service-alert-success{background:var(--status-bg);border-color:var(--status-border);color:var(--status-text)}
.service-alert-error{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}
.service-alert-info{display:flex;align-items:flex-start;gap:8px;background:color-mix(in srgb,var(--brand-pink) 6%,var(--surface-soft));border-color:color-mix(in srgb,var(--brand-pink) 24%,var(--border));color:var(--text-soft);line-height:1.55}
.service-alert-info .ui-icon{width:14px;height:14px;flex:0 0 auto;fill:none;stroke:var(--brand-pink);stroke-width:1.8;margin-top:1px}
.service-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.service-stat{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"label value" "sub value";align-items:center;gap:3px 16px}
.service-stat span{grid-area:label;font-size:8px;letter-spacing:.13em;color:var(--muted-2);font-weight:700}
.service-stat small{grid-area:sub;font-size:9px;color:var(--muted)}
.service-stat strong{grid-area:value;justify-self:end;font-size:26px}
.service-list-card,.service-editor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;transition:var(--transition-theme)}
.service-list-head,.service-editor-head{padding:18px 20px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border-soft)}
.service-list-head h3,.service-editor-head h3{margin:4px 0 0;font-size:16px}
.service-editor-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.55;text-align:right;max-width:380px}
.service-empty-state{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.service-empty-icon{width:52px;height:52px;border-radius:16px;border:1px solid rgba(255,93,179,.28);background:rgba(255,93,179,.08);display:grid;place-items:center;color:var(--brand-pink);font-size:22px;margin-bottom:14px}
.service-empty-state strong{font-size:15px}.service-empty-state p{max-width:560px;color:var(--muted);font-size:11px;line-height:1.7;margin:7px 0 18px}
.service-table-wrap{overflow-x:auto}.service-table{width:100%;border-collapse:collapse;min-width:940px}.service-table th,.service-table td{padding:14px 16px;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle;font-size:10px}.service-table th{font-size:8px;letter-spacing:.12em;color:var(--muted-2);font-weight:700;background:var(--surface-soft)}.service-table tbody tr:hover{background:var(--table-row-hover)}.service-table tbody tr:last-child td{border-bottom:0}.service-table td>small,.service-name-cell small{display:block;color:var(--muted-2);font-size:8px;margin-top:3px}.service-name-cell{display:flex;align-items:center;gap:10px}.service-name-cell strong{font-size:11px}.service-thumb{width:48px;height:48px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);overflow:hidden;display:grid;place-items:center;color:var(--brand-pink);flex:0 0 auto}.service-thumb img{width:100%;height:100%;object-fit:cover}.service-badges{display:flex;gap:5px;flex-wrap:wrap}.service-actions-cell{text-align:right!important}.service-edit-button{min-height:34px;padding:0 12px;font-size:9px}
.service-form-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}.service-back-link{font-size:10px;color:var(--muted);transition:color .15s ease}.service-back-link:hover{color:var(--text)}
.service-editor{display:grid;gap:18px}.service-editor-body{padding:20px}.field-error{display:block;color:var(--danger);font-size:9px;line-height:1.45}.input-suffix{height:var(--control-height);display:flex;align-items:center;border:1px solid var(--border);background:var(--input-bg);border-radius:var(--radius-control);overflow:hidden}.input-suffix input{height:100%!important;border:0!important;border-radius:0!important;box-shadow:none!important;min-width:0}.input-suffix>span{height:100%;display:flex;align-items:center;padding:0 12px;border-left:1px solid var(--border);color:var(--muted);font-size:10px}
.service-switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.service-toggle-card{min-height:82px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;cursor:pointer}.service-toggle-copy{display:grid;gap:4px}.service-toggle-copy strong{font-size:11px}.service-toggle-copy small{font-size:9px;color:var(--muted);line-height:1.45}
.service-image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.service-image-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface-soft)}.service-image-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.service-image-card>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px}.service-image-card span{font-size:8px;color:var(--muted)}.service-image-delete{border:0;background:transparent;color:var(--danger);font-size:8px;font-weight:600;cursor:pointer;padding:0}.service-upload{min-height:126px;border:1px dashed rgba(255,93,179,.36);border-radius:16px;background:rgba(255,93,179,.045);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:20px;cursor:pointer}.service-upload:hover{border-color:rgba(255,93,179,.68);background:rgba(255,93,179,.07)}.service-upload input{position:absolute;opacity:0;pointer-events:none}.service-upload-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,93,179,.13);color:var(--brand-pink);font-size:18px;margin-bottom:3px}.service-upload strong{font-size:11px}.service-upload small{font-size:9px;color:var(--muted)}.service-upload-error{margin-top:8px}.service-form-actions{display:flex;justify-content:flex-end;gap:10px}.service-danger-zone{border:1px solid var(--danger-border);background:var(--danger-bg);border-radius:var(--radius-card);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px}.service-danger-zone strong{display:block;font-size:12px;margin:4px 0}.service-danger-zone p{margin:0;color:var(--muted);font-size:9px;line-height:1.55;max-width:650px}
.public-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:18px}.public-service-card{border:1px solid var(--border);border-radius:16px;background:var(--surface-soft);color:var(--text);padding:0;overflow:hidden;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.public-service-card:hover{transform:translateY(-2px);border-color:rgba(255,93,179,.38)}.public-service-card.selected{border-color:rgba(255,93,179,.74);box-shadow:0 0 0 2px rgba(255,93,179,.10)}.public-service-photo{aspect-ratio:16/9;background:var(--surface-2);display:grid;place-items:center;color:var(--brand-pink);font-size:24px;overflow:hidden}.public-service-photo img{width:100%;height:100%;object-fit:cover}.public-service-copy{padding:14px}.public-service-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.public-service-title strong{font-size:12px;line-height:1.35}.public-service-title span{font-size:11px;font-weight:700;white-space:nowrap}.public-service-copy p{margin:7px 0 10px;color:var(--muted);font-size:9px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.public-service-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.public-service-meta span{font-size:8px;color:var(--muted);background:var(--surface);border:1px solid var(--border-soft);border-radius:999px;padding:5px 7px}
@media(max-width:900px){.service-image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.services-content,.service-form-content{padding:18px;padding-bottom:94px}.services-hero,.service-form-hero{flex-direction:column;padding:20px}.services-hero .button{width:100%}.service-stats{grid-template-columns:1fr}.service-stat{min-height:74px}.service-list-head,.service-editor-head{align-items:flex-start;flex-direction:column}.service-editor-head p{text-align:left}.service-switch-grid{grid-template-columns:1fr}.service-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-form-actions{position:sticky;bottom:76px;background:var(--topbar-bg);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:14px;padding:10px;z-index:20}.service-form-actions .button{flex:1}.service-danger-zone{align-items:flex-start;flex-direction:column}.service-danger-zone form,.service-danger-zone .button{width:100%}.public-service-grid{grid-template-columns:1fr}}


/* v0.2.0 — Service Gallery & Primary Image hotfix */
.field-help{display:block;color:var(--muted-2);font-size:8px;line-height:1.45;margin-top:1px}
.service-gallery-admin-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-soft)}
.service-gallery-admin-note strong{font-size:9px}.service-gallery-admin-note span{font-size:8px;color:var(--muted)}
.service-image-card.is-primary{border-color:rgba(255,93,179,.50);box-shadow:0 0 0 1px rgba(255,93,179,.08)}
.service-image-preview{position:relative}.service-image-primary-badge{position:absolute;left:8px;top:8px;border:1px solid rgba(255,93,179,.35);background:rgba(10,10,10,.72);backdrop-filter:blur(8px);color:#fff;border-radius:999px;padding:5px 8px;font-size:7px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.service-image-card-meta{display:grid!important;gap:8px}.service-image-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.service-image-action,.service-image-icon-action{border:0;background:transparent;color:var(--muted);font-size:8px;font-weight:600;cursor:pointer;padding:0}.service-image-action:hover,.service-image-icon-action:hover{color:var(--brand-pink)}
.service-image-icon-action{width:24px;height:24px;border:1px solid var(--border);border-radius:7px;background:var(--surface);display:inline-grid;place-items:center;font-size:11px}.service-image-icon-action:disabled{opacity:.28;cursor:not-allowed}

.public-service-card{display:flex;flex-direction:column}.public-service-card.selected{border-color:rgba(255,93,179,.74);box-shadow:0 0 0 2px rgba(255,93,179,.10)}
.public-service-gallery-trigger{position:relative;border:0;width:100%;padding:0;cursor:zoom-in;color:inherit;font:inherit}.public-service-gallery-trigger:focus-visible{box-shadow:inset var(--focus-ring)}
.public-photo-count{position:absolute;right:10px;bottom:10px;background:rgba(10,10,10,.74);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:6px 9px;font-size:8px;font-weight:600;line-height:1}
.public-service-select{width:100%;flex:1;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer;font:inherit}.public-service-select:focus-visible{box-shadow:inset var(--focus-ring)}
.public-service-select-label{display:inline-flex;margin-top:11px;color:var(--brand-pink);font-size:8px;font-weight:700;letter-spacing:.04em}

.service-gallery-modal{position:fixed;inset:0;z-index:160;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.service-gallery-modal.open{display:flex}.service-gallery-dialog{width:min(960px,100%);max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--surface-raised);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-card)}
.service-gallery-head{min-height:64px;padding:13px 16px 13px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-soft)}.service-gallery-head strong{display:block;font-size:13px;margin-top:3px}.service-gallery-close{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.service-gallery-stage{position:relative;min-height:360px;background:#080808;display:grid;place-items:center;overflow:hidden}.service-gallery-slide{max-width:100%;max-height:min(68vh,720px);width:auto;height:auto;object-fit:contain;display:block}.service-gallery-slide[hidden]{display:none}
.service-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(10,10,10,.62);color:#fff;display:grid;place-items:center;font-size:28px;cursor:pointer;backdrop-filter:blur(8px)}.service-gallery-nav.prev{left:14px}.service-gallery-nav.next{right:14px}
.service-gallery-footer{min-height:66px;padding:10px 16px;display:flex;align-items:center;gap:14px;border-top:1px solid var(--border-soft)}.service-gallery-footer>span{font-size:9px;color:var(--muted);white-space:nowrap}.service-gallery-thumbs{display:flex;gap:7px;overflow:auto;padding:1px}.service-gallery-thumb{width:54px;height:42px;flex:0 0 auto;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);cursor:pointer;opacity:.58}.service-gallery-thumb.active{opacity:1;border-color:var(--brand-pink);box-shadow:0 0 0 1px rgba(255,93,179,.18)}.service-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}

@media(max-width:760px){.service-gallery-admin-note{align-items:flex-start;flex-direction:column}.service-image-card-meta{align-items:flex-start}.service-image-actions{width:100%}.service-gallery-modal{padding:0}.service-gallery-dialog{width:100%;height:100%;max-height:none;border-radius:0;border:0}.service-gallery-stage{min-height:0}.service-gallery-slide{max-height:calc(100vh - 150px);max-width:100%}.service-gallery-head{padding-left:16px}.service-gallery-nav{width:38px;height:38px}.service-gallery-footer{padding-bottom:max(10px,env(safe-area-inset-bottom))}}


/* v0.2.1 — Iconography System */
.ui-icon{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.button-with-icon{gap:8px}.button-with-icon .ui-icon{width:15px;height:15px}

.nav-item-main{display:flex;align-items:center;gap:11px;min-width:0}
.nav-item-icon{width:18px;height:18px;display:grid;place-items:center;color:var(--muted-2);transition:color .16s ease}
.nav-item-icon .ui-icon{width:17px;height:17px}
.nav-item:hover .nav-item-icon,.nav-item.active .nav-item-icon{color:var(--brand-pink)}

.mobile-nav-icon{display:grid;place-items:center;height:19px}
.mobile-nav-icon .ui-icon{width:18px;height:18px}
.mobile-nav-item.active .mobile-nav-icon{color:var(--brand-pink)}

.public-choice-icon{width:40px;height:40px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;color:var(--brand-pink);transition:var(--transition-theme)}
.public-choice-icon .ui-icon{width:19px;height:19px;stroke-width:1.75}
.public-choice-card:hover .public-choice-icon{border-color:rgba(255,93,179,.42);background:rgba(255,93,179,.075)}
.public-location-action .ui-icon{width:15px;height:15px}

.public-empty-icon .ui-icon,.service-empty-icon .ui-icon{width:22px;height:22px}
.public-photo-placeholder{display:grid;place-items:center;color:var(--muted-2)}
.public-photo-placeholder .ui-icon{width:30px;height:30px}
.public-service-meta span{display:inline-flex;align-items:center;gap:5px}
.public-service-meta .meta-icon{width:12px;height:12px;color:var(--muted-2)}

.service-thumb-placeholder{display:grid;place-items:center;color:var(--muted-2)}
.service-thumb-placeholder .ui-icon{width:18px;height:18px}
.service-back-link{display:inline-flex;align-items:center;gap:7px}
.service-back-link .ui-icon{width:14px;height:14px}
.service-upload-icon .ui-icon{width:17px;height:17px}
.service-image-icon-action .ui-icon{width:13px;height:13px}

.card-with-icon{position:relative;padding-top:54px}
.card-symbol{position:absolute;top:18px;left:20px;width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--brand-pink)}
.card-symbol .ui-icon{width:13px;height:13px}

.icon-library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.icon-library-item{min-height:82px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);display:flex;align-items:center;gap:11px;padding:14px;color:var(--text);transition:var(--transition-theme)}
.icon-library-item>span{width:34px;height:34px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;color:var(--brand-pink);flex:0 0 auto}
.icon-library-item .ui-icon{width:17px;height:17px}
.icon-library-item small{font-size:9px;color:var(--muted);line-height:1.35}

@media(max-width:900px){.icon-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .public-choice-icon{width:38px;height:38px}
  .public-choice-icon .ui-icon{width:18px;height:18px}
  .icon-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){.icon-library-grid{grid-template-columns:1fr 1fr}.icon-library-item{padding:11px;gap:8px}.icon-library-item>span{width:30px;height:30px}}


/* v0.2.2 — Image Framing / Cover Positioning */
.service-crop-image{
  object-position:var(--crop-x,50%) var(--crop-y,50%)!important;
  transform:scale(var(--crop-zoom,1));
  transform-origin:var(--crop-x,50%) var(--crop-y,50%);
}
.service-thumb .service-crop-image,.public-service-photo .service-crop-image,.service-image-preview .service-crop-image{transition:transform .16s ease,object-position .16s ease}
.service-image-preview{aspect-ratio:16/9;overflow:hidden;background:#080808}
.service-image-preview>img{width:100%;height:100%;aspect-ratio:auto!important;object-fit:cover}
.service-image-frame-action{display:inline-flex!important;align-items:center;gap:4px}.service-image-frame-action .ui-icon{width:12px;height:12px}

.cover-editor-modal{position:fixed;inset:0;z-index:190;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.74);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.cover-editor-modal.open{display:flex}
.cover-editor-dialog{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--surface-raised);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-card)}
.cover-editor-head{min-height:66px;padding:14px 16px 14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border-soft)}
.cover-editor-head h3{font-size:16px;margin:4px 0 0}.cover-editor-close{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.cover-editor-body{padding:20px}.cover-editor-help{margin:0 0 14px;color:var(--muted);font-size:10px;line-height:1.6}
.cover-editor-stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#080808;cursor:grab;touch-action:none;user-select:none}
.cover-editor-stage.dragging{cursor:grabbing}
.cover-editor-stage img{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none;will-change:transform,object-position}
.cover-editor-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 33.2%,rgba(255,255,255,.16) 33.2%,rgba(255,255,255,.16) 33.45%,transparent 33.45%,transparent 66.55%,rgba(255,255,255,.16) 66.55%,rgba(255,255,255,.16) 66.8%,transparent 66.8%),linear-gradient(to bottom,transparent 33.2%,rgba(255,255,255,.16) 33.2%,rgba(255,255,255,.16) 33.45%,transparent 33.45%,transparent 66.55%,rgba(255,255,255,.16) 66.55%,rgba(255,255,255,.16) 66.8%,transparent 66.8%);opacity:.38}
.cover-editor-ratio{position:absolute;right:10px;bottom:10px;z-index:2;padding:6px 8px;border-radius:999px;background:rgba(10,10,10,.68);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:8px;font-weight:600;backdrop-filter:blur(8px)}
.cover-editor-controls{display:flex;align-items:center;gap:14px;margin-top:16px}.cover-editor-zoom{flex:1;display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:10px;color:var(--text-soft);font-size:9px}.cover-editor-zoom input{width:100%;accent-color:var(--brand-pink)}.cover-editor-zoom output{min-width:42px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.cover-editor-actions{padding:14px 20px 20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border-soft)}
body.cover-editor-open{overflow:hidden}

@media(max-width:760px){
  .cover-editor-modal{padding:0}.cover-editor-dialog{width:100%;height:100%;max-height:none;border-radius:0;border:0;display:flex;flex-direction:column}.cover-editor-body{padding:16px}.cover-editor-head{padding-left:16px}.cover-editor-controls{align-items:stretch;flex-direction:column}.cover-editor-zoom{grid-template-columns:auto minmax(0,1fr) auto}.cover-editor-actions{margin-top:auto;padding-bottom:max(20px,env(safe-area-inset-bottom))}.cover-editor-actions .button{flex:1}.service-image-grid{grid-template-columns:1fr 1fr}
}


/* v0.3.0 — Availability Core */
.availability-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}
.availability-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;transition:var(--transition-theme)}
.availability-hero h2{margin:5px 0 8px;font-size:26px;line-height:1.2}.availability-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;max-width:790px}
.availability-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.availability-stats article{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:15px 16px;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon label value" "icon sub value";align-items:center;gap:2px 11px}.availability-stat-icon{grid-area:icon;width:34px;height:34px;border-radius:11px;background:rgba(255,93,179,.08);color:var(--brand-pink);display:grid;place-items:center}.availability-stat-icon .ui-icon{width:17px;height:17px}.availability-stats span{grid-area:label;font-size:8px;letter-spacing:.12em;color:var(--muted-2);font-weight:700}.availability-stats small{grid-area:sub;color:var(--muted);font-size:9px}.availability-stats strong{grid-area:value;justify-self:end;font-size:22px}
.availability-grid-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr);gap:18px;align-items:start}.availability-side-stack{display:grid;gap:18px}.availability-grid-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.availability-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;transition:var(--transition-theme)}.availability-card-head{padding:18px 20px 14px;border-bottom:1px solid var(--border-soft);display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.availability-card-head.compact{border-bottom:0;padding-bottom:8px}.availability-card-head h3{margin:4px 0 0;font-size:16px}.availability-card-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.55;text-align:right;max-width:350px}
.weekly-schedule{padding:0 20px 20px}.weekday-row{min-height:67px;border-bottom:1px solid var(--border-soft);display:grid;grid-template-columns:160px minmax(260px,1fr) 70px;align-items:center;gap:16px}.weekday-row:last-of-type{border-bottom:0}.weekday-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:11px}.weekday-toggle input{position:absolute;opacity:0;pointer-events:none}.weekday-check{width:30px;height:18px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);position:relative;transition:var(--transition-theme)}.weekday-check::after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;left:2px;top:2px;background:var(--muted-2);transition:transform .18s ease,background .18s ease}.weekday-toggle input:checked+.weekday-check{border-color:rgba(255,93,179,.45);background:rgba(255,93,179,.12)}.weekday-toggle input:checked+.weekday-check::after{transform:translateX(12px);background:var(--brand-pink)}.weekday-times{display:flex;align-items:flex-end;gap:10px}.weekday-times label{display:grid;gap:4px;flex:1}.weekday-times label span{font-size:8px;color:var(--muted-2)}.weekday-times input{height:38px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:10px;padding:0 10px;font:inherit;font-size:10px}.weekday-times input:disabled{opacity:.35}.weekday-separator{color:var(--muted-2);padding-bottom:10px}.weekday-state{text-align:right;font-size:8px;color:var(--muted-2)}.availability-form-actions{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border-soft);margin-top:8px}
.availability-settings-form{padding:12px 20px 20px;display:grid;gap:14px}.availability-settings-form .field small{color:var(--muted-2);font-size:8px;line-height:1.5}.availability-settings-form .button{justify-self:end}.inline-rule-form{padding:10px 20px 16px;display:grid;grid-template-columns:1.2fr .8fr .8fr auto;gap:9px;align-items:end}.inline-rule-form .field{gap:4px}.inline-rule-form .field select,.inline-rule-form .field input{height:38px;font-size:9px}.icon-only-button{width:38px;height:38px;min-height:38px;padding:0}.rule-list{border-top:1px solid var(--border-soft)}.rule-row{min-height:50px;padding:9px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border-soft)}.rule-row:last-child{border-bottom:0}.rule-row>div{display:grid;gap:2px}.rule-row strong{font-size:10px}.rule-row span{font-size:8px;color:var(--muted)}.rule-row .icon-button{width:30px;height:30px}.availability-empty-copy{padding:14px 20px;margin:0;color:var(--muted);font-size:9px}
.exception-form{padding:16px 20px;display:grid;grid-template-columns:1.1fr 1.1fr .8fr .8fr auto;gap:10px;align-items:end;border-bottom:1px solid var(--border-soft)}.exception-form .field input,.exception-form .field select{height:39px;font-size:9px}.exception-list{display:grid}.exception-row{min-height:58px;padding:10px 20px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;border-bottom:1px solid var(--border-soft)}.exception-row:last-child{border-bottom:0}.exception-date{display:grid;gap:2px}.exception-date strong{font-size:10px}.exception-date span{font-size:8px;color:var(--muted)}.exception-row .icon-button{width:30px;height:30px}
.preview-form{padding:16px 20px;display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;align-items:end;border-bottom:1px solid var(--border-soft)}.preview-form .field select,.preview-form .field input{height:39px;font-size:9px}.preview-result{padding:18px 20px}.preview-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.preview-result-head>div{display:grid;gap:3px}.preview-result-head strong{font-size:11px}.preview-result-head span{font-size:8px;color:var(--muted)}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.slot-chip{border:1px solid var(--border);background:var(--surface-soft);border-radius:11px;padding:9px;text-align:center;display:grid;gap:2px}.slot-chip strong{font-size:11px;color:var(--text)}.slot-chip small{font-size:7px;color:var(--muted)}.preview-note{margin:14px 0 0;color:var(--muted-2);font-size:8px;line-height:1.55}.preview-empty{min-height:150px;padding:24px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:9px}.preview-empty .ui-icon{width:17px;height:17px;color:var(--brand-pink)}.preview-empty-idle{min-height:205px}
.block-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.block-form,.vacation-form{padding:18px 20px 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.block-form .availability-form-actions,.vacation-form .availability-form-actions{grid-column:1/-1}.block-list{display:grid}.block-row{min-height:78px;padding:13px 20px;display:grid;grid-template-columns:auto 1fr minmax(170px,auto) auto;gap:14px;align-items:center;border-bottom:1px solid var(--border-soft)}.block-row:last-child{border-bottom:0}.block-icon{width:38px;height:38px;border-radius:12px;background:rgba(255,93,179,.08);color:var(--brand-pink);display:grid;place-items:center}.block-icon .ui-icon{width:18px;height:18px}.block-main{display:grid;gap:4px}.block-title{display:flex;align-items:center;gap:8px}.block-title strong{font-size:11px}.block-main>span{font-size:8px;color:var(--muted)}.block-time{display:grid;gap:3px;text-align:right}.block-time strong{font-size:9px}.block-time span{font-size:8px;color:var(--muted)}.availability-empty-state{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px}.availability-empty-state>div{width:46px;height:46px;border-radius:15px;background:rgba(255,93,179,.08);color:var(--brand-pink);display:grid;place-items:center;margin-bottom:12px}.availability-empty-state>div .ui-icon{width:20px;height:20px}.availability-empty-state strong{font-size:12px}.availability-empty-state p{margin:5px 0 0;color:var(--muted);font-size:9px}
@media(max-width:1050px){.availability-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-grid-main{grid-template-columns:1fr}.availability-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-grid-bottom{grid-template-columns:1fr}.exception-form{grid-template-columns:repeat(2,minmax(0,1fr))}.exception-form .button{grid-column:1/-1;justify-self:end}.preview-form{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-form .button{grid-column:1/-1;justify-self:end}}
@media(max-width:760px){.availability-content{padding:18px;padding-bottom:94px}.availability-hero{padding:20px;flex-direction:column}.availability-hero .button{width:100%}.availability-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-stats article{padding:13px;grid-template-columns:auto 1fr;grid-template-areas:"icon value" "label label" "sub sub"}.availability-stats strong{font-size:19px}.availability-side-stack{grid-template-columns:1fr}.availability-card-head{align-items:flex-start;flex-direction:column}.availability-card-head p{text-align:left}.weekly-schedule{padding:0 16px 16px}.weekday-row{grid-template-columns:1fr auto;gap:8px;padding:11px 0}.weekday-times{grid-column:1/-1}.weekday-state{grid-row:1;grid-column:2}.inline-rule-form{grid-template-columns:1fr 1fr}.inline-rule-form .field:first-of-type{grid-column:1/-1}.inline-rule-form .icon-only-button{align-self:end}.exception-form,.preview-form{grid-template-columns:1fr}.exception-form .button,.preview-form .button{grid-column:auto;width:100%;justify-self:stretch}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.block-form-grid{grid-template-columns:1fr}.block-form,.vacation-form{grid-template-columns:1fr}.field-wide,.block-form .availability-form-actions,.vacation-form .availability-form-actions{grid-column:auto}.block-row{grid-template-columns:auto 1fr auto}.block-time{grid-column:2/4;text-align:left}.block-row form{grid-row:1;grid-column:3}.preview-result-head{flex-direction:column}.availability-form-actions .button{width:100%}}
@media(max-width:430px){.availability-stats{grid-template-columns:1fr 1fr}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weekday-times{gap:6px}.weekday-separator{display:none}}


/* v0.4.0 — Admin Calendar Core */
.calendar-content{padding:32px;max-width:1600px;margin:0 auto;display:grid;gap:18px}.calendar-flash{margin:0}.alert-success{background:var(--status-bg);border:1px solid var(--status-border);color:var(--status-text)}
.calendar-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.calendar-hero h2{margin:5px 0 8px;font-size:26px}.calendar-hero p{margin:0;max-width:820px;color:var(--muted);font-size:12px;line-height:1.65}.calendar-new-button{gap:8px;white-space:nowrap}.calendar-new-button .ui-icon{width:16px;height:16px}
.calendar-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.calendar-stats article{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:15px 16px;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"icon label value" "icon sub value";align-items:center;gap:2px 11px}.calendar-stat-icon{grid-area:icon;width:34px;height:34px;border-radius:11px;background:rgba(255,93,179,.08);color:var(--brand-pink);display:grid;place-items:center}.calendar-stat-icon .ui-icon{width:17px;height:17px}.calendar-stats span{grid-area:label;font-size:8px;letter-spacing:.12em;color:var(--muted-2);font-weight:700}.calendar-stats small{grid-area:sub;color:var(--muted);font-size:9px}.calendar-stats strong{grid-area:value;justify-self:end;font-size:22px}.calendar-stats .calendar-stat-text{font-size:15px;letter-spacing:.08em}
.calendar-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.calendar-toolbar{min-height:72px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border-soft)}.calendar-range-controls{display:flex;align-items:center;gap:9px;min-width:0}.calendar-range-controls h3{margin:0 0 0 8px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-today{min-height:38px;padding:0 14px;font-size:10px}.calendar-view-tabs{display:flex;padding:3px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft)}.calendar-view-tab{min-width:68px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:9px;color:var(--muted);font-weight:600}.calendar-view-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 8px rgba(0,0,0,.08)}
.calendar-month-wrap{overflow:auto}.calendar-month-weekdays,.calendar-month-grid{min-width:900px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-month-weekdays{border-bottom:1px solid var(--border-soft);background:var(--surface-soft)}.calendar-month-weekdays div{height:34px;display:flex;align-items:center;padding:0 10px;font-size:8px;color:var(--muted-2);font-weight:700;letter-spacing:.08em}.calendar-month-day{min-height:132px;border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);padding:8px;background:var(--surface);transition:background .15s ease}.calendar-month-day:nth-child(7n){border-right:0}.calendar-month-day.outside{background:var(--surface-soft);opacity:.55}.calendar-month-day.today{box-shadow:inset 0 0 0 1px rgba(255,93,179,.48)}.calendar-day-number{width:28px;height:28px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-size:9px;cursor:pointer}.calendar-month-day.today .calendar-day-number{background:var(--brand-pink);color:#fff;font-weight:700}.calendar-day-events{display:grid;gap:4px;margin-top:3px}.calendar-event{min-height:27px;width:100%;border:0;border-left:2px solid var(--brand-pink);border-radius:6px;background:rgba(255,93,179,.08);color:var(--text);padding:4px 6px;text-align:left;display:flex;align-items:center;gap:5px;overflow:hidden;font:inherit;cursor:pointer}.calendar-event span{font-size:7px;color:var(--muted);flex:0 0 auto}.calendar-event strong{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.block{border-left-color:var(--muted-2);background:var(--neutral-bg);cursor:default}.calendar-more{font-size:7px;color:var(--muted);padding-left:5px}
.status-completed{--event-color:var(--success);border-color:var(--success)!important}.status-no_show,.status-no-show{--event-color:var(--warning);border-color:var(--warning)!important}.status-cancelled{--event-color:var(--muted-2);border-color:var(--muted-2)!important;opacity:.58}.status-payment_pending{--event-color:var(--warning);border-color:var(--warning)!important}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:980px}.calendar-week-day{min-height:520px;border-right:1px solid var(--border-soft)}.calendar-week-day:last-child{border-right:0}.calendar-week-day>header{height:66px;border-bottom:1px solid var(--border-soft);display:grid;place-items:center;background:var(--surface-soft)}.calendar-week-day>header button{border:0;background:transparent;color:var(--text);display:grid;gap:2px;place-items:center;cursor:pointer}.calendar-week-day>header span{font-size:8px;color:var(--muted);font-weight:700;text-transform:uppercase}.calendar-week-day>header strong{font-size:16px}.calendar-week-day.today>header strong{width:32px;height:32px;border-radius:10px;background:var(--brand-pink);color:#fff;display:grid;place-items:center}.calendar-week-events{padding:8px;display:grid;align-content:start;gap:7px}.calendar-week-event{border:1px solid var(--border);border-left:3px solid var(--brand-pink);border-radius:10px;background:var(--surface-soft);color:var(--text);padding:9px;text-align:left;display:grid;gap:3px;font:inherit;cursor:pointer}.calendar-week-event span{font-size:7px;color:var(--muted)}.calendar-week-event strong{font-size:9px;line-height:1.3}.calendar-week-event small{font-size:7px;color:var(--muted);line-height:1.35}.calendar-week-event.block{border-left-color:var(--muted-2);cursor:default;opacity:.75}.calendar-week-empty{height:48px;border:1px dashed var(--border);border-radius:10px;background:transparent;color:var(--muted-2);font:inherit;font-size:8px;cursor:pointer}
.calendar-day-view{display:grid;grid-template-columns:180px minmax(0,1fr);min-height:500px}.calendar-day-summary{border-right:1px solid var(--border-soft);padding:28px 22px;display:flex;flex-direction:column;align-items:flex-start}.calendar-day-summary>span{font-size:9px;color:var(--muted);font-weight:700;text-transform:uppercase}.calendar-day-summary>strong{font-size:52px;line-height:1;margin:7px 0}.calendar-day-summary>small{font-size:11px;color:var(--muted)}.calendar-day-summary .button{margin-top:24px;gap:7px;font-size:9px}.calendar-day-timeline{padding:10px 18px}.calendar-day-event{min-height:76px;border:0;border-bottom:1px solid var(--border-soft);background:transparent;color:var(--text);width:100%;display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:15px;text-align:left;font:inherit;cursor:pointer}.calendar-day-event time{font-size:14px;font-weight:700}.calendar-day-event time small{display:block;color:var(--muted);font-size:8px;font-weight:500;margin-top:2px}.calendar-day-event>div{display:grid;gap:3px}.calendar-event-status{font-size:7px;letter-spacing:.1em;color:var(--brand-pink);font-weight:700}.calendar-day-event strong{font-size:11px}.calendar-day-event p{margin:0;color:var(--muted);font-size:8px}.calendar-day-event>.ui-icon{width:15px;height:15px;color:var(--muted-2)}.calendar-day-event.block{cursor:default;opacity:.75}.calendar-empty{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.calendar-empty>div{width:48px;height:48px;border-radius:15px;background:rgba(255,93,179,.08);color:var(--brand-pink);display:grid;place-items:center}.calendar-empty strong{font-size:11px;color:var(--text);margin-top:10px}.calendar-empty p{font-size:8px;margin:4px 0 0}.calendar-mobile-agenda{display:none}
.calendar-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:8px;padding:0 4px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:8px;height:8px;border-radius:50%;background:var(--brand-pink)}.calendar-legend i.completed{background:var(--success)}.calendar-legend i.no-show{background:var(--warning)}.calendar-legend i.cancelled{background:var(--muted-2)}.calendar-legend i.blocked{background:transparent;border:1px solid var(--muted-2)}
.calendar-modal{position:fixed;inset:0;z-index:130;background:var(--modal-overlay);display:none;align-items:center;justify-content:center;padding:22px}.calendar-modal.open{display:flex}.calendar-modal-card{width:min(760px,100%);max-height:min(900px,calc(100vh - 44px));overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-card)}.calendar-modal-head{padding:20px 22px 15px;border-bottom:1px solid var(--border-soft);display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.calendar-modal-head h2{margin:3px 0 0;font-size:19px}.calendar-modal-head .icon-button{flex:0 0 auto}.calendar-form-grid{padding:20px 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.calendar-form-grid .field small{font-size:7px;color:var(--muted);line-height:1.45}.calendar-modal-actions{padding:14px 22px 20px;border-top:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-status-actions{display:flex;gap:7px;flex-wrap:wrap}.calendar-status-actions .button{min-height:36px;padding:0 10px;font-size:8px;gap:5px}.calendar-status-actions .ui-icon{width:13px;height:13px}.calendar-delete-action{margin-left:auto;gap:6px}.calendar-delete-action .ui-icon{width:14px;height:14px}.calendar-modal-meta{padding:10px 22px;border-top:1px solid var(--border-soft);display:flex;justify-content:space-between;gap:12px;color:var(--muted-2);font-size:7px}.calendar-slot-loading{opacity:.55}.calendar-modal-open{overflow:hidden}
.mobile-agenda-day{border-bottom:1px solid var(--border-soft)}.mobile-agenda-day>header{height:44px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-soft)}.mobile-agenda-day>header strong{font-size:9px}.mobile-agenda-day>header button{width:30px;height:30px;border:0;background:transparent;color:var(--brand-pink);display:grid;place-items:center}.mobile-agenda-event{width:100%;min-height:58px;border:0;border-left:3px solid var(--brand-pink);border-bottom:1px solid var(--border-soft);background:var(--surface);color:var(--text);display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;padding:8px 12px;text-align:left;font:inherit}.mobile-agenda-event time{font-size:10px;font-weight:700}.mobile-agenda-event div{display:grid;gap:2px}.mobile-agenda-event strong{font-size:9px}.mobile-agenda-event span{font-size:7px;color:var(--muted)}.mobile-agenda-event>.ui-icon{width:13px;color:var(--muted-2)}.mobile-agenda-event.block{border-left-color:var(--muted-2);opacity:.75}
@media(max-width:1100px){.calendar-week-grid{overflow-x:auto}.calendar-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.calendar-content{padding:18px;padding-bottom:96px}.calendar-hero{padding:20px;flex-direction:column}.calendar-new-button{width:100%}.calendar-stats{grid-template-columns:1fr 1fr}.calendar-stats article:last-child{grid-column:1/-1}.calendar-toolbar{align-items:stretch;flex-direction:column;padding:12px}.calendar-range-controls{display:grid;grid-template-columns:38px auto 38px 1fr}.calendar-range-controls h3{margin-left:2px;font-size:12px}.calendar-view-tabs{width:100%}.calendar-view-tab{flex:1;min-width:0}.calendar-month-wrap{display:none}.calendar-mobile-agenda{display:block}.calendar-week-grid{grid-template-columns:1fr;min-width:0}.calendar-week-day{min-height:0;border-right:0;border-bottom:1px solid var(--border-soft)}.calendar-week-day>header{height:52px;display:flex;justify-content:flex-start;padding:0 14px}.calendar-week-day>header button{display:flex;gap:8px}.calendar-week-day>header strong{font-size:14px}.calendar-week-day.today>header strong{width:28px;height:28px}.calendar-week-events{padding:8px 12px}.calendar-week-empty{height:40px}.calendar-day-view{grid-template-columns:1fr;min-height:0}.calendar-day-summary{border-right:0;border-bottom:1px solid var(--border-soft);padding:16px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px}.calendar-day-summary>strong{font-size:28px;margin:0}.calendar-day-summary .button{grid-column:1/-1;margin-top:6px;width:100%}.calendar-day-timeline{padding:6px 12px}.calendar-day-event{grid-template-columns:58px 1fr auto;min-height:70px}.calendar-form-grid{grid-template-columns:1fr;padding:16px}.calendar-modal{padding:10px;align-items:flex-end}.calendar-modal-card{max-height:92vh;border-radius:18px 18px 0 0}.calendar-modal-actions{align-items:stretch;flex-direction:column-reverse}.calendar-modal-actions>.button{width:100%;margin-left:0}.calendar-status-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.calendar-status-actions .button:last-child{grid-column:1/-1}.calendar-modal-meta{flex-wrap:wrap}.calendar-legend{gap:10px}}
@media(max-width:430px){.calendar-stats{grid-template-columns:1fr}.calendar-stats article:last-child{grid-column:auto}.calendar-range-controls{grid-template-columns:36px auto 36px;}.calendar-range-controls h3{grid-column:1/-1;margin:4px 0 0}.calendar-status-actions{grid-template-columns:1fr}}

/* v0.4.0 Calendar Grid UI hotfix — real day/week/month calendar */
.calendar-panel-grid{--calendar-minute:1.1px}
.calendar-month-wrap-real{display:block;overflow:auto}
.calendar-month-wrap-real .calendar-month-weekdays,
.calendar-month-wrap-real .calendar-month-grid{min-width:840px}
.calendar-month-wrap-real .calendar-month-day{min-height:145px}
.calendar-month-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.calendar-month-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);display:grid;place-items:center;font-size:7px;font-weight:700}
.calendar-month-day.today .calendar-month-count{background:rgba(255,93,179,.12);color:var(--brand-pink)}

.calendar-timeboard-scroll{width:100%;overflow:auto;background:var(--surface)}
.calendar-timeboard{display:grid;position:relative;min-width:1120px;grid-template-columns:72px repeat(7,minmax(145px,1fr));grid-template-rows:58px auto;background:var(--surface)}
.calendar-timeboard-day{min-width:720px;grid-template-columns:72px minmax(620px,1fr)}
.calendar-timeboard-corner{position:sticky;left:0;top:0;z-index:18;grid-column:1;grid-row:1;background:var(--surface-soft);border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);display:flex;align-items:flex-end;justify-content:center;padding:0 8px 12px}
.calendar-timeboard-corner span{font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.calendar-timeboard-day-head{grid-row:1;background:var(--surface-soft);border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);display:grid;place-items:center;position:sticky;top:0;z-index:14}
.calendar-timeboard-day-head:last-of-type{border-right:0}
.calendar-timeboard-day-head button{border:0;background:transparent;color:var(--text);font:inherit;display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;border-radius:10px}
.calendar-timeboard-day-head button:hover{background:var(--surface-2)}
.calendar-timeboard-day-head span{font-size:8px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.calendar-timeboard-day-head strong{font-size:16px;line-height:28px;min-width:28px;height:28px;border-radius:9px;display:grid;place-items:center}
.calendar-timeboard-day-head small{font-size:8px;color:var(--muted);text-transform:capitalize}
.calendar-timeboard-day-head.today strong{background:var(--brand-pink);color:#fff}
.calendar-time-gutter{grid-column:1;grid-row:2;position:relative;position:sticky;left:0;z-index:10;background:var(--surface);border-right:1px solid var(--border-soft)}
.calendar-time-label{position:absolute;right:10px;top:calc(var(--calendar-minute) * var(--line-offset));transform:translateY(-50%);font-size:8px;color:var(--muted-2);font-variant-numeric:tabular-nums;line-height:1;background:var(--surface);padding:2px 0}
.calendar-time-column{grid-row:2;position:relative;border-right:1px solid var(--border-soft);background:var(--surface);overflow:hidden}
.calendar-time-column:last-child{border-right:0}
.calendar-time-column.today{background:linear-gradient(rgba(255,93,179,.025),rgba(255,93,179,.025)),var(--surface)}
.calendar-hour-line{position:absolute;left:0;right:0;top:calc(var(--calendar-minute) * var(--line-offset));border-top:1px solid var(--border-soft);pointer-events:none}
.calendar-hour-line::after{content:"";position:absolute;left:0;right:0;top:calc(var(--calendar-minute) * 30);border-top:1px dashed color-mix(in srgb,var(--border-soft) 70%,transparent);opacity:.55}
.calendar-now-line{position:absolute;left:0;right:0;top:calc(var(--calendar-minute) * var(--line-offset));height:1px;background:var(--brand-pink);z-index:8;pointer-events:none;box-shadow:0 0 8px rgba(255,93,179,.22)}
.calendar-now-line b{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--brand-pink);left:-3px;top:-3px}

.calendar-grid-event{position:absolute;z-index:5;left:6px;right:6px;top:calc(var(--calendar-minute) * var(--event-top));height:max(28px,calc(var(--calendar-minute) * var(--event-duration) - 4px));border:1px solid rgba(255,93,179,.25);border-left:3px solid var(--brand-pink);border-radius:9px;background:color-mix(in srgb,var(--brand-pink) 9%,var(--surface));color:var(--text);padding:6px 7px;text-align:left;display:flex;flex-direction:column;gap:2px;overflow:hidden;font:inherit;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.03);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.calendar-grid-event:hover{z-index:9;transform:translateY(-1px);border-color:rgba(255,93,179,.48);box-shadow:0 8px 22px rgba(0,0,0,.08)}
.calendar-grid-event>span{font-size:7px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.calendar-grid-event>strong{font-size:9px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-grid-event>small{font-size:7px;color:var(--muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-grid-event.block{cursor:default;border-color:var(--border);border-left-color:var(--muted-2);background:color-mix(in srgb,var(--muted-2) 8%,var(--surface));opacity:.82}
.calendar-grid-event.block:hover{transform:none;box-shadow:0 4px 14px rgba(0,0,0,.03);border-color:var(--border)}
.calendar-grid-event.status-completed{border-left-color:var(--success);background:color-mix(in srgb,var(--success) 7%,var(--surface))}
.calendar-grid-event.status-no_show,.calendar-grid-event.status-no-show{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning) 7%,var(--surface))}
.calendar-grid-event.status-cancelled{border-left-color:var(--muted-2);background:var(--surface-soft);opacity:.58;text-decoration:none}
.calendar-grid-event.status-payment_pending{border-left-color:var(--warning)}
.calendar-grid-event-day{left:10px;right:12px;padding:7px 10px}
.calendar-grid-event-day>strong{font-size:10px}
.calendar-grid-event-day>small{font-size:8px}

@media(max-width:1100px){
  .calendar-timeboard-week{min-width:1050px;grid-template-columns:68px repeat(7,minmax(140px,1fr))}
  .calendar-timeboard-day{min-width:680px;grid-template-columns:68px minmax(600px,1fr)}
}
@media(max-width:760px){
  .calendar-panel-grid{--calendar-minute:1px}
  .calendar-month-wrap{display:block}
  .calendar-mobile-agenda{display:none!important}
  .calendar-month-wrap-real .calendar-month-weekdays,.calendar-month-wrap-real .calendar-month-grid{min-width:700px}
  .calendar-month-wrap-real .calendar-month-day{min-height:112px;padding:6px}
  .calendar-month-weekdays div{height:32px;padding:0 7px}
  .calendar-event{min-height:24px;padding:3px 5px}
  .calendar-event span,.calendar-event strong,.calendar-more{font-size:6.5px}
  .calendar-timeboard-week{min-width:1000px;grid-template-columns:60px repeat(7,134px);grid-template-rows:54px auto}
  .calendar-timeboard-day{min-width:620px;grid-template-columns:60px minmax(560px,1fr);grid-template-rows:54px auto}
  .calendar-timeboard-corner{padding-bottom:10px}
  .calendar-time-label{right:8px;font-size:7px}
  .calendar-grid-event{left:4px;right:4px;padding:5px 6px}
  .calendar-grid-event>span{font-size:6.5px}.calendar-grid-event>strong{font-size:8px}.calendar-grid-event>small{font-size:6.5px}
  .calendar-grid-event-day{left:8px;right:8px}
  .calendar-toolbar{position:relative}
}
@media(max-width:430px){
  .calendar-timeboard-day{min-width:560px;grid-template-columns:56px minmax(504px,1fr)}
  .calendar-timeboard-week{grid-template-columns:56px repeat(7,126px);min-width:938px}
  .calendar-timeboard-day-head button{gap:5px;padding:5px}.calendar-timeboard-day-head span{font-size:7px}.calendar-timeboard-day-head strong{font-size:14px}
}

/* v0.4.0 Calendar Fit View hotfix — keep the whole calendar readable in one workspace */
@media(min-width:761px){
  .calendar-panel-grid{overflow:hidden}
  .calendar-panel-grid .calendar-toolbar{min-height:66px}
  .calendar-timeboard-scroll{overflow-x:auto;overflow-y:hidden}
  .calendar-timeboard{grid-template-rows:54px auto}
  .calendar-timeboard-corner{padding-bottom:10px}
  .calendar-timeboard-day-head strong{font-size:15px}
  .calendar-time-label{font-size:7.5px}
  .calendar-grid-event{min-height:24px;padding:5px 7px}
  .calendar-grid-event>span{font-size:6.8px}
  .calendar-grid-event>strong{font-size:8.5px}
  .calendar-grid-event>small{font-size:6.8px}
  .calendar-grid-event-day{padding:6px 9px}
  .calendar-grid-event-day>strong{font-size:9px}
  .calendar-grid-event-day>small{font-size:7px}

  .calendar-month-wrap-real .calendar-month-weekdays{min-width:840px}
  .calendar-month-wrap-real .calendar-month-grid{min-width:840px;grid-auto-rows:minmax(86px,1fr)}
  .calendar-month-wrap-real .calendar-month-day{min-height:86px;padding:6px}
  .calendar-month-weekdays div{height:30px}
  .calendar-day-number{width:24px;height:24px;font-size:8px}
  .calendar-month-count{height:18px;min-width:18px;font-size:6.5px}
  .calendar-day-events{gap:3px;margin-top:2px}
  .calendar-event{min-height:22px;padding:3px 5px}
  .calendar-event span,.calendar-event strong,.calendar-more{font-size:6.5px}
}

@media(min-width:761px) and (max-height:850px){
  .calendar-content{gap:12px}
  .calendar-hero{padding:18px 22px}
  .calendar-hero h2{font-size:23px}
  .calendar-hero p{margin-top:6px}
  .calendar-stats{gap:10px}
  .calendar-stats article{min-height:66px;padding:12px 14px}
  .calendar-panel-grid .calendar-toolbar{min-height:58px;padding-top:10px;padding-bottom:10px}
  .calendar-month-wrap-real .calendar-month-grid{grid-auto-rows:minmax(78px,1fr)}
  .calendar-month-wrap-real .calendar-month-day{min-height:78px}
}

@media(max-width:760px){
  /* Mobile stays scrollable rather than making the hourly grid illegibly small. */
  .calendar-panel-grid{--calendar-minute:.82px!important}
  .calendar-timeboard-scroll{max-height:68vh;overflow:auto;-webkit-overflow-scrolling:touch}
  .calendar-timeboard-corner,.calendar-timeboard-day-head{top:0}
  .calendar-month-wrap-real{max-height:68vh;overflow:auto;-webkit-overflow-scrolling:touch}
}


/* v0.4.0 Calendar Horizontal Fit hotfix — show the complete week/month across desktop width */
@media(min-width:761px){
  .calendar-timeboard-scroll:not(.calendar-timeboard-scroll-day){overflow-x:hidden}
  .calendar-timeboard-week{width:100%;min-width:0!important;grid-template-columns:64px repeat(7,minmax(0,1fr))!important}
  .calendar-timeboard-week .calendar-timeboard-day-head{min-width:0}
  .calendar-timeboard-week .calendar-time-column{min-width:0}
  .calendar-timeboard-week .calendar-grid-event{left:4px;right:4px;padding-left:6px;padding-right:6px}
  .calendar-timeboard-week .calendar-grid-event>strong,
  .calendar-timeboard-week .calendar-grid-event>small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .calendar-month-wrap-real{overflow-x:hidden}
  .calendar-month-wrap-real .calendar-month-weekdays,
  .calendar-month-wrap-real .calendar-month-grid{width:100%;min-width:0!important}
  .calendar-view-tab.active{color:var(--brand-pink);border:1px solid rgba(255,93,179,.24);background:rgba(255,93,179,.07);box-shadow:none}
}

@media(min-width:761px) and (max-width:1050px){
  .calendar-timeboard-week{grid-template-columns:56px repeat(7,minmax(0,1fr))!important}
  .calendar-timeboard-day-head button{gap:4px;padding-left:4px;padding-right:4px}
  .calendar-timeboard-day-head span{font-size:7px}
  .calendar-timeboard-day-head strong{font-size:13px;min-width:24px;height:24px;line-height:24px}
  .calendar-timeboard-week .calendar-grid-event>small{display:none}
}

/* v0.4.0 Calendar Appointment Card Typography hotfix */
@media(min-width:761px){
  .calendar-timeboard-week .calendar-grid-event{padding:7px 8px;gap:3px}
  .calendar-timeboard-week .calendar-grid-event>span{font-size:8px;line-height:1.2}
  .calendar-timeboard-week .calendar-grid-event>strong{font-size:10.5px;line-height:1.25;font-weight:700}
  .calendar-timeboard-week .calendar-grid-event>small{font-size:8px;line-height:1.3}

  .calendar-grid-event-day{padding:8px 11px;gap:3px}
  .calendar-grid-event-day>span{font-size:8.5px}
  .calendar-grid-event-day>strong{font-size:12px;line-height:1.25;font-weight:700}
  .calendar-grid-event-day>small{font-size:9px;line-height:1.35}

  .calendar-month-wrap-real .calendar-event span{font-size:7.5px}
  .calendar-month-wrap-real .calendar-event strong{font-size:8px}
  .calendar-month-wrap-real .calendar-more{font-size:7.5px}
}

/* v0.4.0 Calendar Drag & Drop hotfix */
.calendar-grid-event-draggable{cursor:grab;touch-action:none}
.calendar-grid-event-draggable:active{cursor:grabbing}
.calendar-event-drag-source{opacity:.34;filter:saturate(.7)}
.calendar-is-dragging .calendar-time-column{transition:background-color .12s ease}
.calendar-is-dragging .calendar-time-column:hover{background:color-mix(in srgb,var(--brand-pink) 2.5%,var(--surface))}
.calendar-drag-active,.calendar-drag-active *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
.calendar-drag-ghost{position:fixed!important;left:0!important;top:0!important;right:auto!important;z-index:9999!important;margin:0!important;pointer-events:none!important;opacity:.95!important;transform-origin:0 0;box-shadow:0 18px 50px rgba(0,0,0,.22)!important;border-color:rgba(255,93,179,.55)!important;will-change:transform}
.calendar-drop-preview{position:absolute;z-index:7;left:5px;right:5px;top:calc(var(--calendar-minute) * var(--event-top));height:max(28px,calc(var(--calendar-minute) * var(--event-duration) - 4px));border:1px dashed rgba(255,93,179,.52);border-radius:9px;background:color-mix(in srgb,var(--brand-pink) 8%,var(--surface));display:flex;align-items:flex-start;padding:7px 8px;pointer-events:none;transition:background-color .12s ease,border-color .12s ease,opacity .12s ease}
.calendar-drop-preview span{font-size:8px;font-weight:700;line-height:1.2;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-drop-preview.checking{opacity:.7}
.calendar-drop-preview.valid{border-style:solid;border-color:color-mix(in srgb,var(--success) 60%,var(--border));background:color-mix(in srgb,var(--success) 8%,var(--surface))}
.calendar-drop-preview.valid span{color:var(--status-text)}
.calendar-drop-preview.invalid{border-style:solid;border-color:var(--danger-border);background:var(--danger-bg)}
.calendar-drop-preview.invalid span{color:var(--danger)}
.calendar-drop-preview.saving{border-style:solid;border-color:rgba(255,93,179,.72);background:color-mix(in srgb,var(--brand-pink) 12%,var(--surface));animation:calendarDropPulse .8s ease-in-out infinite alternate}
@keyframes calendarDropPulse{from{opacity:.66}to{opacity:1}}
.calendar-drag-toast-region{position:fixed;right:22px;bottom:22px;z-index:10020;display:grid;gap:8px;max-width:min(360px,calc(100vw - 32px));pointer-events:none}
.calendar-drag-toast{transform:translateY(8px);opacity:0;border:1px solid var(--border);border-radius:12px;background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-card);padding:11px 14px;font-size:11px;line-height:1.45;transition:opacity .18s ease,transform .18s ease}
.calendar-drag-toast.show{transform:translateY(0);opacity:1}
.calendar-drag-toast.success{border-color:var(--status-border)}
.calendar-drag-toast.error{border-color:var(--danger-border);color:var(--danger)}
@media(max-width:760px){
  .calendar-drag-toast-region{left:16px;right:16px;bottom:82px;max-width:none}
  .calendar-drop-preview span{font-size:7px}
}
@media(prefers-reduced-motion:reduce){
  .calendar-drop-preview.saving{animation:none}
  .calendar-drag-toast{transition:none}
}


/* v0.4.8 — Mobile Day View Optimization */
@media(max-width:760px){
  /* A single-day calendar should use the phone width, not the week canvas width. */
  .calendar-timeboard-scroll-day{overflow-x:hidden!important;overflow-y:auto;max-height:68vh;width:100%}
  .calendar-timeboard-day{width:100%!important;min-width:0!important;grid-template-columns:52px minmax(0,1fr)!important}
  .calendar-timeboard-day .calendar-timeboard-corner,
  .calendar-timeboard-day .calendar-time-gutter{min-width:0}
  .calendar-timeboard-day .calendar-timeboard-day-head,
  .calendar-timeboard-day .calendar-time-column{min-width:0;width:auto}
  .calendar-timeboard-day .calendar-timeboard-day-head{overflow:hidden}
  .calendar-timeboard-day .calendar-timeboard-day-head button{width:100%;max-width:100%;justify-content:center;gap:6px;padding-left:6px;padding-right:6px;white-space:nowrap;overflow:hidden}
  .calendar-timeboard-day .calendar-timeboard-day-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:92px}
  .calendar-timeboard-day .calendar-time-label{right:7px}
  .calendar-timeboard-day .calendar-grid-event{left:8px;right:8px}
}
@media(max-width:430px){
  .calendar-timeboard-day{grid-template-columns:48px minmax(0,1fr)!important}
  .calendar-timeboard-day .calendar-timeboard-day-head button{gap:5px;padding-left:4px;padding-right:4px}
  .calendar-timeboard-day .calendar-timeboard-day-head span{font-size:7px}
  .calendar-timeboard-day .calendar-timeboard-day-head strong{font-size:14px;min-width:28px;height:28px}
  .calendar-timeboard-day .calendar-timeboard-day-head small{font-size:7.5px;max-width:76px}
  .calendar-timeboard-day .calendar-grid-event{left:6px;right:6px;padding-left:9px;padding-right:9px}
}

/* v0.4.9 — Natural Calendar Height
   Calendar views expand with their content. Vertical scrolling belongs to the page,
   not to an inner calendar viewport. Horizontal scrolling remains available only
   where the week/month width genuinely needs it on small screens. */
.calendar-timeboard-scroll,
.calendar-timeboard-scroll-day,
.calendar-month-wrap,
.calendar-month-wrap-real{
  max-height:none!important;
  height:auto!important;
  overflow-y:visible!important;
}

@media(max-width:760px){
  .calendar-panel-grid{--calendar-minute:1px!important}
  .calendar-timeboard-scroll,
  .calendar-timeboard-scroll-day,
  .calendar-month-wrap-real{
    max-height:none!important;
    height:auto!important;
    overflow-y:visible!important;
  }
  .calendar-timeboard-scroll-day{overflow-x:hidden!important}
  .calendar-timeboard-scroll:not(.calendar-timeboard-scroll-day),
  .calendar-month-wrap-real{overflow-x:auto!important}
}


/* v0.4.10 — Fixed 08:00–22:00 calendar axis
   Keep first/last time labels fully inside the timeline instead of clipping them
   at the top/bottom edges. */
.calendar-time-label.is-first{transform:translateY(0)}
.calendar-time-label.is-last{transform:translateY(-100%)}
.calendar-hour-line.is-last{transform:translateY(-1px)}
.calendar-time-gutter,.calendar-time-column{border-bottom:1px solid var(--border-soft)}

/* v0.5.0 — Google Calendar Core */
.google-calendar-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}
.google-hero,.google-setup-card,.google-connect-card,.google-actions-card,.google-rules-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);transition:var(--transition-theme)}
.google-hero{padding:26px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.google-hero h2{font-size:28px;line-height:1.15;margin:5px 0 8px}.google-hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.65;max-width:760px}
.google-hero-mark{width:52px;height:52px;border-radius:16px;border:1px solid var(--border);background:var(--surface-2);display:grid;place-items:center;color:var(--brand-pink);flex:0 0 auto}.google-hero-mark svg{width:24px;height:24px}
.google-setup-card,.google-connect-card,.google-actions-card{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.google-setup-card{align-items:flex-start}.google-setup-icon{width:48px;height:48px;border-radius:14px;background:var(--env-bg);border:1px solid var(--env-border);display:grid;place-items:center;color:var(--brand-pink);flex:0 0 auto}.google-setup-icon svg{width:22px;height:22px}
.google-setup-card h3,.google-connect-card h3,.google-actions-card h3,.google-rules-card h3{margin:5px 0 8px;font-size:19px}.google-setup-card p,.google-connect-card p,.google-actions-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;max-width:760px}
.google-endpoint-list{display:grid;gap:10px;margin-top:18px}.google-endpoint-list>div{display:grid;gap:5px}.google-endpoint-list span{font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--muted-2)}.google-endpoint-list code{display:block;max-width:100%;overflow:auto;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);color:var(--text-soft);font-size:10px}
.google-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.google-status-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 18px 16px;min-height:126px;display:grid;align-content:start;gap:4px}.google-status-card>span,.google-metrics-grid span{font-size:8px;letter-spacing:.13em;font-weight:700;color:var(--muted-2)}.google-status-card>strong{font-size:13px;line-height:1.35;margin-top:5px;overflow-wrap:anywhere}.google-status-card>small{font-size:9px;color:var(--muted)}
.google-status-icon{width:32px;height:32px;border-radius:10px;background:var(--env-bg);border:1px solid var(--env-border);display:grid;place-items:center;color:var(--brand-pink);margin-bottom:6px}.google-status-icon.connected{color:var(--status-text);background:var(--status-bg);border-color:var(--status-border)}.google-status-icon svg{width:15px;height:15px}
.google-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.google-metrics-grid article{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.google-metrics-grid strong{font-size:21px}.google-metrics-grid article.has-warning{border-color:var(--warning-border);background:var(--warning-bg)}
.google-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.google-actions form{margin:0}.google-actions .button{gap:8px}.google-actions .button svg{width:15px;height:15px}
.google-sync-error{margin:0}.google-rules-card{padding:24px}.google-rules-card header{margin-bottom:18px}.google-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.google-rule-grid>div{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border-soft);background:var(--surface-soft);border-radius:14px;padding:15px}.google-rule-grid svg{width:17px;height:17px;color:var(--brand-pink);flex:0 0 auto;margin-top:1px}.google-rule-grid span{display:grid;gap:3px;color:var(--muted);font-size:10px;line-height:1.55}.google-rule-grid strong{color:var(--text);font-size:11px}
.calendar-grid-event.source-google{border-style:dashed}.calendar-grid-event.source-google::after{content:'G';position:absolute;right:6px;top:5px;width:16px;height:16px;border-radius:6px;display:grid;place-items:center;background:rgba(75,123,236,.12);border:1px solid rgba(75,123,236,.24);color:var(--info);font-size:7px;font-weight:800}.calendar-grid-event.has-sync-conflict{box-shadow:0 0 0 1px var(--warning-border) inset}.calendar-grid-event.is-incomplete-import{background:var(--info-bg);border-color:var(--info-border)}
@media(max-width:1050px){.google-status-grid,.google-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.google-calendar-content{padding:18px 14px 110px;gap:14px}.google-hero{padding:20px}.google-hero h2{font-size:23px}.google-hero-mark{width:44px;height:44px;border-radius:14px}.google-setup-card,.google-connect-card,.google-actions-card{padding:18px;flex-direction:column;align-items:stretch}.google-setup-card{display:grid;grid-template-columns:auto 1fr}.google-setup-card .google-setup-icon{grid-row:1/3}.google-status-grid,.google-metrics-grid{grid-template-columns:1fr 1fr;gap:10px}.google-status-card{min-height:116px;padding:14px}.google-status-card>strong{font-size:11px}.google-metrics-grid article{padding:13px}.google-metrics-grid strong{font-size:18px}.google-actions{justify-content:stretch}.google-actions form,.google-actions .button{width:100%}.google-rule-grid{grid-template-columns:1fr}.google-rules-card{padding:18px}}
@media(max-width:460px){.google-status-grid,.google-metrics-grid{grid-template-columns:1fr}.google-setup-card{grid-template-columns:1fr}.google-setup-card .google-setup-icon{grid-row:auto}.google-hero-mark{display:none}}

/* v0.5.2 — Google OAuth popup compatibility */
.google-popup-note{margin-top:10px!important;font-size:10px!important}
.google-popup-note code{display:inline-block;margin-left:5px;font-size:10px;color:var(--text-soft)}
.google-connect-card form[data-google-popup-form]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.google-popup-status{font-size:10px;color:var(--muted);max-width:360px;line-height:1.45}
.google-popup-status.is-error{color:var(--danger)}
.button.is-loading{opacity:.72;cursor:wait}
@media(max-width:760px){.google-connect-card form[data-google-popup-form]{align-items:flex-start;flex-direction:column}.google-popup-note code{display:block;margin:4px 0 0;overflow-wrap:anywhere}}


/* v0.5.3 — Calendar Readability Upgrade
   Give day/week events enough vertical breathing room to read time, client/event title,
   and service/source without sacrificing the real timeline. Full details remain one click away. */
.calendar-panel-grid{--calendar-minute:1.34px}
.calendar-grid-event{
  gap:4px;
  padding:8px 9px;
  min-height:32px;
}
.calendar-grid-event>span{
  font-size:8.5px;
  line-height:1.15;
}
.calendar-grid-event>strong{
  font-size:11.5px;
  line-height:1.25;
  font-weight:700;
  white-space:normal;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.calendar-grid-event>small{
  font-size:9px;
  line-height:1.3;
  white-space:normal;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.calendar-grid-event-day{padding:9px 12px;gap:4px}
.calendar-grid-event-day>span{font-size:9px}
.calendar-grid-event-day>strong{font-size:13px;line-height:1.25}
.calendar-grid-event-day>small{font-size:10px;line-height:1.35}
.calendar-month-wrap-real .calendar-event{min-height:26px;padding:4px 6px}
.calendar-month-wrap-real .calendar-event span{font-size:8px}
.calendar-month-wrap-real .calendar-event strong{font-size:8.5px}
.calendar-month-wrap-real .calendar-more{font-size:8px}

@media(min-width:761px) and (max-width:1050px){
  .calendar-timeboard-week .calendar-grid-event>small{display:-webkit-box}
  .calendar-timeboard-week .calendar-grid-event>strong{font-size:10.5px}
  .calendar-timeboard-week .calendar-grid-event>small{font-size:8.5px}
}

@media(max-width:760px){
  .calendar-panel-grid{--calendar-minute:1.18px!important}
  .calendar-grid-event{padding:7px 8px;gap:3px}
  .calendar-grid-event>span{font-size:8px}
  .calendar-grid-event>strong{font-size:10.5px}
  .calendar-grid-event>small{font-size:8.5px}
  .calendar-grid-event-day>strong{font-size:12px}
  .calendar-grid-event-day>small{font-size:9px}
}


/* v0.5.4 — Calendar Timeline Scale Root Fix
   The previous PHP template injected an inline --calendar-minute (roughly .67px/min),
   which overrode v0.5.3's readability scale. The inline value is now removed, so these
   CSS values actually control both native CherryLash and imported Google event cards. */
.calendar-panel-grid{--calendar-minute:1.34px}
@media(max-width:760px){.calendar-panel-grid{--calendar-minute:1.18px!important}}

/* v0.5.6 — Weekly Break Visual Blocks
   Recurring availability breaks (e.g. lunch/colación) are now visible in the Admin calendar.
   They remain internal CherryLash availability rules and are not exported as Google events. */
.calendar-grid-event.break{
  z-index:2;
  cursor:default;
  pointer-events:none;
  border-color:color-mix(in srgb,var(--warning) 28%,var(--border));
  border-left-color:var(--warning);
  background:color-mix(in srgb,var(--warning) 8%,var(--surface));
  box-shadow:none;
}
.calendar-grid-event.break:hover{transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--warning) 28%,var(--border));border-left-color:var(--warning)}
.calendar-grid-event.break>strong{color:var(--text)}
.calendar-grid-event.break>small{color:var(--muted)}
.calendar-event.break{
  cursor:default;
  pointer-events:none;
  border-left-color:var(--warning);
  background:color-mix(in srgb,var(--warning) 8%,var(--surface));
}
.calendar-legend i.break{background:var(--warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--warning) 16%,transparent)}

/* v0.5.8 — service-specific booking hours */
.service-booking-policy-body{display:grid;gap:16px}
.service-booking-mode-panel[hidden]{display:none!important}
.service-booking-policy-note{min-height:72px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:15px 16px;display:grid;align-content:center;gap:4px}
.service-booking-policy-note strong,.service-exact-times-head strong{font-size:11px}
.service-booking-policy-note span,.service-exact-times-head span{font-size:9px;line-height:1.5;color:var(--muted)}
.service-booking-window-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.service-exact-times-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.service-exact-times-head>div{display:grid;gap:4px}
.service-exact-times-head .button{flex:0 0 auto}
.service-exact-time-list{display:grid;gap:9px}
.service-exact-time-row{display:grid;grid-template-columns:minmax(180px,260px) 38px;gap:9px;align-items:end;padding:12px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-soft)}
.service-exact-time-row .field{gap:6px}
.service-exact-time-row .icon-only-button{margin-bottom:0}
@media(max-width:760px){.service-booking-window-grid{grid-template-columns:1fr}.service-exact-times-head{align-items:flex-start;flex-direction:column}.service-exact-times-head .button{width:100%}.service-exact-time-row{grid-template-columns:1fr 38px}}

/* v0.5.10 Public Booking Blocks & Admin Special Hours */
.availability-booking-blocks{display:grid}
.booking-blocks-head{align-items:flex-start}
.booking-blocks-head>div>p{margin-top:7px;text-align:left;max-width:760px}
.booking-block-mode{min-width:270px;display:flex;align-items:end;gap:9px}.booking-block-mode .field{min-width:170px}.booking-block-mode .button{white-space:nowrap}
.booking-block-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 20px 0}.booking-block-summary>div{border:1px solid var(--border-soft);background:var(--surface-2);border-radius:14px;padding:13px 14px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "sub value";align-items:center;gap:2px 10px}.booking-block-summary span{grid-area:label;font-size:8px;letter-spacing:.11em;color:var(--muted-2);font-weight:700}.booking-block-summary strong{grid-area:value;font-size:20px}.booking-block-summary small{grid-area:sub;color:var(--muted);font-size:8px}
.booking-block-guide{margin:14px 20px 0;padding:11px 12px;border:1px solid var(--border-soft);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 82%,transparent);display:grid;grid-template-columns:auto auto 1fr auto auto 1fr;gap:7px 8px;align-items:center;font-size:8.5px;color:var(--muted)}.booking-block-guide strong{font-size:9px;color:var(--text-soft)}.booking-block-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.booking-block-dot.public{background:var(--brand-pink)}.booking-block-dot.admin{background:var(--muted-2)}
.booking-block-add{margin:14px 20px 16px;padding:14px;border:1px dashed color-mix(in srgb,var(--brand-pink) 28%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--brand-pink) 3.5%,var(--surface));display:grid;grid-template-columns:1.35fr .72fr .72fr 1fr auto;gap:10px;align-items:end}.booking-block-add .field{gap:4px}.booking-block-add .field input,.booking-block-add .field select{height:38px;font-size:9px}.booking-block-add .button{min-height:38px;white-space:nowrap}
.booking-block-list{border-top:1px solid var(--border-soft)}.booking-block-row{position:relative;padding:12px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;border-bottom:1px solid var(--border-soft);transition:opacity .15s ease,background .15s ease}.booking-block-row:last-child{border-bottom:0}.booking-block-row.public{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--brand-pink) 72%,transparent)}.booking-block-row.admin-only{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--muted-2) 72%,transparent)}.booking-block-row.inactive{opacity:.5}.booking-block-edit{display:grid;grid-template-columns:1.35fr .68fr .68fr .9fr auto auto;gap:9px;align-items:end}.booking-block-edit .field{gap:4px}.booking-block-edit .field input,.booking-block-edit .field select{height:38px;font-size:9px}.booking-block-active{height:38px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);font-size:8px;color:var(--text-soft);white-space:nowrap}.booking-block-active input{accent-color:var(--brand-pink)}.booking-block-edit .button{min-height:38px;padding-left:14px;padding-right:14px}.booking-block-delete{padding-bottom:3px}.booking-block-delete .icon-button{width:32px;height:32px}.booking-block-footnote{margin:0;padding:12px 20px 16px;border-top:1px solid var(--border-soft);font-size:8.5px;line-height:1.55;color:var(--muted)}

@media(max-width:1100px){
  .booking-blocks-head{flex-direction:column}.booking-block-mode{width:100%}.booking-block-mode .field{flex:1}
  .booking-block-add{grid-template-columns:repeat(4,minmax(0,1fr))}.booking-block-add .field:first-of-type{grid-column:span 2}.booking-block-add .button{grid-column:1/-1;justify-self:end}
  .booking-block-edit{grid-template-columns:1.25fr .7fr .7fr 1fr}.booking-block-active,.booking-block-edit .button{justify-self:start}
}
@media(max-width:760px){
  .booking-block-mode{display:grid;grid-template-columns:1fr}.booking-block-mode .button{width:100%}
  .booking-block-summary{grid-template-columns:1fr;padding-left:16px;padding-right:16px}
  .booking-block-guide{margin-left:16px;margin-right:16px;grid-template-columns:auto auto 1fr}.booking-block-guide .booking-block-dot.admin{grid-column:1}.booking-block-add{margin-left:16px;margin-right:16px;grid-template-columns:1fr 1fr}.booking-block-add .field:first-of-type{grid-column:1/-1}.booking-block-add .field:nth-of-type(4){grid-column:1/-1}.booking-block-add .button{width:100%;justify-self:stretch}
  .booking-block-row{padding-left:16px;padding-right:16px;grid-template-columns:1fr auto}.booking-block-edit{grid-template-columns:1fr 1fr}.booking-block-edit .field:first-of-type,.booking-block-edit .field:nth-of-type(4){grid-column:1/-1}.booking-block-active{justify-self:stretch}.booking-block-edit .button{justify-self:stretch}.booking-block-delete{align-self:center}
}

/* v0.8.0 — Phase 7 / Clientas */
.clients-content,.client-profile-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}
.clients-hero,.client-profile-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;transition:var(--transition-theme)}
.clients-hero h2,.client-profile-hero h2{margin:5px 0 8px;font-size:26px;line-height:1.2}.clients-hero p,.client-profile-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;max-width:760px}
.clients-hero-mark{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:rgba(255,93,179,.10);border:1px solid rgba(255,93,179,.25);color:var(--brand-pink);flex:0 0 auto}.clients-hero-mark .ui-icon{width:25px;height:25px}
.client-stats,.client-profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.client-stats article,.client-profile-stats article{min-height:92px;padding:16px 18px;border:1px solid var(--border);border-radius:16px;background:var(--surface);display:grid;grid-template-areas:"label value" "sub value";grid-template-columns:1fr auto;align-items:center;gap:2px 12px}.client-stats span,.client-profile-stats span{grid-area:label;font-size:8px;letter-spacing:.12em;font-weight:700;color:var(--muted-2)}.client-stats small,.client-profile-stats small{grid-area:sub;color:var(--muted);font-size:9px}.client-stats strong,.client-profile-stats strong{grid-area:value;font-size:22px;justify-self:end}.client-profile-stats .client-stat-date{font-size:13px;line-height:1.35;text-align:right;max-width:150px}
.client-list-card,.client-profile-card,.client-history-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;transition:var(--transition-theme)}
.client-list-head,.client-history-head,.client-profile-card>header{padding:20px 22px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border-soft)}.client-list-head h3,.client-history-head h3,.client-profile-card>header h3{margin:4px 0 0;font-size:17px}.client-list-head p{margin:5px 0 0;color:var(--muted);font-size:10px}
.client-search{display:flex;align-items:center;gap:7px;position:relative;flex-wrap:wrap}.client-search input{height:40px;width:min(300px,36vw);border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:11px;padding:0 12px 0 37px;font:inherit;font-size:10px;outline:none}.client-search input:focus{border-color:rgba(255,93,179,.72);box-shadow:var(--focus-ring)}.client-search-icon{position:absolute;left:12px;top:11px;color:var(--muted-2);pointer-events:none}.client-search-icon .ui-icon{width:16px;height:16px}.client-search .button{min-height:40px;padding:0 12px;font-size:9px}
.client-filter-tabs{display:flex;gap:4px;padding:10px 16px;border-bottom:1px solid var(--border-soft);overflow-x:auto;background:var(--surface-soft)}.client-filter-tab{min-height:32px;padding:0 11px;border-radius:9px;display:inline-flex;align-items:center;color:var(--muted);font-size:9px;font-weight:600;white-space:nowrap}.client-filter-tab:hover{background:var(--surface);color:var(--text)}.client-filter-tab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 7px rgba(0,0,0,.07);border:1px solid var(--border)}
.client-table-wrap{overflow-x:auto}.client-table{width:100%;border-collapse:collapse;min-width:1120px}.client-table th,.client-table td{padding:14px 16px;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle;font-size:10px}.client-table th{font-size:8px;letter-spacing:.12em;color:var(--muted-2);font-weight:700;background:var(--surface-soft)}.client-table tbody tr:hover{background:var(--table-row-hover)}.client-table tbody tr:last-child td{border-bottom:0}.client-table td>small{display:block;color:var(--muted-2);font-size:8px;margin-top:3px}.client-name-cell{display:flex;align-items:center;gap:10px}.client-name-cell strong{display:block;font-size:11px}.client-name-cell small,.client-contact-cell small{display:block;color:var(--muted-2);font-size:8px;margin-top:3px}.client-avatar,.client-profile-avatar{border-radius:50%;display:grid;place-items:center;background:rgba(255,93,179,.11);border:1px solid rgba(255,93,179,.28);color:var(--brand-pink);font-weight:700}.client-avatar{width:38px;height:38px;font-size:12px;flex:0 0 auto}.client-contact-cell{display:grid;gap:2px}.client-actions-cell{text-align:right!important}.client-actions-cell .button{min-height:34px;padding:0 11px;font-size:9px}.client-empty-state{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:var(--muted)}.client-empty-state strong{color:var(--text);font-size:14px}.client-empty-state p{margin:7px 0 14px;max-width:500px;font-size:10px;line-height:1.6}
.client-pagination{padding:14px 16px;display:flex;align-items:center;justify-content:center;gap:14px;border-top:1px solid var(--border-soft)}.client-pagination>span{font-size:9px;color:var(--muted)}.client-pagination .button{min-height:34px;padding:0 11px;font-size:9px}.button.disabled{opacity:.45;pointer-events:none}
.client-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;font-weight:600;margin-bottom:15px}.client-back-link:hover{color:var(--text)}.client-back-link .ui-icon{width:15px;height:15px}.client-profile-heading{display:flex;align-items:center;gap:14px}.client-profile-avatar{width:58px;height:58px;font-size:19px;flex:0 0 auto}.client-profile-actions{display:flex;gap:8px;flex-wrap:wrap}.client-profile-actions .button{min-height:39px;font-size:9px}.client-profile-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:18px}.client-profile-form{padding:20px 22px}.client-profile-form .field small{font-size:8px;color:var(--muted);line-height:1.5}.client-profile-form-actions{margin-top:16px;display:flex;justify-content:flex-end}.client-summary-list{margin:0;padding:8px 22px 16px}.client-summary-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--border-soft)}.client-summary-list>div:last-child{border-bottom:0}.client-summary-list dt{font-size:9px;color:var(--muted)}.client-summary-list dd{margin:0;font-size:10px;color:var(--text);font-weight:600;text-align:right}.client-service-history{border-top:1px solid var(--border-soft);padding:17px 22px 20px;display:grid;gap:8px}.client-service-history>.card-kicker{margin-bottom:4px}.client-service-history>div{display:flex;justify-content:space-between;gap:12px;font-size:9px}.client-service-history>div strong{font-size:10px}.client-service-history>div span{color:var(--muted)}
.client-history-section{padding:18px 22px 4px}.client-history-section+ .client-history-section{border-top:1px solid var(--border-soft)}.client-history-section h4{margin:0 0 10px;font-size:11px;letter-spacing:.04em}.client-booking-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(160px,.9fr) minmax(120px,.6fr) auto;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--border-soft)}.client-history-section h4+.client-booking-row{border-top:0}.client-booking-upcoming{position:relative}.client-booking-upcoming::before{content:"";position:absolute;left:-22px;top:11px;bottom:11px;width:3px;border-radius:999px;background:var(--brand-pink)}.client-booking-date{display:grid;gap:3px}.client-booking-date strong{font-size:10px}.client-booking-date span{font-size:9px;color:var(--muted)}.client-booking-meta{display:flex;gap:5px;flex-wrap:wrap}.client-booking-money{display:grid;gap:2px;text-align:right}.client-booking-money strong{font-size:10px}.client-booking-money small{font-size:8px;color:var(--muted)}.client-booking-row>.button{min-height:32px;padding:0 10px;font-size:8px}.client-history-empty{color:var(--muted);font-size:10px;margin:0 0 16px}
@media(max-width:1050px){.client-stats,.client-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.client-profile-grid{grid-template-columns:1fr}.client-booking-row{grid-template-columns:1.4fr 1fr auto}.client-booking-money{display:none}}
@media(max-width:760px){.clients-content,.client-profile-content{padding:18px 14px 110px;gap:14px}.clients-hero,.client-profile-hero{padding:20px;flex-direction:column}.clients-hero-mark{display:none}.client-stats,.client-profile-stats{grid-template-columns:1fr 1fr;gap:10px}.client-stats article,.client-profile-stats article{min-height:78px;padding:13px}.client-list-head,.client-history-head,.client-profile-card>header{padding:18px;flex-direction:column}.client-search{width:100%;display:grid;grid-template-columns:1fr auto}.client-search input{width:100%;grid-column:1/-1}.client-search-icon{top:11px}.client-search .button-ghost{display:none}.client-filter-tabs{padding:9px 12px}.client-table{min-width:0}.client-table thead{display:none}.client-table,.client-table tbody,.client-table tr,.client-table td{display:block;width:100%}.client-table tr{padding:14px 16px;border-bottom:1px solid var(--border-soft);position:relative}.client-table td{border:0;padding:5px 0;display:flex;justify-content:space-between;gap:12px;align-items:center}.client-table td::before{content:attr(data-label);font-size:8px;color:var(--muted-2);letter-spacing:.08em;font-weight:700;flex:0 0 92px}.client-table td:first-child{display:block;padding-bottom:9px}.client-table td:first-child::before,.client-table .client-actions-cell::before{display:none}.client-actions-cell .button{width:100%;margin-top:6px}.client-pagination{justify-content:space-between;gap:8px}.client-pagination>span{display:none}.client-profile-heading{align-items:flex-start}.client-profile-avatar{width:48px;height:48px;font-size:16px}.client-profile-actions{width:100%}.client-profile-actions .button{flex:1}.client-profile-form{padding:18px}.client-profile-form-actions .button{width:100%}.client-summary-list,.client-service-history{padding-left:18px;padding-right:18px}.client-history-section{padding:16px 18px 4px}.client-booking-upcoming::before{left:-18px}.client-booking-row{grid-template-columns:1fr auto;gap:8px}.client-booking-meta{justify-content:flex-end}.client-booking-row>.button{grid-column:1/-1;width:100%}}
@media(max-width:460px){.client-stats,.client-profile-stats{grid-template-columns:1fr}.client-profile-stats .client-stat-date{max-width:none}.client-profile-heading{flex-direction:column}.client-profile-actions{display:grid;grid-template-columns:1fr}.client-booking-row{grid-template-columns:1fr}.client-booking-meta{justify-content:flex-start}}
.calendar-client-profile-link{margin-left:auto;color:var(--brand-pink);font-weight:600;text-decoration:none}.calendar-client-profile-link:hover{text-decoration:underline}
@media(max-width:760px){.calendar-client-profile-link{width:100%;margin-left:0}}

/* v0.8.0 — Safe client deletion */
.client-danger-zone{border:1px solid var(--danger-border);background:var(--danger-bg);border-radius:var(--radius-card);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px}.client-danger-zone strong{display:block;font-size:12px;margin:4px 0}.client-danger-zone p{margin:0;color:var(--muted);font-size:9px;line-height:1.55;max-width:780px}.client-danger-zone form{flex:0 0 auto}
@media(max-width:760px){.client-danger-zone{align-items:flex-start;flex-direction:column}.client-danger-zone form,.client-danger-zone .button{width:100%}}

/* v0.8.0 — Promotions Core */
.promotions-content,.promotion-form-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}
.promotions-hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;transition:var(--transition-theme)}
.promotions-hero h2{margin:5px 0 8px;font-size:26px;line-height:1.2}.promotions-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;max-width:760px}
.promotion-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.promotion-stats article{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;display:grid;gap:2px}.promotion-stats span{font-size:8px;font-weight:700;letter-spacing:.12em;color:var(--muted)}.promotion-stats strong{font-size:24px;line-height:1.1}.promotion-stats small{font-size:8px;color:var(--muted-2)}
.promotion-list-card,.promotion-editor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.promotion-table-wrap{overflow-x:auto}.promotion-table{width:100%;border-collapse:collapse;min-width:980px}.promotion-table th{padding:11px 14px;text-align:left;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--surface-soft);border-bottom:1px solid var(--border)}.promotion-table td{padding:13px 14px;border-bottom:1px solid var(--border-soft);vertical-align:middle;font-size:9px}.promotion-table tr:last-child td{border-bottom:0}.promotion-name-cell,.promotion-window{display:grid;gap:3px}.promotion-name-cell strong,.promotion-window strong{font-size:10px}.promotion-name-cell small,.promotion-window span{font-size:8px;color:var(--muted)}.promotion-discount-value{color:var(--brand-pink);font-size:11px}
.promotion-editor{display:grid;gap:18px}.promotion-editor-card{padding-bottom:20px}.promotion-form-grid{padding:0 20px}.promotion-switch-field .switch-row{min-height:42px;border:1px solid var(--border);border-radius:12px;padding:0 12px;display:flex;align-items:center;gap:9px;background:var(--surface-soft)}.promotion-switch-field .switch-row input{accent-color:var(--brand-pink)}.promotion-switch-field .switch-row strong{font-size:9px}.promotion-value-input{display:grid;grid-template-columns:42px 1fr;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--input-bg)}.promotion-value-input>span{display:grid;place-items:center;background:var(--surface-soft);border-right:1px solid var(--border);font-size:11px;font-weight:700;color:var(--muted)}.promotion-value-input input{border:0!important;border-radius:0!important;background:transparent!important}
.promotion-scope-options{padding:0 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.promotion-scope-card{border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:14px;display:flex;align-items:flex-start;gap:10px;cursor:pointer}.promotion-scope-card:has(input:checked){border-color:rgba(255,93,179,.55);background:rgba(255,93,179,.06)}.promotion-scope-card input{margin-top:2px;accent-color:var(--brand-pink)}.promotion-scope-card span{display:grid;gap:3px}.promotion-scope-card strong{font-size:10px}.promotion-scope-card small{font-size:8px;color:var(--muted);line-height:1.5}.promotion-service-picker{margin:14px 20px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.promotion-service-picker.is-hidden{display:none}.promotion-service-picker label{border:1px solid var(--border-soft);border-radius:12px;padding:11px 12px;display:flex;gap:9px;align-items:flex-start;background:var(--surface-soft)}.promotion-service-picker input{margin-top:2px;accent-color:var(--brand-pink)}.promotion-service-picker span{display:grid;gap:2px}.promotion-service-picker strong{font-size:9px}.promotion-service-picker small{font-size:7px;color:var(--muted)}.promotion-scope-error{display:block;margin:8px 20px 0}.promotion-danger-zone{margin-top:0}
.public-promo-price{display:flex!important;align-items:baseline;gap:7px;white-space:nowrap}.public-promo-price del{font-size:9px;color:var(--muted);font-weight:500}.public-promo-price strong{font-size:13px;color:var(--brand-pink)}.public-promo-badge{display:inline-flex;width:max-content;max-width:100%;padding:4px 7px;border-radius:999px;background:rgba(255,93,179,.11);color:var(--brand-pink);font-size:7px;font-weight:700;letter-spacing:.04em;margin-top:3px}
@media(max-width:760px){.promotions-content,.promotion-form-content{padding:18px;padding-bottom:94px}.promotions-hero{padding:20px;flex-direction:column}.promotions-hero .button{width:100%}.promotion-stats{grid-template-columns:1fr 1fr}.promotion-stats article:first-child{grid-column:1/-1}.promotion-table{min-width:0}.promotion-table thead{display:none}.promotion-table,.promotion-table tbody,.promotion-table tr,.promotion-table td{display:block;width:100%}.promotion-table tr{padding:12px 14px;border-bottom:1px solid var(--border)}.promotion-table td{padding:5px 0;border:0;display:grid;grid-template-columns:100px 1fr;gap:10px}.promotion-table td:before{content:attr(data-label);font-size:7px;font-weight:700;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.promotion-table .service-actions-cell{display:block;padding-top:10px}.promotion-table .service-actions-cell .button{width:100%}.promotion-scope-options,.promotion-service-picker{grid-template-columns:1fr}.promotion-form-grid{padding:0 16px}.promotion-scope-options{padding:0 16px}.promotion-service-picker{margin:12px 16px 0}.promotion-editor-card{padding-bottom:16px}}

/* v0.9.2 — Public Booking Contact Fields */
.public-booking-root{scroll-margin-top:88px}
.public-stepper li.completed{color:var(--text-soft)}
.public-stepper li.completed span{background:color-mix(in srgb,var(--success) 12%,var(--surface-2));border-color:color-mix(in srgb,var(--success) 42%,var(--border));color:var(--success)}
.public-booking-panel>[data-booking-step]{animation:bookingStepIn .18s ease}
@keyframes bookingStepIn{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
.public-service-card-disabled{opacity:.62}
.public-service-card-disabled .public-service-select{cursor:not-allowed}
.public-step-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border-soft)}
.public-step-actions-end{justify-content:flex-end}
.public-step-actions .button{min-width:150px}
.public-date-time-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(280px,1.1fr);gap:18px;margin-top:20px}
.public-date-picker,.public-slot-picker{border:1px solid var(--border-soft);border-radius:18px;background:var(--surface-soft);padding:18px;min-width:0}
.public-calendar-toolbar{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:10px;margin-bottom:14px}
.public-calendar-toolbar strong{text-align:center;font-size:13px;text-transform:capitalize}
.public-calendar-toolbar .icon-button{width:36px;height:36px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer}
.public-calendar-toolbar .icon-button:disabled{opacity:.3;cursor:not-allowed}
.public-calendar-toolbar svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-calendar-weekdays,.public-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.public-calendar-weekdays{margin-bottom:5px}
.public-calendar-weekdays span{height:24px;display:grid;place-items:center;font-size:7px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-2)}
.public-calendar-day{aspect-ratio:1;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text-soft);font-size:10px;font-weight:650;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}
.public-calendar-day:hover:not(:disabled){border-color:rgba(255,93,179,.35);background:rgba(255,93,179,.06);color:var(--text);transform:translateY(-1px)}
.public-calendar-day.outside{color:var(--muted-2);opacity:.45}
.public-calendar-day.disabled{opacity:.2;cursor:not-allowed}
.public-calendar-day.today{border-color:var(--border)}
.public-calendar-day.selected{background:var(--brand-pink);border-color:var(--brand-pink);color:#fff;box-shadow:0 8px 22px rgba(255,93,179,.2)}
.public-inline-help{margin:12px 0 0;color:var(--muted-2);font-size:8.5px;line-height:1.55}
.public-slot-picker{display:flex;flex-direction:column;min-height:330px}
.public-slot-head{display:grid;gap:4px;padding-bottom:13px;border-bottom:1px solid var(--border-soft)}
.public-slot-head strong{font-size:14px;text-transform:capitalize}
.public-slot-state{flex:1;min-height:210px;display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted);font-size:10px;line-height:1.55;border:1px dashed var(--border);border-radius:14px;margin-top:14px}
.public-slot-state.loading{color:var(--brand-pink)}
.public-slot-state.error{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}
.public-slot-state.empty{background:var(--surface)}
.public-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}
.public-slot-button{min-height:78px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);padding:11px 12px;text-align:left;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:4px 10px;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.public-slot-button:hover{transform:translateY(-1px);border-color:rgba(255,93,179,.38)}
.public-slot-button strong{font-size:16px;line-height:1}
.public-slot-button span{font-size:8.5px;color:var(--muted)}
.public-slot-button small{grid-column:1/-1;font-size:7.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.public-slot-button.selected{border-color:rgba(255,93,179,.62);background:rgba(255,93,179,.075);box-shadow:0 0 0 2px rgba(255,93,179,.06) inset}
.public-slot-button.selected strong{color:var(--brand-pink)}
.public-hold-notice{display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--success) 35%,var(--border));border-radius:15px;background:color-mix(in srgb,var(--success) 7%,var(--surface-soft))}
.public-hold-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;background:color-mix(in srgb,var(--success) 12%,var(--surface));color:var(--success)}
.public-hold-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.public-hold-notice strong{font-size:11px}
.public-hold-notice p{margin:4px 0 0;color:var(--muted);font-size:9px}
.public-hold-notice p span{font-variant-numeric:tabular-nums;font-weight:700;color:var(--text)}
.public-client-form{margin-top:18px}
.public-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.public-form-grid .field{display:grid;gap:7px}
.public-form-grid .field>span{font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.public-form-grid input,.public-form-grid textarea{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);color:var(--text);padding:11px 12px;font:inherit;font-size:11px;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.public-form-grid textarea{resize:vertical;min-height:92px;line-height:1.55}
.public-form-grid input:focus,.public-form-grid textarea:focus{border-color:rgba(255,93,179,.55);box-shadow:0 0 0 3px rgba(255,93,179,.08);background:var(--surface)}
.public-input-prefix{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.public-input-prefix:focus-within{border-color:rgba(255,93,179,.55);box-shadow:0 0 0 3px rgba(255,93,179,.08);background:var(--surface)}
.public-input-prefix>span{min-width:44px;display:flex;align-items:center;justify-content:center;padding:0 11px;border-right:1px solid var(--border-soft);color:var(--muted);font-size:10px;font-weight:700;flex:0 0 auto}
.public-input-prefix .public-prefix-text{letter-spacing:.02em}
.public-input-prefix .public-prefix-icon{color:var(--brand-pink)}
.public-input-prefix .public-prefix-icon .ui-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.public-input-prefix input{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;min-width:0;padding-left:11px!important}
.public-form-grid .field-full{grid-column:1/-1}
.public-data-note{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--muted-2);font-size:8.5px}
.public-data-note svg{width:14px;height:14px;fill:none;stroke:var(--brand-pink);stroke-width:1.8;flex:0 0 auto}
.public-payment-preview{display:flex;align-items:center;gap:18px;margin-top:20px;padding:20px;border:1px solid rgba(255,93,179,.26);border-radius:18px;background:linear-gradient(135deg,rgba(255,93,179,.08),var(--surface-soft))}
.public-payment-preview-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--brand-pink);flex:0 0 auto}
.public-payment-preview-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8}
.public-payment-preview-copy{display:grid;gap:4px}
.public-payment-preview-copy>strong{font-size:27px;letter-spacing:-.03em}
.public-payment-preview-copy p{margin:2px 0 0;color:var(--muted);font-size:9.5px;line-height:1.55}
.public-payment-preview-copy p span{font-variant-numeric:tabular-nums;font-weight:700;color:var(--text)}
.public-payment-dev-note{margin-top:14px;padding:16px;border:1px dashed var(--border);border-radius:15px;background:var(--surface-soft)}
.public-payment-dev-note strong{font-size:11px}
.public-payment-dev-note p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.6}
.public-final-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.public-final-review>div{padding:13px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-soft);display:grid;gap:5px;min-width:0}
.public-final-review span{font-size:7.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.public-final-review strong{font-size:10px;overflow-wrap:anywhere}
.public-summary-hold{display:flex;align-items:center;justify-content:center;gap:7px;margin:-6px 0 12px;padding:9px;border:1px solid color-mix(in srgb,var(--success) 32%,var(--border));border-radius:11px;background:color-mix(in srgb,var(--success) 6%,var(--surface-soft));color:var(--text-soft);font-size:8.5px}
.public-summary-hold svg{width:13px;height:13px;fill:none;stroke:var(--success);stroke-width:1.8}
.public-summary-hold strong{font-variant-numeric:tabular-nums;color:var(--text)}

@media(max-width:900px){
  .public-date-time-layout{grid-template-columns:1fr}
  .public-slot-picker{min-height:240px}
  .public-slot-state{min-height:130px}
}
@media(max-width:680px){
  .public-stepper{grid-template-columns:repeat(4,minmax(0,1fr));padding:6px;gap:3px}
  .public-stepper li{min-height:48px;padding:0 5px;justify-content:center;gap:5px}
  .public-stepper li strong{display:none}
  .public-stepper li span{width:28px;height:28px}
  .public-flow-panel{padding:18px}
  .public-panel-head{align-items:center}
  .public-date-picker,.public-slot-picker{padding:14px}
  .public-slot-grid{grid-template-columns:1fr 1fr}
  .public-form-grid{grid-template-columns:1fr}
  .public-form-grid .field-full{grid-column:auto}
  .public-final-review{grid-template-columns:1fr}
  .public-step-actions{flex-direction:column-reverse;align-items:stretch}
  .public-step-actions-end{flex-direction:column;align-items:stretch}
  .public-step-actions .button{width:100%;min-width:0}
  .public-payment-preview{align-items:flex-start;padding:16px}
  .public-payment-preview-copy>strong{font-size:23px}
}
.button-small{min-height:34px!important;padding:0 12px!important;font-size:9px!important}

/* v0.11.2 — Bank Transfer Payments */
.public-transfer-panel{margin-top:16px;padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--surface-soft);display:grid;gap:16px}
.public-transfer-head{display:flex;align-items:flex-start;gap:13px}.public-transfer-head h3{margin:2px 0 3px;font-size:16px}.public-transfer-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.public-transfer-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--brand-pink);flex:0 0 auto}.public-transfer-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.public-bank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.public-bank-grid>div{padding:12px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);display:grid;gap:3px;min-width:0}.public-bank-grid span{font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.public-bank-grid strong{font-size:10px;overflow-wrap:anywhere}
.public-transfer-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:stretch}.public-receipt-drop{min-height:76px;padding:12px;border:1px dashed var(--border);border-radius:13px;background:var(--surface);display:flex;align-items:center;gap:11px;cursor:pointer}.public-receipt-drop:focus-within{border-color:rgba(255,93,179,.55);box-shadow:0 0 0 3px rgba(255,93,179,.07)}.public-receipt-drop input{max-width:230px;font-size:8px;color:var(--muted)}.public-receipt-drop>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}.public-receipt-drop strong{font-size:10px}.public-receipt-drop small{font-size:7.5px;color:var(--muted-2)}.public-receipt-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:var(--brand-pink);background:rgba(255,93,179,.08);flex:0 0 auto}.public-receipt-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.public-transfer-form .button{min-width:180px}.public-transfer-success{margin-top:16px}
.settings-content,.payments-content,.receipts-content{padding:32px;max-width:1400px;margin:0 auto;display:grid;gap:18px}.settings-card,.payment-list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;padding-bottom:20px}.settings-form-grid{padding:0 20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-form-grid .field{display:grid;gap:7px}.settings-form-grid .field span{font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.settings-form-grid input,.receipt-reject-form input,.receipt-reject-form textarea{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--input-bg);color:var(--text);padding:11px 12px;font:inherit;font-size:10px;outline:none}.settings-form-grid input:focus,.receipt-reject-form input:focus,.receipt-reject-form textarea:focus{border-color:rgba(255,93,179,.55);box-shadow:0 0 0 3px rgba(255,93,179,.08)}.settings-note{margin:16px 20px 0;padding:12px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-soft);display:flex;align-items:center;gap:9px;color:var(--muted);font-size:8px}.settings-note svg{width:15px;height:15px;fill:none;stroke:var(--brand-pink);stroke-width:1.8}.settings-card .service-form-actions{padding:16px 20px 0}.table-subtle{display:block;margin-top:3px;color:var(--muted-2);font-size:7px}.badge-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}
.receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.receipt-review-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:18px;display:grid;gap:14px}.receipt-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.receipt-review-head h3{margin:4px 0 3px;font-size:16px}.receipt-review-head p{margin:0;color:var(--muted);font-size:8.5px}.receipt-amount{font-size:20px;color:var(--brand-pink);white-space:nowrap}.receipt-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.receipt-meta-grid>div{padding:10px;border:1px solid var(--border-soft);border-radius:11px;background:var(--surface-soft);display:grid;gap:3px;min-width:0}.receipt-meta-grid span{font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2)}.receipt-meta-grid strong{font-size:9px;overflow-wrap:anywhere}.receipt-preview-link{width:max-content}.receipt-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding-top:12px;border-top:1px solid var(--border-soft)}.receipt-actions form:first-child .button{height:100%}.receipt-reject-form{display:grid;grid-template-columns:1fr auto;gap:8px}.receipt-reject-form .field-label,.receipt-reject-form small{grid-column:1/-1}.receipt-reject-form .field-label{font-size:7px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}.receipt-reject-form textarea{grid-column:1/2;min-height:72px;resize:vertical}.receipt-reject-form small{font-size:7.5px;line-height:1.5;color:var(--muted-2)}
@media(max-width:820px){.receipt-grid{grid-template-columns:1fr}.public-transfer-form{grid-template-columns:1fr}.public-transfer-form .button{width:100%}.public-bank-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.settings-content,.payments-content,.receipts-content{padding:18px;padding-bottom:94px}.settings-form-grid{grid-template-columns:1fr;padding:0 16px}.settings-note{margin:14px 16px 0}.settings-card .service-form-actions{padding:14px 16px 0}.public-bank-grid{grid-template-columns:1fr}.public-receipt-drop{align-items:flex-start;flex-wrap:wrap}.public-receipt-drop input{max-width:100%;width:100%}.receipt-review-head{flex-direction:column}.receipt-meta-grid{grid-template-columns:1fr}.receipt-actions{grid-template-columns:1fr}.receipt-actions .button,.receipt-preview-link{width:100%}.receipt-reject-form{grid-template-columns:1fr}}

/* v0.11.5 — Public booking status portal */
.public-status-page-head{margin-bottom:18px}
.public-status-portal{max-width:900px;margin:0 auto;min-height:430px;display:grid;align-items:start}
.public-status-card{position:relative;padding:30px;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.public-status-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--brand-pink)}
.public-status-card.is-pending::before{background:var(--brand-pink)}
.public-status-card.is-confirmed::before{background:var(--status-text)}
.public-status-card.is-rejected::before,.public-status-card.is-unavailable::before{background:var(--danger)}
.public-status-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;margin-bottom:18px;background:rgba(255,93,179,.08);color:var(--brand-pink);border:1px solid rgba(255,93,179,.16)}
.public-status-card.is-confirmed .public-status-icon{background:var(--status-bg);border-color:var(--status-border);color:var(--status-text)}
.public-status-card.is-rejected .public-status-icon,.public-status-card.is-unavailable .public-status-icon{background:var(--danger-bg);border-color:rgba(220,70,90,.22);color:var(--danger)}
.public-status-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7}
.public-status-card h2{font-size:28px;line-height:1.15;margin:7px 0 8px}.public-status-card>p{max-width:670px;margin:0;color:var(--muted);font-size:11px;line-height:1.7}
.public-status-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px;padding-top:22px;border-top:1px solid var(--border)}
.public-status-details>div{min-height:72px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface-soft);display:grid;gap:5px;align-content:center}
.public-status-details span{font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:700}.public-status-details strong{font-size:10px;line-height:1.45;overflow-wrap:anywhere}
.public-status-poll{margin-top:16px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:9px;background:var(--surface-soft)}
.public-status-poll svg{width:15px;height:15px;fill:none;stroke:var(--brand-pink);stroke-width:1.8}
.public-status-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.public-status-actions .button{min-width:170px}
.public-status-card.is-unavailable .button{margin-top:20px;display:inline-flex;width:auto}
@media(max-width:760px){.public-status-portal{min-height:360px}.public-status-card{padding:22px 18px}.public-status-card h2{font-size:22px}.public-status-details{grid-template-columns:1fr 1fr}.public-status-actions{flex-direction:column}.public-status-actions .button{width:100%}}
@media(max-width:440px){.public-status-details{grid-template-columns:1fr}}

/* v0.11.15.2 — Payment Status Visibility & Receipt Deep Link */
.calendar-event.status-payment_pending{position:relative;padding-right:42px;border-left-color:var(--warning);background:color-mix(in srgb,var(--warning) 8%,var(--surface))}
.calendar-payment-mini{position:absolute;right:5px;top:50%;transform:translateY(-50%);font-style:normal;font-size:6px;line-height:1;font-weight:800;letter-spacing:.08em;color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:5px;padding:3px 4px}
.calendar-grid-event.status-payment_pending{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning) 8%,var(--surface))}
.calendar-grid-event.status-payment_pending::after{content:'PAGO';position:absolute;right:6px;top:5px;border-radius:6px;padding:3px 5px;background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning);font-size:6px;line-height:1;font-weight:800;letter-spacing:.08em}
.calendar-legend i.payment-pending{background:var(--warning);box-shadow:0 0 0 2px color-mix(in srgb,var(--warning) 16%,transparent)}
.calendar-payment-panel{margin:0 22px 18px;border:1px solid var(--warning-border);border-radius:16px;background:color-mix(in srgb,var(--warning) 5%,var(--surface));overflow:hidden}
.calendar-payment-panel[hidden]{display:none!important}
.calendar-payment-panel-head{padding:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid color-mix(in srgb,var(--warning) 24%,var(--border-soft))}
.calendar-payment-panel-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}
.calendar-payment-panel-icon .ui-icon{width:18px;height:18px}
.calendar-payment-panel-head h3{margin:2px 0 0;font-size:14px}
.calendar-payment-panel-head p{margin:3px 0 0;color:var(--muted);font-size:8px}
.calendar-payment-panel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border-soft)}
.calendar-payment-panel-grid>div{background:var(--surface);padding:12px 14px;display:grid;gap:4px;min-width:0}
.calendar-payment-panel-grid span{font-size:6.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.calendar-payment-panel-grid strong{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-payment-panel-actions{display:flex;gap:8px;align-items:center;padding:14px 16px 8px}
.calendar-payment-panel-actions .button{min-height:38px;font-size:8px}
.calendar-payment-panel-note{margin:0;padding:2px 16px 14px;color:var(--muted);font-size:7.5px;line-height:1.55}
.receipt-review-card.is-focused{border-color:var(--warning-border);box-shadow:0 0 0 2px color-mix(in srgb,var(--warning) 12%,transparent),var(--shadow-card);scroll-margin-top:20px}
.receipt-review-focus-meta{display:grid;justify-items:end;gap:7px}
.payment-row-focused{background:color-mix(in srgb,var(--warning) 7%,var(--surface-soft))!important;box-shadow:inset 3px 0 0 var(--warning)}
.table-focus-label{display:inline-flex;margin-top:4px;padding:2px 5px;border-radius:5px;background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning);font-size:6px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:760px){.calendar-payment-panel{margin:0 16px 14px}.calendar-payment-panel-head{grid-template-columns:auto 1fr}.calendar-payment-panel-head>.badge{grid-column:1/-1;justify-self:start}.calendar-payment-panel-grid{grid-template-columns:1fr 1fr}.calendar-payment-panel-actions{display:grid;grid-template-columns:1fr}.calendar-payment-panel-actions .button{width:100%}.calendar-grid-event.status-payment_pending::after{content:'PAGO';right:4px;top:4px}.receipt-review-focus-meta{justify-items:start}}



/* v0.11.16 — Fase 11.5 / Calendar Payment Actions */
.calendar-payment-decision-actions{display:flex;gap:8px;align-items:center;padding:14px 16px 0}
.calendar-payment-decision-actions[hidden],.calendar-payment-reject-box[hidden]{display:none!important}
.calendar-payment-decision-actions .button{min-height:40px;font-size:8px}
.calendar-payment-reject-box{margin:12px 16px 4px;padding:13px;border:1px solid var(--danger-border);border-radius:13px;background:color-mix(in srgb,var(--danger) 5%,var(--surface));display:grid;grid-template-columns:1fr auto;gap:8px}
.calendar-payment-reject-box>label,.calendar-payment-reject-box>small{grid-column:1/-1}
.calendar-payment-reject-box>label{font-size:7px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--danger)}
.calendar-payment-reject-box>textarea{width:100%;min-height:72px;resize:vertical;border:1px solid var(--border);border-radius:11px;background:var(--input-bg);color:var(--text);padding:10px 11px;font:inherit;font-size:9px;outline:none}
.calendar-payment-reject-box>textarea:focus{border-color:var(--danger-border);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 10%,transparent)}
.calendar-payment-reject-box>small{color:var(--muted);font-size:7.5px;line-height:1.5}
.calendar-payment-reject-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;grid-column:1/-1}
.calendar-payment-reject-actions .button{min-height:36px;font-size:8px}
@media(max-width:760px){.calendar-payment-decision-actions{display:grid;grid-template-columns:1fr;padding:12px 16px 0}.calendar-payment-decision-actions .button{width:100%}.calendar-payment-reject-box{grid-template-columns:1fr}.calendar-payment-reject-actions{display:grid;grid-template-columns:1fr}.calendar-payment-reject-actions .button{width:100%}}


/* v0.11.17 — Receipt Modal & Cleanup Controls */
.receipt-viewer-modal{position:fixed;inset:0;z-index:230;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.76);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.receipt-viewer-modal.open{display:flex}
.receipt-viewer-dialog{width:min(980px,100%);height:min(820px,calc(100vh - 48px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--surface-raised);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-card);overflow:hidden}
.receipt-viewer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border-soft)}
.receipt-viewer-head h2{margin:3px 0 0;font-size:18px}
.receipt-viewer-head-actions{display:flex;gap:8px;align-items:center}
.receipt-viewer-stage{min-height:0;background:color-mix(in srgb,var(--surface-soft) 72%,#000 28%)}
.receipt-viewer-stage iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.receipt-viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:1px solid var(--border-soft);color:var(--muted);font-size:7.5px;line-height:1.45}
body.receipt-viewer-open{overflow:hidden}
.history-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.history-cleanup{position:relative}
.history-cleanup>summary{list-style:none;cursor:pointer}
.history-cleanup>summary::-webkit-details-marker{display:none}
.history-cleanup-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(310px,80vw);padding:14px;background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card)}
.history-cleanup-popover strong{display:block;font-size:10px;margin-bottom:5px}
.history-cleanup-popover p{margin:0 0 12px;color:var(--muted);font-size:8px;line-height:1.55}
.history-cleanup-popover form,.history-cleanup-popover .button{width:100%}
@media(max-width:760px){.receipt-viewer-modal{padding:0}.receipt-viewer-dialog{width:100%;height:100%;max-height:none;border-radius:0;border:0}.receipt-viewer-head{padding:14px 16px}.receipt-viewer-head-actions .button{display:none}.receipt-viewer-footer{padding-bottom:max(12px,env(safe-area-inset-bottom));flex-direction:column;align-items:stretch}.receipt-viewer-footer .button{width:100%}.history-head-actions{width:100%;justify-content:space-between}.history-cleanup-popover{position:fixed;left:16px;right:16px;bottom:86px;top:auto;width:auto}}


/* v0.11.18 — Calendar & Admin Visual Polish + Custom Admin Dialogs */

/* Stronger active navigation: same visual language in both themes. */
.nav-item{position:relative;border:1px solid transparent}
.nav-item.active{
  background:var(--brand-pink);
  color:#171017;
  border-color:var(--brand-pink);
  box-shadow:0 8px 22px color-mix(in srgb,var(--brand-pink) 22%,transparent);
  font-weight:700;
}
.nav-item.active::before{
  content:"";
  position:absolute;
  left:-5px;
  top:8px;
  bottom:8px;
  width:3px;
  border-radius:999px;
  background:var(--accent);
}
.nav-item.active:hover{background:var(--brand-pink);color:#171017}
.nav-item.active .nav-item-icon,.nav-item.active:hover .nav-item-icon{color:#171017}
.nav-item.active small{color:rgba(23,16,23,.68)}
.mobile-nav-item.active{
  background:var(--brand-pink);
  color:#171017;
  box-shadow:0 4px 14px color-mix(in srgb,var(--brand-pink) 22%,transparent);
}
.mobile-nav-item.active .mobile-nav-icon{color:#171017}

/* Calendar typography: +2px over the previous operational cards. */
.calendar-event span,.calendar-event strong,.calendar-more{font-size:9px}
.calendar-grid-event>span{font-size:9px}
.calendar-grid-event>strong{font-size:11px}
.calendar-grid-event>small{font-size:9px}
.calendar-grid-event-day>strong{font-size:12px}
.calendar-grid-event-day>small{font-size:10px}

/* State palette: deliberately separated hues. */
.calendar-event.status-payment_pending,
.calendar-grid-event.status-payment_pending{
  border-color:var(--calendar-payment-border)!important;
  border-left-color:var(--calendar-payment-border)!important;
  background:var(--calendar-payment-bg)!important;
}
.calendar-event.status-completed,
.calendar-grid-event.status-completed{
  border-color:var(--calendar-completed-border)!important;
  border-left-color:var(--calendar-completed-border)!important;
  background:var(--calendar-completed-bg)!important;
}
.calendar-event.status-no_show,
.calendar-event.status-no-show,
.calendar-grid-event.status-no_show,
.calendar-grid-event.status-no-show{
  border-color:var(--calendar-noshow-border)!important;
  border-left-color:var(--calendar-noshow-border)!important;
  background:var(--calendar-noshow-bg)!important;
}
.calendar-event.status-cancelled,
.calendar-grid-event.status-cancelled{
  border-color:var(--calendar-cancelled-border)!important;
  border-left-color:var(--calendar-cancelled-border)!important;
  background:var(--calendar-cancelled-bg)!important;
}
.calendar-event.break,
.calendar-grid-event.break{
  border-color:var(--calendar-break-border)!important;
  border-left-color:var(--calendar-break-border)!important;
  background:var(--calendar-break-bg)!important;
  opacity:1;
}
.calendar-grid-event.break:hover{
  border-color:var(--calendar-break-border)!important;
  border-left-color:var(--calendar-break-border)!important;
}
.calendar-event.block,
.calendar-grid-event.block{
  border-color:var(--calendar-block-border)!important;
  border-left-color:var(--calendar-block-border)!important;
  background:var(--calendar-block-bg)!important;
  opacity:1;
}

/* Confirmed uses the institutional pink but gets a stronger fill, especially in light mode. */
.calendar-event:not(.status-payment_pending):not(.status-completed):not(.status-no_show):not(.status-no-show):not(.status-cancelled):not(.break):not(.block),
.calendar-grid-event:not(.status-payment_pending):not(.status-completed):not(.status-no_show):not(.status-no-show):not(.status-cancelled):not(.break):not(.block){
  background:var(--calendar-confirmed-bg);
  border-color:var(--calendar-confirmed-border);
  border-left-color:var(--calendar-confirmed-border);
}

/* Legend follows the real calendar palette. */
.calendar-legend i{background:var(--calendar-confirmed-border)}
.calendar-legend i.payment-pending{background:var(--calendar-payment-border);box-shadow:none}
.calendar-legend i.completed{background:var(--calendar-completed-border)}
.calendar-legend i.no-show{background:var(--calendar-noshow-border)}
.calendar-legend i.cancelled{background:var(--calendar-cancelled-border)}
.calendar-legend i.blocked{background:var(--calendar-block-border);border:0}
.calendar-legend i.break{background:var(--calendar-break-border);box-shadow:none}

/* CherryLash dialog system replacing browser confirm/alert styling. */
.admin-confirm-modal{
  position:fixed;
  inset:0;
  z-index:260;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.admin-confirm-modal.open{display:flex}
.admin-confirm-dialog{
  width:min(470px,100%);
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:16px;
  padding:22px;
  background:var(--surface-raised);
  border:1px solid var(--border);
  border-radius:20px;
  box-shadow:0 28px 80px rgba(0,0,0,.34);
}
.admin-confirm-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--danger-bg);
  color:var(--danger);
  border:1px solid var(--danger-border);
}
.admin-confirm-icon[data-variant="warning"]{
  background:var(--warning-bg);
  color:var(--warning);
  border-color:var(--warning-border);
}
.admin-confirm-icon .ui-icon{width:22px;height:22px}
.admin-confirm-copy h2{margin:4px 0 7px;font-size:17px}
.admin-confirm-copy p:last-child{margin:0;color:var(--muted);font-size:10px;line-height:1.65}
.admin-confirm-actions{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:9px;
  padding-top:4px;
}
.admin-confirm-actions .button{min-width:112px}
.button-warning{
  background:var(--warning-bg);
  border-color:var(--warning-border);
  color:var(--warning);
}
body.admin-confirm-open{overflow:hidden}

@media(max-width:760px){
  .nav-item.active::before{left:-3px}
  .calendar-event span,.calendar-event strong,.calendar-more{font-size:8.5px}
  .calendar-grid-event>span{font-size:8.5px}
  .calendar-grid-event>strong{font-size:10px}
  .calendar-grid-event>small{font-size:8.5px}
  .calendar-grid-event-day>strong{font-size:11px}
  .calendar-grid-event-day>small{font-size:9px}
  .admin-confirm-modal{align-items:flex-end;padding:10px}
  .admin-confirm-dialog{
    width:100%;
    border-radius:19px 19px 0 0;
    grid-template-columns:42px minmax(0,1fr);
    padding:18px;
  }
  .admin-confirm-icon{width:42px;height:42px;border-radius:12px}
  .admin-confirm-actions{display:grid;grid-template-columns:1fr}
  .admin-confirm-actions .button{width:100%}
}


/* v0.11.18.1 — Google Source Color Priority Hotfix
   Source is a visual dimension independent from booking status.
   Imported Google events remain blue/cyan even if their local status is CONFIRMED. */
.calendar-event.source-google,
.calendar-grid-event.source-google{
  background:var(--calendar-google-bg)!important;
  border-color:var(--calendar-google-border)!important;
  border-left-color:var(--calendar-google-border)!important;
  border-style:dashed!important;
}
.calendar-event.source-google strong,
.calendar-event.source-google span,
.calendar-grid-event.source-google>strong,
.calendar-grid-event.source-google>span,
.calendar-grid-event.source-google>small{
  color:var(--calendar-google-text)!important;
}
.calendar-grid-event.source-google::after{
  background:color-mix(in srgb,var(--calendar-google-border) 18%,transparent);
  border-color:color-mix(in srgb,var(--calendar-google-border) 42%,transparent);
  color:var(--calendar-google-border);
}
.calendar-event.source-google.is-incomplete-import,
.calendar-grid-event.source-google.is-incomplete-import{
  background:var(--calendar-google-bg)!important;
  border-color:var(--calendar-google-border)!important;
}
.calendar-legend i.google{
  background:var(--calendar-google-border);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--calendar-google-border) 18%,transparent);
}


/* v0.11.19 — Dashboard MVP */
.dashboard-mvp{display:grid;gap:16px}
.dashboard-welcome{
  position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:62px;padding:22px 24px 18px;border:1px solid var(--border);border-radius:20px;overflow:visible;
  background:linear-gradient(135deg,color-mix(in srgb,var(--brand-pink) 7%,var(--surface-raised)),var(--surface-raised) 55%);
  box-shadow:var(--shadow-card)
}
.dashboard-pet-overlay{
  position:absolute;z-index:4;left:0;right:0;top:-72px;height:92px;
  margin:0;padding:0;background:transparent;border:0;box-shadow:none;
  pointer-events:none;overflow:visible
}
.dashboard-pet-canvas{
  display:block;width:100%;height:92px;min-height:0!important;margin:0;padding:0;
  background:transparent!important;border:0!important;box-shadow:none!important;
  image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:none
}
.dashboard-pet-overlay[data-pet-ready="1"]{visibility:visible}
.dashboard-pet-overlay:not([data-pet-ready="1"]){visibility:hidden}
.dashboard-welcome h2{margin:4px 0 7px;font-size:22px}
.dashboard-welcome p:last-child{margin:0;max-width:760px;color:var(--muted);font-size:9.5px;line-height:1.65}
.dashboard-welcome-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto}
.dashboard-kpi-grid,.dashboard-money-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dashboard-kpi{
  position:relative;min-height:126px;padding:17px 17px 15px;
  display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto 1fr;
  column-gap:12px;text-decoration:none;color:var(--text);
  background:var(--surface-raised);border:1px solid var(--border);border-radius:17px;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease
}
.dashboard-kpi:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-card)}
.dashboard-kpi-icon{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--surface-soft);color:var(--muted)}
.dashboard-kpi-icon .ui-icon{width:18px;height:18px}
.dashboard-kpi-label{align-self:center;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dashboard-kpi strong{font-size:28px;line-height:1;margin-top:5px}
.dashboard-kpi small{grid-column:1/-1;align-self:end;margin-top:12px;color:var(--muted);font-size:8px;line-height:1.45}
.dashboard-kpi.is-pink{border-color:color-mix(in srgb,var(--brand-pink) 38%,var(--border))}
.dashboard-kpi.is-pink .dashboard-kpi-icon{background:color-mix(in srgb,var(--brand-pink) 14%,var(--surface));color:var(--brand-pink)}
.dashboard-kpi.is-warning{border-color:var(--warning-border)}
.dashboard-kpi.is-warning .dashboard-kpi-icon{background:var(--warning-bg);color:var(--warning)}
.dashboard-kpi.is-success{border-color:var(--success-border)}
.dashboard-kpi.is-success .dashboard-kpi-icon{background:var(--success-bg);color:var(--success)}
.dashboard-money-card{
  min-height:118px;padding:17px 18px;display:flex;flex-direction:column;justify-content:center;
  border:1px solid var(--border);border-radius:17px;background:var(--surface-raised)
}
.dashboard-money-card strong{display:block;margin:6px 0 7px;font-size:22px;line-height:1.1}
.dashboard-money-card small{color:var(--muted);font-size:8px;line-height:1.5}
.dashboard-money-card.is-balance{background:color-mix(in srgb,var(--warning) 5%,var(--surface-raised));border-color:color-mix(in srgb,var(--warning) 30%,var(--border))}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.75fr);gap:14px}
.dashboard-bottom-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:14px}
.dashboard-mvp .card{padding:18px}
.dashboard-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:14px}
.dashboard-section-head h3{margin:3px 0 0;font-size:15px}
.dashboard-agenda-list,.dashboard-attention-list,.dashboard-promo-list{display:grid;gap:7px}
.dashboard-agenda-row{
  position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:11px 12px;border:1px solid var(--border-soft);border-left:3px solid var(--border-strong);
  border-radius:12px;text-decoration:none;color:var(--text);background:var(--surface-soft);
  transition:border-color .15s ease,background .15s ease
}
.dashboard-agenda-row:hover{border-color:var(--border-strong);background:var(--surface-hover)}
.dashboard-agenda-row>time{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.dashboard-agenda-copy{min-width:0;display:grid;gap:3px}
.dashboard-agenda-copy strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-agenda-copy span{font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-agenda-meta{display:grid;justify-items:end;gap:4px}
.dashboard-agenda-meta small{font-size:7.5px;color:var(--muted)}
.dashboard-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:7px;font-weight:800;letter-spacing:.04em}
.dashboard-status.status-warning{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}
.dashboard-status.status-pink{background:color-mix(in srgb,var(--brand-pink) 12%,var(--surface));color:var(--brand-pink);border:1px solid color-mix(in srgb,var(--brand-pink) 30%,var(--border))}
.dashboard-status.status-success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}
.dashboard-status.status-orange{background:color-mix(in srgb,#f18a1b 12%,var(--surface));color:#e77900;border:1px solid color-mix(in srgb,#f18a1b 38%,var(--border))}
.dashboard-status.status-neutral{background:var(--surface-soft);color:var(--muted);border:1px solid var(--border)}
.dashboard-agenda-row.is-warning{border-left-color:var(--warning)}
.dashboard-agenda-row.is-pink{border-left-color:var(--brand-pink)}
.dashboard-agenda-row.is-success{border-left-color:var(--success)}
.dashboard-agenda-row.is-orange{border-left-color:#f18a1b}
.dashboard-attention-item{
  display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:11px;border:1px solid var(--border-soft);border-radius:12px;text-decoration:none;color:var(--text);background:var(--surface-soft)
}
.dashboard-attention-item:hover{border-color:var(--border-strong)}
.dashboard-attention-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--surface-raised);color:var(--muted)}
.dashboard-attention-icon .ui-icon{width:16px;height:16px}
.dashboard-attention-item div{display:grid;gap:2px}
.dashboard-attention-item strong{font-size:16px;line-height:1}
.dashboard-attention-item span{font-size:8px;color:var(--muted)}
.dashboard-attention-item.is-warning{border-color:var(--warning-border)}
.dashboard-attention-item.is-warning .dashboard-attention-icon{background:var(--warning-bg);color:var(--warning)}
.dashboard-attention-item.is-danger{border-color:var(--danger-border)}
.dashboard-attention-item.is-danger .dashboard-attention-icon{background:var(--danger-bg);color:var(--danger)}
.dashboard-promo-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;
  border:1px solid var(--border-soft);border-radius:12px;text-decoration:none;color:var(--text);background:var(--surface-soft)
}
.dashboard-promo-row:hover{border-color:var(--brand-pink)}
.dashboard-promo-row>div{display:grid;gap:3px;min-width:0}
.dashboard-promo-row strong{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-promo-row span{font-size:7.5px;color:var(--muted)}
.dashboard-promo-discount{flex:0 0 auto!important;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--brand-pink) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--brand-pink) 28%,var(--border));color:var(--brand-pink)!important;font-size:9px!important;font-weight:800}
.dashboard-client-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.dashboard-client-stats>div{padding:14px 10px;text-align:center;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-soft)}
.dashboard-client-stats strong{display:block;font-size:22px}
.dashboard-client-stats span{display:block;margin-top:4px;font-size:7.5px;color:var(--muted)}
.dashboard-clients-foot{margin:12px 0 0;color:var(--muted);font-size:8px;line-height:1.55}
.dashboard-empty{min-height:190px;display:grid;place-items:center;align-content:center;text-align:center;padding:22px;color:var(--muted)}
.dashboard-empty.compact{min-height:120px}
.dashboard-empty-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--surface-soft);margin-bottom:8px}
.dashboard-empty strong{color:var(--text);font-size:10px}
.dashboard-empty p{max-width:420px;margin:4px 0 0;font-size:8px;line-height:1.55}
@media(max-width:1180px){
  .dashboard-kpi-grid,.dashboard-money-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-main-grid,.dashboard-bottom-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .dashboard-welcome{align-items:stretch;flex-direction:column;margin-top:42px;padding:18px}
  .dashboard-pet-overlay{top:-54px;height:68px}
  .dashboard-pet-canvas{height:68px}
  .dashboard-welcome-actions,.dashboard-welcome-actions .button{width:100%}
  .dashboard-kpi-grid,.dashboard-money-grid{grid-template-columns:1fr 1fr;gap:9px}
  .dashboard-kpi{min-height:116px;padding:13px}
  .dashboard-kpi strong{font-size:24px}
  .dashboard-money-card{min-height:105px;padding:14px}
  .dashboard-money-card strong{font-size:18px}
  .dashboard-agenda-row{grid-template-columns:48px minmax(0,1fr)}
  .dashboard-agenda-meta{grid-column:2;justify-items:start}
  .dashboard-section-head{align-items:stretch;flex-direction:column}
  .dashboard-section-head .button{width:100%}
  .dashboard-client-stats{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:440px){
  .dashboard-kpi-grid,.dashboard-money-grid{grid-template-columns:1fr}
}







/* v0.11.19.6 — Calendar Header Compaction */
.calendar-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.calendar-stat-action{
  min-width:0;min-height:66px;padding:12px 14px;border:1px solid var(--brand-pink);border-radius:16px;
  display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon sub";align-items:center;gap:2px 11px;
  background:var(--brand-pink);color:#171017;font:inherit;text-align:left;cursor:pointer;
  box-shadow:0 8px 22px color-mix(in srgb,var(--brand-pink) 18%,transparent);
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease
}
.calendar-stat-action:hover{transform:translateY(-1px);filter:saturate(1.04);box-shadow:0 11px 28px color-mix(in srgb,var(--brand-pink) 28%,transparent)}
.calendar-stat-action:focus-visible{outline:2px solid var(--text);outline-offset:3px}
.calendar-stat-action-icon{grid-area:icon;width:34px;height:34px;border-radius:11px;background:rgba(23,16,23,.12);display:grid;place-items:center;color:#171017}
.calendar-stat-action-icon .ui-icon{width:17px;height:17px}
.calendar-stat-action>span{grid-area:label!important;color:#171017!important;font-size:9px!important;letter-spacing:.08em!important;font-weight:800!important}
.calendar-stat-action>small{grid-area:sub!important;color:rgba(23,16,23,.68)!important;font-size:9px!important}
@media(max-width:1100px){.calendar-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.calendar-stats{grid-template-columns:1fr}}


/* v0.12.1 — Public payment method selector */
.public-payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.public-payment-method{position:relative;display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--border);border-radius:17px;background:var(--surface-soft);cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.public-payment-method:hover{border-color:var(--border-strong);transform:translateY(-1px)}
.public-payment-method.selected{border-color:rgba(255,93,179,.58);background:linear-gradient(135deg,rgba(255,93,179,.09),var(--surface-soft));box-shadow:0 0 0 3px rgba(255,93,179,.06)}
.public-payment-method input{position:absolute;opacity:0;pointer-events:none}
.public-payment-method-radio{width:18px;height:18px;flex:0 0 auto;margin-top:2px;border:1.5px solid var(--border-strong);border-radius:50%;display:grid;place-items:center;background:var(--surface)}
.public-payment-method-radio::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--brand-pink);transform:scale(0);transition:transform .14s ease}
.public-payment-method input:checked+.public-payment-method-radio::after{transform:scale(1)}
.public-payment-method-copy{display:grid;gap:7px;min-width:0;flex:1}
.public-payment-method-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.public-payment-method-head>strong{font-size:12px}
.public-payment-method-amount{font-size:23px;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.public-payment-method-copy>small{font-size:8px;line-height:1.55;color:var(--muted)}
.public-payment-brands{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:2px}
.payment-brand{height:24px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:7px;font-weight:800;line-height:1;letter-spacing:.02em;color:var(--text)}
.payment-brand-mp{color:#1593e7;background:color-mix(in srgb,#1593e7 8%,var(--surface))}
.payment-brand-visa{font-size:10px;font-style:italic;color:#1a3c8e}
.payment-brand-amex{font-size:7.5px;color:#1f8acb}
.payment-brand-mastercard{position:relative;padding-left:31px}
.payment-brand-mastercard i{position:absolute;width:14px;height:14px;border-radius:50%;top:4px}
.payment-brand-mastercard i:first-child{left:7px;background:#e64b38}
.payment-brand-mastercard i:nth-child(2){left:15px;background:#f3a52b;opacity:.92}
.payment-brand-mastercard b{font-size:6px;font-weight:700}
.public-payment-method-note{margin-top:14px;padding:16px;border:1px dashed var(--border);border-radius:15px;background:var(--surface-soft)}
.public-payment-method-note strong{font-size:11px}
.public-payment-method-note p{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.6}
.public-mp-breakdown{margin-top:14px;border:1px solid color-mix(in srgb,#1593e7 35%,var(--border));border-radius:15px;background:color-mix(in srgb,#1593e7 4%,var(--surface-soft));overflow:hidden}
.public-mp-breakdown>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}
.public-mp-breakdown>div span{font-size:8.5px;color:var(--muted)}
.public-mp-breakdown>div strong{font-size:10px}
.public-mp-breakdown .public-mp-total{background:color-mix(in srgb,#1593e7 7%,var(--surface));border-bottom:0}
.public-mp-breakdown .public-mp-total span,.public-mp-breakdown .public-mp-total strong{color:var(--text);font-weight:800}
.public-mp-breakdown .public-mp-total strong{font-size:15px}
.public-mp-breakdown>p{margin:0;padding:10px 14px;color:var(--muted);font-size:7.5px;line-height:1.55;border-top:1px solid var(--border-soft)}
.public-mp-panel{margin-top:16px;padding:18px;border:1px solid color-mix(in srgb,#1593e7 35%,var(--border));border-radius:18px;background:color-mix(in srgb,#1593e7 4%,var(--surface-soft));display:grid;gap:14px}
@media(max-width:760px){.public-payment-methods{grid-template-columns:1fr}.public-payment-method{padding:14px}.public-payment-method-amount{font-size:21px}}

/* v0.12.2 — Payment UX State + Checkout Pro TEST readiness */
.public-summary-client{margin:-6px 0 16px;padding:13px 14px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-soft);display:grid;gap:4px}
.public-summary-client[hidden]{display:none!important}
.public-summary-client>.public-card-kicker{margin-bottom:3px}
.public-summary-client>strong{font-size:10.5px;line-height:1.35;overflow-wrap:anywhere}
.public-summary-client>span:not(.public-card-kicker){font-size:8.5px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.public-mp-expectations{display:grid;gap:8px}
.public-mp-expectations>div{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface)}
.public-mp-expectations svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;fill:none;stroke:#1593e7;stroke-width:1.8}
.public-mp-expectations span{font-size:8.5px;line-height:1.55;color:var(--muted)}
.public-transfer-panel[hidden],.public-mp-panel[hidden]{display:none!important}
@media(max-width:760px){.public-summary-client{margin-top:0}}

/* v0.12.6 — Mercado Pago reconciliation / diagnostics */
.mp-audit-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;padding-bottom:18px}
.mp-audit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 20px 16px}
.mp-audit-kpi{position:relative;min-height:112px;padding:14px 14px 13px;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface-soft);display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:10px}
.mp-audit-kpi .mp-audit-icon{grid-row:1/3;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface-raised);color:var(--muted)}
.mp-audit-kpi .mp-audit-icon .ui-icon{width:15px;height:15px}
.mp-audit-kpi>span:not(.mp-audit-icon){align-self:center;color:var(--muted);font-size:7px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.mp-audit-kpi>strong{font-size:24px;line-height:1;margin-top:4px}
.mp-audit-kpi>small{grid-column:1/-1;align-self:end;margin-top:10px;color:var(--muted-2);font-size:7.2px;line-height:1.45}
.mp-audit-kpi.is-warning{border-color:var(--warning-border);background:color-mix(in srgb,var(--warning) 5%,var(--surface-soft))}
.mp-audit-kpi.is-warning .mp-audit-icon{background:var(--warning-bg);color:var(--warning)}
.mp-audit-kpi.is-danger{border-color:var(--danger-border);background:color-mix(in srgb,var(--danger) 5%,var(--surface-soft))}
.mp-audit-kpi.is-danger .mp-audit-icon{background:var(--danger-bg);color:var(--danger)}
.mp-audit-summary-line{margin:0 20px 16px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-soft);display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:7.5px}
.mp-audit-summary-line strong{color:var(--text);font-size:9px}
.mp-audit-detail{margin:0 20px 10px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-soft);overflow:hidden}
.mp-audit-detail>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;font-size:9px;font-weight:800;color:var(--text)}
.mp-audit-detail>summary::-webkit-details-marker{display:none}
.mp-audit-detail[open]>summary{border-bottom:1px solid var(--border-soft);background:var(--surface-raised)}
.mp-audit-detail .promotion-table-wrap{border:0;border-radius:0}
.mp-audit-detail .service-empty-state.compact{min-height:100px}
.mp-audit-table td{vertical-align:top}
.mp-audit-table .table-subtle{max-width:270px;white-space:normal;overflow-wrap:anywhere}
.mp-audit-row-attention{background:color-mix(in srgb,var(--warning) 5%,var(--surface))!important}
@media(max-width:1100px){.mp-audit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.mp-audit-kpis{grid-template-columns:1fr;padding:0 16px 14px}.mp-audit-summary-line{margin:0 16px 14px}.mp-audit-detail{margin:0 16px 10px}.mp-audit-kpi{min-height:98px}}

/* v0.13.1 — Public Gift Card Purchase Flow / Draft Persistence */
.gift-stepper{grid-template-columns:repeat(5,minmax(0,1fr))}
.gift-flow-panel{min-height:560px}
.gift-form-grid{margin-top:22px}
.gift-step-actions{margin-top:26px}
.gift-character-count{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted-2);font-size:8px}
.gift-character-count strong{font-variant-numeric:tabular-nums;color:var(--text-soft);font-size:8px}
.gift-preview-card small{font-size:9px;color:var(--muted);font-weight:500;line-height:1.35}
.gift-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}
.gift-review-grid>div{padding:14px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface-soft);display:grid;gap:5px;min-width:0}
.gift-review-grid>div.gift-review-message{grid-column:1/-1}
.gift-review-grid span,.gift-draft-reference span{font-size:7.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.gift-review-grid strong{font-size:10px;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}
.gift-draft-notice{margin-top:14px;padding:15px;border:1px solid rgba(255,93,179,.22);border-radius:14px;background:rgba(255,93,179,.055);display:flex;align-items:flex-start;gap:11px}
.gift-draft-notice>svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:var(--brand-pink);stroke-width:1.7;margin-top:1px}
.gift-draft-notice strong{font-size:10px}
.gift-draft-notice p{margin:4px 0 0;color:var(--muted);font-size:8.5px;line-height:1.55}
.gift-draft-error{margin:14px 0 0;padding:11px 12px;border:1px solid var(--danger-border);border-radius:12px;background:var(--danger-bg);color:var(--danger);font-size:9px;line-height:1.55}
.gift-draft-success{min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 18px}
.gift-draft-success[hidden]{display:none}
.gift-draft-success-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--success) 36%,var(--border));background:color-mix(in srgb,var(--success) 8%,var(--surface-soft));color:var(--success)}
.gift-draft-success-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2}
.gift-draft-success h3{margin:6px 0 8px;font-size:22px}
.gift-draft-success>p{max-width:520px;margin:0;color:var(--muted);font-size:10px;line-height:1.7}
.gift-draft-reference{width:min(100%,420px);margin:18px 0;padding:13px 15px;border:1px solid var(--border);border-radius:13px;background:var(--surface-soft);display:grid;gap:4px;text-align:left}
.gift-draft-reference strong{font-size:10px;overflow-wrap:anywhere}

@media(max-width:680px){
  .gift-stepper{grid-template-columns:repeat(5,minmax(0,1fr))}
  .gift-review-grid{grid-template-columns:1fr}
  .gift-review-grid>div.gift-review-message{grid-column:auto}
  .gift-flow-panel{min-height:0}
}

/* v0.13.2 — Gift Card Mercado Pago full-value checkout */
.gift-payment-summary{width:min(100%,420px);margin:0 0 14px;padding:14px 15px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);display:grid;gap:9px;text-align:left}
.gift-payment-summary>div{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:9px;color:var(--muted)}
.gift-payment-summary strong{font-size:10px;color:var(--text)}
.gift-payment-summary .gift-payment-total{padding-top:9px;border-top:1px solid var(--border-soft);color:var(--text);font-weight:700}
.gift-payment-summary .gift-payment-total strong{font-size:13px;color:var(--brand-pink)}
.gift-payment-button{width:min(100%,420px);justify-content:center;margin-bottom:10px}
.gift-payment-note{max-width:420px!important;margin:0 0 14px!important;font-size:8.5px!important}
.gift-active-code{width:min(100%,430px);margin:18px auto 6px;padding:18px;border:1px solid rgba(255,93,179,.32);border-radius:16px;background:linear-gradient(135deg,rgba(255,93,179,.08),var(--surface-soft));display:grid;gap:6px;text-align:center}
.gift-active-code[hidden]{display:none}
.gift-active-code span{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.gift-active-code strong{font-size:20px;letter-spacing:.08em;color:var(--brand-pink);overflow-wrap:anywhere}
.gift-active-code small{font-size:9px;color:var(--muted)}

/* v0.13.3.1 — Bank Transfer Readability Hotfix */
.public-transfer-head h3{
  margin:1px 0 5px;
  font-size:19px;
  line-height:1.18;
}
.public-transfer-head .public-card-kicker{
  font-size:10px;
  letter-spacing:.15em;
}
.public-transfer-head p{
  font-size:10.5px;
  line-height:1.55;
}
.public-bank-grid>div{
  gap:5px;
}
.public-bank-grid span{
  font-size:8.5px;
  font-weight:700;
  letter-spacing:.095em;
}
.public-bank-grid strong{
  font-size:13px;
  line-height:1.35;
  font-weight:800;
}
@media(max-width:680px){
  .public-transfer-head h3{font-size:18px}
  .public-transfer-head p{font-size:10px}
  .public-bank-grid span{font-size:8.25px}
  .public-bank-grid strong{font-size:12.5px}
}

/* v0.13.3.2 — Transfer Data Emphasis Hotfix */
.public-transfer-panel{
  gap:18px;
}
.public-transfer-head{
  align-items:center;
  gap:15px;
}
.public-transfer-head h3{
  margin:0 0 6px;
  font-size:24px;
  line-height:1.15;
}
.public-transfer-head .public-card-kicker{
  font-size:11px;
  letter-spacing:.18em;
}
.public-transfer-head p{
  font-size:12px;
  line-height:1.6;
}
.public-bank-grid{
  gap:11px;
}
.public-bank-grid>div{
  padding:14px 14px;
  gap:6px;
}
.public-bank-grid span{
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.11em;
}
.public-bank-grid strong{
  font-size:16px;
  line-height:1.35;
  font-weight:800;
}
@media(max-width:820px){
  .public-transfer-head h3{font-size:22px}
  .public-transfer-head p{font-size:11.5px}
  .public-bank-grid span{font-size:9px}
  .public-bank-grid strong{font-size:15px}
}
@media(max-width:680px){
  .public-transfer-head{align-items:flex-start}
  .public-transfer-head h3{font-size:20px}
  .public-transfer-head .public-card-kicker{font-size:10px}
  .public-transfer-head p{font-size:11px}
  .public-bank-grid span{font-size:8.75px}
  .public-bank-grid strong{font-size:14px}
}

/* v0.13.4 — Gift Card Delivery / Public Card */
.gift-delivery-success{
  min-height:430px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:34px 18px;
}
.gift-delivery-success[hidden]{display:none}
.gift-delivery-success h3{margin:6px 0 8px;font-size:24px}
.gift-delivery-success>p{max-width:560px;margin:0;color:var(--muted);font-size:11px;line-height:1.7}
.gift-delivery-meta{width:min(100%,430px);margin:12px auto 0;padding:13px 16px;border:1px solid var(--border-soft);border-radius:13px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left}
.gift-delivery-meta span{font-size:8px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.gift-delivery-meta strong{font-size:12px;text-align:right}
.gift-delivery-actions{justify-content:center}

.gift-public-status{align-items:flex-start}
.gift-public-card{width:min(100%,620px);margin:24px 0 4px;padding:24px;border:1px solid rgba(255,93,179,.28);border-radius:18px;background:linear-gradient(135deg,rgba(255,93,179,.08),rgba(255,255,255,.015));display:grid;gap:18px}
.gift-public-card[hidden]{display:none}
.gift-public-card-brand{display:flex;align-items:center;gap:15px;text-align:left}
.gift-public-card-brand img{width:58px;height:58px;object-fit:contain}
.gift-public-card-brand div{display:grid;gap:2px}
.gift-public-card-brand span{font-size:8px;letter-spacing:.18em;color:var(--muted-2);font-weight:700}
.gift-public-card-brand strong{font-size:22px;line-height:1.1}
.gift-public-card-brand small{font-size:10px;color:var(--muted)}
.gift-public-code{padding:18px;border-radius:14px;border:1px solid rgba(255,93,179,.28);background:var(--surface);display:grid;gap:6px;text-align:center}
.gift-public-code span{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.gift-public-code strong{font-size:24px;letter-spacing:.08em;color:var(--brand-pink);overflow-wrap:anywhere}
.gift-public-details{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gift-public-details>div{padding:14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);display:grid;gap:5px;text-align:left}
.gift-public-details span,.gift-public-message span{font-size:8px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.gift-public-details strong{font-size:12px}
.gift-public-message{padding:15px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);text-align:left}
.gift-public-message[hidden]{display:none}
.gift-public-message p{margin:7px 0 0;color:var(--text);font-size:11px;line-height:1.7;white-space:pre-wrap}
@media(max-width:680px){
  .gift-public-card{padding:18px}
  .gift-public-card-brand img{width:50px;height:50px}
  .gift-public-card-brand strong{font-size:20px}
  .gift-public-code strong{font-size:20px}
  .gift-public-details{grid-template-columns:1fr}
  .gift-delivery-actions{flex-direction:column;width:100%}
  .gift-delivery-actions .button{width:100%}
}

/* v0.13.5.1 — Admin Gift Card appointment linking */
.calendar-gift-card-panel{grid-column:1/-1;border:1px solid rgba(255,93,179,.26);border-radius:16px;background:linear-gradient(135deg,rgba(255,93,179,.055),var(--surface-soft));overflow:hidden}
.calendar-gift-card-toggle{display:flex;align-items:center;gap:13px;padding:15px 16px;cursor:pointer}
.calendar-gift-card-toggle>span:last-child{display:grid;gap:3px;min-width:0}
.calendar-gift-card-toggle strong{font-size:11px;color:var(--text)}
.calendar-gift-card-toggle small{font-size:8.5px;line-height:1.5;color:var(--muted)}
.calendar-gift-card-fields{padding:0 16px 16px;border-top:1px solid var(--border-soft)}
.calendar-gift-card-fields[hidden],.calendar-gift-card-verification[hidden]{display:none!important}
.calendar-gift-card-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding-top:14px}
.calendar-gift-card-code-row .field input{text-transform:uppercase;letter-spacing:.075em;font-weight:800}
.calendar-gift-card-code-row .button{min-height:42px;white-space:nowrap}
.calendar-gift-card-verification{margin-top:12px;padding:14px;border:1px solid rgba(255,93,179,.25);border-radius:14px;background:var(--surface);display:grid;gap:12px}
.calendar-gift-card-verification-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.calendar-gift-card-verification-head h3{margin:3px 0 0;font-size:15px;letter-spacing:.04em}
.calendar-gift-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.calendar-gift-card-grid>div{padding:10px;border:1px solid var(--border-soft);border-radius:11px;background:var(--surface-soft);display:grid;gap:3px;min-width:0}
.calendar-gift-card-grid span{font-size:7px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2)}
.calendar-gift-card-grid strong{font-size:10px;overflow-wrap:anywhere}
.calendar-gift-card-actions{display:flex;flex-wrap:wrap;gap:8px}
.calendar-gift-card-verification>p{margin:0;font-size:8.5px;line-height:1.55;color:var(--muted)}
.calendar-grid-event.is-gift-card,.calendar-event.is-gift-card{box-shadow:inset 3px 0 0 var(--brand-pink)}
.calendar-legend i.gift-card{background:var(--brand-pink)}
@media(max-width:680px){
  .calendar-gift-card-code-row{grid-template-columns:1fr}
  .calendar-gift-card-code-row .button{width:100%}
  .calendar-gift-card-grid{grid-template-columns:1fr}
  .calendar-gift-card-verification-head{flex-direction:column}
  .calendar-gift-card-actions .button{width:100%}
}


/* v0.14.0 — Notifications Core / Admin Communication */
.calendar-communication-panel{margin-top:16px;padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--surface-soft);display:grid;gap:15px}
.calendar-communication-panel[hidden]{display:none!important}
.calendar-communication-head{display:flex;align-items:flex-start;gap:13px}
.calendar-communication-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--brand-pink);flex:0 0 auto}
.calendar-communication-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.calendar-communication-head h3{margin:2px 0 4px;font-size:16px}
.calendar-communication-head p{margin:0;color:var(--muted);font-size:9px;line-height:1.55;max-width:660px}
.calendar-communication-actions{display:flex;flex-wrap:wrap;gap:9px}
.calendar-communication-actions .button{min-height:38px}
.calendar-communication-actions .is-disabled{opacity:.45;pointer-events:none}
.calendar-communication-note{margin:0;color:var(--muted-2);font-size:8.5px;line-height:1.5}
@media(max-width:680px){.calendar-communication-actions{display:grid;grid-template-columns:1fr}.calendar-communication-actions .button{width:100%;justify-content:center}.calendar-communication-head p{font-size:9.5px}}
\n\n/* v0.14.0.2 — Admin pending receipt alerts */\n.nav-pending-count{\n  min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;\n  background:var(--brand-pink);color:#171017!important;font-size:9px!important;font-weight:800;line-height:1;\n}\n.admin-receipt-alert{\n  min-height:36px;padding:0 10px;border:1px solid var(--warning-border);border-radius:12px;display:inline-flex;align-items:center;gap:7px;\n  background:var(--warning-bg);color:var(--text);font-size:10px;font-weight:700;transition:.18s ease;\n}\n.admin-receipt-alert:hover{transform:translateY(-1px);border-color:var(--warning);}\n.admin-receipt-alert[hidden]{display:none!important}\n.admin-receipt-alert-icon{width:16px;height:16px;display:grid;place-items:center;color:var(--warning)}\n.admin-receipt-alert-icon .ui-icon{width:16px;height:16px}\n.admin-receipt-alert strong{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:var(--warning);color:#171017;font-size:10px}\n.admin-live-receipt-notice{\n  position:fixed;right:20px;top:84px;z-index:80;max-width:min(360px,calc(100vw - 28px));padding:13px 15px;border:1px solid var(--warning-border);\n  border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);display:flex;gap:10px;align-items:center;color:var(--text);\n  opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease;\n}\n.admin-live-receipt-notice[hidden]{display:none!important}\n.admin-live-receipt-notice.is-showing{opacity:1;transform:translateY(0)}\n.admin-live-receipt-notice>span:first-child{width:34px;height:34px;border-radius:10px;background:var(--warning-bg);color:var(--warning);display:grid;place-items:center;flex:0 0 auto}\n.admin-live-receipt-notice .ui-icon{width:17px;height:17px}\n.admin-live-receipt-notice>span:last-child{display:grid;gap:2px}\n.admin-live-receipt-notice strong{font-size:11px}\n.admin-live-receipt-notice small{font-size:9px;color:var(--muted)}\n@media(max-width:680px){\n  .admin-receipt-alert{padding:0 8px}\n  .admin-receipt-alert-label{display:none}\n  .admin-live-receipt-notice{right:14px;top:75px}\n}\n

/* v0.14.0.2.2 — Admin action alerts UX */
.nav-pending-count{
  margin-left:auto!important;min-width:24px!important;height:24px!important;padding:0 7px!important;
  border-radius:999px!important;display:inline-grid!important;place-items:center!important;
  background:#dc3545!important;color:#fff!important;border:2px solid color-mix(in srgb,#fff 18%,transparent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,#dc3545 15%,transparent),0 4px 12px rgba(220,53,69,.28)!important;
  font-size:11px!important;font-weight:800!important;line-height:1!important;letter-spacing:0!important;
}
.nav-pending-count[hidden]{display:none!important}
.nav-item.has-pending-action{color:var(--text)}
.nav-item.has-pending-action .nav-item-icon{color:#ef5968}

/* The old topbar counter is intentionally retired. */
.admin-receipt-alert{display:none!important}

.admin-event-toast{
  position:fixed;right:24px;top:84px;z-index:260;width:min(440px,calc(100vw - 32px));
  display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:start;
  padding:18px 52px 18px 18px;border-radius:18px;border:1px solid rgba(255,86,160,.42);
  background:color-mix(in srgb,var(--surface-raised) 94%,#ff5dac 6%);box-shadow:0 24px 70px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.03);
  opacity:0;transform:translateY(-12px) scale(.985);pointer-events:none;
  transition:opacity .2s ease,transform .22s ease;
}
.admin-event-toast[hidden]{display:none!important}
.admin-event-toast.is-showing{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.admin-event-toast[data-type="booking"]{border-color:color-mix(in srgb,var(--success) 48%,var(--border))}
.admin-event-toast-icon{
  width:52px;height:52px;border-radius:15px;display:grid;place-items:center;
  background:rgba(255,86,160,.14);color:var(--brand-pink);border:1px solid rgba(255,86,160,.22)
}
.admin-event-toast[data-type="booking"] .admin-event-toast-icon{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}
.admin-event-toast-icon .ui-icon{width:24px;height:24px}
.admin-event-toast-body{min-width:0;display:grid;gap:5px}
.admin-event-toast-kicker{font-size:8px;font-weight:800;letter-spacing:.14em;color:var(--brand-pink)}
.admin-event-toast[data-type="booking"] .admin-event-toast-kicker{color:var(--success)}
.admin-event-toast-body>strong{font-size:16px;line-height:1.25;color:var(--text)}
.admin-event-toast-body>p{margin:0 0 6px;color:var(--muted);font-size:10px;line-height:1.55;overflow-wrap:anywhere}
.admin-event-toast-body .button{justify-self:start;min-width:150px}
.admin-event-toast-close{
  position:absolute;right:12px;top:11px;width:30px;height:30px;border-radius:9px;border:1px solid var(--border-soft);
  background:var(--surface-soft);color:var(--muted);display:grid;place-items:center;font:600 18px/1 system-ui;cursor:pointer
}
.admin-event-toast-close:hover{color:var(--text);border-color:var(--border-strong)}

.dashboard-kpi-action.is-warning{
  border-color:color-mix(in srgb,#dc3545 58%,var(--border));
  background:linear-gradient(145deg,color-mix(in srgb,#dc3545 7%,var(--surface)),var(--surface));
}
.dashboard-kpi-action.is-warning .dashboard-kpi-icon{background:color-mix(in srgb,#dc3545 13%,var(--surface));color:#ef5968}
.dashboard-kpi-action.is-warning strong{color:#ff6977}

@media(max-width:680px){
  .admin-event-toast{right:12px;top:72px;width:calc(100vw - 24px);grid-template-columns:44px minmax(0,1fr);padding:15px 46px 15px 15px;border-radius:16px}
  .admin-event-toast-icon{width:44px;height:44px;border-radius:13px}
  .admin-event-toast-body>strong{font-size:14px}
  .admin-event-toast-body .button{width:100%;justify-content:center}
  .nav-pending-count{min-width:23px!important;height:23px!important;font-size:10px!important}
}

/* v0.14.0.3 — Reservations Admin Operational Module */
.reservations-content,.reservation-detail-content{padding:32px;max-width:1460px;margin:0 auto}
.reservations-hero,.reservation-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:26px;box-shadow:var(--shadow-card)}
.reservations-hero h2,.reservation-detail-hero h2{margin:4px 0 8px;font-size:26px;line-height:1.18}
.reservations-hero p,.reservation-detail-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.65;max-width:850px}
.reservations-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.reservations-stats article{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;min-height:118px;display:flex;flex-direction:column;justify-content:center}
.reservations-stats span{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2);font-weight:700}
.reservations-stats strong{font-size:30px;line-height:1;margin:8px 0 6px}
.reservations-stats small{color:var(--muted);font-size:10px}
.reservations-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px}
.reservations-filters{display:grid;grid-template-columns:minmax(250px,1.8fr) repeat(3,minmax(135px,.7fr)) auto auto;gap:10px;align-items:end}
.reservations-filters label{display:grid;gap:6px}
.reservations-filters label>span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted-2);font-weight:700}
.reservations-filters input,.reservations-filters select{height:42px;border:1px solid var(--border);border-radius:11px;background:var(--input-bg);color:var(--text);padding:0 12px;outline:none}
.reservations-filters input:focus,.reservations-filters select:focus{border-color:rgba(255,93,179,.72);box-shadow:var(--focus-ring)}
.reservations-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 2px 10px}
.reservations-list-head strong{font-size:13px}.reservations-list-head small{font-size:10px;color:var(--muted)}
.reservations-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px}
.reservations-table{width:100%;border-collapse:collapse;min-width:1040px}
.reservations-table th{padding:11px 14px;text-align:left;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);background:var(--surface-soft);border-bottom:1px solid var(--border)}
.reservations-table td{padding:14px;border-bottom:1px solid var(--border-soft);vertical-align:middle;font-size:11px}
.reservations-table tbody tr:last-child td{border-bottom:0}
.reservations-table tbody tr:hover{background:var(--surface-soft)}
.reservations-table td strong,.reservations-table td small{display:block}.reservations-table td strong{font-size:12px}.reservations-table td small{color:var(--muted);font-size:9px;margin-top:3px}
.reservation-row-action{text-align:right}
.reservation-status{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:0 9px;border-radius:999px;border:1px solid var(--border);font-size:9px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.reservation-status-confirmed{background:var(--calendar-confirmed-bg);border-color:var(--calendar-confirmed-border)}
.reservation-status-pending{background:var(--calendar-payment-bg);border-color:var(--calendar-payment-border)}
.reservation-status-completed{background:var(--calendar-completed-bg);border-color:var(--calendar-completed-border)}
.reservation-status-noshow{background:var(--calendar-noshow-bg);border-color:var(--calendar-noshow-border)}
.reservation-status-muted{background:var(--calendar-cancelled-bg);border-color:var(--calendar-cancelled-border)}
.reservation-empty{padding:60px 20px;text-align:center;border:1px dashed var(--border);border-radius:14px;background:var(--surface-soft)}
.reservation-empty>div{width:48px;height:48px;margin:0 auto 12px;display:grid;place-items:center;border-radius:14px;background:var(--button-bg);color:var(--brand-pink)}
.reservation-empty strong{display:block;font-size:14px}.reservation-empty p{color:var(--muted);font-size:11px}
.reservations-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px}.reservations-pagination span{font-size:10px;color:var(--muted)}
.reservation-back{display:inline-block;margin-bottom:12px;color:var(--muted);font-size:10px}.reservation-back:hover{color:var(--brand-pink)}
.reservation-detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.reservation-status-hero{min-height:34px;padding:0 12px;background:var(--surface-2)}
.reservation-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.reservation-detail-card,.reservation-notes-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px}
.reservation-detail-card h3,.reservation-notes-card h3{font-size:16px;margin:6px 0 16px}
.reservation-detail-list{margin:0;display:grid;gap:0}
.reservation-detail-list>div{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--border-soft)}
.reservation-detail-list>div:last-child{border-bottom:0}
.reservation-detail-list dt{color:var(--muted);font-size:10px}.reservation-detail-list dd{margin:0;text-align:right;font-size:11px;font-weight:600;max-width:65%;overflow-wrap:anywhere}
.reservation-money-list dd{font-variant-numeric:tabular-nums}.reservation-money-emphasis dt,.reservation-money-emphasis dd{color:var(--brand-pink);font-size:13px}
.reservation-snapshot-note{margin:14px 0 0;padding:10px 12px;border-radius:10px;background:var(--surface-soft);color:var(--muted);font-size:9px;line-height:1.55;border:1px solid var(--border-soft)}
.reservation-compare{display:inline-flex;margin-left:5px;padding:3px 6px;border-radius:999px;font-size:8px;vertical-align:middle;border:1px solid var(--border)}
.reservation-compare.changed{color:var(--warning);border-color:rgba(216,149,24,.45);background:rgba(216,149,24,.08)}
.reservation-compare.same{color:var(--success);border-color:rgba(0,184,92,.34);background:rgba(0,184,92,.07)}
.reservation-empty-inline{padding:16px;border:1px dashed var(--border);border-radius:12px;background:var(--surface-soft);font-size:10px;color:var(--muted);line-height:1.6}
.reservation-detail-actions-inline{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.reservation-code-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px!important}
.reservation-notes-card{margin-top:16px}.reservation-notes-card>div{padding:10px 0;border-top:1px solid var(--border-soft)}.reservation-notes-card span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted-2);font-weight:700}.reservation-notes-card p{margin:6px 0 0;color:var(--text-soft);font-size:11px;line-height:1.65}
@media(max-width:1180px){.reservations-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-search{grid-column:1/-1}.reservations-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .reservations-content,.reservation-detail-content{padding:18px}
  .reservations-hero,.reservation-detail-hero{align-items:flex-start;flex-direction:column;padding:20px}
  .reservations-hero .button,.reservation-detail-actions .button{width:100%}
  .reservation-detail-actions{width:100%;justify-content:flex-start}
  .reservations-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reservations-stats article{min-height:100px;padding:14px}.reservations-stats strong{font-size:26px}
  .reservations-panel{padding:14px}.reservations-filters{grid-template-columns:1fr}.reservation-search{grid-column:auto}.reservations-filters .button{width:100%}
  .reservations-list-head{align-items:flex-start;flex-direction:column;gap:2px}
  .reservations-table-wrap{border:0;overflow:visible}.reservations-table{min-width:0;display:block}.reservations-table thead{display:none}.reservations-table tbody{display:grid;gap:10px}.reservations-table tr{display:grid;background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;padding:12px}.reservations-table td{display:flex;justify-content:space-between;gap:14px;padding:9px 2px;border-bottom:1px solid var(--border-soft);text-align:right}.reservations-table td::before{content:attr(data-label);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:700;text-align:left}.reservations-table td:last-child{border-bottom:0}.reservation-row-action{display:block!important;text-align:left!important}.reservation-row-action::before{display:none}.reservation-row-action .button{width:100%;margin-top:4px}
  .reservation-detail-grid{grid-template-columns:1fr}.reservation-detail-card{padding:18px}.reservation-detail-list>div{gap:12px}.reservation-detail-list dd{max-width:58%}
}


/* v0.14.0.6 — Gift Cards Admin UX */
.gift-admin-content,.gift-detail-content{padding:32px;max-width:1480px;margin:0 auto;display:grid;gap:18px}
.gift-admin-hero,.gift-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}
.gift-admin-hero h2,.gift-detail-hero h2{margin:4px 0 8px;font-size:24px}
.gift-admin-hero p,.gift-detail-hero p{margin:0;max-width:800px;color:var(--muted);font-size:11px;line-height:1.65}
.gift-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.gift-admin-stats article{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;display:grid;gap:3px}
.gift-admin-stats span{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--muted)}
.gift-admin-stats strong{font-size:25px;line-height:1.1}
.gift-admin-stats small{font-size:10px;color:var(--muted-2)}
.gift-admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px}
.gift-admin-filters{display:grid;grid-template-columns:minmax(280px,1.8fr) minmax(150px,.7fr) minmax(155px,.7fr) auto auto;gap:10px;align-items:end}
.gift-admin-filters label{display:grid;gap:6px}
.gift-admin-filters label>span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:700}
.gift-admin-filters input,.gift-admin-filters select{height:42px;border:1px solid var(--border);border-radius:11px;background:var(--input-bg);color:var(--text);padding:0 12px;outline:none}
.gift-admin-filters input:focus,.gift-admin-filters select:focus{border-color:rgba(255,93,179,.72);box-shadow:var(--focus-ring)}
.gift-admin-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 2px 10px}
.gift-admin-list-head>div{display:grid;gap:2px}
.gift-admin-list-head strong{font-size:13px}.gift-admin-list-head small{font-size:10px;color:var(--muted)}
.gift-admin-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px}
.gift-admin-table{width:100%;border-collapse:collapse;min-width:1280px}
.gift-admin-table th{padding:11px 12px;text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);background:var(--surface-soft);border-bottom:1px solid var(--border)}
.gift-admin-table td{padding:13px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle;font-size:11px}
.gift-admin-table tbody tr:last-child td{border-bottom:0}.gift-admin-table tbody tr:hover{background:var(--surface-soft)}
.gift-stack,.gift-code-cell{display:grid;gap:3px;min-width:0}
.gift-stack strong,.gift-code-cell strong{font-size:12px}.gift-stack small,.gift-code-cell small{font-size:10px;color:var(--muted)}
.gift-stack a{font-size:10px;color:var(--brand-pink);font-weight:600}
.gift-price{font-size:12px;color:var(--brand-pink);white-space:nowrap}
.gift-copy-button{justify-self:start;padding:0;border:0;background:transparent;color:var(--brand-pink);font:inherit;font-size:10px;font-weight:700;cursor:pointer}
.gift-copy-button:hover{text-decoration:underline}.gift-copy-button.is-copied{color:var(--success)}
.gift-muted{color:var(--muted-2)}
.gift-admin-row-action{text-align:right;white-space:nowrap}
.gift-admin-empty{padding:60px 20px;text-align:center;border:1px dashed var(--border);border-radius:14px;background:var(--surface-soft)}
.gift-admin-empty>div{width:48px;height:48px;margin:0 auto 12px;display:grid;place-items:center;border-radius:14px;background:var(--button-bg);color:var(--brand-pink)}
.gift-admin-empty strong{display:block;font-size:14px}.gift-admin-empty p{color:var(--muted);font-size:11px}
.gift-admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:18px}.gift-admin-pagination span{font-size:10px;color:var(--muted)}
.gift-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.gift-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.gift-detail-wide{grid-column:1/-1}
.gift-message-box{margin-top:14px;padding:14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-soft)}
.gift-message-box span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);font-weight:700}
.gift-message-box p{margin:7px 0 0;font-size:11px;line-height:1.65;color:var(--text-soft)}
@media(max-width:1100px){
  .gift-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gift-admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gift-admin-search{grid-column:1/-1}
}
@media(max-width:760px){
  .gift-admin-content,.gift-detail-content{padding:18px}
  .gift-admin-hero,.gift-detail-hero{display:grid;padding:18px}
  .gift-admin-stats,.gift-detail-grid{grid-template-columns:1fr}
  .gift-detail-wide{grid-column:auto}
  .gift-admin-filters{grid-template-columns:1fr}
  .gift-admin-search{grid-column:auto}
  .gift-admin-filters .button{width:100%}
  .gift-detail-actions{justify-content:flex-start}
}


/* v0.16.4.1 — Admin Backup Console */
.backup-console-content{padding:32px;max-width:1500px;margin:0 auto;display:grid;gap:18px}
.backup-console-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:26px 28px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}
.backup-console-hero h2{margin:4px 0 8px;font-size:25px}.backup-console-hero p{margin:0;color:var(--muted);font-size:11px;line-height:1.65;max-width:760px}
.backup-console-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.backup-console-stats article{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:17px 18px;display:grid;gap:5px;min-height:108px;align-content:center}.backup-console-stats article.is-danger{border-color:var(--danger-border);background:var(--danger-bg)}.backup-console-stats span{font-size:10px;font-weight:800;letter-spacing:.11em;color:var(--muted);text-transform:uppercase}.backup-console-stats strong{font-size:28px;line-height:1.1}.backup-console-stats small{font-size:10px;color:var(--muted-2);overflow-wrap:anywhere}.backup-console-stats .backup-console-last{font-size:15px;line-height:1.25}
.backup-console-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:0 0 20px;overflow:hidden}.backup-console-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border-soft)}.backup-console-list-head strong{display:block;font-size:14px}.backup-console-list-head small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.backup-console-table-wrap{overflow:auto}.backup-console-table{width:100%;border-collapse:collapse;min-width:1180px}.backup-console-table th{padding:11px 12px;text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);background:var(--surface-soft);border-bottom:1px solid var(--border)}.backup-console-table td{padding:13px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle;font-size:11px}.backup-console-table tbody tr:last-child td{border-bottom:0}.backup-console-table tbody tr:hover{background:var(--surface-soft)}
.backup-stack{display:grid;gap:4px}.backup-stack strong{font-size:11px}.backup-stack small,.backup-console-table td>small{display:block;color:var(--muted-2);font-size:10px;line-height:1.45;max-width:260px;overflow-wrap:anywhere}.backup-actions{display:flex;gap:7px;align-items:center}.backup-actions form{margin:0}.backup-actions .button{white-space:nowrap}.backup-warning-text{color:var(--warning)!important}.backup-danger-text{color:var(--danger)!important}.backup-note-warning{border-color:var(--warning-border);background:var(--warning-bg)}.backup-note-danger{border-color:var(--danger-border);background:var(--danger-bg)}.backup-console-safety{margin-top:18px}.backup-console-empty{padding:46px 22px;text-align:center;color:var(--muted)}.backup-console-empty svg{width:30px;height:30px;fill:none;stroke:var(--brand-pink);stroke-width:1.7;margin-bottom:10px}.backup-console-empty strong{display:block;color:var(--text);font-size:14px}.backup-console-empty p{font-size:11px;margin:6px 0 0}.backup-console-result{padding-bottom:20px}
@media(max-width:1000px){.backup-console-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.backup-console-hero{flex-direction:column}.backup-console-hero .button{width:100%;justify-content:center}}
@media(max-width:680px){.backup-console-content{padding:18px;padding-bottom:94px}.backup-console-stats{grid-template-columns:1fr}.backup-console-hero{padding:20px}.backup-console-list-head{align-items:flex-start;flex-direction:column}.backup-console-panel{overflow:visible}.backup-console-table-wrap{overflow:visible}.backup-console-table{min-width:0;display:block}.backup-console-table thead{display:none}.backup-console-table tbody,.backup-console-table tr,.backup-console-table td{display:block;width:100%}.backup-console-table tr{padding:12px 16px;border-bottom:1px solid var(--border)}.backup-console-table td{border:0;padding:7px 0 7px 40%;position:relative;min-height:30px}.backup-console-table td::before{content:attr(data-label);position:absolute;left:0;top:8px;width:36%;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}.backup-actions{flex-direction:column;align-items:stretch}.backup-actions form,.backup-actions .button{width:100%}}


/* v0.16.6 — Accessibility / Contrast / Typography Hardening */
:root{
  --interactive-accent:#D4146F;
  --interactive-accent-strong:#B31958;
}
:root[data-theme="dark"]{
  --muted-2:#858585;
  --accent-text:#FF87C4;
  --focus-color:#FF5DB3;
  --info:#5A86F0;
}
:root[data-theme="light"]{
  --muted-2:#707070;
  --accent-text:#B31958;
  --focus-color:#C2186A;
  --danger:#C92348;
  --warning:#8A5A00;
  --info:#2458C6;
  --success:#007A3D;
  --status-text:#007A3D;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
::placeholder{color:var(--muted-2);opacity:1}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;transform:translateY(-180%);padding:10px 14px;border-radius:10px;background:var(--surface);color:var(--text);border:2px solid var(--focus-color);box-shadow:var(--shadow-card);font-size:13px;font-weight:700;transition:transform .12s ease}
.skip-link:focus{transform:translateY(0)}
#admin-main-content:focus,#public-main-content:focus{outline:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid var(--focus-color);outline-offset:2px;box-shadow:none}
.switch input:focus-visible+.switch-track,.check-control input:focus-visible+span::before{outline:3px solid var(--focus-color);outline-offset:2px}
.public-receipt-drop:focus-within{border-color:var(--focus-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-color) 18%,transparent)}
.button-primary{background:linear-gradient(135deg,var(--interactive-accent),var(--interactive-accent-strong));color:#fff}
.check-control input:checked+span::before,.public-stepper li.active span,.calendar-month-day.today .calendar-day-number,.calendar-week-day.today>header strong,.calendar-timeboard-day-head.today strong,.public-calendar-day.selected{background:var(--interactive-accent);border-color:var(--interactive-accent);color:#fff}
.pink,.gift-stack a,.gift-copy-button,.public-service-select-label,.public-promo-price strong{color:var(--accent-text)}
.brand-subtitle,.eyebrow,.card-kicker,.nav-section-label,.environment-badge,.status-pill,.badge,.theme-toggle-label,.nav-item small,.admin-identity span,.microcopy{font-size:11px}
.field,.switch,.check-control{font-size:12px}
.data-table th,.service-table th,.client-table th,.promotion-table th,.reservations-table th,.gift-admin-table th,.backup-console-table th{font-size:11px}
.data-table td,.service-table td,.client-table td,.promotion-table td,.reservations-table td,.gift-admin-table td,.backup-console-table td,.mp-audit-table td{font-size:12px}
.public-nav-link{font-size:12px;min-height:38px}
.public-eyebrow,.public-card-kicker,.public-visual-label{font-size:11px}
.public-choice-number{font-size:12px;color:var(--accent-text)}
.public-choice-card p,.public-empty-catalog p{font-size:13px}
.public-stepper li{font-size:12px}.public-stepper li span{font-size:11px}
.public-summary-list>div,.public-summary-list strong{font-size:12px}
.public-summary-card>p,.gift-preview-card span{font-size:11px}
.public-location-copy p{font-size:12px}
.public-footer-legal,.public-footer-address{font-size:11px}
.public-photo-count{font-size:10px}.public-service-select-label{font-size:11px}
.public-promo-price del{font-size:11px}.public-promo-badge{font-size:10px;color:var(--accent-text)}
.public-calendar-weekdays span{font-size:10px}.public-calendar-day{font-size:12px}
.public-inline-help{font-size:11px}.public-slot-state{font-size:12px}
.public-slot-button span{font-size:11px}.public-slot-button small{font-size:10px}
.public-hold-notice p{font-size:11px}.public-form-grid .field>span{font-size:11px}
.public-form-grid input,.public-form-grid textarea{font-size:13px}
.public-input-prefix>span,.public-data-note{font-size:11px}
.public-payment-preview-copy p,.public-payment-dev-note p,.public-transfer-head p,.public-status-card>p,.public-payment-method-note p{font-size:11px}
.public-final-review span,.public-status-details span,.public-bank-grid span,.gift-review-grid span,.gift-draft-reference span,.gift-active-code span,.gift-delivery-meta span,.gift-public-card-brand span,.gift-public-code span,.gift-public-details span,.gift-public-message span{font-size:10px}
.public-final-review strong,.public-bank-grid strong,.public-status-details strong,.gift-review-grid strong,.gift-draft-reference strong,.gift-payment-summary strong{font-size:12px}
.public-summary-hold,.public-status-poll,.public-receipt-drop input{font-size:11px}
.public-payment-method-copy>small,.public-mp-breakdown>div span,.public-mp-breakdown>p,.public-summary-client>span:not(.public-card-kicker),.public-mp-expectations span,.gift-character-count,.gift-character-count strong,.gift-draft-notice p,.gift-payment-note{font-size:11px}
.public-mp-breakdown>div strong,.public-summary-client>strong,.gift-draft-notice strong,.gift-draft-success>p,.gift-public-card-brand small,.gift-public-code small,.gift-public-message p{font-size:12px}
.gift-draft-error,.gift-payment-summary>div{font-size:11px}
.calendar-month-weekdays div,.calendar-day-number,.calendar-week-day>header span,.calendar-timeboard-day-head span,.calendar-timeboard-day-head small,.calendar-time-label,.calendar-legend{font-size:10px}
.calendar-event span,.calendar-event strong,.calendar-more,.calendar-week-event span,.calendar-week-event small,.calendar-week-empty,.calendar-event-status,.calendar-day-event time small,.calendar-day-event p,.calendar-form-grid .field small,.calendar-modal-meta,.mobile-agenda-event span,.calendar-month-count,.calendar-timeboard-corner span,.calendar-grid-event>span,.calendar-grid-event>small{font-size:9px}
.calendar-week-event strong,.calendar-day-event strong,.calendar-empty p,.mobile-agenda-event strong{font-size:10px}
.calendar-status-actions .button,.calendar-day-summary>span{font-size:10px}
.service-stat span,.service-stat small,.field-error,.service-table td>small,.service-name-cell small,.service-edit-button,.service-back-link,.service-toggle-copy small,.gift-admin-stats span,.gift-admin-stats small,.gift-admin-filters label>span,.gift-admin-list-head small,.gift-stack small,.gift-code-cell small,.gift-stack a,.gift-copy-button,.gift-admin-pagination span,.gift-message-box span,.backup-console-stats span,.backup-console-stats small,.backup-console-list-head small,.backup-stack small,.backup-console-table td>small,.backup-console-table td::before{font-size:11px}
a.pink,.pink a{color:var(--accent-text)}
@media(prefers-contrast:more){
  :root[data-theme="dark"]{--border:#484848;--border-soft:#353535;--muted:#C2C2C2;--muted-2:#AFAFAF}
  :root[data-theme="light"]{--border:#B8B8BE;--border-soft:#D0D0D4;--muted:#4F4F4F;--muted-2:#5F5F5F}
  .button,.field input,.field select,.field textarea,.form-stack input{border-width:2px}
}
@media(forced-colors:active){
  .button,.icon-button,.theme-toggle,.nav-item,.badge,input,select,textarea{forced-color-adjust:auto}
  .button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid Highlight}
}


/* v0.16.7 — Mobile UX Hardening */
@media(max-width:760px){
  html{
    scroll-padding-top:calc(74px + env(safe-area-inset-top));
    scroll-padding-bottom:calc(92px + env(safe-area-inset-bottom));
  }
  body.admin-body,body.public-site{overflow-x:hidden}
  button,a,input,select,textarea,label{touch-action:manipulation}
  input,select,textarea{font-size:16px!important}
  input,select,textarea{scroll-margin-bottom:calc(112px + env(safe-area-inset-bottom))}

  /* Mobile safe areas + top navigation */
  .topbar{
    min-height:calc(66px + env(safe-area-inset-top));
    height:auto;
    padding-top:env(safe-area-inset-top);
    padding-left:max(14px,env(safe-area-inset-left));
    padding-right:max(14px,env(safe-area-inset-right));
  }
  .topbar-copy{flex:1;max-width:none;min-width:0}
  .topbar-actions{flex:0 0 auto}
  .topbar .theme-toggle-label{display:none}
  .menu-button,.theme-toggle,.sidebar-close,.icon-button{
    min-width:44px;min-height:44px;width:44px;height:44px;
  }
  .sidebar{
    width:min(88vw,340px);
    padding-top:max(18px,env(safe-area-inset-top));
    padding-left:max(14px,env(safe-area-inset-left));
    padding-right:14px;
  }
  .sidebar-nav{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .nav-item{min-height:48px}
  .link-button{min-height:44px;display:inline-flex;align-items:center}

  .admin-main{padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  .mobile-nav{
    left:max(8px,env(safe-area-inset-left));
    right:max(8px,env(safe-area-inset-right));
    bottom:max(8px,env(safe-area-inset-bottom));
    min-height:64px;
  }
  .mobile-nav-item{min-height:50px;font-size:10px}
  .mobile-nav-icon .ui-icon{width:20px;height:20px}

  /* Global mobile actions and modal ergonomics */
  .button,.button-small{min-height:44px!important}
  .button-small{padding:0 14px!important;font-size:11px!important}
  .toast-region{
    left:max(12px,env(safe-area-inset-left));
    right:max(12px,env(safe-area-inset-right));
    bottom:calc(84px + env(safe-area-inset-bottom));
    width:auto;
  }
  .admin-event-toast{
    left:max(12px,env(safe-area-inset-left));
    right:max(12px,env(safe-area-inset-right));
    top:calc(74px + env(safe-area-inset-top));
    width:auto;
    max-height:calc(100dvh - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow:auto;
  }
  .admin-event-toast-close{width:44px;height:44px;right:6px;top:6px}

  .modal-backdrop,.admin-confirm-modal{
    padding:
      max(12px,env(safe-area-inset-top))
      max(12px,env(safe-area-inset-right))
      max(12px,env(safe-area-inset-bottom))
      max(12px,env(safe-area-inset-left));
    align-items:flex-end;
  }
  .modal-card,.admin-confirm-dialog{
    width:100%;
    max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow:auto;
    border-radius:20px 20px 14px 14px;
  }
  .modal-actions,.admin-confirm-actions{flex-direction:column-reverse;align-items:stretch}
  .modal-actions .button,.admin-confirm-actions .button{width:100%}

  .receipt-viewer-dialog,.cover-editor-dialog,.service-gallery-dialog{
    height:100dvh!important;
    max-height:100dvh!important;
  }
  .receipt-viewer-head,.service-gallery-head,.cover-editor-head{
    padding-top:max(14px,env(safe-area-inset-top));
  }
  .receipt-viewer-footer,.service-gallery-footer,.cover-editor-actions{
    padding-bottom:max(14px,env(safe-area-inset-bottom));
  }
  .service-gallery-slide{max-height:calc(100dvh - 150px)}
  .calendar-modal-card{
    max-height:calc(100dvh - 12px - env(safe-area-inset-top));
    padding-bottom:env(safe-area-inset-bottom);
  }

  /* Public shell */
  .public-header-inner{
    width:min(100% - 24px,1180px);
    min-height:calc(66px + env(safe-area-inset-top));
    height:auto;
    padding-top:env(safe-area-inset-top);
  }
  .public-brand-logo{width:104px}
  .public-nav-link{min-height:44px;font-size:11px;padding:0 11px}
  .public-theme-toggle{min-width:44px;width:44px;height:44px;min-height:44px}
  .public-main{
    width:min(100% - 24px,1180px);
    padding-top:30px;
    padding-bottom:max(46px,calc(30px + env(safe-area-inset-bottom)));
  }
  .public-footer-inner{
    width:min(100% - 24px,1180px);
    padding-bottom:max(18px,env(safe-area-inset-bottom));
  }
  .social-icon-button{width:44px;height:44px}
  .public-location-action .button{width:100%}

  /* Booking stepper and actions */
  .public-stepper{
    grid-template-columns:repeat(4,132px);
    overflow-x:auto;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    scroll-padding-inline:12px;
    scrollbar-width:none;
  }
  .public-stepper::-webkit-scrollbar{display:none}
  .public-stepper li{scroll-snap-align:center;min-height:52px}
  .public-step-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .public-step-actions .button{width:100%;min-width:0}
  .public-step-actions .button-primary{order:-1}

  /* Mobile forms and payment */
  .public-date-time-layout{grid-template-columns:1fr}
  .public-date-picker,.public-slot-picker{padding:15px}
  .public-form-grid,.gift-form-grid{grid-template-columns:1fr!important}
  .public-payment-method,.public-receipt-drop{min-height:56px}
  .public-bank-grid{grid-template-columns:1fr}
  .public-payment-brands{gap:7px}
  .payment-brand{min-height:28px}

  /* Service Admin: replace horizontal table with cards. */
  .service-table-wrap{overflow:visible}
  .service-table{min-width:0;display:block}
  .service-table thead{display:none}
  .service-table tbody{display:grid;gap:10px}
  .service-table tr{
    display:grid;
    background:var(--surface-soft);
    border:1px solid var(--border);
    border-radius:14px;
    padding:12px 14px;
  }
  .service-table td{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:9px 0;
    border-bottom:1px solid var(--border-soft);
    text-align:right;
  }
  .service-table td::before{
    content:attr(data-label);
    flex:0 0 92px;
    text-align:left;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:10px;
    font-weight:700;
    color:var(--muted-2);
  }
  .service-table td:first-child{display:block;text-align:left}
  .service-table td:first-child::before,.service-actions-cell::before{display:none}
  .service-table td:last-child{border-bottom:0}
  .service-actions-cell{display:block!important;text-align:left!important}
  .service-actions-cell .button{width:100%}
  .service-name-cell{text-align:left}

  /* Gift Cards Admin: same mobile card model used elsewhere in Admin. */
  .gift-admin-table-wrap{overflow:visible;border:0}
  .gift-admin-table{min-width:0;display:block}
  .gift-admin-table thead{display:none}
  .gift-admin-table tbody{display:grid;gap:10px}
  .gift-admin-table tr{
    display:grid;
    padding:13px 14px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface-soft);
  }
  .gift-admin-table td{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:9px 0;
    border-bottom:1px solid var(--border-soft);
    text-align:right;
    min-width:0;
  }
  .gift-admin-table td::before{
    content:attr(data-label);
    flex:0 0 92px;
    text-align:left;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:10px;
    font-weight:700;
    color:var(--muted-2);
  }
  .gift-admin-table td:last-child{border-bottom:0}
  .gift-admin-table .gift-stack,.gift-admin-table .gift-code-cell{justify-items:end;min-width:0}
  .gift-admin-table .gift-stack strong,.gift-admin-table .gift-stack small,
  .gift-admin-table .gift-code-cell strong,.gift-admin-table .gift-code-cell small{
    max-width:180px;
    overflow-wrap:anywhere;
    text-align:right;
  }
  .gift-admin-row-action{display:block!important;text-align:left!important}
  .gift-admin-row-action::before{display:none}
  .gift-admin-row-action .button{width:100%}

  /* Existing mobile card tables: make content resilient to narrow screens. */
  .reservations-table td,.client-table td,.promotion-table td,.backup-console-table td{
    overflow-wrap:anywhere;
  }
  .reservation-detail-list>div{align-items:flex-start}
  .reservation-detail-list dd{max-width:62%;overflow-wrap:anywhere}

  /* Sticky form actions must clear bottom mobile navigation. */
  .service-form-actions{
    bottom:calc(80px + env(safe-area-inset-bottom));
  }
}

@media(max-width:430px){
  .public-header-inner{
    width:min(100% - 16px,1180px);
    gap:6px;
    grid-template-columns:minmax(0,1fr) auto auto;
  }
  .public-brand-logo{width:88px}
  .public-nav{padding:2px}
  .public-nav-link{padding:0 8px;font-size:10px}
  .public-main{width:min(100% - 20px,1180px)}
  .public-hero-copy h1,.public-page-head h1,.public-booking-page-head h1{font-size:32px}
  .public-flow-panel,.public-summary-card{padding:15px}
  .public-calendar-weekdays,.public-calendar-grid{gap:3px}
  .public-date-picker,.public-slot-picker{padding:12px}
  .public-slot-grid{grid-template-columns:1fr 1fr}
  .gift-admin-content,.gift-detail-content,.reservations-content,.reservation-detail-content{
    padding-left:12px;
    padding-right:12px;
  }
  .gift-admin-stats,.reservations-stats{grid-template-columns:1fr}
  .reservation-detail-list>div{display:grid;grid-template-columns:1fr;gap:4px}
  .reservation-detail-list dd{max-width:none;text-align:left}
}

@media(orientation:landscape) and (max-height:520px) and (max-width:960px){
  .topbar{position:relative}
  .public-header{position:relative}
  .sidebar-nav{padding-bottom:18px}
  .calendar-modal-card,.admin-confirm-dialog,.modal-card{max-height:calc(100dvh - 8px)}
}


/* v0.16.7.1 — Mobile Dashboard Agenda Priority */
@media(max-width:760px){
  /* Mobile only: surface today's actual client appointments before summaries. */
  .dashboard-mvp>.dashboard-welcome{order:1}
  .dashboard-mvp>.dashboard-main-grid{display:contents}
  .dashboard-mvp .dashboard-agenda-card{order:2}
  .dashboard-mvp>.dashboard-kpi-grid{order:3}
  .dashboard-mvp .dashboard-attention-card{order:4}
  .dashboard-mvp>.dashboard-money-grid{order:5}
  .dashboard-mvp>.dashboard-bottom-grid{order:6}
}


/* v0.17.1.1 — Preproduction explicit cleanup selection / impact preview */
.preprod-selection-form{display:grid;gap:14px}
.preprod-selection-group{
  border:1px solid var(--border-soft);
  border-radius:14px;
  background:var(--surface-soft);
  overflow:hidden;
}
.preprod-selection-group>summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:46px;padding:10px 14px;cursor:pointer;list-style:none;
}
.preprod-selection-group>summary::-webkit-details-marker{display:none}
.preprod-selection-group>summary span{font-size:11px;color:var(--muted)}
.preprod-selection-list{display:grid;max-height:360px;overflow:auto;border-top:1px solid var(--border-soft)}
.preprod-selection-row{
  display:grid;grid-template-columns:22px minmax(0,1fr);align-items:flex-start;gap:10px;
  padding:10px 14px;border-bottom:1px solid var(--border-soft);cursor:pointer;
}
.preprod-selection-row:last-child{border-bottom:0}
.preprod-selection-row:hover{background:color-mix(in srgb,var(--focus-color) 6%,transparent)}
.preprod-selection-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--interactive-accent)}
.preprod-selection-row span{display:grid;gap:3px;min-width:0}
.preprod-selection-row strong{font-size:12px;overflow-wrap:anywhere}
.preprod-selection-row small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.preprod-plan-card{border-color:color-mix(in srgb,var(--warning) 44%,var(--border-soft))}
@media(max-width:760px){
  .preprod-selection-list{max-height:300px}
  .preprod-selection-row{padding:12px}
  .preprod-selection-row input{width:20px;height:20px}
}


/* v0.17.1.2 — Transactional preproduction cleanup gates */
.preprod-execution-gate{display:grid;gap:12px;padding:16px;margin-top:16px;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface-soft)}
.preprod-danger-zone{border-color:color-mix(in srgb,var(--danger) 55%,var(--border-soft));background:color-mix(in srgb,var(--danger) 5%,var(--surface-soft))}
.preprod-danger-zone .field{max-width:620px}
.preprod-cleanup-result{border-color:color-mix(in srgb,var(--success) 45%,var(--border-soft))}
@media(max-width:760px){.preprod-execution-gate{padding:13px}.preprod-danger-zone .button{width:100%}}


/* v0.17.3 — Preproduction Freeze / Recovery */
.preprod-freeze-gates{display:grid;gap:8px;margin-top:14px}
.preprod-freeze-gate{
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:12px;
  padding:12px 14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface-soft)
}
.preprod-freeze-gate div{display:grid;gap:3px;min-width:0}
.preprod-freeze-gate strong{font-size:12px}
.preprod-freeze-gate small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.preprod-freeze-gate.is-pass{border-color:color-mix(in srgb,var(--success) 34%,var(--border-soft))}
.preprod-freeze-gate.is-pending{border-color:color-mix(in srgb,var(--warning) 34%,var(--border-soft))}
@media(max-width:760px){
  .preprod-freeze-gate{grid-template-columns:1fr}
  .preprod-freeze-gate .badge{justify-self:start}
}

/* Phase 18.0E4.1 — Mobile-only inline service CTA hotfix */
.public-service-selected-action{display:none}
.public-service-selected-action[hidden]{display:none!important}
.public-service-selected-state{display:inline-flex;align-items:center;gap:6px;color:var(--success);font-size:8px;font-weight:700;letter-spacing:.035em;white-space:nowrap}
.public-service-selected-state svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.public-service-inline-next{min-height:42px;padding-inline:14px;gap:7px;white-space:nowrap}
.public-service-inline-next svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
@media(max-width:760px){
  .public-service-selected-action:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-top:1px solid var(--border-soft);background:color-mix(in srgb,var(--brand-pink) 3%,transparent)}
  .public-service-inline-next{margin-left:auto;font-size:10px}
}
@media(max-width:430px){
  .public-service-selected-action:not([hidden]){flex-direction:column;align-items:flex-end;gap:8px}
  .public-service-selected-state{justify-content:flex-end}
  .public-service-inline-next{width:auto;min-width:176px;justify-content:center}
}


/* Phase 18.0E4.4 — Gift Card mobile CTA robust fallback */
[data-public-gift] [data-gift-service-selected-action]{display:none}
@media (max-width:760px){
  [data-public-gift] .public-service-card.selected [data-gift-service-selected-action]{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:12px;border-top:1px solid var(--border-soft);
    background:color-mix(in srgb,var(--brand-pink) 3%,transparent)
  }
}
@media (max-width:520px){
  [data-public-gift] .public-service-card.selected [data-gift-service-selected-action]{
    flex-direction:column;align-items:flex-end;gap:8px
  }
}

/* v1.0 — Sitio público de Lash */
.lash-site-content{display:grid;gap:18px;padding:24px}.lash-site-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;border:1px solid var(--border);border-radius:var(--radius-card);background:linear-gradient(135deg,var(--surface),var(--surface-soft));box-shadow:var(--shadow-card)}.lash-site-hero h2{margin:6px 0 8px;font-size:26px}.lash-site-hero p{margin:0;max-width:760px;color:var(--muted);font-size:10px;line-height:1.65}.lash-site-gallery-note{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.lash-site-gallery-note strong{font-size:9px}.lash-site-gallery-note span{font-size:8px;color:var(--muted)}.lash-site-image-grid .service-image-card.is-muted{opacity:.65}.lash-site-image-status{position:absolute;left:8px;top:8px;padding:5px 8px;border-radius:999px;border:1px solid var(--border);background:rgba(10,10,10,.72);backdrop-filter:blur(8px);font-size:7px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff}.lash-site-image-status.active{border-color:rgba(0,230,118,.34);color:#7df6ac}.lash-site-empty-gallery{min-height:150px;display:grid;place-items:center;align-content:center;gap:8px;padding:24px;border:1px dashed var(--border);border-radius:16px;text-align:center;color:var(--muted)}.lash-site-empty-gallery .ui-icon{width:28px;height:28px}.lash-site-empty-gallery strong{color:var(--text);font-size:11px}.lash-site-empty-gallery span{font-size:9px}.lash-site-upload-form{display:grid;gap:10px;margin-top:14px}.lash-site-upload-actions{display:flex;justify-content:flex-end}.lash-site-settings-form{display:grid;gap:16px}.lash-site-cover-stage{aspect-ratio:1.26/1;min-height:320px}.lash-site-cover-stage>img{width:100%;height:100%;object-fit:cover}.public-lash-showcase{display:block;min-height:390px;padding:0;background:var(--surface);isolation:isolate}.public-lash-showcase::before{display:none}.public-lash-showcase-track{position:absolute;inset:0}.public-lash-showcase-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s ease;overflow:hidden}.public-lash-showcase-slide.active{opacity:1;visibility:visible}.public-lash-showcase-image{width:100%;height:100%;display:block;object-fit:cover}.public-lash-showcase-nav{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:38px;height:38px;border:1px solid rgba(255,255,255,.22);border-radius:50%;display:grid;place-items:center;background:rgba(10,10,10,.50);backdrop-filter:blur(10px);color:#fff;cursor:pointer;transition:background .2s ease,transform .2s ease}.public-lash-showcase-nav:hover{background:rgba(10,10,10,.76)}.public-lash-showcase-nav.previous{left:16px}.public-lash-showcase-nav.next{right:16px}.public-lash-showcase-nav .ui-icon{width:17px;height:17px}.public-lash-showcase-dots{position:absolute;z-index:4;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:999px;background:rgba(10,10,10,.42);backdrop-filter:blur(10px)}.public-lash-showcase-dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer}.public-lash-showcase-dot.active{width:18px;border-radius:999px;background:#fff}.public-lash-showcase[data-slide-count="1"] .public-lash-showcase-slide{opacity:1;visibility:visible}
@media(max-width:760px){.lash-site-content{padding:18px;padding-bottom:94px}.lash-site-hero{align-items:flex-start;flex-direction:column;padding:20px}.lash-site-hero .button{width:100%}.lash-site-gallery-note{align-items:flex-start;flex-direction:column}.lash-site-upload-actions .button{width:100%}.lash-site-cover-stage{min-height:260px}.public-lash-showcase{min-height:300px}.public-lash-showcase-nav{width:34px;height:34px}.public-lash-showcase-nav.previous{left:10px}.public-lash-showcase-nav.next{right:10px}.public-lash-showcase-dots{bottom:10px}}
@media(max-width:520px){.public-lash-showcase{min-height:260px}}
@media(prefers-reduced-motion:reduce){.public-lash-showcase-slide{transition:none}}
.lash-site-settings-form .field-wide{grid-column:1/-1}
@media(max-width:760px){.lash-site-settings-form .field-wide{grid-column:auto}}

/* CherryLash v1.0 B2 — selectable add-ons: real controls, theme-aware */
.public-booking-addons{min-width:0;margin:20px 0 8px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-soft);color:var(--text)}
.public-booking-addons[hidden]{display:none!important}
.public-booking-addons legend{padding:0 8px;font-size:11px;letter-spacing:.09em;font-weight:700;color:var(--brand-pink)}
.public-addon-description{margin:0 0 17px;font-size:12px;line-height:1.6;color:var(--muted)}
.public-addon-group{display:grid;gap:10px;margin-bottom:17px}
.public-addon-group>strong,.public-addon-pair-row strong{font-size:13px;color:var(--text)}
.public-addon-choice{display:flex;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:12px;cursor:pointer;min-height:44px}
.public-addon-choice span{margin-left:auto;font-weight:700;color:var(--text-soft);text-align:right}
.public-addon-choice input{width:18px;height:18px;accent-color:var(--brand-pink);flex:0 0 18px;cursor:pointer}
.public-addon-check{margin-bottom:14px}
.public-addon-pair-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.public-addon-pair-row p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.public-addon-counter{display:flex;gap:7px;align-items:center;flex:none}
.public-addon-counter button{width:44px;height:44px;display:grid;place-items:center;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;font-size:22px;cursor:pointer}
.public-addon-counter button:disabled{opacity:.35;cursor:not-allowed}
.public-addon-counter output{min-width:22px;text-align:center;font-size:13px;font-weight:700}
.public-addon-totals{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;font-size:12px}
.public-addon-totals strong{font-size:17px;color:var(--brand-pink)}
.public-booking-addons :focus-visible{outline:2px solid var(--brand-pink);outline-offset:3px}
@media(max-width:480px){.public-booking-addons{padding:14px}.public-addon-choice{flex-wrap:wrap}.public-addon-pair-row{align-items:flex-start;flex-wrap:wrap}}

.public-status-addons{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);color:var(--text)}
.public-status-addons[hidden]{display:none!important}
.public-status-addons ul{margin:9px 0;padding-left:20px;font-size:12px;line-height:1.8}
.public-status-addons p{margin:10px 0 0;font-size:12px;color:var(--text-soft)}


/* v1.0 maintenance — B2 UX: a dedicated, five-stage booking flow. */
.public-booking-root .public-summary-hold[hidden]{display:none!important}
.public-booking-root .public-stepper{grid-template-columns:repeat(5,minmax(0,1fr))}
.public-booking-root .public-service-selected-action:not([hidden]){
  display:flex;align-items:center;justify-content:space-between;gap:9px;
  padding:12px;border-top:1px solid var(--border-soft);
  background:color-mix(in srgb,var(--brand-pink) 3%,transparent)
}
.public-booking-root .public-service-inline-next{margin-left:auto;font-size:11px}
.public-booking-root .public-addon-service-context{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;
  margin:0 0 14px;padding:14px 16px;border:1px solid var(--border);
  border-radius:14px;background:var(--surface-soft);color:var(--text-soft);font-size:12px
}
.public-booking-root .public-addon-service-context>strong{color:var(--text);font-size:14px}
.public-booking-root .public-addon-service-context>span:last-child{margin-left:auto}
.public-booking-root .public-addon-intro{margin:0 0 14px;font-size:12px;line-height:1.6;color:var(--muted)}
.public-booking-root .public-booking-addons{margin:0 0 18px}
@media(max-width:760px){
 .public-booking-root .public-stepper{grid-template-columns:repeat(5,132px)}
 .public-booking-root .public-service-selected-action:not([hidden]){flex-direction:column;align-items:stretch}
 .public-booking-root .public-service-selected-state{align-self:flex-end}
 .public-booking-root .public-service-inline-next{width:100%;margin-left:0;justify-content:center;min-height:44px}
 .public-booking-root .public-addon-service-context>span:last-child{margin-left:0;width:100%}
}
@media(max-width:480px){
 .public-booking-root .public-stepper{grid-template-columns:repeat(5,minmax(0,1fr))}
 .public-booking-root .public-stepper li{padding:0 3px;gap:3px;min-width:0}
 .public-booking-root .public-stepper li span{width:27px;height:27px}
}

/* v1.1 — Legal pages + pre-payment legal notice */
.public-legal-page-head{align-items:flex-start}
.public-legal-document{max-width:940px;margin:0 auto;padding:30px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);transition:var(--transition-theme)}
.public-legal-intro{margin-bottom:28px;padding:18px 20px;border:1px solid rgba(255,93,179,.24);border-radius:16px;background:linear-gradient(135deg,rgba(255,93,179,.07),var(--surface-soft))}
.public-legal-intro>strong{display:block;margin-bottom:7px;font-size:13px}
.public-legal-intro p{margin:4px 0;color:var(--muted);font-size:11px;line-height:1.7}
.public-legal-document section{padding:24px 0;border-top:1px solid var(--border-soft)}
.public-legal-document section:first-of-type{border-top:0;padding-top:0}
.public-legal-document h2{margin:0 0 11px;font-size:19px;line-height:1.3;letter-spacing:-.018em}
.public-legal-document h3{margin:18px 0 7px;font-size:13px;line-height:1.4}
.public-legal-document p{margin:0 0 10px;color:var(--muted);font-size:11px;line-height:1.8}
.public-legal-document p:last-child{margin-bottom:0}
.public-legal-document ul{margin:10px 0 12px;padding-left:21px;color:var(--muted);font-size:11px;line-height:1.8}
.public-legal-document li+li{margin-top:5px}
.public-legal-document a{color:var(--accent);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.public-legal-document strong{color:var(--text)}
.public-legal-highlight{margin:8px -12px;padding:22px 20px!important;border:1px solid rgba(255,93,179,.28)!important;border-radius:16px;background:linear-gradient(135deg,rgba(255,93,179,.075),var(--surface-soft))}
.public-legal-updated{margin-top:24px;padding-top:18px;border-top:1px solid var(--border-soft);color:var(--muted-2);font-size:9px;line-height:1.5}
.public-booking-legal-notice{display:flex;align-items:flex-start;gap:13px;margin:16px 0;padding:15px 16px;border:1px solid rgba(255,93,179,.28);border-radius:15px;background:linear-gradient(135deg,rgba(255,93,179,.065),var(--surface-soft))}
.public-booking-legal-notice-icon{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--brand-pink)}
.public-booking-legal-notice-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.public-booking-legal-notice>div:last-child{min-width:0}
.public-booking-legal-notice>div>strong{font-size:11px}
.public-booking-legal-notice p{margin:5px 0 7px;color:var(--muted);font-size:9.5px;line-height:1.65}
.public-booking-legal-notice p strong{color:var(--text)}
.public-booking-legal-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted-2);font-size:9px}
.public-booking-legal-links a{color:var(--accent);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
@media(max-width:680px){
  .public-legal-document{padding:20px 16px;border-radius:18px}
  .public-legal-intro{padding:15px 16px}
  .public-legal-document section{padding:20px 0}
  .public-legal-document h2{font-size:17px}
  .public-legal-document p,.public-legal-document ul,.public-legal-intro p{font-size:10.5px}
  .public-legal-highlight{margin:6px -4px;padding:18px 14px!important}
  .public-booking-legal-notice{padding:14px;gap:10px}
  .public-booking-legal-notice p{font-size:10px}
}
.public-legal-document code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;overflow-wrap:anywhere;color:var(--text-soft)}
