:root{color:#22312c;background:#f5f7f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #1d2a27;--muted: #6d7972;--line: #dce2da;--surface: #ffffff;--soft: #eef4ee;--brand: #176b5f;--brand-dark: #0e4f46;--accent: #c86c3f;--warning: #b58520;--danger: #b74444;--radius: 8px;--shadow: 0 18px 48px rgb(29 42 39 / 12%)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.boot-screen{align-items:center;background:#f5f7f2;display:grid;min-height:100vh;place-items:center}.boot-mark{animation:pulse 1.2s ease-in-out infinite;background:var(--brand);border-radius:999px;height:34px;width:34px}.login-shell{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(360px,1.05fr);min-height:100vh}.login-visual{background:linear-gradient(135deg,#176b5fe0,#1d2a27eb),radial-gradient(circle at 20% 15%,rgb(255 255 255 / 22%),transparent 28%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:46px;position:relative}.login-visual:after{background-image:linear-gradient(rgb(255 255 255 / 10%) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / 10%) 1px,transparent 1px);background-size:44px 44px;content:"";inset:0;-webkit-mask-image:linear-gradient(130deg,#000 10%,transparent 74%);mask-image:linear-gradient(130deg,#000 10%,transparent 74%);position:absolute}.brand-lockup,.mobile-brand,.sidebar-brand{align-items:center;display:flex;gap:12px}.brand-lockup{position:relative;z-index:1}.brand-lockup p,.brand-lockup span,.sidebar-brand strong,.sidebar-brand span{display:block;margin:0}.brand-lockup p{font-size:22px;font-weight:760}.brand-lockup span{color:#ffffffb8;font-size:14px}.brand-mark{align-items:center;background:#ffffff24;border:1px solid rgb(255 255 255 / 24%);border-radius:var(--radius);display:grid;height:48px;place-items:center;width:48px}.brand-mark.compact{background:var(--brand);border:0;color:#fff;font-weight:760;height:36px;width:36px}.signal-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(120px,1fr));max-width:460px;position:relative;z-index:1}.signal-card{background:#ffffff21;border:1px solid rgb(255 255 255 / 18%);border-radius:var(--radius);padding:18px}.signal-card.accent{background:#c86c3f38}.signal-label{color:#ffffffb8;display:block;font-size:13px;margin-bottom:8px}.signal-card strong{font-size:36px}.signal-line{align-self:center;background:#ffffff38;height:1px}.signal-pill{align-self:center;background:#ffffff24;border:1px solid rgb(255 255 255 / 18%);border-radius:999px;color:#ffffffd1;justify-self:start;padding:7px 12px}.login-panel{align-items:center;display:grid;padding:32px}.login-card{margin:0 auto;max-width:440px;width:100%}.mobile-brand{display:none;margin-bottom:34px}.mobile-brand .brand-mark{background:var(--brand);color:#fff}.mobile-brand span{font-weight:720}.eyebrow{color:var(--accent);font-size:12px;font-weight:760;letter-spacing:0;margin:0 0 8px;text-transform:uppercase}.login-heading h1,.module-heading h1,.empty-state h1{color:var(--ink);font-size:clamp(34px,6vw,52px);letter-spacing:0;line-height:1;margin:0}.login-form{display:grid;gap:18px;margin-top:34px}.login-form label{color:var(--ink);display:grid;font-size:13px;font-weight:700;gap:8px}.input-shell,.search-field{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);display:flex;gap:10px}.input-shell{height:48px;padding:0 14px}.input-shell:focus-within,.search-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #176b5f21}.input-shell input,.search-field input{background:transparent;border:0;color:var(--ink);min-width:0;outline:0;width:100%}.primary-button,.secondary-button,.danger-button,.icon-button,.module-button,.segmented-control button,.appointment-row,.call-row{border:0}.primary-button{align-items:center;background:var(--brand);border-radius:var(--radius);color:#fff;display:inline-flex;font-weight:760;height:48px;justify-content:center;padding:0 18px}.primary-button:hover:not(:disabled){background:var(--brand-dark)}.primary-button:disabled{opacity:.56}.secondary-button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);display:inline-flex;font-weight:700;gap:8px;min-height:38px;padding:0 12px}.form-alert{align-items:center;background:#fff5f0;border:1px solid #f0c6b3;border-radius:var(--radius);color:#8b3e25;display:flex;gap:10px;margin-top:20px;padding:12px 14px}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#fbfcfa;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px;padding:24px 18px}.sidebar-brand{min-height:44px}.sidebar-brand span{color:var(--muted);font-size:13px}.module-nav{display:grid;gap:8px}.module-button{align-items:center;background:transparent;border-radius:var(--radius);color:var(--muted);display:flex;font-weight:720;gap:10px;min-height:40px;padding:0 12px;text-align:left}.module-button.active,.module-button:hover{background:var(--soft);color:var(--brand-dark)}.workspace{display:grid;grid-template-rows:66px minmax(0,1fr);min-width:0}.topbar{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding:0 28px}.mobile-menu{display:none}.tenant-summary,.user-menu{align-items:center;display:flex;gap:10px;min-width:0}.role-pill,.location-chip,.status-pill,.classification-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:760;gap:6px;line-height:1;white-space:nowrap}.role-pill{background:#f3ead9;color:#7d5218;padding:8px 10px;text-transform:capitalize}.location-chip{background:var(--soft);color:var(--brand-dark);padding:8px 10px}.user-menu span{color:var(--ink);font-weight:720;overflow:hidden;text-overflow:ellipsis}.user-avatar{align-items:center;background:var(--brand);border-radius:999px;color:#fff;display:grid;flex:0 0 auto;font-size:13px;font-weight:800;height:32px;place-items:center;width:32px}.icon-button{align-items:center;background:transparent;border-radius:var(--radius);color:var(--muted);display:grid;height:34px;place-items:center;width:34px}.icon-button:hover{background:var(--soft);color:var(--brand-dark)}.sr-only{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px;white-space:nowrap}.module-page{min-width:0;padding:28px}.module-heading{align-items:start;display:flex;gap:18px;justify-content:space-between;margin-bottom:24px}.module-heading h1{font-size:clamp(32px,5vw,44px)}.module-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.select-field{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;gap:8px;min-height:38px;padding:0 10px}.select-field span{color:var(--muted);font-size:12px;font-weight:760;text-transform:uppercase}.select-field select,.status-select,.reserve-form input,.slot-controls input{background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);min-height:38px;outline:0;padding:0 10px}.select-field select{border:0;min-height:34px;padding:0}.select-field:focus-within,.status-select:focus,.reserve-form input:focus,.slot-controls input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b5f21}.stat-strip{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.metric-card{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:8px 12px;grid-template-columns:auto 1fr auto;min-height:72px;padding:16px}.metric-card svg{color:var(--brand)}.metric-card span{color:var(--muted);font-weight:700}.metric-card strong{font-size:28px}.appointments-grid{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}.appointments-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;min-width:0}.appointments-list{overflow:hidden}.side-stack{display:grid;gap:18px;min-width:0}.list-tools{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:14px}.segmented-control{background:var(--soft);border-radius:var(--radius);display:inline-grid;gap:2px;grid-template-columns:repeat(4,minmax(72px,1fr));padding:3px}.segmented-control button{background:transparent;border-radius:6px;color:var(--muted);font-size:13px;font-weight:760;min-height:32px;padding:0 10px}.segmented-control button.selected{background:#fff;box-shadow:0 1px 4px #1d2a271a;color:var(--brand-dark)}.search-field{height:38px;max-width:240px;padding:0 12px;width:28%}.status-select{flex:0 0 140px}.appointment-rows,.call-rows{display:grid}.appointment-row{align-items:center;background:var(--surface);border-bottom:1px solid var(--line);color:var(--ink);display:grid;gap:14px;grid-template-columns:92px minmax(0,1fr) auto;min-height:78px;padding:12px 16px;text-align:left;transition:background-color .14s ease,box-shadow .14s ease,border-color .14s ease;width:100%}.appointment-row:last-child{border-bottom:0}.appointment-row:hover{background:#f7faf7}.appointment-row.selected{background:#edf5f1;box-shadow:inset 0 0 0 2px var(--brand)}.appointment-time,.appointment-main{display:grid;gap:4px;min-width:0}.appointment-row.selected .appointment-main strong,.appointment-row.selected .appointment-time strong{color:var(--brand-dark)}.appointment-row.selected .appointment-time small,.appointment-row.selected .appointment-main small{color:var(--ink)}.detail-header-strip{margin:0}.appointment-row:focus-visible{outline:2px solid var(--brand-dark);outline-offset:-2px}.appointment-main strong,.appointment-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-time strong,.appointment-main strong{color:var(--ink);font-size:15px}.appointment-time small,.appointment-main small{color:var(--muted);font-size:12px}.status-pill{padding:7px 9px}.classification-pill{background:#eef3f6;color:#2d5366;padding:7px 9px}.status-pill.requested{background:#eef4ee;color:#315c55}.status-pill.confirmed{background:#e5f4ef;color:#146252}.status-pill.completed{background:#e8efe8;color:#536a54}.status-pill.canceled{background:#faeaea;color:var(--danger)}.appointment-detail,.reserve-panel{padding:18px}.detail-header{align-items:start;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding-bottom:16px}.detail-header h2{font-size:24px;line-height:1.1;margin:0;overflow-wrap:anywhere}.detail-list{display:grid;gap:14px;margin:18px 0 0}.detail-list div{display:grid;gap:4px}.detail-list dt{color:var(--muted);font-size:12px;font-weight:760;text-transform:uppercase}.detail-list dd{color:var(--ink);margin:0}.detail-actions{border-top:1px solid var(--line);display:flex;margin-top:20px;padding-top:16px}.dialog-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0d151273;display:grid;inset:0;justify-items:center;padding:20px;position:fixed;z-index:40}.dialog-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;max-height:min(92vh,900px);overflow:hidden;width:min(1024px,96vw)}.dialog-panel.big{max-width:min(980px,96vw)}.dialog-body{overflow:auto;padding:18px}.dialog-overlay .detail-header{border-bottom:1px solid var(--line);padding:16px 18px}.danger-button{align-items:center;background:#fff0f0;border:1px solid #f0c4c4;border-radius:var(--radius);color:var(--danger);display:inline-flex;font-weight:760;gap:8px;min-height:38px;padding:0 12px}.danger-button:hover:not(:disabled){background:#faeaea}.reserve-form{display:grid;gap:16px;margin-top:18px}.reserve-form label,.slot-controls label{color:var(--muted);display:grid;font-size:12px;font-weight:760;gap:6px;min-width:0;text-transform:uppercase}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.reserve-form input,.slot-controls input{min-width:0;width:100%}.slot-controls{align-items:end;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr)) auto}.slot-grid{display:flex;flex-wrap:wrap;gap:8px}.slot-grid button,.slot-grid span{background:var(--soft);border:1px solid var(--line);border-radius:999px;color:var(--brand-dark);font-size:12px;font-weight:760;padding:8px 10px}.slot-grid button:hover{border-color:var(--brand)}.inline-alert{background:#fff5f0;border:1px solid #f0c6b3;border-radius:var(--radius);color:#8b3e25;margin:0;padding:10px 12px}.appointments-page,.call-log-page{margin:0 auto;max-width:1180px;width:100%}.operator-heading{align-items:flex-start;margin-bottom:18px}.module-title{display:grid;gap:6px;min-width:0}.operator-heading h1{font-size:clamp(28px,3.6vw,38px);line-height:1.05;margin:0}.operator-summary{color:var(--muted);font-size:14px;margin:0}.operator-actions{justify-content:flex-end}.compact-select{min-height:42px}.location-select select{min-width:130px}.icon-text-button{min-height:42px}.operator-list{box-shadow:0 1px 2px #1d2a270d}.operator-toolbar{align-items:center;background:#fbfcfa;border-bottom:1px solid var(--line);display:grid;gap:12px;grid-template-columns:auto minmax(240px,1fr) auto;padding:12px}.range-tabs{grid-template-columns:repeat(3,minmax(78px,1fr))}.operator-search{height:42px;max-width:none;width:100%}.status-field{align-items:center;display:flex;gap:8px;min-width:0}.status-field span{color:var(--muted);font-size:12px;font-weight:760;text-transform:uppercase}.status-field .status-select{flex:0 0 160px;min-height:42px}.appointment-row{gap:18px;grid-template-columns:92px minmax(180px,1.4fr) minmax(180px,.9fr) auto;min-height:88px;padding:14px 18px}.appointment-time strong{font-size:20px;letter-spacing:0}.appointment-main strong{font-size:17px}.appointment-main small{font-size:13px}.appointment-contact{align-items:center;color:var(--muted);display:flex;font-size:14px;gap:8px;min-width:0}.appointment-contact svg{flex:0 0 auto}.appointment-contact span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-row{align-items:center;background:var(--surface);border-bottom:1px solid var(--line);color:var(--ink);display:grid;gap:18px;grid-template-columns:92px minmax(150px,.6fr) minmax(140px,.55fr) minmax(0,1.4fr);min-height:88px;padding:14px 18px;text-align:left;transition:background-color .14s ease,box-shadow .14s ease,border-color .14s ease;width:100%}.call-row:last-child{border-bottom:0}.call-row:hover{background:#f7faf7}.call-row.selected{background:#edf5f1;box-shadow:inset 0 0 0 2px var(--brand)}.call-row:focus-visible{outline:2px solid var(--brand-dark);outline-offset:-2px}.call-time{display:grid;gap:4px;min-width:0}.call-time strong{color:var(--ink);font-size:20px;letter-spacing:0}.call-time small{color:var(--muted);font-size:12px}.call-duration{align-items:center;color:var(--muted);display:flex;font-size:14px;gap:8px;min-width:0}.call-duration svg{flex:0 0 auto}.call-duration span,.call-transcript-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-transcript-preview{color:var(--muted);font-size:14px}.call-pagination{align-items:center;background:#fbfcfa;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:12px}.call-pagination span,.per-page-field span{color:var(--muted);font-size:13px;font-weight:760}.per-page-field,.call-page-controls{align-items:center;display:flex;gap:12px}.per-page-field select{background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);min-height:38px;outline:0;padding:0 10px}.per-page-field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b5f21}.call-detail-summary{justify-content:space-between}.transcript-panel{background:#fbfcfa;border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr);margin-top:16px;padding:14px}.transcript-panel svg{color:var(--brand-dark);margin-top:2px}.transcript-panel pre{color:var(--ink);font:inherit;line-height:1.55;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.detail-summary{align-items:center;background:#fbfcfa;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:10px;padding:12px}.operator-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-detail-list dd{overflow-wrap:anywhere}.operator-dialog{width:min(760px,96vw)}.call-dialog{grid-template-rows:auto minmax(0,1fr)}.call-dialog .dialog-body{min-height:0}.booking-dialog{width:min(820px,96vw)}.booking-steps{display:flex;gap:8px;margin-bottom:16px}.step-pill{background:var(--soft);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:760;padding:7px 10px}.step-pill.active{background:#e5f4ef;border-color:#badbd1;color:var(--brand-dark)}.slot-first-panel,.patient-form{display:grid;gap:14px}.slot-search-panel{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) auto}.slot-search-panel label,.patient-form label{color:var(--muted);display:grid;font-size:12px;font-weight:760;gap:6px;min-width:0;text-transform:uppercase}.slot-search-panel input,.patient-form input{background:#fff;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);min-height:42px;min-width:0;outline:0;padding:0 10px;width:100%}.slot-search-panel input:focus,.patient-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #176b5f21}.helper-text{color:var(--muted);font-size:13px;margin:0}.slot-results{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.slot-button{background:#fbfcfa;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);display:grid;gap:4px;min-height:70px;padding:12px;text-align:left}.slot-button:hover{background:#f0f6f3;border-color:#badbd1}.slot-button span{color:var(--muted);font-size:12px}.slot-button strong{color:var(--brand-dark);font-size:17px}.no-slots{align-items:center;background:#fbfcfa;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);display:flex;gap:10px;grid-column:1 / -1;min-height:68px;padding:12px}.text-button{align-items:center;background:transparent;border:0;color:var(--brand-dark);display:inline-flex;font-weight:760;justify-self:start;min-height:36px;padding:0}.text-button:hover{color:var(--brand);text-decoration:underline}.selected-slot{align-items:center;background:#f0f6f3;border:1px solid #cae3dc;border-radius:var(--radius);display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;padding:12px}.selected-slot svg{color:var(--brand-dark)}.selected-slot span{color:var(--muted);display:block;font-size:12px;font-weight:760;text-transform:uppercase}.selected-slot strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reserve-submit{justify-self:start}.empty-state{align-items:center;color:var(--muted);display:grid;gap:8px;justify-items:center;padding:64px 24px;text-align:center}.empty-state.inline{min-height:260px}.empty-state.detail-empty{min-height:360px}.empty-state h2,.empty-state p{margin:0}.empty-state h2{color:var(--ink);font-size:20px}.skeleton span{animation:pulse 1.2s ease-in-out infinite;background:#e7ece5;border-radius:999px;display:block;height:14px}@keyframes pulse{0%,to{opacity:.48}50%{opacity:1}}@media(max-width:960px){.login-shell{grid-template-columns:1fr}.login-visual{display:none}.mobile-brand{display:flex}.app-shell{grid-template-columns:1fr}.sidebar{display:none}.workspace{grid-template-rows:58px minmax(0,1fr)}.mobile-menu{color:var(--muted);display:block}.appointments-grid{grid-template-columns:1fr}.side-stack{order:-1}.operator-toolbar{align-items:stretch;grid-template-columns:1fr}.status-field{align-items:stretch;display:grid;gap:6px}.status-field .status-select{flex:1 1 auto;width:100%}.slot-search-panel{grid-template-columns:1fr}}@media(max-width:700px){.login-panel{padding:24px}.topbar{gap:10px;padding:0 14px}.tenant-summary{display:none}.module-page{padding:20px 14px}.module-heading{align-items:stretch;flex-direction:column}.operator-heading h1{font-size:30px}.operator-actions{align-items:stretch}.operator-actions .primary-button,.operator-actions .secondary-button,.operator-actions .select-field,.operator-actions .location-select select{width:100%}.operator-actions .primary-button,.operator-actions .secondary-button{justify-content:center}.stat-strip{grid-template-columns:1fr}.list-tools{align-items:stretch;flex-direction:column}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.search-field{max-width:none;width:100%}.status-select{flex:1 1 auto;width:100%}.form-grid,.slot-controls{grid-template-columns:1fr}.appointment-row{grid-template-columns:minmax(64px,78px) minmax(0,1fr);gap:8px 14px;min-height:92px}.appointment-time strong{font-size:18px}.appointment-contact{font-size:13px;grid-column:2}.appointment-row .status-pill{justify-self:start;grid-column:2}.call-row{grid-template-columns:minmax(64px,78px) minmax(0,1fr);gap:8px 14px;min-height:112px}.call-time strong{font-size:18px}.call-classification,.call-duration,.call-transcript-preview{grid-column:2;justify-self:start}.call-pagination{align-items:stretch;display:grid;grid-template-columns:1fr}.per-page-field,.call-page-controls{align-items:stretch;display:grid;gap:8px;grid-template-columns:1fr}.call-pagination .secondary-button{justify-content:center}.operator-detail-list,.patient-grid{grid-template-columns:1fr}.dialog-overlay{align-items:end;padding:12px}.dialog-panel{max-height:calc(100dvh - 24px);width:100%}.selected-slot{grid-template-columns:auto minmax(0,1fr)}.selected-slot .text-button{grid-column:1 / -1}.user-menu span{display:none}}
