:root{--surface:#fff;--surface-soft:#f7f7f9;--accent:#6c2e91;--accent-dark:#551f75;--accent-soft:#f2eaf7;--mint:#4fc8a6;--mint-dark:#3da88a;--warning:#b7791f;--danger:#b33f48;--radius:18px;--green:#6c2e91;--green-dark:#551f75;--gold:#4fc8a6;--ink:#1a1a1a;--muted:#848489;--paper:#f5f5f7;--line:#e8e8ea}
body{font-family:'Cairo',Tahoma,Arial,sans-serif;background:radial-gradient(circle at 92% 0,rgba(108,46,145,.08),transparent 30%),radial-gradient(circle at 5% 45%,rgba(79,200,166,.08),transparent 26%),#f5f5f7;background-attachment:fixed}
.shell{width:min(1240px,calc(100% - 36px));padding:28px 0 64px}.dashboard{animation:fade-in .25s ease}.app-header{padding:8px 4px 12px}.header-brand{display:flex;align-items:center;gap:18px}.clinic-logo{width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(108,46,145,.12))}.app-header h1{font-size:clamp(28px,3.4vw,43px);letter-spacing:-1px}.header-subtitle{margin:6px 0 0;color:var(--muted)}.header-actions button{min-height:44px}.eyebrow{color:var(--accent)}
.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stats article{position:relative;overflow:hidden;min-height:96px;border:0;background:rgba(255,255,255,.9);box-shadow:0 8px 28px rgba(108,46,145,.055);backdrop-filter:blur(10px)}.stats article::after{content:"";position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,var(--accent),var(--mint))}.stats strong{font-family:'Cairo',Tahoma,Arial,sans-serif;font-size:32px;color:var(--accent)}
.control-panel{position:relative;margin:22px 0 18px;padding:18px;background:rgba(255,255,255,.96);border:1px solid #e8e8ea;border-radius:22px;box-shadow:0 14px 40px rgba(108,46,145,.08)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h2{font-size:24px}.section-heading .eyebrow{margin-bottom:4px}.live-dot{display:flex;align-items:center;gap:7px;color:var(--accent);font-size:12px;font-weight:700}.live-dot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 5px rgba(79,200,166,.14)}
.booking-search{display:grid;gap:7px;margin:0 0 14px;font-weight:700}.booking-search span{font-size:12px;color:var(--muted)}.booking-search input{min-height:48px;padding-inline:18px;border-color:#e2dce7;background:#fbfafc}.booking-search input:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px rgba(108,46,145,.11)}.filter-groups{display:grid;grid-template-columns:1fr 1.25fr;gap:12px}.filters{padding:4px;border:1px solid #e8e8ea;border-radius:13px;background:#f7f7f9;overflow:auto}.filter{flex:1;border:0;border-radius:9px;padding:9px 12px}.filter.active{background:var(--accent);box-shadow:0 6px 16px rgba(108,46,145,.23)}
.booking.next-appointment{position:relative;overflow:hidden;margin:8px 0 22px;padding:25px 96px 25px 26px;border:0;background:linear-gradient(125deg,#551f75,#6c2e91 62%,#7f43a4);color:#fff;box-shadow:0 18px 42px rgba(108,46,145,.25)}.booking.next-appointment::before{content:"◷";position:absolute;right:25px;top:50%;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.14);color:#7ce0c4;font-size:31px;transform:translateY(-50%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}.booking.next-appointment::after{content:"";position:absolute;left:-45px;bottom:-70px;width:190px;height:190px;border-radius:50%;background:rgba(79,200,166,.16)}.booking.next-appointment h2{position:relative;z-index:1;margin-bottom:8px;font-size:28px;color:#fff}.booking.next-appointment p{position:relative;z-index:1;margin:5px 0;color:#f1eaf5}.booking.next-appointment .eyebrow{position:relative;z-index:1;display:inline-flex;padding:5px 10px;border-radius:99px;background:rgba(79,200,166,.24);color:#d9fff4}.booking.next-appointment .whatsapp-link{position:relative;z-index:1;background:#fff;color:#551f75}
.message{margin:10px 4px}.booking-grid{gap:14px}.booking{border:1px solid #e8e8ea;border-radius:var(--radius);background:rgba(255,255,255,.94);box-shadow:0 8px 26px rgba(108,46,145,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.booking:hover{transform:translateY(-2px);border-color:#d8c9e1;box-shadow:0 15px 36px rgba(108,46,145,.09)}.booking-top h2{font-size:22px}.request-id{display:inline-block;margin-bottom:4px;color:var(--accent)}.status{padding:7px 11px}.status.confirmed{background:#e8f8f3;color:#267b64}.status.pending{background:#fff3db;color:#91621c}.status.declined{background:#f9e6e8;color:var(--danger)}.details{padding:14px;border-radius:13px;background:var(--surface-soft)}.detail strong{font-size:14px}.notes{border:1px solid #ececef;background:#fafafa}.card-actions button{min-height:44px}.notification,.attendance{line-height:1.65}.booking.soon{border:2px solid var(--mint);box-shadow:0 12px 34px rgba(79,200,166,.16)}.soon-label{display:inline-block;margin-top:10px;padding:6px 9px;border-radius:99px;background:#e8f8f3;color:#267b64;font-size:12px;font-weight:700}.whatsapp-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:9px 13px;border-radius:10px;background:#e8f8f3;color:#267b64;font-size:13px;font-weight:700;text-decoration:none}.whatsapp-link::before{content:"↗"}
.primary,.confirm{background:var(--accent);color:#fff}.primary:hover,.confirm:hover{background:var(--accent-dark)}.secondary{background:var(--accent-soft);color:var(--accent-dark)}.decline{background:#f9e6e8;color:var(--danger)}
.analytics-panel{margin-top:28px;border:1px solid #e2dce7;border-radius:20px;background:rgba(255,255,255,.78);overflow:hidden}.analytics-panel summary{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;cursor:pointer;font-weight:700;list-style:none}.analytics-panel summary::-webkit-details-marker{display:none}.analytics-panel summary::after{content:"＋";order:-1;color:var(--accent);font-size:22px}.analytics-panel[open] summary::after{content:"−"}.analytics-panel summary small{margin-inline-start:auto;margin-inline-end:14px;color:var(--muted);font-weight:400}.analytics-panel[open]{padding-bottom:20px}.analytics-stats{padding:0 20px;grid-template-columns:repeat(3,1fr)}.insights-grid{padding:0 20px;margin-top:14px}.insights-grid .booking:hover{transform:none}
.empty{border:1px dashed #d5c9dc;border-radius:20px;background:rgba(255,255,255,.62)}dialog{border:0}.login-card{border:0;background:rgba(255,255,255,.95);backdrop-filter:blur(15px)}.login-logo{display:block;width:155px;height:92px;object-fit:contain;margin:0 0 16px auto}.brand-mark{display:none}
@keyframes fade-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:800px){.shell{width:min(100% - 22px,1240px);padding-top:18px}.app-header{align-items:flex-start}.clinic-logo{width:68px;height:68px}.header-brand{gap:12px}.header-subtitle{font-size:13px}.stats{grid-template-columns:repeat(3,1fr)}.stats article{padding:15px;min-height:82px;display:grid;gap:6px}.stats strong{font-size:25px}.control-panel{padding:14px}.filter-groups{grid-template-columns:1fr}.filters{width:100%}.booking-grid{grid-template-columns:1fr}.analytics-stats{grid-template-columns:repeat(2,1fr)}.details{grid-template-columns:1fr 1fr}.card-actions{position:static;flex-wrap:wrap}.card-actions button{min-width:calc(50% - 5px)}.booking.next-appointment{padding:20px 78px 20px 18px}.booking.next-appointment::before{right:17px;width:45px;height:45px}.analytics-panel summary{padding:17px}.analytics-panel summary small{display:none}}
@media(max-width:480px){.shell{width:min(100% - 16px,1240px)}.dashboard header{display:grid}.clinic-logo{width:58px;height:58px}.app-header h1{font-size:26px}.header-actions{width:100%;flex-direction:row}.header-actions button{flex:1}.stats{gap:8px}.stats article{padding:12px}.stats span{font-size:11px}.stats strong{font-size:22px}.control-panel{margin-inline:-2px}.filter{padding:8px 10px}.details{grid-template-columns:1fr}.booking{padding:17px}.analytics-stats{padding:0 12px}.insights-grid{padding:0 12px}}
