body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f172a;background-color:var(--app-bg,#0f172a);color:#f1f5f9;color:var(--app-text,#f1f5f9);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-theme-shell{background:#0f172a;background:var(--app-bg,#0f172a);color:#f1f5f9;color:var(--app-text,#f1f5f9);min-height:100vh}.tooth-selector{border:1px solid;border-radius:10px;min-width:0;padding:12px}.tooth-selector-actions,.tooth-selector-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.tooth-selector-help,.tooth-selector-selection{font-size:12px;margin-top:4px}.tooth-selector-tabs{display:flex}.tooth-selector-tabs button{border:1px solid;cursor:pointer;font-weight:700;padding:6px 10px}.tooth-selector-tabs button:first-child{border-radius:6px 0 0 6px}.tooth-selector-tabs button:last-child{border-left:0;border-radius:0 6px 6px 0}.tooth-selector-clear{background:#0000;border:0;cursor:pointer;font-weight:700;padding:6px}.tooth-selector-chart{display:block;margin:8px auto 0;max-height:250px;overflow:visible;width:100%}.tooth-selector-tooth{cursor:pointer;outline:none}.tooth-selector-tooth path{stroke-width:1.6;transition:fill .12s ease,stroke .12s ease,filter .12s ease}.tooth-selector-tooth:focus path,.tooth-selector-tooth:hover path{stroke-width:2.5;filter:brightness(1.12)}.tooth-selector-tooth.is-selected path{filter:drop-shadow(0 2px 3px rgb(0 0 0/25%))}.tooth-selector-hit-area{fill:#0000}.tooth-selector-number{text-anchor:middle;font-size:10px;font-weight:800;pointer-events:none}.tooth-selector-orientation{font-size:9px;font-weight:700}.tooth-selector-selection{font-weight:700;text-align:center}@media (max-width:620px){.tooth-selector-header{align-items:flex-start;flex-direction:column}.tooth-selector-actions{width:100%}}.patient-appointments h2,.patient-appointments h3,.patient-appointments p{margin:0}.patient-appointment-card__title,.patient-appointment-group__heading,.patient-appointment-modal__actions,.patient-appointment-modal__header,.patient-appointments__toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between}.patient-appointments__toolbar{margin-bottom:24px}.patient-appointment-card__actions button,.patient-appointment-modal button,.patient-appointments__toolbar button{padding:8px 12px}.patient-appointment-group+.patient-appointment-group{margin-top:28px}.patient-appointment-group__heading{margin-bottom:10px}.patient-appointment-group__heading span{background:#64748b33;border-radius:999px;font-size:12px;font-weight:700;min-width:26px;padding:3px 8px;text-align:center}.patient-appointment-list{grid-gap:10px;display:grid;gap:10px}.patient-appointment-card{display:grid;grid-template-columns:5px minmax(0,1fr) auto;overflow:hidden;position:relative}.patient-appointment-card__accent{min-height:100%}.patient-appointment-card__main{min-width:0;padding:14px 16px}.patient-appointment-card__title{align-items:flex-start}.patient-appointment-card__title strong{display:block;font-size:15px;margin-bottom:4px}.patient-appointment-card__meta,.patient-appointment-card__title div div{font-size:12px}.patient-appointment-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.patient-appointment-badges span{border-radius:999px;font-size:11px;font-weight:700;padding:4px 8px}.payment-status--paid{background:#10b9812e;color:#34d399}.payment-status--partially_paid{background:#f59e0b2e;color:#fbbf24}.payment-status--unpaid{background:#ef44442e;color:#f87171}.payment-status--refunded{background:#6366f12e;color:#818cf8}.patient-appointment-card__meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:10px}.patient-appointment-finance{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(90px,1fr));margin-top:14px}.patient-appointment-finance div{grid-gap:2px;display:grid;gap:2px}.patient-appointment-finance__outstanding strong{color:#ef4444}.patient-appointment-finance small{color:#94a3b8;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.patient-appointment-card__actions{align-items:center;display:flex;gap:6px;padding:14px}.danger-button{background:#dc2626;border:1px solid #dc2626;border-radius:6px;color:#fff;cursor:pointer;font-weight:600}.patient-appointment-empty{padding:18px;text-align:center}.patient-appointment-error{background:#7f1d1d33;border:1px solid #ef4444;border-radius:6px;color:#fca5a5;margin-bottom:16px;padding:10px 12px}.patient-appointment-modal{background:#020617b8;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:1000}.patient-appointment-modal__dialog{max-height:calc(100vh - 40px);overflow-y:auto;padding:20px;width:min(640px,100%)}.patient-appointment-modal__header{margin-bottom:18px}.patient-appointment-modal__header button{font-size:20px;line-height:1;min-width:38px}.patient-appointment-form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.patient-appointment-form-grid label{grid-gap:6px;display:grid;font-size:12px;font-weight:700;gap:6px}.patient-appointment-form-grid input,.patient-appointment-form-grid textarea{box-sizing:border-box;min-height:40px;padding:8px 10px;width:100%}.patient-appointment-form-grid textarea{min-height:84px;resize:vertical}.patient-appointment-form-grid__wide{grid-column:1/-1}.patient-appointment-treatment{margin-top:16px;padding:12px}.patient-appointment-checkbox{align-items:center;display:flex;font-weight:700;gap:8px;margin-bottom:12px}.patient-appointment-modal__actions{justify-content:flex-end;margin-top:20px}@media (max-width:720px){.patient-appointments__toolbar{align-items:flex-start}.patient-appointment-card{grid-template-columns:5px minmax(0,1fr)}.patient-appointment-card__actions{grid-column:2;justify-content:flex-end;padding-top:0}.patient-appointment-card__title{display:grid}.patient-appointment-badges{justify-content:flex-start}.patient-appointment-form-grid{grid-template-columns:1fr}.patient-appointment-form-grid__wide{grid-column:auto}}@media (max-width:480px){.patient-appointment-finance{grid-template-columns:1fr}}.patient-profile-page{margin:0 auto;max-width:1200px;padding:24px}.patient-profile-header{grid-gap:20px;display:grid;gap:20px;grid-template-columns:auto minmax(0,1fr) minmax(260px,340px);padding:20px;position:relative}.patient-profile-back{align-self:start;padding:8px 12px}.patient-profile-identity{align-items:center;display:flex;gap:16px;min-width:0}.patient-profile-avatar,.patient-profile-identity img{border-radius:18px;flex:0 0 88px;height:88px;object-fit:cover;width:88px}.patient-profile-avatar{display:grid;font-size:34px;font-weight:800;place-items:center}.patient-profile-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.patient-profile-title-row h1{font-size:clamp(22px,3vw,30px);margin:0}.patient-profile-status{border-radius:999px;font-size:11px;font-weight:800;padding:4px 9px;text-transform:uppercase}.patient-profile-contact{display:flex;flex-wrap:wrap;font-size:13px;gap:6px 16px;margin-top:8px}.patient-profile-controls{grid-gap:12px;display:grid;gap:12px}.patient-profile-controls label{grid-gap:5px;display:grid;font-size:11px;font-weight:700;gap:5px;text-transform:uppercase}.patient-profile-controls label>div{display:flex;gap:6px}.patient-profile-controls input,.patient-profile-controls select{box-sizing:border-box;min-width:0;padding:8px 10px;width:100%}.patient-profile-controls button{padding:8px 10px;white-space:nowrap}.patient-profile-message{font-size:12px;grid-column:3}.patient-profile-critical{background:#7f1d1d38;border:1px solid #dc2626;border-radius:7px;color:#fca5a5;display:flex;gap:10px;grid-column:1/-1;padding:10px 12px}.patient-profile-tabs{border-bottom:1px solid;display:flex;gap:4px;margin:20px 0;overflow-x:auto}.patient-profile-tabs button{background:#0000;border:0;border-bottom:3px solid;cursor:pointer;font-weight:700;padding:10px 14px;white-space:nowrap}.patient-profile-error,.patient-profile-warning{border-radius:7px;margin-bottom:16px;padding:10px 12px}.patient-profile-warning{background:#78350f2e;border:1px solid #f59e0b;color:#fbbf24}.patient-profile-warning button{margin-left:10px}.patient-profile-error{background:#7f1d1d33;border:1px solid #ef4444;color:#fca5a5}.patient-profile-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.patient-profile-metrics>div{grid-gap:8px;display:grid;gap:8px;min-height:72px;padding:14px}.patient-profile-metrics span{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.patient-profile-metrics strong{font-size:18px}.patient-profile-metrics--finance{grid-template-columns:repeat(2,minmax(0,240px))}.metric-good{color:#10b981}.metric-danger,.metric-warning{color:#ef4444}.patient-overview-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.patient-overview-card{min-width:0;padding:16px}.patient-overview-card__heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.patient-overview-card h3{font-size:14px;margin:0}.patient-overview-card__heading button{background:#0000;border:0;cursor:pointer;font-size:12px;font-weight:700}.patient-profile-basic-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.patient-profile-info{grid-gap:3px;display:grid;gap:3px;min-width:0}.patient-profile-info span{font-size:10px;font-weight:700;text-transform:uppercase}.patient-profile-info strong{font-size:13px;overflow-wrap:anywhere}.patient-allergy-summary,.patient-story-summary,.patient-treatment-summary{grid-gap:10px;display:grid;gap:10px}.patient-allergy-summary>div{grid-gap:5px 9px;align-items:center;display:grid;gap:5px 9px;grid-template-columns:auto minmax(0,1fr)}.patient-allergy-summary small{grid-column:2}.allergy-level{border-radius:5px;font-size:9px;font-weight:800;padding:3px 6px;text-transform:uppercase}.allergy-level--critical,.allergy-level--high{background:#ef44442e;color:#f87171}.allergy-level--moderate{background:#f59e0b2e;color:#fbbf24}.allergy-level--low{background:#10b9812e;color:#34d399}.patient-story-summary>div,.patient-treatment-summary>div{border-bottom:1px solid #94a3b833;padding-bottom:9px}.patient-story-summary>div:last-child,.patient-treatment-summary>div:last-child{border-bottom:0;padding-bottom:0}.patient-treatment-summary>div>div{display:flex;font-size:12px;gap:12px;justify-content:space-between}.patient-treatment-summary>div>div+div{margin-top:6px}.patient-next-appointment{grid-gap:6px;display:grid;gap:6px}.patient-general-notes{line-height:1.55;white-space:pre-wrap}.patient-story-summary span{font-size:11px}.patient-story-summary p{-webkit-box-orient:vertical;-webkit-line-clamp:2;display:-webkit-box;margin:4px 0 0;overflow:hidden}.patient-overview-empty{padding:16px 0;text-align:center}.patient-profile-section-stack{grid-gap:18px;display:grid;gap:18px}.patient-profile-section-stack>section{overflow-x:auto;padding:18px}.patient-profile-section-stack>section>h2{font-size:17px;margin:0 0 14px}.patient-profile-section-stack section>div{margin-top:0}@media (max-width:960px){.patient-profile-header{grid-template-columns:auto minmax(0,1fr)}.patient-profile-controls{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.patient-profile-message{grid-column:1/-1}.patient-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.patient-profile-page{padding:12px}.patient-profile-header{grid-template-columns:1fr;padding:14px}.patient-profile-back{justify-self:start}.patient-overview-grid,.patient-profile-controls,.patient-profile-metrics,.patient-profile-metrics--finance{grid-column:auto;grid-template-columns:1fr}.patient-profile-identity{align-items:flex-start}.patient-profile-avatar,.patient-profile-identity img{border-radius:13px;flex-basis:64px;height:64px;width:64px}.patient-profile-contact{display:grid}}@media (max-width:420px){.patient-profile-identity{display:grid}.patient-profile-controls{display:grid;grid-template-columns:1fr}.patient-profile-basic-grid{grid-template-columns:1fr}}.appointment-lifecycle-stepper{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 4px 4px;width:100%}.appointment-lifecycle-step{--lifecycle-accent:#64748b;align-items:center;background:#0000;border:0;border-radius:8px;color:#94a3b8;color:var(--lifecycle-muted,#94a3b8);cursor:default;display:flex;flex-direction:column;font:inherit;gap:7px;min-width:0;padding:4px 8px;position:relative;transition:color .14s ease,background-color .14s ease}.appointment-lifecycle-step:not(:first-child):before{background:#334155;background:var(--lifecycle-border,#334155);content:"";height:3px;left:calc(-50% + 20px);position:absolute;right:calc(50% + 20px);top:20px;transform:translateY(-50%);transition:background-color .14s ease;z-index:0}.appointment-lifecycle-step[data-reached=true]:not(:first-child):before{background:var(--lifecycle-accent)}.appointment-lifecycle-marker{background:#0f172a;background:var(--lifecycle-surface,#0f172a);border:2px solid #475569;border:2px solid var(--lifecycle-border,#475569);border-radius:50%;box-shadow:0 0 0 4px #0f172a;box-shadow:0 0 0 4px var(--lifecycle-surface,#0f172a);box-sizing:border-box;color:#94a3b8;color:var(--lifecycle-muted,#94a3b8);display:grid;font-size:13px;font-weight:800;height:32px;line-height:1;place-items:center;position:relative;transition:transform .14s ease,border-color .14s ease,background-color .14s ease,color .14s ease;width:32px;z-index:1}.appointment-lifecycle-label{color:inherit;font-size:13px;font-weight:700;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-lifecycle-step[data-state=active]{color:#f8fafc;color:var(--lifecycle-text,#f8fafc)}.appointment-lifecycle-step[data-state=active] .appointment-lifecycle-marker,.appointment-lifecycle-step[data-state=complete] .appointment-lifecycle-marker{background:var(--lifecycle-accent);border-color:var(--lifecycle-accent);color:#fff}.appointment-lifecycle-step[data-state=active] .appointment-lifecycle-marker{transform:scale(1.08)}.appointment-lifecycle-step:not(:disabled){cursor:pointer}.appointment-lifecycle-step:not(:disabled):hover{background:#94a3b81a;background:var(--lifecycle-hover,#94a3b81a);color:#f8fafc;color:var(--lifecycle-text,#f8fafc)}.appointment-lifecycle-step:not(:disabled):hover .appointment-lifecycle-marker{transform:scale(1.1)}.appointment-lifecycle-step:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.appointment-lifecycle-step:disabled{opacity:.72}.appointment-lifecycle-stepper[aria-busy=true]{cursor:progress}.calendar-modal-overlay{align-items:flex-start;background:#000000b3;box-sizing:border-box;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.calendar-modal-shell{border-radius:8px;box-sizing:border-box;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:min(860px,calc(100vh - 32px));max-height:calc(100vh - 32px);overflow:hidden;width:min(1120px,calc(100vw - 32px))}.calendar-modal-header{padding:16px 18px 12px}.calendar-modal-header,.calendar-modal-tabs{border-bottom:1px solid #334155;border-bottom:1px solid var(--calendar-modal-border,#334155);min-width:0}.calendar-modal-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 18px}.calendar-modal-body{min-height:0;overflow:auto;padding:16px 18px}.calendar-modal-footer{border-top:1px solid #334155;border-top:1px solid var(--calendar-modal-border,#334155);display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:12px 18px}.calendar-modal-close{position:absolute;right:12px;top:12px}.calendar-modal-compact-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-modal-grid-table{min-width:720px;overflow-x:auto}.appointment-modal-with-top-stepper .appointment-lifecycle-stepper{left:24px;position:absolute;right:56px;top:16px;width:auto}@media (max-width:560px){.calendar-modal-overlay{padding:8px}.calendar-modal-shell{height:calc(100vh - 16px);max-height:calc(100vh - 16px);width:calc(100vw - 16px)}.calendar-modal-body,.calendar-modal-footer,.calendar-modal-header,.calendar-modal-tabs{padding-inline:12px}.calendar-modal-compact-grid{grid-template-columns:1fr}.appointment-modal-with-top-stepper .appointment-lifecycle-stepper{left:12px;right:44px}.appointment-lifecycle-step{padding-inline:3px}.appointment-lifecycle-label{font-size:11px}.appointment-lifecycle-marker{height:29px;width:29px}.appointment-lifecycle-step:not(:first-child):before{left:calc(-50% + 18.5px);right:calc(50% + 18.5px);top:18.5px}}.home-dashboard{background:var(--dashboard-bg);box-sizing:border-box;color:var(--dashboard-text);height:100vh;min-height:100%;overflow:auto;padding:24px}.home-dashboard-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.home-dashboard-empty h2,.home-dashboard-header h1{margin:0}.home-dashboard-date{color:var(--dashboard-muted);font-size:14px;margin-top:4px}.dashboard-button{border-radius:7px;cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:9px 14px}.dashboard-button:disabled{cursor:progress;opacity:.6}.dashboard-button:focus-visible,.timeline-note button:focus-visible{outline:2px solid var(--dashboard-primary);outline-offset:2px}.dashboard-button-primary{background:var(--dashboard-primary);border:1px solid var(--dashboard-primary);color:var(--dashboard-primary-text)}.dashboard-button-secondary{background:var(--dashboard-surface-alt);border:1px solid var(--dashboard-border);color:var(--dashboard-text)}.home-dashboard-error,.home-dashboard-refresh-error{color:#dc2626}.home-dashboard-refresh-error{background:color-mix(in srgb,#dc2626 10%,var(--dashboard-surface));border:1px solid #dc2626;border-radius:8px;margin-bottom:16px;padding:10px 12px}.home-dashboard-empty{background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:16px;box-shadow:var(--dashboard-shadow);padding:32px;text-align:center}.home-dashboard-empty p{color:var(--dashboard-muted)}.dashboard-summary{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(5,minmax(120px,1fr));margin-bottom:24px}.dashboard-summary-card{background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:10px;box-shadow:var(--dashboard-shadow);display:flex;flex-direction:column;gap:3px;min-width:0;padding:14px}.dashboard-summary-card strong{font-size:24px;line-height:1}.dashboard-summary-card span{color:var(--dashboard-muted);font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-timeline{margin:0 auto;max-width:1100px}.timeline-entry,.timeline-now{display:grid;grid-template-columns:82px 28px minmax(0,1fr)}.timeline-time{align-items:flex-end;display:flex;flex-direction:column;padding:17px 10px 24px 0}.timeline-time time{color:var(--dashboard-text);font-size:15px;font-weight:800}.timeline-time span{color:var(--dashboard-muted);font-size:11px;margin-top:2px}.timeline-rail{display:flex;justify-content:center;position:relative}.timeline-rail:after{background:var(--dashboard-border);bottom:0;content:"";position:absolute;top:0;width:2px}.timeline-rail span{background:var(--appointment-color);border:3px solid var(--dashboard-surface);border-radius:50%;box-shadow:0 0 0 2px var(--appointment-color);height:12px;margin-top:21px;position:relative;width:12px;z-index:1}.timeline-card{background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-left:4px solid var(--appointment-color);border-radius:11px;box-shadow:var(--dashboard-shadow);margin-bottom:14px;padding:16px}.timeline-entry.is-active .timeline-card{border-color:var(--dashboard-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--dashboard-primary) 25%,#0000),var(--dashboard-shadow)}.timeline-entry.is-past:not(.is-active) .timeline-card{background:var(--dashboard-subtle)}.timeline-entry.is-subdued{opacity:.62}.timeline-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.timeline-card-header h2{color:var(--dashboard-text);font-size:18px;margin:0}.timeline-reason{color:var(--dashboard-text);font-size:14px;margin-top:3px}.timeline-flag,.timeline-status{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:800;padding:4px 9px;width:fit-content}.timeline-status{background:var(--dashboard-surface-alt);color:var(--dashboard-text);flex-shrink:0}.status-arrived,.status-seated{background:#f59e0b;color:#111827}.status-ready_for_checkout{background:#ec4899;color:#fff}.status-completed{background:#16a34a;color:#fff}.status-canceled{background:#991b1b;color:#fff}.timeline-actions,.timeline-alerts,.timeline-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.timeline-meta{color:var(--dashboard-muted);font-size:12px;margin-top:10px}.timeline-alerts{margin-top:12px}.timeline-flag-danger,.timeline-flag-debt{background:color-mix(in srgb,#dc2626 14%,var(--dashboard-surface));border:1px solid #dc2626;color:#ef4444}.timeline-flag-waiting{background:color-mix(in srgb,#ca8a04 14%,var(--dashboard-surface));border:1px solid #ca8a04;color:#eab308}.timeline-notes{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:12px}.timeline-note{background:var(--dashboard-input);border:1px solid var(--dashboard-border);border-radius:8px;padding:10px 12px}.timeline-note strong{font-size:11px;letter-spacing:.04em;text-transform:uppercase}.timeline-note p{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--dashboard-text);display:-webkit-box;font-size:13px;line-height:1.4;margin:5px 0 0;overflow:hidden}.timeline-note p.is-expanded{display:block;overflow:visible}.timeline-note button{background:#0000;border:0;color:var(--dashboard-primary);cursor:pointer;font:inherit;font-size:12px;font-weight:700;margin-top:5px;padding:0}.timeline-checkout-note{border-color:#ec4899}.timeline-actions{justify-content:flex-end;margin-top:14px}.timeline-now{align-items:center;color:#ef4444;min-height:36px}.timeline-now time{font-size:12px;font-weight:800;padding-right:10px;text-align:right}.timeline-now>span{background:#ef4444;border:3px solid var(--dashboard-bg);border-radius:50%;box-shadow:0 0 0 2px #ef4444;height:12px;margin:auto;position:relative;width:12px;z-index:2}.timeline-now strong{font-size:11px;letter-spacing:.06em;position:relative;text-transform:uppercase}.timeline-now strong:before{background:#ef4444;content:"";height:2px;margin-right:7px;position:absolute;right:100%;top:50%;width:14px}@media (max-width:900px){.dashboard-summary{grid-template-columns:repeat(3,minmax(120px,1fr))}}@media (max-width:640px){.home-dashboard{padding:16px 10px}.home-dashboard-header{align-items:flex-start}.home-dashboard-header h1{font-size:22px}.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-entry,.timeline-now{grid-template-columns:58px 22px minmax(0,1fr)}.timeline-time{padding-right:6px}.timeline-time time{font-size:12px}.timeline-card{padding:12px}.timeline-card-header{flex-direction:column;gap:7px}.timeline-actions{align-items:stretch;flex-direction:column}}.treatment-catalog-workspace{grid-gap:14px;box-sizing:border-box;display:grid;gap:14px;grid-template-rows:auto minmax(0,1fr);height:calc(100vh - 48px);min-height:640px;overflow:hidden;padding:18px}.treatment-catalog-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between}.treatment-catalog-heading{grid-gap:8px;display:grid;gap:8px}.treatment-catalog-total{border-radius:999px;flex:0 0 auto;font-size:12px;font-weight:700;padding:7px 11px}.treatment-catalog-status{border-radius:8px;font-size:13px;font-weight:600}.treatment-catalog-layout{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(360px,420px) minmax(0,1fr);min-height:0}.treatment-catalog-editor{grid-gap:12px;align-content:start;display:grid;gap:12px;min-height:0;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.treatment-catalog-section{grid-gap:12px;border-radius:10px;display:grid;gap:12px;padding:14px}.treatment-specialty-form,.treatment-template-form{grid-gap:10px;display:grid;gap:10px}.treatment-specialty-form{grid-template-columns:minmax(110px,.8fr) minmax(150px,1.2fr)}.treatment-specialty-actions{display:flex;gap:8px;grid-column:1/-1}.treatment-doctor-options,.treatment-specialty-chips{display:flex;flex-wrap:wrap;gap:8px}.treatment-template-fields{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.treatment-template-footer{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto auto}.treatment-catalog-browser{border-radius:10px;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;min-width:0;overflow:hidden}.treatment-catalog-toolbar{align-items:end;display:flex;gap:18px;justify-content:space-between;padding:14px 16px;z-index:1}.treatment-catalog-filter{grid-gap:9px;align-items:center;display:grid;font-size:12px;font-weight:600;gap:9px;grid-template-columns:auto minmax(180px,250px)}.treatment-catalog-results{grid-gap:18px;align-content:start;display:grid;gap:18px;min-height:0;overflow-y:auto;padding:16px;scrollbar-gutter:stable}.treatment-catalog-group{grid-gap:9px;display:grid;gap:9px}.treatment-catalog-group-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.treatment-catalog-group-heading span{font-size:12px;font-weight:700}.treatment-catalog-cards{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.treatment-catalog-card{grid-gap:12px;align-items:start;border-radius:9px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:12px}.treatment-catalog-card-copy{min-width:0}.treatment-catalog-financials{font-size:12px;line-height:1.45;margin-top:7px}.treatment-catalog-card-actions{display:flex;gap:6px}.treatment-catalog-control{transition:border-color .14s ease,box-shadow .14s ease}.treatment-catalog-control:focus-visible{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f633;outline:none}.treatment-catalog-button{transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.treatment-catalog-button:not(:disabled):hover{filter:brightness(1.08)}.treatment-catalog-button:not(:disabled):active{transform:translateY(1px)}.treatment-catalog-button:focus-visible{box-shadow:0 0 0 3px #3b82f640;outline:none}@media (max-width:960px){.treatment-catalog-workspace{grid-template-rows:auto auto;height:auto;min-height:0;overflow:visible}.treatment-catalog-layout{grid-template-columns:minmax(0,1fr)}.treatment-catalog-editor{overflow:visible;padding-right:0}.treatment-catalog-browser{min-height:620px}}@media (max-width:620px){.treatment-catalog-workspace{padding:12px}.treatment-catalog-header,.treatment-catalog-toolbar{align-items:stretch;flex-direction:column}.treatment-catalog-total{align-self:flex-start}.treatment-catalog-card,.treatment-catalog-filter,.treatment-specialty-form,.treatment-template-fields,.treatment-template-footer{grid-template-columns:minmax(0,1fr)}.treatment-catalog-filter{align-items:stretch}.treatment-catalog-card-actions{justify-content:flex-end}.treatment-catalog-cards{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.treatment-catalog-button,.treatment-catalog-control{transition:none}}*,:after,:before{box-sizing:border-box}button,input,select,textarea{font:inherit}button,summary{cursor:pointer}:focus-visible{outline:3px solid #667eea;outline:3px solid var(--app-primary,#667eea);outline-offset:3px}.app-theme-shell{grid-template-columns:240px minmax(0,1fr)}.app-theme-shell.nav-collapsed{grid-template-columns:60px minmax(0,1fr)}.app-navigation{width:240px}.nav-collapsed .app-navigation{width:60px}.app-navigation>button{background:#0000;border:0;font:inherit;text-align:left}.app-navigation button{flex-shrink:0}.app-content{min-width:0;padding:24px}.app-content.calendar-content{padding:0}.app-content>*{max-width:100%;min-width:0}.phone-header,.phone-patient-sort{display:none}.responsive-grid>*,.responsive-row{min-width:0}.responsive-table-scroll{max-width:100%;min-width:0;overflow-x:auto}.responsive-table-scroll>table{width:100%}.calendar-context-menu{max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px);overflow-y:auto}.calendar-context-menu>button{background:#0000;border:0;display:flex;text-align:left;width:100%}@media (min-width:768px){.calendar-options>summary{display:none}}.calendar-page{height:100vh;height:100dvh;min-width:0}.calendar-toolbar{flex-shrink:0;flex-wrap:wrap}.calendar-options{min-width:0}.calendar-options summary{padding:8px}.calendar-options-content{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.calendar-grid-row{min-width:0}.calendar-tip{white-space:normal!important}.calendar-search-field{min-width:0}.calendar-search-field input{max-width:100%}.nav-backdrop{background:#0008;inset:0;position:fixed;z-index:3000}.responsive-modal-backdrop{box-sizing:border-box}@media (min-width:768px) and (max-width:1023px){.desktop-nav-toggle{display:none!important}.app-content{padding:16px}}@media (max-width:767px){.app-theme-shell,.app-theme-shell.nav-collapsed{display:block!important}.phone-header{align-items:center;display:flex;gap:16px;min-height:60px;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left))}.phone-header button{background:#0000;border:1px solid;border-radius:6px;color:inherit;padding:8px 12px}.app-navigation{display:none!important}.app-navigation.is-open{display:flex!important;height:100dvh;inset:0 auto 0 0;overflow-y:auto!important;padding-bottom:max(16px,env(safe-area-inset-bottom))!important;position:fixed;width:min(320px,calc(100vw - 32px));z-index:3001}.desktop-nav-toggle{display:none!important}.app-content{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.app-content>:not(.calendar-page){padding:8px!important}.app-content,.login-page,.responsive-modal-backdrop{overflow-wrap:anywhere}.responsive-row{flex-wrap:wrap!important;gap:8px}.responsive-row>*{max-width:100%;min-width:0}.responsive-grid{grid-template-columns:minmax(0,1fr)!important}.app-content input:not([type=checkbox]):not([type=radio]),.app-content select,.app-content textarea,.login-page input,.responsive-modal-backdrop input:not([type=checkbox]):not([type=radio]),.responsive-modal-backdrop select,.responsive-modal-backdrop textarea{font-size:16px!important;max-width:100%;min-width:0!important}button,input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,summary{min-height:44px}button,select{min-width:44px}button{white-space:normal}label:has(input[type=checkbox]),label:has(input[type=radio]){align-items:center;display:inline-flex;min-height:44px}.login-page{min-height:100dvh!important;padding:16px!important}.login-card{padding:24px 16px!important}.responsive-modal-backdrop{align-items:stretch!important;overflow-y:auto;padding:0!important}.responsive-modal-backdrop>:is(div,section,aside,form){border-radius:0!important;margin:0!important;max-height:100dvh!important;max-width:100%!important;min-height:100dvh;overflow-y:auto;padding:16px 16px max(16px,env(safe-area-inset-bottom))!important;width:100%!important}.responsive-modal-backdrop form>.responsive-row>:is(input,select,label){flex-basis:100%!important}.phone-patient-sort{align-items:end;display:flex;gap:8px;padding:8px}.phone-patient-sort label{grid-gap:4px;display:grid;gap:4px}.phone-card-table,.phone-card-table tbody{display:block;width:100%}.phone-card-table thead{display:none}.phone-card-table tr{border:1px solid #64748b;border:1px solid var(--app-border,#64748b);border-radius:8px;display:block;margin-bottom:12px;padding:8px}.phone-card-table td{grid-gap:8px;border-right:0!important;display:grid;gap:8px;grid-template-columns:minmax(80px,35%) minmax(0,1fr);overflow:visible!important;text-align:left!important;white-space:normal!important;width:100%}.phone-card-table td:before{content:attr(data-label);font-weight:600}.phone-card-table td>*{max-width:100%;min-width:0}.calendar-active .phone-header{display:none}.calendar-page{font-size:1rem!important;height:100dvh;overflow:hidden!important}.calendar-toolbar{gap:8px!important;margin-bottom:8px!important}.calendar-options{width:100%}.calendar-options-content{flex-direction:column}.calendar-options-content>*{max-width:100%}.calendar-options-content label{white-space:normal!important}.calendar-search-field{width:100%}.calendar-search-field input{width:100%!important}.calendar-tip{display:none}.calendar-body{flex-direction:column;gap:0!important;min-height:0}.calendar-main{min-height:0}.phone-cal-sheet .calendar-options summary{font-weight:600}.phone-cal-sheet [draggable]{min-height:44px!important;white-space:normal!important}.calendar-context-menu{inset:auto 12px max(12px,env(safe-area-inset-bottom)) 12px!important}.calendar-modal-shell{height:100dvh!important;min-height:0!important;padding:0!important}.calendar-modal-compact-grid{grid-template-columns:minmax(0,1fr)!important}.calendar-modal-grid-table{min-width:0!important}}.phone-cal-header{align-items:center;display:flex;flex-shrink:0;gap:2px;min-height:56px;padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) 4px max(4px,env(safe-area-inset-left))}.phone-cal-icon{align-items:center;background:#0000;border:0;border-radius:50%;color:inherit;display:inline-flex;flex-shrink:0;height:44px;justify-content:center;min-width:44px;padding:0;width:44px}.phone-cal-icon:active{background:#7f7f7f33}.phone-cal-title{align-items:center;background:#0000;border:0;display:inline-flex;flex:1 1;font-size:20px;font-weight:500;gap:2px;min-width:0;padding:0 8px;text-align:left;white-space:nowrap!important}.phone-cal-title>span{overflow:hidden;text-overflow:ellipsis}.phone-cal-today-glyph{align-items:flex-end;border:2px solid;border-radius:4px;border-top:5px solid;display:inline-flex;font-size:11px;font-weight:700;height:22px;justify-content:center;line-height:1;padding-bottom:1px;width:22px}.phone-cal-search{background:#0000;border:0;flex:1 1;font-size:18px!important;height:44px;min-width:0;outline:none}.phone-cal-picker{display:flex;flex-shrink:0;justify-content:center;padding:8px 16px 0}.phone-cal-picker>div{max-width:360px;width:100%!important}.phone-cal-day-header{display:flex;flex-shrink:0}.phone-cal-day-cell{align-items:center;background:#0000;border:0;color:inherit;display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0;padding:6px 0}button.phone-cal-day-cell{min-height:0}.phone-cal-weekday{font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.phone-cal-daynum{align-items:center;border-radius:50%;display:inline-flex;font-size:18px;font-weight:500;height:32px;justify-content:center;width:32px}.phone-cal-slide-next{animation:phone-cal-slide-next .16s ease-out}.phone-cal-slide-prev{animation:phone-cal-slide-prev .16s ease-out}@keyframes phone-cal-slide-next{0%{opacity:.4;transform:translateX(8%)}to{opacity:1;transform:none}}@keyframes phone-cal-slide-prev{0%{opacity:.4;transform:translateX(-8%)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.phone-cal-slide-next,.phone-cal-slide-prev{animation:none}}.phone-cal-schedule{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:0 12px calc(96px + env(safe-area-inset-bottom))}.phone-cal-month-label{font-size:15px;font-weight:600;padding:20px 4px 8px 60px;text-transform:capitalize}.phone-cal-schedule-day{display:flex;gap:8px;padding:6px 0}.phone-cal-schedule-date{align-items:center;align-self:flex-start;background:#0000;border:0;color:inherit;display:flex;flex-direction:column;flex-shrink:0;gap:2px;padding:2px 0;width:52px}button.phone-cal-schedule-date{min-height:0}.phone-cal-schedule-items{display:flex;flex:1 1;flex-direction:column;gap:6px;min-width:0}.phone-cal-card{align-items:flex-start;border-radius:8px;display:flex;flex-direction:column;font-size:14px;gap:2px;min-height:48px;padding:8px 12px;text-align:left;width:100%}.phone-cal-card-title{align-items:center;display:flex;font-weight:600;gap:6px}.phone-cal-card-meta,.phone-cal-card-title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phone-cal-card-meta{font-size:12px;opacity:.9}.phone-cal-badge{border-radius:8px;flex-shrink:0;font-size:10px;font-weight:800;padding:0 5px}.phone-cal-empty{padding:32px 16px;text-align:center}.phone-cal-load-more{display:flex;justify-content:center;padding:16px 0}.phone-cal-load-more button{background:#0000;border:0;font-weight:600}.phone-cal-month{display:flex;flex-direction:column;height:100%}.phone-cal-month-weekdays{flex-shrink:0;font-size:11px;font-weight:600;padding:6px 0;text-align:center}.phone-cal-month-grid,.phone-cal-month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.phone-cal-month-grid{flex:1 1;min-height:0}.phone-cal-month-cell{align-items:stretch;background:#0000;border:0;border-bottom:1px solid;border-radius:0;border-right:1px solid;display:flex;flex-direction:column;gap:2px;justify-content:flex-start;min-height:0!important;min-width:0!important;overflow:hidden;padding:2px 1px;text-align:center}.phone-cal-month-cell:nth-child(7n){border-right:0}.phone-cal-month-daynum{align-items:center;align-self:center;border-radius:50%;display:inline-flex;font-size:12px;font-weight:500;height:22px;justify-content:center;width:22px}.phone-cal-month-chip{border-radius:3px;display:block;font-size:10px;line-height:1.3;overflow:hidden;padding:1px 2px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.phone-cal-month-more{font-size:10px;padding-left:2px;text-align:left}.phone-cal-fab-scrim{background:#00000059;inset:0;position:fixed;z-index:1190}.phone-cal-fab-wrap{bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));gap:12px;position:fixed;right:max(16px,env(safe-area-inset-right));z-index:1200}.phone-cal-fab-options,.phone-cal-fab-wrap{align-items:flex-end;display:flex;flex-direction:column}.phone-cal-fab-options{gap:10px}.phone-cal-fab-options button{border:0;border-radius:24px;font-weight:600;padding:10px 18px}.phone-cal-fab{align-items:center;border:0;border-radius:16px;box-shadow:0 3px 10px #00000059;display:inline-flex;height:56px;justify-content:center;width:56px}.phone-cal-sheet-backdrop{background:#00000073;inset:0;position:fixed;z-index:1300}.phone-cal-sheet{animation:phone-cal-sheet-in .18s ease-out;border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -4px 16px #0000004d;left:0;max-height:85dvh;overflow-y:auto;padding:8px 16px max(16px,env(safe-area-inset-bottom));position:fixed;right:0;z-index:1301}@keyframes phone-cal-sheet-in{0%{opacity:.5;transform:translateY(40%)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.phone-cal-sheet{animation:none}}.phone-cal-sheet-handle{border-radius:2px;height:4px;margin:0 auto 12px;width:36px}.phone-cal-sheet-views{display:flex;flex-direction:column;gap:2px}.phone-cal-sheet-views button{align-items:center;border:0;border-radius:24px;display:flex;font-size:15px;font-weight:500;padding:0 16px;text-align:left;width:100%}.phone-cal-sheet-undated{margin-top:8px}.phone-cal-sheet-close{background:#0000;border:0;font-weight:600;margin-top:12px;width:100%}
/*# sourceMappingURL=main.43775577.css.map*/