:root{--blue:#164d8d;--blue-hover:#123f75;--blue-soft:#eef5ff;--red:#d9272e;--green:#18794e;--orange:#b54708;--purple:#6941c6;--ink:#152033;--muted:#667085;--line:#e5eaf1;--bg:#f5f8fc;--card:#ffffff}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;color:var(--ink);background:var(--bg);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.55}.shell{width:100%;max-width:1540px;margin:auto;padding:34px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.kicker,header b{color:var(--blue);font-size:12px;letter-spacing:.14em}h1{margin:6px 0;font-size:32px}h2{margin:5px 0 0}p{margin:0;color:var(--muted)}.headerActions{display:flex;align-items:center;gap:10px}.primary{padding:12px 17px;color:#ffffff;font-weight:700;background:var(--blue);border:0;border-radius:9px}.primary:hover:not(:disabled){background:var(--blue-hover)}.primary:disabled{opacity:.5}.secondary{padding:11px 17px;color:var(--ink);background:#ffffff;border:1px solid #d7dee8;border-radius:9px}.secondary:hover:not(:disabled){background:#f8fafc;border-color:#b9c4d2}.outlinePrimary{padding:11px 17px;color:var(--blue);font-weight:700;background:#ffffff;border:1px solid var(--blue);border-radius:9px}.outlinePrimary:hover{color:#ffffff;background:var(--blue)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stats>div{padding:16px;color:var(--muted);background:#ffffff;border:1px solid var(--line);border-radius:12px}.stats strong{display:block;margin-top:6px;color:var(--ink);font-size:26px}.quickRanges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.quickRanges button{padding:9px 14px;color:var(--ink);background:#ffffff;border:1px solid #d7dee8;border-radius:9px}.quickRanges button:hover{border-color:var(--blue)}.quickRanges button.active{color:#ffffff;background:var(--blue);border-color:var(--blue)}.toolbar{display:grid;grid-template-columns:145px 145px 165px 205px 205px 165px minmax(240px,1fr);gap:10px;margin-bottom:20px}.formGrid label,.toolbar label{color:var(--muted);font-size:12px;font-weight:700}.formGrid input,.formGrid select,.formGrid textarea,.toolbar input,.toolbar select{display:block;width:100%;min-height:44px;margin-top:6px;padding:0 11px;color:var(--ink);background:#ffffff;border:1px solid #d7dee8;border-radius:9px;outline:none}.formGrid textarea{min-height:90px;padding:11px;resize:vertical}.formGrid input:focus,.formGrid select:focus,.formGrid textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,77,141,.1)}.dashboardSection{margin:22px 0}.dashboardHeading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.dashboardHeading h2{margin:0;color:var(--ink);font-size:20px}.dashboardHeading p{margin-top:4px;color:var(--muted);font-size:14px}.analyticsGrid,.summaryGrid{display:grid;gap:12px}.statusGrid{grid-template-columns:repeat(5,minmax(0,1fr))}.serviceGrid,.sourceGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.branchGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.doctorGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.metricCard,.summaryCard{position:relative;min-height:112px;padding:17px;overflow:hidden;color:var(--ink);text-align:left;background:#ffffff;border:1px solid var(--line);border-radius:14px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.metricCard:hover,.summaryCard:hover{border-color:var(--blue);box-shadow:0 8px 22px rgba(22,77,141,.1);transform:translateY(-1px)}.metricCard.selected,.summaryCard.selected{color:#ffffff;background:var(--blue);border-color:var(--blue)}.metricCard small,.metricCard span,.metricCard strong,.summaryCard small,.summaryCard span,.summaryCard strong{display:block}.metricCard span,.summaryCard span{min-height:22px;font-weight:700}.metricCard strong,.summaryCard strong{margin-top:12px;font-size:29px;line-height:1}.metricCard small,.summaryCard small{margin-top:6px;color:var(--muted)}.metricCard.selected small,.summaryCard.selected small{color:rgba(255,255,255,.82)}.metricCard.confirmedCard{border-left:5px solid #18794e}.metricCard.visitedCard{border-left:5px solid #175cd3}.metricCard.notVisitedCard{border-left:5px solid #b54708}.metricCard.cancelledCard{border-left:5px solid #b42318}.metricCard.rescheduledCard{border-left:5px solid #6941c6}.metricCard.onlineCard{border-left:5px solid #175cd3}.metricCard.staffCard{border-left:5px solid #18794e}.metricCard.walkInCard{border-left:5px solid #b54708}.metricCard.aiCard{border-left:5px solid #6941c6}.metricCard.selected{border-left-color:var(--blue)}.clearFilter{padding:4px 0;color:var(--blue);font-weight:700;background:transparent;border:0}.clearFilter:hover{text-decoration:underline}.emptyDashboard{padding:24px;color:var(--muted);text-align:center;background:#ffffff;border:1px solid var(--line);border-radius:14px}.panel{overflow:hidden;margin-top:22px;background:#ffffff;border:1px solid var(--line);border-radius:13px}.tableWrap{overflow-x:auto}table{width:100%;min-width:1300px;border-collapse:collapse}th{padding:13px;color:var(--muted);font-size:12px;text-align:left;white-space:nowrap;background:#f8fafc}td{padding:14px;font-size:14px;vertical-align:middle;border-top:1px solid #edf0f4}tbody tr:hover{background:#fbfdff}td small{display:block;margin-top:4px;color:var(--muted)}.tm{color:var(--blue)}.badge,.tm{font-weight:800;white-space:nowrap}.badge{display:inline-block;padding:5px 8px;font-size:11px;background:#eef2f7;border-radius:999px}.badge.confirmed{color:#18794e;background:#e9f7ef}.badge.visited{color:#175cd3;background:#eff8ff}.badge.not_visited{color:#b54708;background:#fffaeb}.badge.canceled,.badge.cancelled{color:#b42318;background:#fdecec}.badge.rescheduled{color:#6941c6;background:#f4f3ff}.sourceBadge{display:inline-block;padding:5px 8px;font-size:11px;font-weight:800;white-space:nowrap;border-radius:999px}.sourceBadge.online{color:#175cd3;background:#eff8ff}.sourceBadge.staff{color:#18794e;background:#e9f7ef}.sourceBadge.walk_in{color:#b54708;background:#fffaeb}.sourceBadge.ai{color:#6941c6;background:#f4f3ff}.inlineSelect{width:145px;min-height:38px;padding:0 9px;color:var(--ink);font-size:12px;font-weight:700;background:#ffffff;border:1px solid #d7dee8;border-radius:8px;outline:none}.inlineSelect:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,77,141,.1)}.inlineSelect.saving{color:var(--muted);background:#f8fafc}.rowError{max-width:160px;margin-top:5px;color:var(--red);font-size:11px}.state{padding:55px;color:var(--muted);text-align:center}.error,.formError{color:var(--red)}.modalBackdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.48)}.modal{width:min(920px,100%);max-height:92vh;overflow:auto;padding:24px;background:#ffffff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.22)}.modalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.modalHead p{margin-top:7px;line-height:1.5}.iconBtn{flex:0 0 auto;width:38px;height:38px;padding:0;color:var(--ink);font-size:24px;background:#f1f5f9;border:0;border-radius:50%}.iconBtn:hover{background:#e5eaf1}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.slotSection{margin:20px 0}.labelText{margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:700}.slots{display:flex;flex-wrap:wrap;gap:8px;max-height:190px;overflow:auto}.slot{padding:9px 12px;color:var(--ink);background:#ffffff;border:1px solid #d7dee8;border-radius:8px}.slot.selected,.slot:hover{border-color:var(--blue)}.slot.selected{color:#ffffff;background:var(--blue)}.miniState{padding:18px;color:var(--muted);text-align:center;background:#f8fafc;border-radius:9px}.patientGrid{padding-top:5px}.optional{font-weight:400}.formError{margin-top:14px;padding:10px 12px;font-size:13px;background:#fff2f2;border:1px solid #ffd7d7;border-radius:8px}.modalActions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.slotCheckerModal{width:min(900px,100%)}.availabilityResult{margin-top:22px;overflow:hidden;border:1px solid var(--line);border-radius:12px}.availabilityHead{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;background:#f8fafc;border-bottom:1px solid var(--line)}.availabilityHead .labelText{display:block;margin-bottom:5px}.availabilityHead strong{display:block;color:var(--ink);font-size:20px}.availableIndicator{padding:6px 10px;color:#18794e;font-size:12px;font-weight:800;background:#e9f7ef;border-radius:999px}.checkerSlots{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;max-height:380px;padding:16px;overflow-y:auto}.checkerSlot{display:flex;flex-direction:column;gap:5px;padding:14px;background:#f8fbff;border:1px solid #dbe7f5;border-radius:10px}.checkerSlot:hover{border-color:var(--blue);box-shadow:0 5px 15px rgba(22,77,141,.08)}.checkerSlot strong{color:var(--blue);font-size:17px}.checkerSlot span{color:var(--muted);font-size:12px}@media (max-width:1400px){.toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.searchLabel{grid-column:span 2}.statusGrid{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto}}@media (max-width:1150px){.toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.searchLabel{grid-column:span 3}.doctorGrid,.serviceGrid,.sourceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.statusGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:850px){.branchGrid,.doctorGrid,.serviceGrid,.sourceGrid,.statusGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkerSlots{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:760px){.shell{padding:18px 12px}header{align-items:flex-start;flex-direction:column}.headerActions{width:100%;flex-direction:column}.headerActions button,header>.primary{width:100%}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.formGrid,.toolbar{grid-template-columns:1fr}.searchLabel{grid-column:auto}.modal{padding:18px}.modalBackdrop{padding:8px}.dashboardHeading{align-items:flex-start;flex-direction:column}.checkerSlots{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media (max-width:520px){h1{font-size:27px}.branchGrid,.doctorGrid,.serviceGrid,.sourceGrid,.stats,.statusGrid{grid-template-columns:1fr}.metricCard,.summaryCard{min-height:100px}.state{padding:40px 16px}.checkerSlots{grid-template-columns:1fr 1fr;padding:12px}.modalActions{flex-direction:column-reverse}.modalActions button{width:100%}}