/* 4.7.0 — shared visual system. Legacy component geometry remains in app.css. */
:root{--salon-accent:#8c2f4e;--salon-ink:#30262b;--salon-muted:#70646b;--salon-border:#e9e1e5;--salon-soft:#f8f3f5;--salon-shadow:0 3px 16px rgba(55,31,42,.04)}
body.app-body,body.public-body{background:#f7f5f6;color:var(--salon-ink)}
.app-body .app-sidebar{background:#30242b;box-shadow:none;border-right:1px solid #45353e}
.app-body .sidebar-nav a{border-radius:10px;margin-bottom:3px;min-height:43px;font-weight:600}
.app-body .sidebar-nav a.active{background:#543442;box-shadow:inset 3px 0 #d8a3b6}
.app-body .sidebar-nav a:hover{background:#49323e}
.app-body .brand-mark,.app-body .user-chip>span{background:var(--salon-accent);box-shadow:none;border-radius:12px}
.app-body .page-heading h1{font-weight:750;letter-spacing:-.045em}
.app-body .eyebrow{font-weight:650;letter-spacing:.075em}
.app-body .page-wrap{max-width:1540px}
.app-body .card,.app-body .panel,.public-body .card{border:1px solid var(--salon-border);border-radius:18px;background:#fff;box-shadow:var(--salon-shadow)}
.app-body .card h2,.app-body .card h3,.app-body .panel h2{font-weight:700;letter-spacing:-.025em}
.app-body .card-header{background:#fff;border-color:var(--salon-border)}
.app-body .btn,.public-body .btn{border-radius:11px;font-weight:650;box-shadow:none;min-height:42px}
.app-body .btn-primary,.public-body .btn-primary{background:var(--salon-accent);border-color:var(--salon-accent);color:#fff;box-shadow:none}
.app-body .btn-primary:hover,.public-body .btn-primary:hover{background:#72253f;border-color:#72253f}
.app-body .btn-light,.public-body .btn-light{background:#fff;border-color:var(--salon-border);color:#51434b}
.app-body .btn-light:hover{background:var(--salon-soft);border-color:#cdb7c1}
.app-body .btn-success{box-shadow:none}
.app-body .form-control,.app-body .form-select,.public-body .form-control,.public-body .form-select{border-radius:11px;border-color:#dbd0d6;box-shadow:none;min-height:44px;background-color:#fff;color:var(--salon-ink)}
.app-body .form-control:focus,.app-body .form-select:focus,.public-body .form-control:focus{border-color:var(--salon-accent);box-shadow:0 0 0 3px #8c2f4e1a}
.app-body .form-label{font-weight:650;color:#574851}
.app-body .text-muted{color:var(--salon-muted)!important}
.app-body .table thead th{background:#faf7f9;color:#6b5862;font-size:.75rem;font-weight:700}
.app-body .table td{vertical-align:middle}
.app-body .table tbody tr:hover{background:#fcf9fa}
.app-body .modal-content,.app-body .offcanvas-bottom{border-radius:22px;box-shadow:0 16px 64px #30242b26}
.app-body .modal-header,.app-body .modal-footer{border-color:var(--salon-border)}
.app-body .today-hero{background:#49303e;border-radius:22px;box-shadow:none}
.app-body .today-hero h2{font-weight:750;letter-spacing:-.035em}
.app-body .today-hero .eyebrow{color:#f0cbd8}
.app-body .today-kpis>div{box-shadow:none}
.app-body .today-visit,.app-body .today-next-card,.app-body .today-focus,.app-body .today-inbox,.app-body .today-complete-followup{border-radius:18px;box-shadow:var(--salon-shadow)}
.app-body .today-customer-link{font-weight:750}
.app-body .today-visit-title>div>small{color:var(--salon-muted)}
.app-body .today-program{border:0;box-shadow:none;background:transparent}
.app-body .new-bookings-panel{border:1px solid #d8535f;border-radius:18px;box-shadow:none;background:#fff}
.app-body .new-bookings-head{background:#fff3f4}
.app-body .new-booking-card{border-radius:0;box-shadow:none}
.app-body .new-booking-card:last-child{border-radius:0 0 18px 18px}
.app-body .new-bookings-head h2{font-weight:750}
.app-body .customer-profile-card,.app-body .customer-profile-card-v2,.app-body .service-card,.app-body .waitlist-card,.app-body .menu-card{border-radius:18px;box-shadow:var(--salon-shadow)}
.app-body .customer-profile-stats>div{border-radius:10px;background:#faf7f9}
.app-body .customer-profile-actions{border-top:1px solid var(--salon-border)}
.app-body .menu-card:hover{border-color:#c69cae;transform:translateY(-1px)}
.app-body .menu-card p{font-size:.8rem;line-height:1.5}
.app-body :is(a,button,input,select,textarea):focus-visible{outline:3px solid #8c2f4e80;outline-offset:3px}
/* Calendar: the weekday rail is independent of event data and list empty states. */
.app-page-calendar .calendar-shell-v4{gap:12px}
.app-page-calendar .calendar-shell-v4 .calendar-toolbar{position:static;background:#fff;border:1px solid var(--salon-border);border-radius:18px;box-shadow:none;backdrop-filter:none}
.app-page-calendar .calendar-toolbar-copy strong{font-size:.95rem;font-weight:700}
.app-page-calendar .calendar-readable-hint{display:none}
.app-page-calendar .calendar-shell-v4 .calendar-segmented{display:flex;gap:3px;padding:4px;border:0;background:#f3edf0;border-radius:12px}
.app-page-calendar .calendar-shell-v4 .calendar-segmented-btn{border-radius:9px;min-height:42px;color:#64535d;font-weight:650;box-shadow:none}
.app-page-calendar .calendar-shell-v4 .calendar-segmented-btn.active{background:var(--salon-accent);color:#fff;box-shadow:none}
.app-page-calendar .calendar-date-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 3px}
.app-page-calendar .calendar-mobile-day{display:block;margin:0;padding:0;min-width:0}
.app-page-calendar .calendar-mobile-day strong{font-size:1.05rem;font-weight:750;text-transform:capitalize;line-height:1.4}
.app-page-calendar .calendar-jump{display:flex;align-items:center;gap:10px;color:var(--salon-muted);font-size:.78rem;font-weight:600}
.app-page-calendar .calendar-jump input{width:160px;font-size:.85rem}
.app-page-calendar .calendar-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0 0 4px}
.app-page-calendar .calendar-week-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:62px;padding:7px 2px;border:1px solid var(--salon-border);border-radius:12px;background:#fff;color:#685761}
.app-page-calendar .calendar-week-day span{font-size:.76rem;font-weight:600}
.app-page-calendar .calendar-week-day strong{font-size:1.12rem;font-weight:750}
.app-page-calendar .calendar-week-day.is-today{border-color:#ae627e;box-shadow:inset 0 -3px #ae627e}
.app-page-calendar .calendar-week-day[aria-pressed="true"]{background:var(--salon-accent);color:#fff;border-color:var(--salon-accent);box-shadow:none}
.app-page-calendar .calendar-card-v4{border-radius:18px;border:1px solid var(--salon-border);box-shadow:none;background:#fff;padding:14px}
.app-page-calendar .fc .fc-toolbar{gap:10px;position:static;top:auto;padding:0 0 12px;background:transparent}
.app-page-calendar .fc .fc-toolbar-title{font-size:1rem;font-weight:700;line-height:1.4;white-space:normal;text-align:center}
.app-page-calendar .fc .fc-button{min-width:44px;min-height:44px;border-radius:10px!important}
.app-page-calendar .fc .fc-col-header-cell-cushion{display:block;width:100%;color:#584550;font-size:.78rem;text-decoration:none;padding:9px 2px}
.app-page-calendar .calendar-day-heading{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;padding:3px;min-height:44px}
.app-page-calendar .calendar-day-heading strong{font-size:.78rem;text-transform:capitalize;letter-spacing:0;font-weight:750;overflow-wrap:anywhere}
.app-page-calendar .calendar-day-heading small{font-size:.75rem;color:#735f69}
.app-page-calendar .calendar-day-heading>span{display:none}
.app-page-calendar .calendar-day-heading.is-today{background:#f6e7ed;border-radius:8px}
.app-page-calendar .calendar-card-v4 .fc .fc-list-day-cushion{position:static;top:auto;background:#f7f0f3!important;border:0;border-radius:9px;padding:10px 12px!important}
.app-page-calendar .fc .fc-list-day-text{color:#59424f!important;font-weight:700}
.app-page-calendar .fc .fc-list-day-side-text{color:#705a65!important;font-size:.78rem}
.app-page-calendar .calendar-list-main small{font-size:.78rem;color:var(--salon-muted)}
.app-page-calendar .calendar-list-status{display:inline-flex;font-size:.65rem;white-space:normal;max-width:100px}
.app-page-calendar .fc .fc-list-empty{background:#fcfafb;min-height:150px;color:#75616b}
.app-page-calendar .fc .fc-daygrid-day-number{color:#5a414d}
.app-page-calendar .fc .fc-timegrid-slot-label-cushion{font-size:.75rem;color:#78646f}
@media(min-width:992px){
 .app-body .page-wrap{padding:28px 30px 44px}
 .app-body .sidebar-nav{gap:2px}
 .app-body .sidebar-footer .user-chip small{overflow-wrap:anywhere}
}
@media(max-width:991.98px){
 .app-body .page-wrap{padding:16px 14px calc(110px + env(safe-area-inset-bottom))}
 .app-body .mobile-header{background:#fcfafb;border-bottom:1px solid var(--salon-border);box-shadow:none;backdrop-filter:none}
 .app-body .brand.compact .brand-mark,.app-body .icon-button{background:var(--salon-accent);box-shadow:none;border-radius:12px}
 .app-body .icon-button.secondary{background:#fff;border:1px solid var(--salon-border)}
 .app-body .mobile-bottom-nav{border-radius:19px;box-shadow:0 4px 24px #30242b14;background:#fff;padding:5px 7px}
 .app-body .mobile-bottom-nav a{border-radius:13px;min-height:54px}
 .app-body .mobile-bottom-nav a.active{background:#f5e9ee;color:var(--salon-accent);box-shadow:none}
 .app-body .mobile-bottom-nav a[href*="appointment-form.php"] i{width:34px;height:28px;margin:0 auto 2px;background:none;box-shadow:none;border-radius:0;color:var(--salon-accent)}
 .app-body .mobile-bottom-nav span{font-size:.69rem}
 .app-body .form-control,.app-body .form-select,.public-body .form-control,.public-body .form-select{font-size:16px}
 .app-page-calendar .calendar-toolbar-meta{width:100%}
 .app-page-calendar .calendar-mobile-actions{width:100%;gap:8px}
}
@media(max-width:767.98px){
 .app-page-calendar .calendar-date-control{align-items:flex-start;flex-direction:column;gap:8px}
 .app-page-calendar .calendar-jump{width:100%;justify-content:space-between}
 .app-page-calendar .calendar-jump input{width:158px;font-size:16px}
 .app-page-calendar .calendar-week-strip{gap:4px}
 .app-page-calendar .calendar-week-day{min-height:58px;border-radius:10px}
 .app-page-calendar .calendar-week-day span{font-size:.73rem}
 .app-page-calendar .calendar-card-v4{padding:10px 6px}
 .app-page-calendar .calendar-shell-v4 .calendar-segmented-btn{padding:0 6px;min-width:0;flex:1}
 .app-page-calendar .calendar-shell-v4 .calendar-segmented-btn span{font-size:.77rem}
 .app-page-calendar .fc .fc-toolbar-title{font-size:.9rem}
 .app-page-calendar .fc .fc-timegrid-slot{height:2.6em}
 .app-page-calendar .calendar-event-top{flex-wrap:wrap}
 .app-page-calendar .calendar-event-content>span{font-size:.78rem}
 .app-page-calendar .calendar-list-event{flex-wrap:wrap;gap:5px}
 .app-page-calendar .calendar-card-v4 .calendar-list-status{display:inline-flex}
 .app-page-calendar .fc .fc-list-day-cushion{flex-wrap:wrap;gap:4px}
 .app-body .today-hero{border-radius:18px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .app-body *, .app-body *::before, .app-body *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Period controls stay on one line; each date is announced once. */
.app-page-calendar .calendar-period-nav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;flex:1;min-width:0}
.app-page-calendar .calendar-period-nav .btn{padding:0;min-width:44px;min-height:44px}
.app-page-calendar .calendar-period-nav .calendar-mobile-day{text-align:center}
.app-page-calendar .calendar-list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;flex-wrap:wrap}
.app-page-calendar .calendar-card-v4 .fc-list-day-cushion>a{display:block;width:100%;color:inherit}
.app-page-calendar .calendar-card.calendar-card-v4{box-shadow:none;border-radius:18px}
@media(max-width:767.98px){
 .app-page-calendar .calendar-period-nav{width:100%;gap:7px}
 .app-page-calendar .calendar-period-nav .calendar-mobile-day strong{font-size:.95rem;text-transform:none}
 .app-page-calendar .calendar-shell-v4 .calendar-toolbar{border-radius:18px}
}

.app-page-calendar .calendar-card-v4 .fc-view-harness:has(.fc-list){min-height:0!important}
.app-page-calendar .calendar-card-v4 .fc-list{min-height:160px}
.app-page-calendar .calendar-card-v4 .fc .fc-timegrid-slot{height:1.8em}
.app-page-calendar .fc-timegrid-event.calendar-event{background:#fcf7f9!important;border:1px solid #e8d5de!important;border-left:3px solid var(--calendar-event-accent,#8c2f4e)!important;color:#45313c!important;box-shadow:none}
.app-page-calendar .fc-timegrid-event .calendar-event-top>strong{color:#8c2f4e}
.app-page-calendar .fc-timegrid-event .calendar-event-content>span{color:#3d2934}
.app-page-calendar .calendar-event-service{color:#765f6b}
.app-page-customers .customer-directory-hero{background:#fff;border:1px solid var(--salon-border);border-radius:18px;box-shadow:none}
.app-page-customers .customer-directory-hero::after{display:none}
.app-page-customers .customer-directory-copy h2{font-size:1.2rem;font-weight:700}
.app-page-customers .customer-command-card{border-radius:16px;box-shadow:var(--salon-shadow)}
/* Daily work: readable labels and less decorative chrome. */
.app-body.app-page-dashboard .today-hero{background:#49303e!important;border-radius:20px;box-shadow:none;padding:22px}
.app-body.app-page-dashboard .today-hero::before,.app-body.app-page-dashboard .today-hero::after{display:none}
.app-body.app-page-dashboard .today-hero h2{font-weight:700;font-size:clamp(1.45rem,3vw,2rem);letter-spacing:-.035em}
.app-body.app-page-dashboard .today-visit{border-radius:18px;box-shadow:none;border:1px solid var(--salon-border)}
.app-body .today-complete-btn span{display:inline!important;font-size:.78rem}
.app-body .app-sidebar .brand strong{white-space:normal;text-overflow:clip;line-height:1.3;font-size:.93rem}
@media(max-width:767.98px){
 .app-body.app-page-dashboard .today-hero{padding:18px}
 .app-body .today-complete-btn{gap:4px;padding-left:8px;padding-right:8px}
}

/* 4.7.0 — unified reports/performance dashboard + customer pagination. */
.app-page-reports .report-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;overflow:hidden;padding:clamp(22px,4vw,34px);border-radius:24px;background:linear-gradient(135deg,#4a2635 0%,#6f2d48 56%,#9a4868 100%);color:#fff;box-shadow:0 18px 42px rgba(79,35,53,.16)}
.app-page-reports .report-hero::after{content:"";position:absolute;right:-90px;bottom:-130px;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(255,230,238,.18),transparent 68%)}
.app-page-reports .report-hero-copy,.app-page-reports .report-hero-mark{position:relative;z-index:1}.app-page-reports .report-hero-copy{max-width:830px}.app-page-reports .report-hero-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;color:rgba(255,255,255,.72);font-size:.76rem;font-weight:750}.app-page-reports .report-private{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.08);color:#fff}.app-page-reports .report-hero .eyebrow{color:#f7dce6}.app-page-reports .report-hero h2{max-width:760px;margin:0 0 8px;color:#fff;font-size:clamp(1.65rem,4vw,2.5rem);font-weight:820;letter-spacing:-.045em}.app-page-reports .report-hero-copy>p:last-of-type{max-width:720px;margin:0;color:rgba(255,255,255,.75)}.app-page-reports .report-hero-metrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.app-page-reports .report-hero-metrics span{display:flex;align-items:baseline;gap:6px;padding:8px 11px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.075)}.app-page-reports .report-hero-metrics strong{font-size:.92rem}.app-page-reports .report-hero-metrics small{color:rgba(255,255,255,.62);font-size:.68rem}.app-page-reports .report-hero-mark{display:grid;place-items:center;align-content:center;width:164px;height:164px;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 10px rgba(255,255,255,.025);text-align:center}.app-page-reports .report-hero-mark i{margin-bottom:7px;color:#f6d6e1;font-size:1.55rem}.app-page-reports .report-hero-mark strong{font-size:1.35rem;letter-spacing:-.035em}.app-page-reports .report-hero-mark small{color:rgba(255,255,255,.62);font-size:.68rem}
.app-page-reports .report-toolbar{border:1px solid var(--salon-border);border-radius:18px;box-shadow:var(--salon-shadow)}.app-page-reports .report-toolbar .card-body{padding:16px}.app-page-reports .report-toolbar .form-control,.app-page-reports .report-toolbar .form-select{min-height:46px;border-radius:13px}.app-page-reports .report-toolbar .btn{min-height:46px;border-radius:13px}
.app-page-reports .report-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.app-page-reports .report-kpi{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:160px;padding:18px;border:1px solid #eee2e7;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(72,39,51,.045)}.app-page-reports .report-kpi.is-primary{background:linear-gradient(145deg,#fff7fa,#faedf2);border-color:#efd5df}.app-page-reports .report-kpi-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:12px;border-radius:13px;background:#f7eaf0;color:#8c2f4e;font-size:1.05rem}.app-page-reports .report-kpi>small{color:#82747a;font-weight:760}.app-page-reports .report-kpi>strong{margin:3px 0 10px;color:#392d32;font-size:clamp(1.45rem,2.6vw,1.95rem);font-weight:900;letter-spacing:-.04em}.app-page-reports .report-kpi>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto;color:#8d7d84;font-size:.7rem}.app-page-reports .report-kpi em{font-style:normal}.app-page-reports .report-delta{display:inline-flex;align-items:center;gap:3px;padding:4px 7px;border-radius:999px;font-weight:850}.app-page-reports .report-delta.up{background:#eaf5ed;color:#2f7b49}.app-page-reports .report-delta.down{background:#f9ecef;color:#9b4c62}
.app-page-reports .report-wins{padding:18px;border-radius:22px;background:linear-gradient(135deg,#34272d,#52313f 60%,#6e3d50);color:#fff;box-shadow:0 16px 36px rgba(56,35,43,.14)}.app-page-reports .report-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.app-page-reports .report-section-head .eyebrow{color:#f3ccd9}.app-page-reports .report-section-head h2{margin:0;color:#fff;font-size:1.15rem}.app-page-reports .report-section-head>span{display:inline-flex;align-items:center;gap:5px;color:rgba(255,255,255,.62);font-size:.67rem}.app-page-reports .report-wins-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.app-page-reports .report-wins article{display:flex;gap:11px;align-items:flex-start;padding:13px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(255,255,255,.075)}.app-page-reports .report-wins article>i{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:rgba(247,211,224,.12);color:#f4cada}.app-page-reports .report-wins strong{display:block;color:#fff;font-size:.82rem}.app-page-reports .report-wins p{margin:3px 0 0;color:rgba(255,255,255,.66);font-size:.7rem;line-height:1.4}
.app-page-reports .report-goal{position:relative;overflow:hidden;padding:22px;border:1px solid #efd7e1;border-radius:22px;background:linear-gradient(125deg,#fff7fa,#faeef3);box-shadow:0 14px 34px rgba(91,44,62,.055)}.app-page-reports .report-goal-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.app-page-reports .report-label{display:inline-flex;align-items:center;gap:6px;color:#8c2f4e;font-size:.71rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.app-page-reports .report-goal h3,.app-page-reports .report-goal-empty h3{margin:7px 0 3px;color:#3c3035;font-size:clamp(1.45rem,3vw,2rem);font-weight:900;letter-spacing:-.04em}.app-page-reports .report-goal h3 small{color:#8f7b83;font-size:.82rem;font-weight:700}.app-page-reports .report-goal p,.app-page-reports .report-goal-empty p{margin:0;color:#87777e}.app-page-reports .report-goal-score{display:grid;place-items:center;flex:0 0 86px;width:86px;height:86px;border:1px solid #ecd5de;border-radius:22px;background:rgba(255,255,255,.72)}.app-page-reports .report-goal-score strong{font-size:1.2rem}.app-page-reports .report-goal-score small{color:#917f86;font-size:.66rem}.app-page-reports .report-goal-track{position:relative;height:12px;margin:20px 0 10px;border-radius:999px;background:#ecdde3}.app-page-reports .report-goal-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b55576,#8c2f4e)}.app-page-reports .report-goal-track i{position:absolute;top:50%;width:3px;height:22px;transform:translate(-50%,-50%);border-radius:99px;background:#413139;box-shadow:0 0 0 4px rgba(255,255,255,.85)}.app-page-reports .report-goal-meta{display:flex;gap:8px 15px;flex-wrap:wrap;color:#806f76;font-size:.72rem;font-weight:700}.app-page-reports .report-goal-meta span{display:inline-flex;align-items:center;gap:5px}.app-page-reports .report-goal-empty{border-radius:20px}.app-page-reports .report-goal-empty .card-body{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}.app-page-reports .report-goal-form{min-width:min(100%,360px)}
.app-page-reports .report-chart-card,.app-page-reports .report-services-card,.app-page-reports .report-team-card{border:1px solid var(--salon-border);border-radius:20px;box-shadow:var(--salon-shadow)}.app-page-reports .report-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-page-reports .report-chart{height:310px}.app-page-reports .report-service-chart{height:330px}.app-page-reports .report-trend{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:999px;font-size:.7rem;font-weight:850}.app-page-reports .report-trend.up{background:#eaf5ed;color:#2f7b49}.app-page-reports .report-trend.down{background:#f9ecef;color:#9b4c62}.app-page-reports .report-best-day{display:flex;align-items:center;gap:9px;margin-top:13px;padding:10px 12px;border-radius:13px;background:#fbf3f6}.app-page-reports .report-best-day>i{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#f2dfe7;color:#8c2f4e}.app-page-reports .report-best-day div{display:flex;flex-direction:column}.app-page-reports .report-best-day small{color:#907c84;font-size:.68rem}.app-page-reports .report-best-day strong{font-size:.82rem}
.app-page-reports .report-service-list{display:flex;flex-direction:column}.app-page-reports .report-service-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid #f2e8ec}.app-page-reports .report-service-row:last-child{border-bottom:0}.app-page-reports .report-service-row>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f6eaf0;color:#8c2f4e;font-size:.76rem;font-weight:900}.app-page-reports .report-service-row>div{display:flex;flex-direction:column;min-width:0}.app-page-reports .report-service-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-page-reports .report-service-row small{color:#97848c;font-size:.7rem}.app-page-reports .report-service-row>b{color:#5a464e;font-size:.84rem}
.app-page-reports .report-private-light{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#f7edf1;color:#83566a;font-size:.67rem;font-weight:820}.app-page-reports .report-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.app-page-reports .report-team-person{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:11px;align-items:center;padding:14px;border:1px solid #eee3e7;border-radius:17px;background:#fff;color:inherit;text-decoration:none;transition:.15s ease}.app-page-reports .report-team-person:hover{transform:translateY(-2px);border-color:#e2c6d1;box-shadow:0 12px 28px rgba(74,38,52,.07);color:inherit}.app-page-reports .report-team-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--staff-color,#8c2f4e);color:#fff;font-weight:850}.app-page-reports .report-team-main{min-width:0}.app-page-reports .report-team-main>div{display:flex;align-items:center;gap:6px}.app-page-reports .report-team-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-page-reports .report-team-main small{padding:3px 6px;border-radius:999px;background:#faeaf0;color:#8c2f4e;font-size:.58rem;font-weight:850}.app-page-reports .report-team-main p{margin:2px 0 0;color:#93828a;font-size:.7rem}.app-page-reports .report-mini-progress{height:5px;margin-top:7px;overflow:hidden;border-radius:999px;background:#f0e4e9}.app-page-reports .report-mini-progress span{display:block;height:100%;border-radius:inherit;background:#a84769}.app-page-reports .report-team-money{display:flex;align-items:center;gap:6px}.app-page-reports .report-team-money strong{font-size:.88rem}.app-page-reports .report-team-money i{color:#ad9ba3}.app-page-reports .report-privacy{display:flex;align-items:flex-start;gap:11px;padding:15px 16px;border:1px solid #ecdee4;border-radius:16px;background:#fcf8fa;color:#65545b}.app-page-reports .report-privacy>i{color:#8c2f4e;font-size:1.2rem}.app-page-reports .report-privacy p{color:#8a7880;font-size:.78rem}
.app-page-customers .customer-pagination{display:flex;align-items:center;justify-content:center;gap:10px}.app-page-customers .customer-page-numbers{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.app-page-customers .customer-page-numbers a,.app-page-customers .customer-page-arrow{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border:1px solid #eadfe3;border-radius:13px;background:#fff;color:#66565e;text-decoration:none;font-size:.76rem;font-weight:850;box-shadow:0 6px 16px rgba(62,34,44,.03)}.app-page-customers .customer-page-numbers a.active{border-color:#8c2f4e;background:#8c2f4e;color:#fff}.app-page-customers .customer-page-numbers span{padding:0 2px;color:#9a8a91}.app-page-customers .customer-page-arrow{gap:5px;min-width:86px}.app-page-customers .customer-page-arrow.disabled{pointer-events:none;opacity:.38}.app-page-customers .customer-page-summary{margin:10px 0 2px;text-align:center;color:#93848a;font-size:.67rem}
@media(max-width:1199.98px){.app-page-reports .report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-page-reports .report-team-grid{grid-template-columns:1fr}.app-page-reports .report-wins-grid{grid-template-columns:1fr 1fr}.app-page-reports .report-hero-mark{width:142px;height:142px}}
@media(max-width:767.98px){.app-page-reports .report-hero{grid-template-columns:1fr;padding:19px;border-radius:20px}.app-page-reports .report-hero-copy{padding-right:58px}.app-page-reports .report-hero-mark{position:absolute;right:15px;top:15px;width:66px;height:66px;border-radius:18px}.app-page-reports .report-hero-mark strong,.app-page-reports .report-hero-mark small{display:none}.app-page-reports .report-hero-mark i{margin:0;font-size:1.2rem}.app-page-reports .report-hero h2{font-size:1.45rem}.app-page-reports .report-hero-copy>p:last-of-type{font-size:.82rem}.app-page-reports .report-wins-grid{grid-template-columns:1fr}.app-page-reports .report-goal-empty .card-body{align-items:stretch;flex-direction:column}.app-page-reports .report-goal-form{min-width:0;width:100%}.app-page-reports .report-chart{height:250px}.app-page-reports .report-service-chart{height:285px}.app-page-customers .customer-pagination{gap:6px}.app-page-customers .customer-page-arrow{min-width:44px;padding:0 10px}.app-page-customers .customer-page-arrow span{display:none}}
@media(max-width:575.98px){.app-page-reports .report-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.app-page-reports .report-kpi{min-height:140px;padding:14px;border-radius:17px}.app-page-reports .report-kpi.is-primary{grid-column:1/-1;min-height:122px}.app-page-reports .report-kpi.is-primary>strong{font-size:2rem}.app-page-reports .report-kpi-icon{width:35px;height:35px;margin-bottom:8px}.app-page-reports .report-kpi>strong{font-size:1.25rem}.app-page-reports .report-goal{padding:16px;border-radius:18px}.app-page-reports .report-goal-score{flex-basis:68px;width:68px;height:68px;border-radius:18px}.app-page-reports .report-service-row{grid-template-columns:30px minmax(0,1fr) auto;padding:12px}.app-page-reports .report-team-person{grid-template-columns:42px minmax(0,1fr);padding:12px}.app-page-reports .report-team-avatar{width:42px;height:42px}.app-page-reports .report-team-money{grid-column:2;justify-content:space-between}.app-page-customers .customer-page-numbers a{min-width:38px;height:40px;padding:0 9px}.app-page-customers .customer-page-arrow{height:40px}}

/* 4.7.2 — compact mobile-first customer and appointment details. */
.customer-detail-v2,.appointment-detail-v2{--detail-accent:#8c2f4e;--detail-soft:#f8eef2;--detail-border:#eadfe3;--detail-text:#3f3138;--detail-muted:#8d7d84}
.customer-detail-v2 .customer-profile-hero-v2{padding:18px 20px;border-color:var(--detail-border);border-radius:22px;background:#fff;box-shadow:0 9px 28px rgba(68,38,49,.05)}
.customer-detail-v2 .customer-profile-identity{min-width:0}.customer-detail-v2 .customer-profile-identity h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.customer-detail-v2 .customer-profile-contact a{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.customer-detail-v2 .customer-profile-actions-v2{justify-content:flex-end}.customer-detail-v2 .customer-profile-actions-v2 .btn{border-radius:12px;font-weight:800}
.customer-overview-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px;border:1px solid var(--detail-border);border-radius:18px;background:#fff}
.customer-overview-strip>div{display:flex;min-width:0;min-height:66px;flex-direction:column;justify-content:center;padding:10px 12px;border-radius:13px;background:#faf6f8}
.customer-overview-strip strong{color:var(--detail-text);font-size:1rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-overview-strip span{margin-top:4px;color:var(--detail-muted);font-size:.64rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.customer-overview-strip .is-risk{background:#fff0f0}.customer-overview-strip .is-risk strong{color:#a33e46}
.customer-detail-v2 .customer-profile-grid-v2{grid-template-columns:minmax(0,1fr) 270px;gap:14px}.customer-detail-v2 .customer-practical-grid-v2{gap:10px}.customer-detail-v2 .customer-practical-card{border-radius:17px;box-shadow:none}.customer-detail-v2 .customer-work-card-v2,.customer-detail-v2 .customer-history-card-v2{border-color:var(--detail-border);border-radius:18px;box-shadow:none}
.customer-detail-v2 .customer-work-card-v2>.card-header,.customer-detail-v2 .customer-history-card-v2>.card-header{padding:14px 16px}.customer-detail-v2 .customer-work-grid>div{padding:14px 16px}.customer-detail-v2 .customer-work-grid p{font-size:.82rem}
.customer-detail-v2 .customer-history-row{min-height:66px;padding:11px 14px}.customer-detail-v2 .customer-history-more{border-top:1px solid #f0e8eb;background:#fcfafb}.customer-detail-v2 .customer-history-more>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;cursor:pointer;list-style:none;color:#715e67;font-size:.76rem;font-weight:850}.customer-detail-v2 .customer-history-more>summary::-webkit-details-marker{display:none}.customer-detail-v2 .customer-history-more>summary span{display:inline-flex;align-items:center;gap:7px}.customer-detail-v2 .customer-history-more>summary strong{display:grid;place-items:center;min-width:32px;height:28px;padding:0 8px;border-radius:10px;background:#f2e5ea;color:#8c2f4e}.customer-detail-v2 .customer-history-more[open]>summary{border-bottom:1px solid #f0e8eb}.customer-detail-v2 .older-list .customer-history-row{background:#fff}
.customer-detail-v2 .customer-optional{border-color:var(--detail-border);border-radius:17px;box-shadow:none}.customer-detail-v2 .customer-optional>summary{padding:13px 14px}.customer-detail-v2 .customer-optional>summary>span>i{width:34px;height:34px;border-radius:11px}.customer-detail-v2 .customer-profile-side-v2{gap:10px}.customer-detail-v2 .customer-book-again{border-radius:17px;box-shadow:none}.customer-detail-v2 .customer-history-warning-v2{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #f1d8d8;background:#fff5f5}.customer-detail-v2 .customer-history-warning-v2>i{color:#aa3f47}.customer-detail-v2 .customer-history-warning-v2>div{display:flex;flex-direction:column}.customer-detail-v2 .customer-history-warning-v2 strong{font-size:.8rem}.customer-detail-v2 .customer-history-warning-v2 span{color:#98777b;font-size:.68rem}

.appointment-detail-v2 .appointment-detail-layout{align-items:start}.appointment-detail-v2 .card{border-color:var(--detail-border);box-shadow:none}.appointment-detail-v2 .appointment-focus-card{border-radius:19px}.appointment-detail-v2 .appointment-focus-card .card-body{padding:16px}.appointment-focus-head{display:flex;align-items:center;gap:10px}.appointment-focus-head>span{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:13px;background:#eaf4ed;color:#2f7248}.appointment-focus-head h2{font-weight:850}.appointment-paid-note{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:10px;background:#edf6f0;color:#38714e;font-size:.72rem}
.appointment-summary-card{overflow:hidden;border-radius:21px;background:#fff}.appointment-summary-card .card-body{padding:18px}.appointment-summary-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.appointment-summary-person{display:grid;grid-template-columns:52px minmax(0,1fr);gap:11px;align-items:center;min-width:0}.appointment-summary-avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:linear-gradient(145deg,#8c2f4e,#b65c7c);color:#fff;font-weight:900}.appointment-summary-person>div{min-width:0}.appointment-summary-person h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--detail-text);font-size:1.18rem;font-weight:900;letter-spacing:-.025em}.appointment-summary-status{flex:0 0 auto}.appointment-summary-meta{display:grid;grid-template-columns:1.15fr 1fr .9fr;gap:8px;margin-top:15px}.appointment-summary-meta>div{display:flex;min-width:0;min-height:78px;flex-direction:column;padding:11px 12px;border:1px solid #eee4e8;border-radius:14px;background:#fcf9fa}.appointment-summary-meta span{display:flex;align-items:center;gap:6px;color:#8c7b83;font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.appointment-summary-meta span i{color:var(--detail-accent)}.appointment-summary-meta strong{margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#493a41;font-size:.82rem}.appointment-summary-meta small{margin-top:2px;color:#98888f;font-size:.64rem}.appointment-contact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.appointment-contact-actions .btn{min-height:44px;border:1px solid #ece1e5;border-radius:12px;background:#fff;color:#5d4c54;font-size:.75rem;font-weight:850}.appointment-contact-actions .btn.whatsapp{color:#2c7650}.appointment-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #f0e8eb}.appointment-edit-actions form{margin:0}.appointment-edit-actions .btn{min-height:40px;border-radius:11px;font-size:.72rem;font-weight:850}
.appointment-inline-notes{border:1px solid #eee4e8;border-radius:14px;background:#fcfafb}.appointment-inline-notes>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;color:#68555e;font-size:.75rem;font-weight:850}.appointment-inline-notes>summary::-webkit-details-marker{display:none}.appointment-inline-notes>summary>span{display:flex;align-items:center;gap:7px}.appointment-inline-notes[open]>summary>i:last-child{transform:rotate(180deg)}.appointment-inline-notes-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 12px}.appointment-inline-notes-body>div{padding:10px;border-radius:11px;background:#fff}.appointment-inline-notes-body small{color:#947f88;font-size:.62rem;font-weight:800;text-transform:uppercase}.appointment-inline-notes-body p{margin:4px 0 0;font-size:.78rem;line-height:1.5}
.appointment-state-note,.appointment-close-reason{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #eadce2;border-radius:14px;background:#fbf6f8}.appointment-state-note>i,.appointment-close-reason>i{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:#f1dfe6;color:#8c2f4e}.appointment-state-note>div{display:flex;flex-direction:column}.appointment-state-note strong{font-size:.78rem}.appointment-state-note span,.appointment-close-reason span{color:#88747d;font-size:.69rem}.appointment-state-note.is-muted{background:#f8f7f7}.appointment-state-note.is-muted>i{background:#efeded;color:#74696d}
.appointment-optional-panel{overflow:hidden;border-radius:18px}.appointment-optional-panel>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 14px;cursor:pointer;list-style:none;background:#fff}.appointment-optional-panel>summary::-webkit-details-marker{display:none}.appointment-optional-panel>summary>span{display:flex;align-items:center;gap:10px;min-width:0}.appointment-optional-panel>summary>span>i{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:#f5eaf0;color:#8c2f4e}.appointment-optional-panel>summary>span>span{display:flex;min-width:0;flex-direction:column}.appointment-optional-panel>summary strong{color:#4b3c43;font-size:.82rem}.appointment-optional-panel>summary small{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#95858c;font-size:.64rem}.appointment-optional-panel>summary>b{color:#5a444e;font-size:.82rem}.appointment-optional-panel>summary>i:last-child{color:#9b8a91;transition:transform .15s ease}.appointment-optional-panel[open]>summary>i:last-child{transform:rotate(180deg)}.appointment-optional-panel .card-body{padding:14px}.appointment-detail-v2 .cancellation-grid{gap:8px}.appointment-detail-v2 .cancellation-grid .btn{min-height:58px;border-radius:12px;padding:9px 11px}.appointment-detail-v2 .cancellation-grid .btn strong{font-size:.75rem}.appointment-detail-v2 .cancellation-grid .btn small{font-size:.64rem}.appointment-deposit-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.appointment-deposit-grid>div{display:flex;flex-direction:column;padding:10px;border-radius:12px;background:#faf6f8}.appointment-deposit-grid small{color:#95838b;font-size:.61rem;text-transform:uppercase;font-weight:800}.appointment-deposit-grid strong{margin-top:3px;font-size:.8rem}.appointment-detail-v2 .responsive-card-table{margin:0}.appointment-detail-v2 .appointment-admin-panel{margin-bottom:0}

@media(max-width:1199.98px){
 .customer-detail-v2 .customer-profile-grid-v2{grid-template-columns:1fr}.customer-detail-v2 .customer-profile-side-v2{display:grid;grid-template-columns:1fr 1fr}.customer-detail-v2 .customer-danger-zone{grid-column:1/-1}
 .appointment-detail-v2 .appointment-detail-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}.appointment-detail-v2 .appointment-detail-side>.appointment-optional-panel{margin-bottom:0!important}.appointment-detail-v2 .appointment-admin-panel{grid-column:1/-1}
}
@media(max-width:767.98px){
 .customer-detail-v2 .customer-profile-hero-v2{display:block;padding:14px;border-radius:18px}.customer-detail-v2 .customer-profile-main{gap:10px}.customer-detail-v2 .customer-profile-avatar{flex-basis:52px;width:52px;height:52px;border-radius:17px;font-size:.95rem}.customer-detail-v2 .customer-profile-main h2{font-size:1.12rem}.customer-detail-v2 .customer-profile-contact{margin-top:2px}.customer-detail-v2 .customer-profile-contact a{font-size:.68rem}.customer-detail-v2 .customer-profile-contact .customer-email{display:none}.customer-detail-v2 .customer-profile-actions-v2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px}.customer-detail-v2 .customer-profile-actions-v2 .btn{display:flex;min-width:0;min-height:46px;align-items:center;justify-content:center;gap:4px;padding:6px 4px;font-size:.64rem}.customer-detail-v2 .customer-profile-actions-v2 .btn i{font-size:.9rem}.customer-overview-strip{gap:5px;padding:6px;border-radius:15px}.customer-overview-strip>div{min-height:58px;padding:8px 7px;text-align:center}.customer-overview-strip strong{font-size:.86rem}.customer-overview-strip span{font-size:.52rem;letter-spacing:.02em}.customer-detail-v2 .customer-profile-grid-v2{gap:10px}.customer-detail-v2 .customer-practical-grid-v2{grid-template-columns:1fr 1fr;gap:7px}.customer-detail-v2 .customer-practical-card{grid-template-columns:36px minmax(0,1fr);gap:8px;padding:10px;border-radius:15px}.customer-detail-v2 .customer-practical-icon{width:36px;height:36px;border-radius:11px;font-size:.88rem}.customer-detail-v2 .customer-practical-card small{font-size:.54rem}.customer-detail-v2 .customer-practical-card strong{font-size:.75rem}.customer-detail-v2 .customer-practical-card span{font-size:.6rem}.customer-detail-v2 .customer-work-card-v2>.card-header,.customer-detail-v2 .customer-history-card-v2>.card-header{padding:12px}.customer-detail-v2 .customer-work-grid>div{padding:12px}.customer-detail-v2 .customer-history-row{grid-template-columns:50px minmax(0,1fr) 30px;gap:8px;min-height:61px;padding:9px 11px}.customer-detail-v2 .customer-history-row time strong{font-size:.82rem}.customer-detail-v2 .customer-history-row>div>strong{font-size:.78rem}.customer-detail-v2 .customer-profile-side-v2{display:block}.customer-detail-v2 .customer-book-again{display:none}.customer-detail-v2 .customer-profile-side-v2>*+*{margin-top:9px}.customer-detail-v2 .customer-optional>summary{padding:11px 12px}.customer-detail-v2 .customer-history-warning-v2{padding:9px 11px}
 .appointment-detail-v2 .appointment-detail-layout{--bs-gutter-y:.7rem}.appointment-summary-card{border-radius:18px}.appointment-summary-card .card-body{padding:13px}.appointment-summary-top{align-items:flex-start}.appointment-summary-person{grid-template-columns:44px minmax(0,1fr);gap:9px}.appointment-summary-avatar{width:44px;height:44px;border-radius:14px;font-size:.78rem}.appointment-summary-person h2{font-size:1.03rem}.appointment-summary-status .badge{font-size:.58rem}.appointment-summary-meta{grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}.appointment-summary-meta>div{min-height:67px;padding:9px 10px;border-radius:12px}.appointment-summary-meta>div:first-child{grid-column:1/-1}.appointment-summary-meta span{font-size:.55rem}.appointment-summary-meta strong{font-size:.75rem}.appointment-summary-meta small{font-size:.58rem}.appointment-contact-actions{gap:6px;margin-top:9px}.appointment-contact-actions .btn{min-height:43px;padding:6px 4px;font-size:.65rem}.appointment-contact-actions .btn i{font-size:.88rem}.appointment-edit-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px;padding-top:9px}.appointment-edit-actions>*{min-width:0}.appointment-edit-actions form,.appointment-edit-actions .btn{width:100%}.appointment-edit-actions .btn{display:flex;align-items:center;justify-content:center;gap:4px;min-height:42px;padding:6px 5px;font-size:.63rem}.appointment-inline-notes-body{grid-template-columns:1fr}.appointment-focus-card .card-body{padding:13px}.appointment-focus-head>span{flex-basis:36px;width:36px;height:36px}.appointment-focus-head h2{font-size:.95rem}.appointment-detail-v2 .quick-time-shifts{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.appointment-detail-v2 .quick-time-shifts .btn{min-height:34px;font-size:.63rem}.appointment-optional-panel{border-radius:16px}.appointment-optional-panel>summary{padding:11px 12px}.appointment-optional-panel>summary>span>i{flex-basis:32px;width:32px;height:32px;border-radius:10px}.appointment-optional-panel>summary strong{font-size:.76rem}.appointment-optional-panel>summary small{font-size:.59rem}.appointment-optional-panel .card-body{padding:12px}.appointment-detail-v2 .cancellation-grid{grid-template-columns:1fr 1fr}.appointment-detail-v2 .cancellation-grid .btn{min-height:54px;padding:8px}.appointment-detail-v2 .appointment-detail-side{display:block}.appointment-detail-v2 .appointment-detail-side>.appointment-optional-panel{margin-bottom:10px!important}.appointment-detail-v2 .appointment-admin-panel{margin-bottom:0!important}.appointment-detail-v2 .responsive-card-table .table{margin-bottom:0}
}
@media(max-width:420px){
 .customer-detail-v2 .customer-profile-actions-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-detail-v2 .customer-profile-actions-v2 .btn{min-height:43px}.customer-detail-v2 .customer-practical-grid-v2{grid-template-columns:1fr}.customer-overview-strip span{font-size:.49rem}.customer-overview-strip strong{font-size:.78rem}
 .appointment-contact-actions{grid-template-columns:1fr 1fr}.appointment-contact-actions>a:last-child{grid-column:1/-1}.appointment-edit-actions{grid-template-columns:1fr 1fr}.appointment-edit-actions>*:last-child:nth-child(odd){grid-column:1/-1}.appointment-detail-v2 .cancellation-grid{grid-template-columns:1fr}.appointment-summary-meta{grid-template-columns:1fr}.appointment-summary-meta>div:first-child{grid-column:auto}.appointment-deposit-grid{grid-template-columns:1fr 1fr}
}

/* 4.7.3 — modern app-like appointment detail. */
body:has(.appointment-detail-v3) .page-heading{display:none}
.appointment-detail-v3{--detail-accent:#8c2f4e;--detail-accent-dark:#6f213d;--detail-ink:#342a2f;--detail-muted:#88777e;--detail-line:#eadfe3;--detail-canvas:#fbf8f9}
.appointment-detail-v3 .appointment-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.appointment-detail-v3 .appointment-back-link{display:inline-flex;align-items:center;gap:8px;color:#67565e;text-decoration:none;font-size:.77rem;font-weight:850}
.appointment-detail-v3 .appointment-back-link i{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e8dce1;border-radius:11px;background:#fff;color:#70495a;box-shadow:0 5px 16px rgba(64,35,46,.04);transition:.16s ease}
.appointment-detail-v3 .appointment-back-link:hover i{transform:translateX(-2px);border-color:#dcbfca;background:#fff8fb}
.appointment-detail-v3 .appointment-toolbar-meta{display:flex;align-items:center;gap:7px}
.appointment-detail-v3 .appointment-source-pill,.appointment-detail-v3 .appointment-id-pill{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 10px;border:1px solid #eadde2;border-radius:999px;background:#fff;color:#7d6972;font-size:.65rem;font-weight:820}
.appointment-detail-v3 .appointment-id-pill{min-width:42px;justify-content:center;background:#f7eff2;color:#765264}

.appointment-detail-v3 .appointment-hero-card{position:relative;overflow:hidden;padding:22px;border:1px solid #ead9e0;border-radius:26px;background:linear-gradient(145deg,#fff 0%,#fff 54%,#fcf2f6 100%);box-shadow:0 18px 48px rgba(74,38,52,.075)}
.appointment-detail-v3 .appointment-hero-card:after{content:"";position:absolute;right:-70px;top:-82px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(181,85,118,.13),rgba(181,85,118,0) 70%);pointer-events:none}
.appointment-detail-v3 .appointment-hero-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.appointment-detail-v3 .appointment-hero-person{display:grid;grid-template-columns:62px minmax(0,1fr);gap:13px;align-items:center;min-width:0}
.appointment-detail-v3 .appointment-hero-avatar{display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:linear-gradient(145deg,#8c2f4e,#ba6382);color:#fff;font-size:1rem;font-weight:900;letter-spacing:.04em;box-shadow:0 10px 24px rgba(140,47,78,.2)}
.appointment-detail-v3 .appointment-hero-name{min-width:0}
.appointment-detail-v3 .appointment-hero-kicker{display:block;margin-bottom:2px;color:#9b7b88;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.appointment-detail-v3 .appointment-hero-name h2{margin:0;color:var(--detail-ink);font-size:clamp(1.32rem,2.3vw,1.75rem);font-weight:920;letter-spacing:-.04em;line-height:1.08;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appointment-detail-v3 .appointment-hero-contact-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:7px;color:#8b7981;font-size:.69rem}
.appointment-detail-v3 .appointment-hero-contact-line a,.appointment-detail-v3 .appointment-hero-contact-line span{display:inline-flex;align-items:center;gap:5px;min-width:0;color:inherit;text-decoration:none}
.appointment-detail-v3 .appointment-hero-contact-line span{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appointment-detail-v3 .appointment-hero-contact-line i{color:#9b4c69}
.appointment-detail-v3 .appointment-hero-status{position:relative;z-index:1;flex:0 0 auto}.appointment-detail-v3 .appointment-hero-status .badge{padding:.55rem .7rem;border-radius:999px;font-size:.63rem;font-weight:850}

.appointment-detail-v3 .appointment-hero-facts{position:relative;z-index:1;display:grid;grid-template-columns:1.25fr 1fr .9fr;gap:9px;margin-top:20px}
.appointment-detail-v3 .appointment-hero-fact{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start;min-width:0;min-height:94px;padding:13px;border:1px solid rgba(233,219,224,.88);border-radius:17px;background:rgba(255,255,255,.78);backdrop-filter:blur(5px)}
.appointment-detail-v3 .appointment-fact-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#f6e9ee;color:#8c2f4e;font-size:.93rem}
.appointment-detail-v3 .appointment-hero-fact>div{display:flex;min-width:0;flex-direction:column}.appointment-detail-v3 .appointment-hero-fact small{color:#98838b;font-size:.57rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.appointment-detail-v3 .appointment-hero-fact strong{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#493a41;font-size:.83rem;font-weight:900}.appointment-detail-v3 .appointment-hero-fact b{margin-top:1px;color:#7b4058;font-size:.82rem}.appointment-detail-v3 .appointment-hero-fact em{margin-top:3px;color:#9a878f;font-size:.61rem;font-style:normal}

.appointment-detail-v3 .appointment-hero-actions{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid #f0e5e9}
.appointment-detail-v3 .appointment-action-btn{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0;min-height:52px;padding:8px 10px;border:1px solid #eadfe3;border-radius:14px;background:#fff;color:#5e4d55;text-align:left;box-shadow:0 5px 14px rgba(63,37,47,.025);transition:.16s ease}
.appointment-detail-v3 .appointment-action-btn:hover{transform:translateY(-1px);border-color:#dec6cf;background:#fffafb;color:#513f47;box-shadow:0 9px 20px rgba(68,34,47,.06)}
.appointment-detail-v3 .appointment-action-btn>i{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:#f5edf0;color:#8c2f4e;font-size:.85rem}
.appointment-detail-v3 .appointment-action-btn>span{display:flex;min-width:0;flex-direction:column;font-size:.7rem;font-weight:900;line-height:1.15}.appointment-detail-v3 .appointment-action-btn small{margin-bottom:2px;color:#a08d95;font-size:.53rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.appointment-detail-v3 .appointment-action-btn.is-whatsapp>i{background:#eaf6ef;color:#2e7d50}.appointment-detail-v3 .appointment-action-btn.is-primary{border-color:#8c2f4e;background:#8c2f4e;color:#fff}.appointment-detail-v3 .appointment-action-btn.is-primary>i{background:rgba(255,255,255,.14);color:#fff}.appointment-detail-v3 .appointment-action-btn.is-primary small{color:rgba(255,255,255,.68)}
.appointment-detail-v3 .appointment-confirmation-resend{position:relative;z-index:1;margin-top:8px;text-align:right}.appointment-detail-v3 .appointment-confirmation-resend .btn{padding:.35rem .6rem;border:0;background:transparent;color:#83596a;font-size:.63rem;font-weight:800}.appointment-detail-v3 .appointment-confirmation-resend .btn:hover{background:#f8eef2;color:#713c52}

.appointment-detail-v3 .appointment-focus-card{overflow:hidden;border:1px solid #e4dedf!important;border-radius:21px!important;background:#fff;box-shadow:0 10px 28px rgba(63,37,47,.05)!important}
.appointment-detail-v3 .appointment-focus-card .card-body{padding:18px}
.appointment-detail-v3 .appointment-focus-card .form-control,.appointment-detail-v3 .appointment-focus-card .form-select,.appointment-detail-v3 .appointment-focus-card .input-group-text{border-color:#e5d9de;border-radius:12px}
.appointment-detail-v3 .appointment-focus-card .input-group>.form-control{border-radius:12px 0 0 12px}.appointment-detail-v3 .appointment-focus-card .input-group>.input-group-text{border-radius:0 12px 12px 0}
.appointment-detail-v3 .appointment-focus-card .btn-lg{border-radius:13px;font-weight:850}
.appointment-detail-v3 .appointment-complete-card{border-color:#dceadf!important;background:linear-gradient(150deg,#fff,#fbfefc)}
.appointment-detail-v3 .appointment-complete-card .appointment-focus-head>span{background:#e7f3eb;color:#367450}

.appointment-detail-v3 .appointment-detail-side{position:sticky;top:18px}
.appointment-detail-v3 .appointment-optional-panel{border:1px solid #e8dde1!important;border-radius:20px!important;background:#fff;box-shadow:0 9px 25px rgba(65,38,48,.04)!important}
.appointment-detail-v3 .appointment-optional-panel>summary{min-height:66px;padding:13px 15px;background:linear-gradient(180deg,#fff,#fefcfd)}
.appointment-detail-v3 .appointment-optional-panel>summary:hover{background:#fff9fb}
.appointment-detail-v3 .appointment-optional-panel>summary>span>i{background:#f6e9ee;color:#8c2f4e}
.appointment-detail-v3 .appointment-optional-panel[open]>summary{background:#fcf7f9}
.appointment-detail-v3 .appointment-optional-panel .card-body{padding:15px}
.appointment-detail-v3 .appointment-deposit-panel{border-color:#dfd6e8!important}.appointment-detail-v3 .appointment-deposit-panel>summary>span>i{background:#f0edf8;color:#65529a}
.appointment-detail-v3 .appointment-payments-panel>summary>span>i{background:#eef4f8;color:#4c7189}
.appointment-detail-v3 .cancellation-card>summary>span>i{background:#fff0f1;color:#a84e58}
.appointment-detail-v3 .appointment-admin-panel>summary>span>i{background:#f2f1f1;color:#6d6568}
.appointment-detail-v3 .appointment-deposit-grid>div{padding:11px;border:1px solid #f0e6ea;border-radius:13px;background:#fdf9fa}
.appointment-detail-v3 .appointment-deposit-grid strong{font-size:.9rem}
.appointment-detail-v3 .appointment-inline-notes{border-color:#eadfe3;border-radius:14px;background:rgba(255,255,255,.7)}
.appointment-detail-v3 .appointment-earlier-chip{border-radius:14px}

@media(max-width:1199.98px){
 body:has(.appointment-detail-v3) .page-wrap{max-width:100%}
 .appointment-detail-v3 .appointment-detail-side{position:static;top:auto}
 .appointment-detail-v3 .appointment-hero-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:767.98px){
 body:has(.appointment-detail-v3) .page-wrap{padding-top:12px}
 .appointment-detail-v3 .appointment-detail-toolbar{min-height:36px;margin-bottom:10px!important}.appointment-detail-v3 .appointment-back-link span{display:none}.appointment-detail-v3 .appointment-back-link i{width:34px;height:34px}.appointment-detail-v3 .appointment-source-pill{padding:0 8px}.appointment-detail-v3 .appointment-id-pill{display:none}
 .appointment-detail-v3 .appointment-hero-card{padding:14px;border-radius:21px;box-shadow:0 10px 30px rgba(74,38,52,.06)}
 .appointment-detail-v3 .appointment-hero-person{grid-template-columns:48px minmax(0,1fr);gap:9px}.appointment-detail-v3 .appointment-hero-avatar{width:48px;height:48px;border-radius:15px;font-size:.78rem}.appointment-detail-v3 .appointment-hero-kicker{font-size:.52rem}.appointment-detail-v3 .appointment-hero-name h2{font-size:1.08rem}.appointment-detail-v3 .appointment-hero-contact-line{gap:8px;margin-top:4px;font-size:.61rem}.appointment-detail-v3 .appointment-hero-contact-line span{display:none}.appointment-detail-v3 .appointment-hero-status .badge{padding:.42rem .52rem;font-size:.54rem}
 .appointment-detail-v3 .appointment-hero-facts{grid-template-columns:1fr 1fr;gap:6px;margin-top:13px}.appointment-detail-v3 .appointment-hero-fact{grid-template-columns:31px minmax(0,1fr);gap:8px;min-height:72px;padding:9px;border-radius:13px}.appointment-detail-v3 .appointment-hero-fact.is-time{grid-column:1/-1}.appointment-detail-v3 .appointment-fact-icon{width:31px;height:31px;border-radius:9px;font-size:.75rem}.appointment-detail-v3 .appointment-hero-fact small{font-size:.49rem}.appointment-detail-v3 .appointment-hero-fact strong{margin-top:2px;font-size:.71rem}.appointment-detail-v3 .appointment-hero-fact b{font-size:.72rem}.appointment-detail-v3 .appointment-hero-fact em{font-size:.52rem}
 .appointment-detail-v3 .appointment-hero-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;padding-top:10px}.appointment-detail-v3 .appointment-action-btn{justify-content:center;gap:5px;min-height:58px;padding:7px 4px;border-radius:12px;text-align:center;flex-direction:column}.appointment-detail-v3 .appointment-action-btn>i{flex-basis:28px;width:28px;height:28px;border-radius:9px;font-size:.78rem}.appointment-detail-v3 .appointment-action-btn>span{font-size:.61rem}.appointment-detail-v3 .appointment-action-btn small{display:none}.appointment-detail-v3 .appointment-confirmation-resend{margin-top:5px;text-align:center}
 .appointment-detail-v3 .appointment-focus-card{border-radius:17px!important}.appointment-detail-v3 .appointment-focus-card .card-body{padding:13px}.appointment-detail-v3 .appointment-focus-card .form-control-lg,.appointment-detail-v3 .appointment-focus-card .form-select-lg,.appointment-detail-v3 .appointment-focus-card .input-group-lg>.form-control,.appointment-detail-v3 .appointment-focus-card .input-group-lg>.input-group-text{min-height:46px;font-size:.85rem}
 .appointment-detail-v3 .appointment-optional-panel{border-radius:16px!important;box-shadow:none!important}.appointment-detail-v3 .appointment-optional-panel>summary{min-height:58px;padding:10px 12px}.appointment-detail-v3 .appointment-optional-panel .card-body{padding:12px}
}
@media(max-width:430px){
 .appointment-detail-v3 .appointment-hero-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-detail-v3 .appointment-action-btn{min-height:54px}.appointment-detail-v3 .appointment-action-btn:last-child:nth-child(odd){grid-column:1/-1;flex-direction:row}.appointment-detail-v3 .appointment-toolbar-meta{gap:4px}.appointment-detail-v3 .appointment-source-pill{font-size:.58rem}
}

/* 4.7.4 — appointments redesign + customer detail aligned with appointment detail. */
body:has(.appointments-page-v2) .page-heading,
body:has(.customer-detail-v3) .page-heading{display:none}

/* Appointments list */
.appointments-page-v2{--ap-accent:#8c2f4e;--ap-accent-dark:#6f213d;--ap-ink:#342a2f;--ap-muted:#88777e;--ap-line:#eadfe3;--ap-soft:#f8eef2}
.appointments-page-v2 .appointments-overview{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,.9fr);gap:20px;align-items:center;padding:22px;border:1px solid #ead9e0;border-radius:26px;background:linear-gradient(145deg,#fff 0%,#fff 55%,#fcf2f6 100%);box-shadow:0 18px 48px rgba(74,38,52,.07)}
.appointments-page-v2 .appointments-overview:after{content:"";position:absolute;right:-65px;top:-100px;width:250px;height:250px;border-radius:50%;background:rgba(140,47,78,.045);pointer-events:none}
.appointments-page-v2 .appointments-overview-copy,.appointments-page-v2 .appointments-overview-stats{position:relative;z-index:1}
.appointments-page-v2 .appointments-overview-label{display:inline-flex;align-items:center;gap:7px;color:#8c2f4e;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.appointments-page-v2 .appointments-overview-copy h2{margin:5px 0 4px;color:var(--ap-ink);font-size:clamp(1.28rem,2.4vw,1.8rem);font-weight:900;letter-spacing:-.035em}
.appointments-page-v2 .appointments-overview-copy p{margin:0;color:var(--ap-muted);font-size:.73rem;font-weight:650}
.appointments-page-v2 .appointments-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.appointments-page-v2 .appointment-stat{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;min-height:70px;padding:10px;border:1px solid rgba(232,218,224,.9);border-radius:16px;background:rgba(255,255,255,.82);color:#5b4951;text-decoration:none;transition:.16s ease}
.appointments-page-v2 .appointment-stat:hover{transform:translateY(-1px);border-color:#dcbfca;background:#fff;color:#4d3a43;box-shadow:0 8px 20px rgba(68,34,47,.055)}
.appointments-page-v2 .appointment-stat>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f5e9ee;color:#8c2f4e;font-size:.82rem}
.appointments-page-v2 .appointment-stat>div{display:flex;min-width:0;flex-direction:column}.appointments-page-v2 .appointment-stat strong{font-size:1rem;font-weight:950;line-height:1}.appointments-page-v2 .appointment-stat small{margin-top:4px;color:#93838a;font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.appointments-page-v2 .appointment-stat.is-attention{border-color:#f0d8d8;background:#fff8f8}.appointments-page-v2 .appointment-stat.is-attention>span{background:#fdebec;color:#b14850}.appointments-page-v2 .appointment-stat.is-attention strong{color:#a53b44}

.appointments-page-v2 .appointment-tools{overflow:hidden;border:1px solid var(--ap-line)!important;border-radius:22px!important;background:#fff;box-shadow:0 10px 28px rgba(63,37,47,.045)!important}
.appointments-page-v2 .appointment-tools-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #f0e7ea;background:#fdfafb}
.appointments-page-v2 .appointment-range-tabs,.appointments-page-v2 .appointment-status-tabs{display:flex;align-items:center;gap:5px;min-width:0}
.appointments-page-v2 .appointment-range-tabs a,.appointments-page-v2 .appointment-status-tabs a{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:0 11px;border:1px solid transparent;border-radius:10px;color:#74616a;font-size:.69rem;font-weight:850;text-decoration:none;white-space:nowrap}
.appointments-page-v2 .appointment-range-tabs a:hover,.appointments-page-v2 .appointment-status-tabs a:hover{background:#f6eef1;color:#7b3450}
.appointments-page-v2 .appointment-range-tabs a.active,.appointments-page-v2 .appointment-status-tabs a.active{border-color:#8c2f4e;background:#8c2f4e;color:#fff}
.appointments-page-v2 .appointment-status-tabs a.has-alert:not(.active){background:#fff0f1;color:#a84048}.appointments-page-v2 .appointment-status-tabs a b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:rgba(140,47,78,.1);color:#8c2f4e;font-size:.58rem}.appointments-page-v2 .appointment-status-tabs a.active b{background:rgba(255,255,255,.17);color:#fff}
.appointments-page-v2 .appointment-filter-grid{display:grid;grid-template-columns:minmax(220px,1.7fr) repeat(2,minmax(130px,.7fr)) minmax(145px,.8fr) minmax(150px,.8fr) auto;gap:10px;align-items:end;padding:14px}
.appointments-page-v2 .appointment-filter-grid>.appointment-filter-search{min-width:0}.appointments-page-v2 .appointment-filter-grid .form-label{margin-bottom:5px;color:#7c6871;font-size:.6rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.appointments-page-v2 .search-bar{position:relative}.appointments-page-v2 .search-bar>i{position:absolute;left:13px;top:50%;z-index:2;transform:translateY(-50%);color:#9c8790;font-size:.8rem}.appointments-page-v2 .search-bar .form-control{padding-left:38px}
.appointments-page-v2 .appointment-filter-grid .form-control,.appointments-page-v2 .appointment-filter-grid .form-select{min-height:44px;border-radius:12px;background:#fff}
.appointments-page-v2 .appointment-filter-action{display:flex;gap:6px}.appointments-page-v2 .appointment-filter-action .btn{min-height:44px;white-space:nowrap}

.appointments-page-v2 .appointments-list-head{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:0 2px}.appointments-page-v2 .appointments-list-head>div{display:flex;flex-direction:column}.appointments-page-v2 .appointments-list-head .eyebrow{color:#9b7f8a;font-size:.56rem}.appointments-page-v2 .appointments-list-head strong{color:#483840;font-size:.8rem}.appointments-page-v2 .appointment-limit-note{display:inline-flex;align-items:center;gap:6px;color:#8d7a83;font-size:.65rem}
.appointments-page-v2 .appointment-day-block{overflow:hidden;border:1px solid #e9dfe3;border-radius:22px;background:#fff;box-shadow:0 9px 26px rgba(63,37,47,.035)}
.appointments-page-v2 .appointment-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:12px 16px;border-bottom:1px solid #eee5e8;background:linear-gradient(180deg,#fff,#fdfafb)}
.appointments-page-v2 .appointment-day-head>div{display:flex;align-items:baseline;gap:9px}.appointments-page-v2 .appointment-day-head span{color:#8c2f4e;font-size:.76rem;font-weight:900;text-transform:capitalize}.appointments-page-v2 .appointment-day-head strong{color:#4c3d44;font-size:.9rem;font-weight:850}.appointments-page-v2 .appointment-day-head small{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 9px;border-radius:999px;background:#f4edf0;color:#806671;font-size:.6rem;font-weight:850}.appointments-page-v2 .appointment-day-head.is-today{background:linear-gradient(180deg,#fff8fb,#fff)}.appointments-page-v2 .appointment-day-head.is-today span{display:inline-flex;align-items:center;gap:5px}.appointments-page-v2 .appointment-day-head.is-today span:before{content:"";width:7px;height:7px;border-radius:50%;background:#8c2f4e;box-shadow:0 0 0 4px rgba(140,47,78,.1)}
.appointments-page-v2 .appointment-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
.appointments-page-v2 .appointment-manage-card{position:relative;overflow:hidden;border:1px solid #eee5e8;border-radius:18px;background:#fff;transition:.16s ease}.appointments-page-v2 .appointment-manage-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#c3b8bd}.appointments-page-v2 .appointment-manage-card:hover{border-color:#ddcad2;box-shadow:0 10px 24px rgba(65,35,47,.055)}
.appointments-page-v2 .appointment-manage-card.status-pending:before{background:#d89b36}.appointments-page-v2 .appointment-manage-card.status-confirmed:before,.appointments-page-v2 .appointment-manage-card.status-deposit_paid:before{background:#4c8b65}.appointments-page-v2 .appointment-manage-card.status-waiting_deposit:before{background:#8a6cb0}.appointments-page-v2 .appointment-manage-card.status-arrived:before{background:#3e7ca4}.appointments-page-v2 .appointment-manage-card.status-completed:before{background:#6d9d7c}.appointments-page-v2 .appointment-manage-card.status-cancelled:before{background:#a99da2}.appointments-page-v2 .appointment-manage-card.status-no_show:before{background:#bd5258}
.appointments-page-v2 .appointment-card-main{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:14px 14px 12px 16px}
.appointments-page-v2 .appointment-card-time{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72px;border-radius:14px;background:#faf5f7}.appointments-page-v2 .appointment-card-time strong{color:#6f3149;font-size:1.08rem;font-weight:950;letter-spacing:-.025em}.appointments-page-v2 .appointment-card-time small{margin-top:2px;color:#9a858e;font-size:.58rem;font-weight:780}
.appointments-page-v2 .appointment-card-copy{min-width:0}.appointments-page-v2 .appointment-card-title{display:flex;align-items:center;justify-content:space-between;gap:9px;min-width:0}.appointments-page-v2 .appointment-card-title>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3d3036;font-size:.92rem;font-weight:920}.appointments-page-v2 .appointment-card-title .badge{flex:0 0 auto;font-size:.55rem}
.appointments-page-v2 .appointment-card-service{display:flex;align-items:center;gap:6px;margin-top:6px;color:#6e5b64;font-size:.73rem}.appointments-page-v2 .appointment-card-service i{color:#9b4c69}.appointments-page-v2 .appointment-card-service span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appointments-page-v2 .appointment-card-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:9px}.appointments-page-v2 .appointment-card-meta>a{display:inline-flex;align-items:center;gap:5px;max-width:100%;color:#8c737e;font-size:.64rem;text-decoration:none}.appointments-page-v2 .appointment-card-meta>a:hover{color:#8c2f4e}.appointments-page-v2 .appointment-card-meta .staff-chip{font-size:.57rem}
.appointments-page-v2 .appointment-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:54px;padding:8px 10px 8px 16px;border-top:1px solid #f0e8eb;background:#fdfbfc}.appointments-page-v2 .appointment-card-actions form{margin:0}.appointments-page-v2 .appointment-card-actions .btn{min-height:37px;padding:.38rem .65rem;border-radius:10px;font-size:.66rem;font-weight:820}.appointments-page-v2 .appointment-detail-btn{margin-left:auto}
.appointments-page-v2 .appointments-empty{border-radius:22px!important}.appointments-page-v2 .appointments-empty .empty-state{padding:42px 18px}

/* Customer detail, same visual language as appointment detail */
.customer-detail-v3{--cd-accent:#8c2f4e;--cd-ink:#342a2f;--cd-muted:#88777e;--cd-line:#eadfe3}
.customer-detail-v3 .customer-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.customer-detail-v3 .customer-back-link{display:inline-flex;align-items:center;gap:8px;color:#67565e;text-decoration:none;font-size:.77rem;font-weight:850}.customer-detail-v3 .customer-back-link i{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e8dce1;border-radius:11px;background:#fff;color:#70495a;box-shadow:0 5px 16px rgba(64,35,46,.04);transition:.16s ease}.customer-detail-v3 .customer-back-link:hover i{transform:translateX(-2px);border-color:#dcbfca;background:#fff8fb}
.customer-detail-v3 .customer-toolbar-meta{display:flex;align-items:center;gap:7px}.customer-detail-v3 .customer-type-pill,.customer-detail-v3 .customer-id-pill{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 10px;border:1px solid #eadde2;border-radius:999px;background:#fff;color:#7d6972;font-size:.65rem;font-weight:820}.customer-detail-v3 .customer-id-pill{min-width:42px;justify-content:center;background:#f7eff2;color:#765264}
.customer-detail-v3 .customer-hero-card{position:relative;overflow:hidden;padding:22px;border:1px solid #ead9e0;border-radius:26px;background:linear-gradient(145deg,#fff 0%,#fff 54%,#fcf2f6 100%);box-shadow:0 18px 48px rgba(74,38,52,.075)}.customer-detail-v3 .customer-hero-card:after{content:"";position:absolute;right:-95px;top:-125px;width:285px;height:285px;border-radius:50%;background:rgba(140,47,78,.04);pointer-events:none}
.customer-detail-v3 .customer-hero-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.customer-detail-v3 .customer-hero-person{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;min-width:0}.customer-detail-v3 .customer-hero-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#7b3b53,#a8667d);color:#fff;font-size:.92rem;font-weight:950;box-shadow:0 10px 24px rgba(111,49,73,.16)}.customer-detail-v3 .customer-hero-name{min-width:0}.customer-detail-v3 .customer-hero-kicker{display:block;color:#9b4c69;font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.customer-detail-v3 .customer-hero-name h2{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#352a30;font-size:1.35rem;font-weight:950;letter-spacing:-.035em}.customer-detail-v3 .customer-hero-contact-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:5px;color:#88767e;font-size:.67rem}.customer-detail-v3 .customer-hero-contact-line a,.customer-detail-v3 .customer-hero-contact-line span{display:inline-flex;align-items:center;gap:5px;min-width:0;color:inherit;text-decoration:none}.customer-detail-v3 .customer-hero-contact-line span{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-detail-v3 .customer-hero-contact-line i{color:#9b4c69}
.customer-detail-v3 .customer-risk-pill,.customer-detail-v3 .customer-ok-pill{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border-radius:999px;font-size:.62rem;font-weight:850;white-space:nowrap}.customer-detail-v3 .customer-risk-pill{border:1px solid #f1d5d7;background:#fff3f4;color:#a53f48}.customer-detail-v3 .customer-ok-pill{border:1px solid #dce9e0;background:#f5fbf7;color:#4b765c}
.customer-detail-v3 .customer-hero-actions{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px;padding-top:13px;border-top:1px solid #f0e5e9}.customer-detail-v3 .customer-action-btn{display:flex;align-items:center;justify-content:flex-start;gap:9px;min-width:0;min-height:52px;padding:8px 10px;border:1px solid #eadfe3;border-radius:14px;background:#fff;color:#5e4d55;text-align:left;box-shadow:0 5px 14px rgba(63,37,47,.025);transition:.16s ease}.customer-detail-v3 .customer-action-btn:hover{transform:translateY(-1px);border-color:#dec6cf;background:#fffafb;color:#513f47;box-shadow:0 9px 20px rgba(68,34,47,.06)}.customer-detail-v3 .customer-action-btn>i{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:#f5edf0;color:#8c2f4e;font-size:.85rem}.customer-detail-v3 .customer-action-btn>span{display:flex;min-width:0;flex-direction:column;font-size:.7rem;font-weight:900;line-height:1.15}.customer-detail-v3 .customer-action-btn small{margin-bottom:2px;color:#a08d95;font-size:.53rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.customer-detail-v3 .customer-action-btn.is-whatsapp>i{background:#eaf6ef;color:#2e7d50}.customer-detail-v3 .customer-action-btn.is-primary{border-color:#8c2f4e;background:#8c2f4e;color:#fff}.customer-detail-v3 .customer-action-btn.is-primary>i{background:rgba(255,255,255,.14);color:#fff}.customer-detail-v3 .customer-action-btn.is-primary small{color:rgba(255,255,255,.68)}
.customer-detail-v3 .customer-hero-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.customer-detail-v3 .customer-hero-stats>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;min-height:68px;padding:10px;border:1px solid rgba(233,219,224,.88);border-radius:15px;background:rgba(255,255,255,.76)}.customer-detail-v3 .customer-stat-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f5e9ee;color:#8c2f4e;font-size:.78rem}.customer-detail-v3 .customer-hero-stats>div>div{display:flex;min-width:0;flex-direction:column}.customer-detail-v3 .customer-hero-stats small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#98838b;font-size:.52rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.customer-detail-v3 .customer-hero-stats strong{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#493a41;font-size:.86rem;font-weight:930}.customer-detail-v3 .customer-hero-stats>div.is-risk{border-color:#f0d7d9;background:#fff7f7}.customer-detail-v3 .customer-hero-stats>div.is-risk .customer-stat-icon{background:#fdebed;color:#ae454d}.customer-detail-v3 .customer-hero-stats>div.is-risk strong{color:#a64048}
.customer-detail-v3 .customer-history-warning-v3{position:relative;z-index:1;display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid #f1d8d8;border-radius:14px;background:#fff5f5}.customer-detail-v3 .customer-history-warning-v3>i{color:#aa3f47}.customer-detail-v3 .customer-history-warning-v3>div{display:flex;flex-direction:column}.customer-detail-v3 .customer-history-warning-v3 strong{font-size:.76rem}.customer-detail-v3 .customer-history-warning-v3 span{color:#98777b;font-size:.65rem}
.customer-detail-v3 .customer-profile-grid-v2{grid-template-columns:minmax(0,1fr) 285px;gap:14px}.customer-detail-v3 .customer-practical-card,.customer-detail-v3 .customer-work-card-v2,.customer-detail-v3 .customer-history-card-v2,.customer-detail-v3 .customer-optional{border-color:#e8dde1!important;box-shadow:0 9px 25px rgba(65,38,48,.04)!important}.customer-detail-v3 .customer-practical-card{border-radius:18px;background:#fff}.customer-detail-v3 .customer-work-card-v2,.customer-detail-v3 .customer-history-card-v2,.customer-detail-v3 .customer-optional{border-radius:20px!important}.customer-detail-v3 .customer-profile-side-v2{position:sticky;top:18px}

@media(max-width:1199.98px){
 body:has(.appointments-page-v2) .page-wrap,body:has(.customer-detail-v3) .page-wrap{max-width:100%}
 .appointments-page-v2 .appointments-overview{grid-template-columns:1fr}.appointments-page-v2 .appointment-filter-grid{grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(130px,.7fr)) minmax(150px,.8fr) auto}.appointments-page-v2 .appointment-filter-grid>div:has(#appointmentStaff){grid-column:auto}.appointments-page-v2 .appointment-card-grid{grid-template-columns:1fr 1fr}
 .customer-detail-v3 .customer-profile-grid-v2{grid-template-columns:1fr}.customer-detail-v3 .customer-profile-side-v2{position:static;display:grid;grid-template-columns:1fr 1fr;gap:10px}.customer-detail-v3 .customer-danger-zone{grid-column:1/-1}
}
@media(max-width:991.98px){
 .appointments-page-v2 .appointment-tools-top{align-items:flex-start;flex-direction:column}.appointments-page-v2 .appointment-range-tabs,.appointments-page-v2 .appointment-status-tabs{width:100%;overflow-x:auto;padding-bottom:2px}.appointments-page-v2 .appointment-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointments-page-v2 .appointment-filter-search{grid-column:1/-1}.appointments-page-v2 .appointment-filter-action{align-self:end}
 .appointments-page-v2 .appointment-card-grid{grid-template-columns:1fr}
}
@media(max-width:767.98px){
 body:has(.appointments-page-v2) .page-wrap,body:has(.customer-detail-v3) .page-wrap{padding-top:12px}
 .appointments-page-v2 .appointments-overview{gap:13px;padding:14px;border-radius:21px;box-shadow:0 10px 30px rgba(74,38,52,.055)}.appointments-page-v2 .appointments-overview-copy h2{font-size:1.12rem}.appointments-page-v2 .appointments-overview-copy p{font-size:.62rem}.appointments-page-v2 .appointments-overview-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.appointments-page-v2 .appointment-stat{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:72px;padding:8px;border-radius:13px}.appointments-page-v2 .appointment-stat>span{width:28px;height:28px;border-radius:9px;font-size:.7rem}.appointments-page-v2 .appointment-stat strong{font-size:.83rem}.appointments-page-v2 .appointment-stat small{font-size:.47rem}
 .appointments-page-v2 .appointment-tools{border-radius:17px!important;box-shadow:none!important}.appointments-page-v2 .appointment-tools-top{padding:9px}.appointments-page-v2 .appointment-range-tabs a,.appointments-page-v2 .appointment-status-tabs a{min-height:34px;padding:0 9px;font-size:.63rem}.appointments-page-v2 .appointment-filter-grid{gap:7px;padding:10px}.appointments-page-v2 .appointment-filter-grid .form-label{font-size:.52rem}.appointments-page-v2 .appointment-filter-grid .form-control,.appointments-page-v2 .appointment-filter-grid .form-select{min-height:44px}.appointments-page-v2 .appointment-filter-action{grid-column:1/-1}.appointments-page-v2 .appointment-filter-action .btn-primary{flex:1}
 .appointments-page-v2 .appointments-list-head{margin-bottom:9px!important}.appointments-page-v2 .appointment-day-block{margin-bottom:12px!important;border-radius:17px;box-shadow:none}.appointments-page-v2 .appointment-day-head{min-height:54px;padding:9px 11px}.appointments-page-v2 .appointment-day-head>div{gap:6px}.appointments-page-v2 .appointment-day-head span{font-size:.68rem}.appointments-page-v2 .appointment-day-head strong{font-size:.75rem}.appointments-page-v2 .appointment-day-head small{min-height:25px;font-size:.54rem}.appointments-page-v2 .appointment-card-grid{gap:7px;padding:7px}.appointments-page-v2 .appointment-manage-card{border-radius:14px}.appointments-page-v2 .appointment-card-main{grid-template-columns:62px minmax(0,1fr);gap:9px;padding:10px 10px 9px 13px}.appointments-page-v2 .appointment-card-time{min-height:62px;border-radius:12px}.appointments-page-v2 .appointment-card-time strong{font-size:.94rem}.appointments-page-v2 .appointment-card-time small{font-size:.52rem}.appointments-page-v2 .appointment-card-title>strong{font-size:.82rem}.appointments-page-v2 .appointment-card-title .badge{font-size:.49rem}.appointments-page-v2 .appointment-card-service{margin-top:4px;font-size:.65rem}.appointments-page-v2 .appointment-card-meta{margin-top:6px}.appointments-page-v2 .appointment-card-meta>a{font-size:.58rem}.appointments-page-v2 .appointment-card-actions{min-height:49px;padding:6px 7px 6px 13px}.appointments-page-v2 .appointment-card-actions .btn{min-height:35px;padding:.33rem .55rem;font-size:.61rem}
 .customer-detail-v3 .customer-detail-toolbar{min-height:36px;margin-bottom:10px!important}.customer-detail-v3 .customer-back-link span{display:none}.customer-detail-v3 .customer-back-link i{width:34px;height:34px}.customer-detail-v3 .customer-type-pill{padding:0 8px;font-size:.58rem}.customer-detail-v3 .customer-id-pill{display:none}
 .customer-detail-v3 .customer-hero-card{padding:14px;border-radius:21px;box-shadow:0 10px 30px rgba(74,38,52,.06)}.customer-detail-v3 .customer-hero-person{grid-template-columns:48px minmax(0,1fr);gap:9px}.customer-detail-v3 .customer-hero-avatar{width:48px;height:48px;border-radius:15px;font-size:.78rem}.customer-detail-v3 .customer-hero-kicker{font-size:.52rem}.customer-detail-v3 .customer-hero-name h2{font-size:1.08rem}.customer-detail-v3 .customer-hero-contact-line{gap:8px;margin-top:4px;font-size:.61rem}.customer-detail-v3 .customer-hero-contact-line span{display:none}.customer-detail-v3 .customer-risk-pill,.customer-detail-v3 .customer-ok-pill{min-height:30px;padding:0 8px;font-size:.53rem}
 .customer-detail-v3 .customer-hero-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px;padding-top:10px}.customer-detail-v3 .customer-action-btn{justify-content:center;gap:5px;min-height:58px;padding:7px 4px;border-radius:12px;text-align:center;flex-direction:column}.customer-detail-v3 .customer-action-btn>i{flex-basis:28px;width:28px;height:28px;border-radius:9px;font-size:.78rem}.customer-detail-v3 .customer-action-btn>span{font-size:.59rem}.customer-detail-v3 .customer-action-btn small{display:none}
 .customer-detail-v3 .customer-hero-stats{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.customer-detail-v3 .customer-hero-stats>div{grid-template-columns:30px minmax(0,1fr);gap:7px;min-height:58px;padding:8px;border-radius:12px}.customer-detail-v3 .customer-stat-icon{width:30px;height:30px;border-radius:9px;font-size:.7rem}.customer-detail-v3 .customer-hero-stats small{font-size:.46rem}.customer-detail-v3 .customer-hero-stats strong{font-size:.74rem}.customer-detail-v3 .customer-history-warning-v3{padding:9px 10px;border-radius:12px}.customer-detail-v3 .customer-history-warning-v3 strong{font-size:.69rem}.customer-detail-v3 .customer-history-warning-v3 span{font-size:.58rem}
 .customer-detail-v3 .customer-profile-grid-v2{gap:10px}.customer-detail-v3 .customer-profile-side-v2{display:block}.customer-detail-v3 .customer-profile-side-v2>*+*{margin-top:9px}.customer-detail-v3 .customer-book-again{display:none}.customer-detail-v3 .customer-practical-card,.customer-detail-v3 .customer-work-card-v2,.customer-detail-v3 .customer-history-card-v2,.customer-detail-v3 .customer-optional{box-shadow:none!important}
}
@media(max-width:430px){
 .appointments-page-v2 .appointments-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.appointments-page-v2 .appointment-stat{min-height:62px;flex-direction:row;align-items:center}.appointments-page-v2 .appointment-filter-grid{grid-template-columns:1fr}.appointments-page-v2 .appointment-filter-search,.appointments-page-v2 .appointment-filter-action{grid-column:auto}.appointments-page-v2 .appointment-card-title{align-items:flex-start;flex-direction:column;gap:4px}.appointments-page-v2 .appointment-card-actions{flex-wrap:wrap}.appointments-page-v2 .appointment-card-actions .appointment-detail-btn{margin-left:0}.appointments-page-v2 .appointment-card-actions form{flex:1}.appointments-page-v2 .appointment-card-actions form .btn,.appointments-page-v2 .appointment-card-actions>button,.appointments-page-v2 .appointment-card-actions>.appointment-detail-btn{width:100%;justify-content:center}
 .customer-detail-v3 .customer-hero-head{align-items:flex-start}.customer-detail-v3 .customer-risk-pill,.customer-detail-v3 .customer-ok-pill{position:absolute;right:0;top:56px}.customer-detail-v3 .customer-hero-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-detail-v3 .customer-hero-stats{margin-top:10px}
}
@media(min-width:992px) and (max-width:1199.98px){
 .appointments-page-v2 .appointment-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .appointments-page-v2 .appointment-filter-search{grid-column:1/-1}
 .appointments-page-v2 .appointment-filter-action{justify-self:stretch}
 .appointments-page-v2 .appointment-filter-action .btn-primary{flex:1}
}

/* 4.7.5 — reports dashboard rebuilt: colorful charts, goals, motivation and missing layout styles. */
.app-page-reports{--r-ink:#2f2630;--r-muted:#84747c;--r-border:#eee4e8;--r-card:#fff;--r-shadow:0 14px 34px rgba(62,35,47,.07)}
.app-page-reports .page-heading{margin-bottom:16px}
.app-page-reports .report-control-hub{overflow:hidden;border:1px solid var(--r-border);border-radius:22px;background:#fff;box-shadow:var(--r-shadow)}
.app-page-reports .report-control-main{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(520px,1.3fr);gap:22px;align-items:end;padding:17px 18px}
.app-page-reports .report-control-copy{display:flex;gap:12px;align-items:center;min-width:0}.app-page-reports .report-control-copy>div{display:flex;flex-direction:column;min-width:0}.app-page-reports .report-control-copy strong{color:var(--r-ink);font-size:.88rem}.app-page-reports .report-control-copy small{margin-top:2px;color:#9a8a91;font-size:.69rem;line-height:1.45}.app-page-reports .report-control-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#f3e8ff,#fce7f3);color:#8b5cf6;font-size:1.05rem}
.app-page-reports .report-control-form{display:grid;grid-template-columns:minmax(165px,1fr) minmax(240px,1.15fr) auto auto;gap:9px;align-items:end}.app-page-reports .report-control-field{min-width:0}.app-page-reports .report-control-form .form-label{margin:0 0 5px;color:#7c6c74;font-size:.65rem;font-weight:850}.app-page-reports .report-control-form .form-control,.app-page-reports .report-control-form .form-select,.app-page-reports .report-control-form .btn{min-height:43px;border-radius:12px}.app-page-reports .report-month-control>div{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:6px}.app-page-reports .report-month-arrow,.app-page-reports .report-export-btn{display:grid;place-items:center;border:1px solid #ece3e7;background:#faf7f8;color:#6f5e66}.app-page-reports .report-show-btn{padding-inline:16px;font-weight:850}.app-page-reports .report-export-btn{display:flex;gap:6px;padding-inline:13px}
.app-page-reports .report-jump-nav{display:flex;gap:6px;overflow-x:auto;padding:9px 12px;border-top:1px solid #f2e9ed;background:#fcfafb;scrollbar-width:none}.app-page-reports .report-jump-nav::-webkit-scrollbar{display:none}.app-page-reports .report-jump-nav a{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 10px;border-radius:999px;color:#765f69;text-decoration:none;font-size:.69rem;font-weight:850}.app-page-reports .report-jump-nav a:hover{background:#f3e9ee;color:#8c2f4e}
.app-page-reports .report-hero-compact{position:relative;grid-template-columns:minmax(0,1fr) minmax(230px,300px);padding:26px 28px;background:linear-gradient(125deg,#34233e 0%,#65355f 42%,#a54374 72%,#e36b91 100%);isolation:isolate}.app-page-reports .report-hero-compact::before{content:"";position:absolute;inset:-35% auto auto 52%;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.19),transparent 68%);z-index:-1}.app-page-reports .report-hero-compact::after{right:-70px;bottom:-150px;background:radial-gradient(circle,rgba(255,210,80,.18),transparent 65%)}
.app-page-reports .report-hero-spark{position:absolute;z-index:0;color:rgba(255,255,255,.26)}.app-page-reports .report-hero-spark.spark-one{top:18px;right:30%;font-size:1.25rem;transform:rotate(-14deg)}.app-page-reports .report-hero-spark.spark-two{bottom:24px;right:34%;font-size:.85rem;transform:rotate(15deg)}
.app-page-reports .report-hero-copy{z-index:1}.app-page-reports .report-hero-copy>p:last-of-type{max-width:690px}.app-page-reports .report-hero-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:17px}.app-page-reports .report-hero-chips span{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(255,255,255,.09);color:rgba(255,255,255,.86);font-size:.67rem;font-weight:760}.app-page-reports .report-hero-chips i{color:#ffd6e5}
.app-page-reports .report-hero-total{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:158px;padding:20px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.11);backdrop-filter:blur(10px);box-shadow:inset 0 1px rgba(255,255,255,.12)}.app-page-reports .report-hero-total-icon{display:grid;place-items:center;width:38px;height:38px;margin-bottom:10px;border-radius:12px;background:rgba(255,255,255,.14);color:#fff}.app-page-reports .report-hero-total>small{color:rgba(255,255,255,.67);font-size:.68rem}.app-page-reports .report-hero-total>strong{margin:2px 0 8px;color:#fff;font-size:clamp(1.8rem,4vw,2.45rem);font-weight:900;letter-spacing:-.05em}.app-page-reports .report-hero-total>span:last-child{display:inline-flex;align-items:center;gap:5px;color:#fff;font-size:.7rem;font-weight:800}.app-page-reports .report-hero-total .up{color:#d6ffe6}.app-page-reports .report-hero-total .down{color:#ffe0e7}.app-page-reports .report-hero-total em{font-style:normal;color:rgba(255,255,255,.62);font-weight:650}
.app-page-reports .report-kpi-grid{gap:10px}.app-page-reports .report-kpi{min-height:150px;border:0;box-shadow:var(--r-shadow)}.app-page-reports .report-kpi::after{content:"";position:absolute;right:-28px;top:-30px;width:95px;height:95px;border-radius:50%;background:rgba(255,255,255,.36)}.app-page-reports .report-kpi--grape{background:linear-gradient(145deg,#f5efff,#eee5ff);color:#5b36a5}.app-page-reports .report-kpi--rose{background:linear-gradient(145deg,#fff0f5,#ffe4ed);color:#b23b6c}.app-page-reports .report-kpi--mint{background:linear-gradient(145deg,#ecfdf8,#dcf7ee);color:#157b67}.app-page-reports .report-kpi--sun{background:linear-gradient(145deg,#fff8e5,#ffefc6);color:#a56709}.app-page-reports .report-kpi .report-kpi-icon{position:relative;z-index:1;background:rgba(255,255,255,.68);color:currentColor}.app-page-reports .report-kpi>small,.app-page-reports .report-kpi>strong,.app-page-reports .report-kpi>div{position:relative;z-index:1}.app-page-reports .report-kpi>small{color:currentColor;opacity:.74}.app-page-reports .report-kpi>strong{color:#312630}.app-page-reports .report-kpi>div{color:#72636b}.app-page-reports .report-kpi .report-delta{background:rgba(255,255,255,.72)}
.app-page-reports .report-operation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.app-page-reports .report-operation-grid article{display:grid;grid-template-columns:44px minmax(0,1fr);gap:11px;align-items:center;padding:13px 14px;border:1px solid #eee5e9;border-radius:17px;background:#fff;box-shadow:0 7px 18px rgba(59,35,45,.035)}.app-page-reports .report-operation-grid article>span{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#f6f1f3;color:#795966}.app-page-reports .report-operation-grid article>div{display:flex;flex-direction:column;min-width:0}.app-page-reports .report-operation-grid small{color:#94838b;font-size:.65rem;font-weight:780}.app-page-reports .report-operation-grid strong{color:#3a2f34;font-size:1.03rem}.app-page-reports .report-operation-grid em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9a8990;font-size:.64rem;font-style:normal}.app-page-reports .report-operation-grid .is-today>span{background:#fff4cc;color:#c48009}.app-page-reports .report-operation-grid .is-future>span{background:#eaf1ff;color:#3b6dcc}.app-page-reports .report-operation-grid .has-warning>span{background:#fff0e5;color:#db6a1e}.app-page-reports .report-operation-grid .is-clean>span{background:#e9f8ee;color:#2d8c50}.app-page-reports .report-operation-grid .is-new>span{background:#f8eafa;color:#9a4eb1}
.app-page-reports .report-wins{padding:20px;border-radius:22px;background:linear-gradient(130deg,#2a2634,#403047 48%,#593950);box-shadow:0 18px 40px rgba(46,31,44,.15)}.app-page-reports .report-wins-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.app-page-reports .report-wins article{min-height:106px;border:0}.app-page-reports .report-wins article>i{background:rgba(255,255,255,.12);color:#fff}.app-page-reports .report-wins .win-1{background:linear-gradient(145deg,rgba(139,92,246,.28),rgba(139,92,246,.11))}.app-page-reports .report-wins .win-2{background:linear-gradient(145deg,rgba(236,72,153,.26),rgba(236,72,153,.09))}.app-page-reports .report-wins .win-3{background:linear-gradient(145deg,rgba(20,184,166,.24),rgba(20,184,166,.08))}.app-page-reports .report-wins .win-4{background:linear-gradient(145deg,rgba(245,158,11,.25),rgba(245,158,11,.08))}
.app-page-reports .report-anchor-section{scroll-margin-top:14px}.app-page-reports .report-anchor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:28px 2px 12px}.app-page-reports .report-anchor-head h2{margin:0;color:#332a2e;font-size:1.22rem;font-weight:880;letter-spacing:-.03em}.app-page-reports .report-anchor-head>div>p:last-child{margin:3px 0 0;color:#95858c;font-size:.72rem}.app-page-reports .report-anchor-head>a{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:999px;background:#f6f1f3;color:#806b74;text-decoration:none;font-size:.65rem;font-weight:850}
.app-page-reports .report-goal{padding:23px 24px;border:1px solid #e8e0f5;border-radius:24px;background:linear-gradient(130deg,#fff 0%,#f8f3ff 50%,#fff4f8 100%);box-shadow:var(--r-shadow);isolation:isolate}.app-page-reports .report-goal::before{content:"";position:absolute;right:-95px;top:-125px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.13),transparent 68%);z-index:-1}.app-page-reports .report-goal-decor{position:absolute;right:22px;top:18px;color:#d8c5f2;font-size:1.25rem}.app-page-reports .report-goal-main{align-items:center}.app-page-reports .report-goal h3{margin:6px 0 2px;font-size:clamp(1.4rem,3vw,1.9rem)}.app-page-reports .report-goal-score{border:0;background:linear-gradient(145deg,#6d4bd2,#a34ca4);color:#fff;box-shadow:0 12px 28px rgba(111,73,193,.22)}.app-page-reports .report-goal-score small{color:rgba(255,255,255,.7)}.app-page-reports .report-goal-numbers{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:17px}.app-page-reports .report-goal-numbers>div{display:flex;flex-direction:column}.app-page-reports .report-goal-numbers small{color:#95868d;font-size:.63rem}.app-page-reports .report-goal-numbers strong{color:#3b3035;font-size:.9rem}.app-page-reports .report-goal-numbers>i{color:#c1b3ba;font-size:.78rem}
.app-page-reports .report-rocket-road{margin-top:21px}.app-page-reports .report-goal-track{height:13px;margin:0 12px 10px;background:linear-gradient(90deg,#efe9f4,#f4e7eb)}.app-page-reports .report-goal-track span{background:linear-gradient(90deg,#8b5cf6 0%,#d946ef 42%,#ec4899 72%,#f59e0b 100%);box-shadow:0 3px 10px rgba(181,73,172,.18)}.app-page-reports .goal-rocket{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:34px;height:34px;transform:translate(-50%,-50%) rotate(42deg);border:3px solid #fff;border-radius:50%;background:#7c3aed;color:#fff;box-shadow:0 6px 16px rgba(90,47,170,.3);font-size:.9rem}.app-page-reports .goal-rocket i{transform:rotate(-42deg)}.app-page-reports .goal-time{position:absolute;top:50%;z-index:2;width:3px;height:23px;transform:translate(-50%,-50%);border-radius:9px;background:#3f3540;box-shadow:0 0 0 4px rgba(255,255,255,.9)}.app-page-reports .report-goal-milestones{display:grid;grid-template-columns:repeat(5,1fr);color:#9a8a91;font-size:.59rem;font-weight:750}.app-page-reports .report-goal-milestones span:nth-child(2),.app-page-reports .report-goal-milestones span:nth-child(3),.app-page-reports .report-goal-milestones span:nth-child(4){text-align:center}.app-page-reports .report-goal-milestones span:last-child{text-align:right}.app-page-reports .report-goal-milestones i{color:#e34d84}.app-page-reports .report-goal-meta{margin-top:15px}.app-page-reports .report-goal-meta span{padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.72)}.app-page-reports .report-goal-meta .is-good{color:#24734a;background:#e9f8ee}.app-page-reports .report-goal-meta .is-watch{color:#9a650c;background:#fff5d9}
.app-page-reports .report-goal-empty{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:center;padding:20px;border:1px dashed #d9cce5;border-radius:22px;background:linear-gradient(135deg,#faf7ff,#fff7fa);box-shadow:0 10px 26px rgba(72,39,51,.035)}.app-page-reports .report-goal-empty-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,#7c3aed,#ec4899);color:#fff;font-size:1.35rem;box-shadow:0 10px 24px rgba(124,58,237,.2)}.app-page-reports .report-goal-empty h3{margin:5px 0 2px;font-size:1.2rem}.app-page-reports .report-goal-empty p{font-size:.76rem}.app-page-reports .report-goal-form .form-control,.app-page-reports .report-goal-form .input-group-text,.app-page-reports .report-goal-form .btn{min-height:44px}
.app-page-reports .report-chart-card,.app-page-reports .report-services-card,.app-page-reports .report-team-card,.app-page-reports .report-insight-card{overflow:hidden;border:1px solid var(--r-border);border-radius:22px;background:#fff;box-shadow:var(--r-shadow)}.app-page-reports .report-chart-card--main{background:linear-gradient(180deg,#fff,#fdfcff)}.app-page-reports .report-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border-bottom:1px solid #f2eaed}.app-page-reports .report-card-head>div:first-child{display:flex;align-items:center;gap:10px}.app-page-reports .report-card-head h3{margin:0;color:#3a2f34;font-size:.96rem;font-weight:850}.app-page-reports .report-chart-icon{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:13px;background:linear-gradient(145deg,#f0eaff,#fde8f1);color:#8550b7}.app-page-reports .report-chart-body{padding:15px 17px 17px}.app-page-reports .report-chart{height:320px}.app-page-reports .report-service-chart{height:300px}.app-page-reports .report-outcome-chart{height:225px;max-width:260px;margin:0 auto}.app-page-reports .report-top-share{padding:6px 9px;border-radius:999px;background:#ecfdf5;color:#147a5e;font-size:.64rem;font-weight:850}.app-page-reports .report-outcome-legend{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.app-page-reports .report-outcome-legend span{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;padding:7px 8px;border-radius:10px;background:#faf8f9;color:#71636a;font-size:.63rem}.app-page-reports .report-outcome-legend .dot{width:8px;height:8px;border-radius:50%}.app-page-reports .report-outcome-legend .done{background:#10b981}.app-page-reports .report-outcome-legend .future{background:#3b82f6}.app-page-reports .report-outcome-legend .no-show{background:#f59e0b}.app-page-reports .report-outcome-legend .cancelled{background:#f43f5e}.app-page-reports .report-best-day>span{margin-left:auto}.app-page-reports .report-best-day{background:linear-gradient(90deg,#faf4ff,#fff1f6)}
.app-page-reports .report-insight-card{position:relative;padding:20px;background:linear-gradient(145deg,#2e2937,#463145 62%,#63384f);color:#fff}.app-page-reports .report-insight-card .eyebrow{color:#e8cdeb}.app-page-reports .report-insight-card h3{margin:0 0 15px;color:#fff;font-size:1.05rem}.app-page-reports .report-insight-heart{position:absolute;right:18px;top:16px;color:rgba(244,114,182,.5);font-size:1.35rem}.app-page-reports .report-insight-list{display:grid;gap:8px}.app-page-reports .report-insight-list>div{display:grid;grid-template-columns:39px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.07)}.app-page-reports .report-insight-list>div>i{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:rgba(255,255,255,.09);color:#ffd1e2}.app-page-reports .report-insight-list span{display:flex;flex-direction:column}.app-page-reports .report-insight-list small{color:rgba(255,255,255,.58);font-size:.62rem}.app-page-reports .report-insight-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:.78rem}
.app-page-reports .report-services-card>.report-service-list{padding:2px 0}.app-page-reports .report-service-row{grid-template-columns:36px minmax(0,1fr) auto;padding:12px 16px}.app-page-reports .report-service-row .rank{background:#f2eafe;color:#7444b5}.app-page-reports .report-service-row .rank-1{background:#fff0c9;color:#a26a08}.app-page-reports .report-service-row .rank-2{background:#f0edf4;color:#716679}.app-page-reports .report-service-row .rank-3{background:#fff0e8;color:#aa6540}.app-page-reports .report-service-row-main{min-width:0}.app-page-reports .report-service-progress{height:5px;margin-top:6px;overflow:hidden;border-radius:99px;background:#f1e9ed}.app-page-reports .report-service-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8b5cf6,#ec4899,#f59e0b)}
.app-page-reports .report-team-card>.report-team-grid{padding:16px}.app-page-reports .report-team-person{border-color:#eee5e9;border-radius:16px}.app-page-reports .report-private-light{white-space:nowrap}.app-page-reports .report-privacy{margin-bottom:8px;background:#fbf8fa}
@media(max-width:1199.98px){.app-page-reports .report-control-main{grid-template-columns:1fr}.app-page-reports .report-control-form{grid-template-columns:minmax(160px,1fr) minmax(240px,1fr) auto auto}.app-page-reports .report-wins-grid{grid-template-columns:1fr 1fr}.app-page-reports .report-operation-grid{grid-template-columns:1fr 1fr}}
@media(max-width:767.98px){.app-page-reports .page-heading{margin-bottom:10px}.app-page-reports .report-control-hub{border-radius:18px}.app-page-reports .report-control-main{gap:13px;padding:14px}.app-page-reports .report-control-copy small{display:none}.app-page-reports .report-control-form{grid-template-columns:1fr auto}.app-page-reports .report-control-field{grid-column:1/-1}.app-page-reports .report-show-btn{grid-column:1}.app-page-reports .report-export-btn{grid-column:2}.app-page-reports .report-jump-nav{padding:8px}.app-page-reports .report-hero-compact{grid-template-columns:1fr;padding:20px}.app-page-reports .report-hero-copy{padding-right:0}.app-page-reports .report-hero-spark{display:none}.app-page-reports .report-hero-total{min-height:0;padding:14px 15px}.app-page-reports .report-hero-total-icon{display:none}.app-page-reports .report-hero-total>strong{font-size:1.8rem}.app-page-reports .report-kpi-grid{grid-template-columns:1fr 1fr}.app-page-reports .report-kpi{min-height:138px}.app-page-reports .report-wins{padding:16px}.app-page-reports .report-goal{padding:18px}.app-page-reports .report-goal-main{align-items:flex-start}.app-page-reports .report-goal-score{flex-basis:72px;width:72px;height:72px}.app-page-reports .report-goal-numbers{gap:8px}.app-page-reports .report-goal-empty{grid-template-columns:auto 1fr}.app-page-reports .report-goal-form{grid-column:1/-1;width:100%}.app-page-reports .report-anchor-head{margin-top:23px}.app-page-reports .report-chart{height:265px}.app-page-reports .report-service-chart{height:270px}.app-page-reports .report-card-head{padding:14px}.app-page-reports .report-chart-body{padding:12px 13px 14px}}
@media(max-width:575.98px){.app-page-reports .report-hero-chips span:nth-child(3){display:none}.app-page-reports .report-kpi-grid{gap:8px}.app-page-reports .report-kpi{padding:13px;min-height:132px}.app-page-reports .report-kpi>strong{font-size:1.28rem}.app-page-reports .report-operation-grid{grid-template-columns:1fr 1fr;gap:7px}.app-page-reports .report-operation-grid article{grid-template-columns:36px minmax(0,1fr);gap:8px;padding:10px}.app-page-reports .report-operation-grid article>span{width:36px;height:36px;border-radius:11px}.app-page-reports .report-operation-grid strong{font-size:.9rem}.app-page-reports .report-operation-grid em{font-size:.58rem}.app-page-reports .report-wins-grid{grid-template-columns:1fr}.app-page-reports .report-wins article{min-height:0}.app-page-reports .report-goal-numbers>i{display:none}.app-page-reports .report-goal-numbers>div{flex:1 1 30%}.app-page-reports .report-goal-milestones span:nth-child(2),.app-page-reports .report-goal-milestones span:nth-child(4){display:none}.app-page-reports .report-goal-milestones{grid-template-columns:1fr 1fr 1fr}.app-page-reports .report-goal-milestones span:nth-child(3){text-align:center}.app-page-reports .report-goal-milestones span:last-child{text-align:right}.app-page-reports .report-anchor-head>a{display:none}.app-page-reports .report-outcome-chart{height:205px}.app-page-reports .report-outcome-legend{gap:5px}.app-page-reports .report-outcome-legend span{padding:6px;font-size:.59rem}.app-page-reports .report-service-row{grid-template-columns:30px minmax(0,1fr) auto;padding:11px 12px}.app-page-reports .report-service-row>b{font-size:.76rem}.app-page-reports .report-team-card>.report-team-grid{padding:11px}}
/* Small compatibility override: old report track rule must not style the rocket glyph itself. */
.app-page-reports .report-goal-track .goal-rocket>i{position:static!important;width:auto!important;height:auto!important;transform:rotate(-42deg)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.app-page-reports .report-chart-card--donut{background:linear-gradient(180deg,#fff,#fffafd)}
