:root{color-scheme:light;--bg: #0f1c2e;--bg-soft: #12243b;--surface: #ffffff;--surface-muted: #f1f4f8;--ink: #111826;--ink-soft: #465064;--accent: #1db3a6;--accent-dark: #0d8f86;--line: #d6dee9;--shadow: 0 20px 60px rgba(10, 23, 40, .25);--radius: 18px}*,*:before,*:after{box-sizing:border-box}html{min-height:100%;-webkit-text-size-adjust:100%;overflow-y:auto}body{margin:0;font-family:Space Grotesk,sans-serif;color:var(--ink);background:radial-gradient(circle at top,#1d385d,#0c1626 55%);min-height:100vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}app-root{display:block;min-height:100vh;overflow:visible}.page{position:relative;width:100%;max-width:none;margin-inline:auto;padding:56px clamp(20px,5vw,80px) 80px;overflow-x:clip;overflow-y:visible;touch-action:pan-y;isolation:isolate}.page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 15%,rgba(29,179,166,.22),transparent 55%),radial-gradient(circle at 85% 10%,rgba(96,130,210,.2),transparent 60%),linear-gradient(120deg,rgba(255,255,255,.05),transparent 50%);pointer-events:none}.top-nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px;color:#f8fbff}.top-nav-mobile-search{display:none}.brand{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.9rem}.nav-links{position:absolute;left:50%;transform:translate(-50%);display:flex;gap:12px;white-space:nowrap;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px #ffffff0a;border-radius:999px;padding:6px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.top-nav>.profile-button:nth-last-child(2){margin-left:auto}.top-nav>.profile-button+.profile-button{margin-left:16px}.profile-button{border:none;background:transparent;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.profile-avatar{width:38px;height:38px;border-radius:50%;background:#fff3;color:#f8fbff;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);transition:transform .2s ease,background .2s ease}.profile-avatar svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none}.profile-button:hover .profile-avatar{transform:translateY(-1px);background:#ffffff4d}.nav-link{color:#f8fbff;text-decoration:none;font-size:.85rem;padding:8px 16px;border-radius:999px;border:1px solid transparent;transition:background .2s ease,color .2s ease,border-color .2s ease}.nav-link:hover{background:#fff3;border-color:#ffffff2e}.nav-link.is-active{background:#ffffff29;border-color:#ffffff4d;box-shadow:inset 0 1px #ffffff14}.hero-compact{grid-template-columns:minmax(0,1fr) minmax(240px,.6fr)}.hero-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.sticky-save{display:none}.save-toast{position:fixed;right:110px;bottom:42px;background:#0f6f68;color:#fff;padding:10px 16px;border-radius:999px;font-size:.9rem;opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:5}.save-toast.is-visible{opacity:1}.subnav{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 24px;padding:6px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px #ffffff0a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:fit-content;position:relative;z-index:1}.subnav-link{color:#f8fbff;text-decoration:none;font-size:.85rem;padding:8px 16px;border-radius:999px;border:1px solid transparent;transition:background .2s ease,color .2s ease,border-color .2s ease}.subnav-link:hover{background:#fff3;border-color:#ffffff2e}.subnav-link.is-active{background:#ffffff29;border-color:#ffffff4d;box-shadow:inset 0 1px #ffffff14;color:#fff}.hero{display:grid;gap:24px;grid-template-columns:minmax(0,1.1fr) minmax(240px,.7fr);align-items:center;color:#f8fbff;margin-bottom:28px;animation:fadeUp .8s ease-out}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.7rem;color:#ffffffb3}h1{font-size:clamp(1.8rem,2.6vw,2.7rem);margin:12px 0;line-height:1.05}.subhead{font-size:.98rem;color:#fffc;max-width:520px}.hero-card{background:#ffffff1a;border-radius:var(--radius);padding:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;gap:16px;box-shadow:var(--shadow)}.metric{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:12px}.metric:last-child{border-bottom:none;padding-bottom:0}.metric-label{font-size:.85rem;color:#ffffffb3}.metric-value{font-size:1.8rem;font-weight:600}.layout{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:28px;align-items:start}.panel{background:var(--surface);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);position:relative;z-index:1}.panel h2{margin-top:0;margin-bottom:6px;font-size:1.4rem}.form{display:grid;gap:16px}.field{display:grid;gap:8px}.field-group{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.field-group.inline-actions{display:flex;flex-wrap:nowrap;gap:10px;align-items:center}.field-group.inline-actions select{flex:1;min-width:180px}.field-group.inline-actions .ghost{white-space:nowrap}label{font-weight:500;color:var(--ink-soft)}input,select,textarea{font-family:inherit;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-muted);font-size:.95rem;transition:border .2s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1db3a633;outline:none;background:#fff}.primary{border:none;padding:14px 18px;border-radius:14px;background:linear-gradient(120deg,var(--accent),#38d6ca);color:#042522;font-family:inherit;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 16px 30px #1db3a659;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary:hover{transform:translateY(-2px)}.primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.entries{display:grid;gap:20px}.entries-header{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}.muted{color:var(--ink-soft);margin-top:4px}.search-wrap input{min-width:220px}.entries-list{display:grid;gap:14px}.entry-card{background:var(--surface-muted);border-radius:16px;padding:18px;display:grid;gap:10px;border:1px solid transparent;animation:fadeUp .4s ease-out}.entry-card:hover{border-color:#1db3a659}.entry-top{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.entry-name{font-weight:600;font-size:1.05rem}.entry-meta{color:var(--ink-soft);font-size:.88rem}.entry-tags{display:flex;flex-wrap:wrap;gap:8px}.tag{background:#fff;border-radius:999px;padding:6px 12px;font-size:.78rem;border:1px solid var(--line)}.entry-actions{display:flex;gap:10px;justify-content:flex-end}.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft);border-radius:10px;padding:8px 12px;font-size:.85rem;cursor:pointer}.ghost:hover{border-color:var(--accent);color:var(--accent-dark)}.treatment-link-button{border:0;background:transparent;padding:0;color:var(--accent-dark);font:inherit;font-weight:600;text-align:left;cursor:pointer}.treatment-link-button:hover{color:var(--accent);text-decoration:underline}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.patient-panel{display:grid;gap:20px}.patient-controls-panel{display:grid;gap:12px;padding:16px;border-radius:18px;background:#ecf1f7f5;border:1px solid rgba(214,222,233,.9);box-shadow:0 18px 40px #0a172824}.patient-toolbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.patient-ai-search{flex:1 1 420px}.patient-ai-search input{width:100%}.patient-ai-summary{display:flex;flex-wrap:wrap;gap:8px}.patient-toolbar .search-wrap input,.patient-filter-bar select,.patient-filter-bar input{background:#fff;border-color:#c3cedd;box-shadow:0 8px 18px #0f213a14}.patient-toolbar .ghost,.date-range-filter-clear{background:#fff;border-color:#c3cedd;color:#27415d;box-shadow:0 8px 18px #0f213a14}.patient-toolbar .ghost:hover,.date-range-filter-clear:hover{background:#fff;border-color:#9fb2c9;color:#18324d}.patient-toolbar .primary{box-shadow:0 18px 28px #1db3a642}.patient-filter-bar{display:flex;justify-content:flex-end;align-items:center}.date-range-filter-group{display:grid;gap:8px;padding:10px 12px;border-radius:12px;background:#eef4fa;border:1px solid #cfd9e6;box-shadow:inset 0 1px #ffffffa6}.date-range-filter-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.date-range-filter-label{font-size:.82rem;font-weight:600;color:var(--ink-soft)}.date-range-filter-clear{padding:6px 10px;font-size:.78rem}.patient-form{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding:0;border-radius:16px;background:transparent;border:0 solid transparent;max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease,opacity .3s ease,padding .3s ease,border-width .3s ease}.patient-form>*{min-width:0}.patient-form .field{min-width:0}.patient-form input,.patient-form select,.patient-form textarea{width:100%;min-width:0}.patient-form-actions{display:flex;justify-content:flex-end;align-items:center;padding-top:0}.patient-form-submit{width:auto;min-width:180px;padding-inline:24px}.patient-form.is-open{max-height:600px;opacity:1;padding:12px;background:var(--surface-muted);border-width:1px;border-color:var(--line)}.patient-table-wrap{width:calc(100% - 4px);margin-inline:2px;max-height:520px;overflow-x:hidden;overflow-y:auto;border-radius:16px;border:1px solid var(--line);background:#fff}.patient-table{width:100%;border-collapse:collapse;min-width:0;table-layout:fixed;--patient-header-height: 44px}.patient-table th,.patient-table td{padding:12px 7px;text-align:left;font-size:.82rem;border-bottom:1px solid var(--line);white-space:normal;overflow-wrap:normal;word-break:normal}.patient-table th:nth-child(1),.patient-table td:nth-child(1){width:5%}.patient-table th:nth-child(2),.patient-table td:nth-child(2){width:8.5%}.patient-table th:nth-child(3),.patient-table td:nth-child(3){width:9.5%}.patient-table th:nth-child(4),.patient-table td:nth-child(4){width:13.5%}.patient-table th:nth-child(5),.patient-table td:nth-child(5){width:8.5%}.patient-table th:nth-child(6),.patient-table td:nth-child(6),.patient-table th:nth-child(7),.patient-table td:nth-child(7){width:10.5%}.patient-table th:nth-child(8),.patient-table td:nth-child(8){width:9.5%}.patient-table th:nth-child(9),.patient-table td:nth-child(9){width:10%}.patient-table th:nth-child(10),.patient-table td:nth-child(10){width:14.5%}.patient-table th:nth-child(5),.patient-table td:nth-child(5),.patient-table th:nth-child(6),.patient-table td:nth-child(6),.patient-table th:nth-child(7),.patient-table td:nth-child(7),.patient-table th:nth-child(8),.patient-table td:nth-child(8),.patient-table th:nth-child(9),.patient-table td:nth-child(9){white-space:nowrap}.patient-table thead th{background:#f5f8fc;color:var(--ink-soft);font-weight:600;position:sticky;top:0;z-index:2}.sort-header-button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;margin:0;color:inherit;font:inherit;font-weight:inherit;cursor:pointer}.sort-header-direction{display:inline-block;padding:2px 7px;border-radius:999px;background:#27415d1a;color:#27415d;font-size:.72rem;font-weight:700;line-height:1.2}.patient-table thead .filter-row th{position:sticky;top:calc(var(--patient-header-height) - 1px);z-index:1;background:#f5f8fc}.patient-table tbody tr:hover{background:#1db3a614}.treatment-table tbody tr.patient-row:hover{background:#1db3a614;cursor:pointer}.treatment-table tbody tr.patient-row,.treatment-table tbody tr.patient-row:hover td{cursor:pointer}.delete-icon-button{min-width:44px;padding:8px 10px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.delete-icon-button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}.action-icon-button{min-width:44px;padding:8px 10px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.action-icon-button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;fill:none}.patient-table tbody tr.patient-row,.patient-table tbody tr.patient-row button{cursor:pointer}.patient-table td[data-label=Actions]{white-space:normal}.patient-table td[data-label=Actions] .ghost{margin:2px 4px 2px 0;padding-inline:10px}.pagination{display:flex;width:calc(100% - 4px);margin-inline:2px;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:14px;background:var(--surface-muted);border:1px solid var(--line)}.page-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.page-button{min-width:36px;padding:8px 10px;border-radius:8px}.page-button.is-active{background:var(--accent);border-color:transparent;color:#fff}.page-button:disabled{opacity:.4;cursor:not-allowed}.pagination-ellipsis{padding:0 6px;color:var(--ink-soft);font-weight:600}.page-size{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:.9rem}.page-size select{padding:8px 12px;border-radius:10px}.item-count{margin-left:auto;color:var(--ink-soft);font-size:.9rem}.filter-row input,.filter-row select{width:100%;border-radius:10px;border:1px solid var(--line);background:#fff;padding:6px 10px;font-size:.82rem}.date-range-filter{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.date-range-filter select,.date-range-filter input{width:auto;min-width:138px;padding:8px 10px;font-size:.82rem}@media (max-width: 720px){.patient-filter-bar{justify-content:stretch}.date-range-filter-group{width:100%}.date-range-filter{flex-direction:column;align-items:stretch}.date-range-filter select,.date-range-filter input{width:100%}}.empty-row{text-align:center;color:var(--ink-soft);padding:22px 0}.sent-cell{display:grid;gap:2px}.document-file-cell{display:flex;align-items:center;gap:12px;min-width:0}.file-link-button{display:inline-flex;align-items:center;gap:12px;min-width:0;max-width:100%;padding:6px 10px 6px 0;border:none;background:transparent;text-align:left}.file-link-text{min-width:0;overflow-wrap:anywhere}.file-type-icon{position:relative;display:inline-flex;align-items:flex-end;justify-content:center;width:42px;min-width:42px;height:50px;border-radius:12px;border:1px solid rgba(34,73,112,.18);background:linear-gradient(180deg,#fff,#eef4fb);color:#224970;font-size:.66rem;font-weight:800;letter-spacing:.08em;line-height:1;padding-bottom:8px;box-shadow:0 10px 24px #0f243e14}.file-type-icon:before{content:"";position:absolute;top:-1px;right:-1px;width:14px;height:14px;border-top-right-radius:12px;border-left:1px solid currentColor;border-bottom:1px solid currentColor;background:#fff;clip-path:polygon(0 0,100% 0,100% 100%);opacity:.9}.file-type-icon.is-pdf{background:linear-gradient(180deg,#fff5f4,#ffe3df);border-color:#c6402b3d;color:#c6402b}.file-type-icon.is-word{background:linear-gradient(180deg,#f2f7ff,#dfeafb);border-color:#2c5ba738;color:#2c5ba7}.file-type-icon.is-sheet{background:linear-gradient(180deg,#f1fbf4,#d7f1df);border-color:#217a4a38;color:#217a4a}.file-type-icon.is-slide{background:linear-gradient(180deg,#fff7ef,#ffe4cb);border-color:#d16f1e38;color:#d16f1e}.file-type-icon.is-image{background:linear-gradient(180deg,#f8f4ff,#ebe0ff);border-color:#6945b533;color:#6945b5}.file-type-icon.is-text{background:linear-gradient(180deg,#f5f7fa,#e7edf4);border-color:#5a6c8138;color:#5a6c81}.documents-panel .treatment-table-wrap{overflow-x:auto;width:min(1420px,100%);margin-inline:auto}.documents-panel .treatment-table{min-width:0;table-layout:fixed}.documents-panel .treatment-table th:nth-child(1),.documents-panel .treatment-table td:nth-child(1){width:72px;padding-left:10px;padding-right:10px}.documents-panel .treatment-table th:nth-child(2),.documents-panel .treatment-table td:nth-child(2){width:25%}.documents-panel .treatment-table th:nth-child(3),.documents-panel .treatment-table td:nth-child(3),.documents-panel .treatment-table th:nth-child(6),.documents-panel .treatment-table td:nth-child(6){width:18%}.documents-panel .treatment-table th:nth-child(4),.documents-panel .treatment-table td:nth-child(4),.documents-panel .treatment-table th:nth-child(7),.documents-panel .treatment-table td:nth-child(7){width:14%}.documents-panel .treatment-table th:nth-child(5),.documents-panel .treatment-table td:nth-child(5){width:130px}.documents-panel .treatment-table td:nth-child(2),.documents-panel .treatment-table td:nth-child(3),.documents-panel .treatment-table td:nth-child(4),.documents-panel .treatment-table td:nth-child(6),.documents-panel .treatment-table td:nth-child(7){white-space:normal;overflow-wrap:anywhere}.documents-panel .treatment-toolbar{width:min(1420px,100%);margin-inline:auto}.document-library-wrap{max-height:min(52vh,520px)}.document-library-table{min-width:0}.document-library-table th:nth-child(1),.document-library-table td:nth-child(1){width:78px}.document-library-table td:nth-child(2),.document-library-table td:nth-child(3),.document-library-table td:nth-child(4),.document-library-table td:nth-child(5){white-space:normal;overflow-wrap:anywhere}.practice-documents-panel{overflow:hidden}.practice-documents-toolbar{align-items:center}.practice-documents-toolbar .search-wrap{flex:1 1 280px;min-width:0}.practice-documents-toolbar .search-wrap input{width:min(100%,270px);min-width:0}.practice-documents-toolbar .hero-actions{flex:0 1 auto;min-width:0}.practice-documents-toolbar .treatment-launch-button{max-width:100%;white-space:normal}.practice-documents-table-wrap{max-width:100%;overflow-x:hidden}.practice-documents-table{min-width:0;table-layout:auto}.practice-documents-table th,.practice-documents-table td{padding:12px 10px;white-space:normal;overflow-wrap:break-word;word-break:normal;vertical-align:middle}.practice-documents-table th:nth-child(1),.practice-documents-table td:nth-child(1){width:42%!important}.practice-documents-table th:nth-child(2),.practice-documents-table td:nth-child(2){width:11%!important}.practice-documents-table th:nth-child(3),.practice-documents-table td:nth-child(3){width:8%!important}.practice-documents-table th:nth-child(4),.practice-documents-table td:nth-child(4){width:7%!important}.practice-documents-table th:nth-child(5),.practice-documents-table td:nth-child(5){width:10%!important}.practice-documents-table th:nth-child(6),.practice-documents-table td:nth-child(6){width:22%!important}.practice-documents-table .file-link-button{width:100%;align-items:flex-start;white-space:normal}.practice-documents-table .file-link-text{display:block;white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.35}.practice-document-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.practice-document-actions .ghost{min-height:38px;padding:8px 10px;font-size:.82rem;white-space:nowrap}.practice-documents-table.treatment-table th,.practice-documents-table.treatment-table td{white-space:normal!important}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}.photo-card{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 14px 30px #0a172814}.photo-thumb-button{width:100%;border:none;background:#eef4fa;padding:0;cursor:pointer}.photo-thumb{display:block;width:100%;height:200px;object-fit:cover}.photo-card__body{display:grid;gap:8px;padding:14px}.photo-card__name{font-weight:700;color:#17324d;overflow-wrap:anywhere}.photo-card__meta{font-size:.84rem;color:var(--ink-soft)}.photo-card__note{min-height:44px;color:#314860;font-size:.9rem;overflow-wrap:anywhere}.photo-empty{padding:56px 0}.photo-preview{display:grid;gap:16px}.photo-preview__image{width:100%;max-height:70vh;object-fit:contain;border-radius:16px;background:#eef4fa}.photo-preview__meta{display:grid;gap:8px;color:#314860}.payments-panel .treatment-table{min-width:0;table-layout:fixed}.payments-panel .treatment-table th:nth-child(1),.payments-panel .treatment-table td:nth-child(1),.payments-panel .treatment-table th:nth-child(2),.payments-panel .treatment-table td:nth-child(2){width:72px;padding-left:10px;padding-right:10px}.payments-panel .treatment-table th:nth-child(3),.payments-panel .treatment-table td:nth-child(3),.payments-panel .treatment-table th:nth-child(4),.payments-panel .treatment-table td:nth-child(4){width:24%}.payments-panel .treatment-table th:nth-child(5),.payments-panel .treatment-table td:nth-child(5),.payments-panel .treatment-table th:nth-child(6),.payments-panel .treatment-table td:nth-child(6){width:16%}.payments-panel .treatment-table th:nth-child(7),.payments-panel .treatment-table td:nth-child(7){width:12%}.payments-panel .treatment-table td:nth-child(3),.payments-panel .treatment-table td:nth-child(4),.payments-panel .treatment-table td:nth-child(5),.payments-panel .treatment-table td:nth-child(6){white-space:normal;overflow-wrap:anywhere}.details-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.patient-details-grid{position:relative;z-index:1}.patient-missed-appointment-alert{position:relative;z-index:1;margin:-8px 0 24px;padding:14px 18px;border:1px solid rgba(220,38,38,.34);border-radius:14px;background:#fef2f2;color:#991b1b;font-weight:600;box-shadow:0 14px 28px #7f1d1d24}.patient-missed-appointment-alert strong{color:#7f1d1d;margin-right:4px}.patient-detail-panel{background:#ecf1f7f5;border:1px solid rgba(214,222,233,.9);border-radius:18px;padding:24px;box-shadow:0 18px 40px #0a172824}.patient-detail-panel input,.patient-detail-panel select,.patient-detail-panel textarea{background:#fff}.patient-detail-panel h2{color:#14263b}.detail-card h2{margin-top:0;margin-bottom:10px}.detail-header{display:flex;align-items:center;gap:12px}.detail-header h2{margin-bottom:0}.collapse-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0}.add-medication{margin-left:auto;width:34px;height:34px;padding:0;font-size:1.1rem;line-height:1}.chevron{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease}.detail-card{display:flex;flex-direction:column;height:100%}.detail-fields{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-content:start;flex:1}.detail-fields input,.detail-fields select,.detail-fields textarea{width:100%;min-width:0}.field-wide{grid-column:1 / -1}.profile-page{display:grid;gap:24px}.profile-section{background:#ecf1f7f5;border:1px solid rgba(214,222,233,.9);border-radius:18px;padding:22px;box-shadow:0 18px 40px #0a172824}.profile-section input,.profile-section select,.profile-section textarea{background:#fff}.profile-services,.profile-reminders,.profile-practitioner-hours{display:grid;gap:14px}.clinic-logo-panel{display:grid;gap:18px}.clinic-logo-preview,.clinic-logo-placeholder{min-height:160px;border:1px dashed rgba(111,133,163,.45);border-radius:18px;background:#ffffffc7;display:flex;align-items:center;justify-content:center;padding:20px}.clinic-logo-preview img{display:block;max-width:100%;max-height:180px;object-fit:contain}.clinic-logo-placeholder{color:#6c7685;text-align:center}.clinic-logo-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.clinic-logo-upload{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none}.clinic-logo-actions input[type=file]{display:none}.clinic-logo-meta{margin:0}.practitioner-hours-list{display:grid;gap:14px}.practitioner-hours-card{background:var(--surface-muted);border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;gap:12px}.practitioner-hours-card.is-collapsed{gap:0}.practitioner-hours-header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:0;border:none;background:transparent;cursor:pointer;text-align:left}.practitioner-hours-header h3{margin:0;font-size:1rem;color:#17324d}.practitioner-hours-chevron{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;color:#5e7693;transform:rotate(45deg);transition:transform .2s ease;flex:0 0 auto}.practitioner-hours-chevron.is-open{transform:rotate(225deg)}.practitioner-hours-days{display:grid;gap:10px}.practitioner-hours-row{display:grid;grid-template-columns:minmax(84px,.8fr) minmax(110px,1fr) auto minmax(110px,1fr);gap:10px;align-items:center}.practitioner-hours-toggle{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--ink);font-weight:600}.practitioner-hours-toggle input{accent-color:var(--accent)}.practitioner-hours-separator{color:var(--ink-soft);font-size:.85rem;text-align:center}.services-search{min-width:min(100%,320px)}.services-search input{width:100%}.services-list{display:grid;gap:12px}.services-table-wrap{width:100%;overflow-x:auto;overflow-y:auto;max-height:min(56vh,620px);border-radius:14px;border:1px solid var(--line);background:#fff;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}.services-table{width:100%;border-collapse:collapse;min-width:760px}.services-table th,.services-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}.services-table thead th{position:sticky;top:0;z-index:2;background:#d9e7f5;color:#1f3852;font-weight:600;box-shadow:0 1px 0 var(--line)}.services-table tbody tr:nth-child(odd){background:#f5f9fd}.services-table tbody tr:nth-child(2n){background:#eaf2fb}.service-description-cell{max-width:360px;overflow:hidden;text-overflow:ellipsis}.services-actions-col{width:190px;text-align:center}.services-actions{display:inline-flex;gap:8px}.service-inline-input{width:100%;min-width:0;padding:8px 10px;font-size:.88rem}.service-card{background:var(--surface-muted);border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:10px}.service-actions{display:flex;justify-content:flex-end}.services-empty{margin:0;text-align:center;color:var(--ink-soft)}.new-service-card h3{margin:0;font-size:1rem}.reminder-status{margin:0;font-weight:500}.reminder-status.success{color:#0f766e}.reminder-status.error{color:#b91c1c}.reminder-note{margin:0}.medications-grid{grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px}.medication-row{width:100%}.medication-row .field{min-width:0}.medications-list{display:grid;gap:18px;width:100%}.medications-body{grid-template-columns:1fr;gap:18px;max-height:none;overflow:visible}.medications-body .medications-list{grid-column:1 / -1}.medications-body .medication-row{padding-bottom:8px;border-bottom:1px solid rgba(20,38,59,.08)}.medications-body .medication-row:last-of-type{border-bottom:0;padding-bottom:0}.allergies-body{grid-template-columns:1fr}.insurance-body{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.medications-grid .field label{font-size:.82rem;white-space:nowrap}.medications-grid input,.medications-grid select{font-size:.88rem;padding:10px 12px}.detail-wide{grid-column:1 / -1}.medical-questions{display:grid;gap:12px}.medical-question-row{display:grid;grid-template-columns:minmax(200px,1.2fr) minmax(90px,.3fr) minmax(180px,1fr);gap:12px;align-items:center}.medical-question-label{font-weight:500;color:var(--ink-soft)}.medical-question-row select,.medical-question-row input{width:100%}.treatments-layout{display:grid;gap:24px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080e188c;display:grid;place-items:center;padding:12px;z-index:10}.modal-card{width:min(960px,92vw);max-height:88vh;overflow-y:auto;overflow-x:hidden;background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:24px}.treatment-modal-card{width:min(1120px,96vw);max-height:96vh;padding:16px 18px;border-radius:16px}.treatment-modal-card .modal-header{margin-bottom:10px}.treatment-modal-card .modal-header h2{font-size:1.2rem}.treatment-modal-card .appointment-modal-close{background:linear-gradient(180deg,#ffffffd1,#ecf4fca8);border:1px solid rgba(190,206,228,.9);color:#27415d;box-shadow:inset 0 1px #ffffffe0,0 10px 22px #0f213a14}.treatment-modal-card .appointment-modal-close:hover{background:linear-gradient(180deg,#fffffff0,#f3f8fec7);border-color:#b0c2daf2;color:#17324d;box-shadow:inset 0 1px #ffffffeb,0 12px 26px #0f213a1f}.treatment-modal-card .modal-body{gap:12px}.treatment-modal-card .modal-section{padding:14px 16px}.treatment-modal-card .modal-section h3{margin-bottom:12px;font-size:1rem}.treatment-modal-card .detail-fields{gap:12px}.treatment-modal-card .tab-bar{margin-bottom:10px}.treatment-modal-card .tab-panel{padding:14px 16px;gap:10px}.treatment-modal-card .tab-panel textarea{min-height:110px}.treatment-modal-card .general-clinical-card,.treatment-modal-card .general-clinical-editor{padding:14px 16px}.treatment-modal-card .general-clinical-items{gap:12px}.treatment-modal-card .modal-footer{margin-top:10px}.treatment-modal-card .modal-footer .ghost,.treatment-modal-card .modal-footer .primary,.treatment-modal-card .general-clinical-editor__actions .ghost,.treatment-modal-card .general-clinical-editor__actions .primary{padding:10px 16px}.treatment-modal-card .modal-footer .primary{border:1px solid rgba(255,255,255,.26);border-radius:999px;background:linear-gradient(135deg,#0ba27efa,#25c4a5eb),#ffffff38;color:#fff;box-shadow:inset 0 1px #ffffff29,0 10px 24px #087b6547,0 0 24px #38d6ca33;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.treatment-modal-card .modal-footer .primary:hover{box-shadow:inset 0 1px #fff3,0 12px 28px #087b6557,0 0 28px #38d6ca42;background:linear-gradient(135deg,#09b088,#2cd1b0f0),#ffffff3d;border-color:#ffffff4d}.treatment-modal-card .modal-footer .ghost{border:1px solid rgba(194,208,226,.9);border-radius:999px;font-size:.95rem;font-weight:700;letter-spacing:.01em;background:linear-gradient(180deg,#ffffffeb,#f5f9fdd6),#ffffffbd;color:#32506d;box-shadow:inset 0 1px #ffffffeb,0 10px 24px #1f3b5c14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.treatment-modal-card .modal-footer .ghost:hover{border-color:#abc1daf2;background:linear-gradient(180deg,#fffffffa,#f8fbffe6),#fffc;color:#23415f;box-shadow:inset 0 1px #fffffff5,0 12px 28px #1f3b5c1a}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.modal-header h2{margin:0;font-size:1.4rem}.modal-body{display:grid;gap:18px}.modal-card .detail-fields input,.modal-card .detail-fields select,.modal-card .detail-fields textarea{background:#fff}.appointment-modal-card{width:min(1320px,98vw);max-height:min(98vh,1040px);display:flex;flex-direction:column;overflow:hidden;padding:16px 18px}.appointment-modal-card .modal-header{margin-bottom:8px;flex:0 0 auto}.appointment-modal-card .modal-header h2{font-size:1.2rem}.appointment-modal-close{width:44px;height:44px;padding:0 0 2px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.6rem;line-height:.85;text-align:center}.appointment-modal-card .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:2px;gap:8px}.appointment-modal-card .modal-section{padding:10px 12px}.appointment-modal-card .detail-fields{gap:8px 10px}.invoice-modal-card{width:min(1180px,96vw);max-height:min(94vh,980px);padding:18px 20px}.invoice-modal-card .modal-header{margin-bottom:10px}.invoice-modal-card .modal-body{gap:12px}.invoice-modal-card .modal-section{padding:12px 14px}.invoice-modal-card .detail-fields{gap:10px 12px}.invoice-modal-card .treatments-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.invoice-modal-card .field-wide{grid-column:1 / -1}.invoice-modal-card .treatment-table-wrap{max-height:min(220px,28vh);overflow:auto}.invoice-modal-card .invoice-items-wrap{overflow-x:auto}.invoice-modal-card .invoice-items-table{width:100%;min-width:0;table-layout:fixed}.invoice-modal-card .invoice-items-table th,.invoice-modal-card .invoice-items-table td{padding:10px 8px;font-size:.9rem;vertical-align:middle}.invoice-modal-card .invoice-items-table th:nth-child(1),.invoice-modal-card .invoice-items-table td:nth-child(1){width:110px}.invoice-modal-card .invoice-items-table th:nth-child(2),.invoice-modal-card .invoice-items-table td:nth-child(2),.invoice-modal-card .invoice-items-table th:nth-child(3),.invoice-modal-card .invoice-items-table td:nth-child(3){width:18%}.invoice-modal-card .invoice-items-table th:nth-child(4),.invoice-modal-card .invoice-items-table td:nth-child(4){width:90px}.invoice-modal-card .invoice-items-table th:nth-child(5),.invoice-modal-card .invoice-items-table td:nth-child(5),.invoice-modal-card .invoice-items-table th:nth-child(6),.invoice-modal-card .invoice-items-table td:nth-child(6){width:130px}.invoice-modal-card .invoice-items-table th:nth-child(7),.invoice-modal-card .invoice-items-table td:nth-child(7),.invoice-modal-card .invoice-items-table th:nth-child(8),.invoice-modal-card .invoice-items-table td:nth-child(8),.invoice-modal-card .invoice-items-table th:nth-child(9),.invoice-modal-card .invoice-items-table td:nth-child(9){width:110px}.invoice-modal-card .invoice-items-table select,.invoice-modal-card .invoice-items-table input{width:100%;min-width:0;padding:10px 12px;font-size:.9rem}.invoice-modal-card .invoice-items-table .ghost{padding:10px 14px;white-space:nowrap}.invoice-modal-card .modal-footer{margin-top:12px}.payments-modal-card{width:min(760px,96vw);max-height:min(92vh,820px);padding:18px 20px}.payments-modal-card .modal-header{margin-bottom:10px}.payments-modal-card .modal-body{gap:12px}.payments-modal-card .modal-section{padding:12px 14px}.payments-modal-card .detail-fields{gap:10px 12px}.payments-modal-card .payments-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.payments-modal-card .field-wide{grid-column:1 / -1}.payments-modal-card textarea{min-height:140px;resize:vertical}.payments-modal-card .modal-footer{margin-top:12px}.appointment-modal-card .modal-footer{flex:0 0 auto;margin-top:8px;padding-top:8px;padding-bottom:6px;border-top:1px solid var(--line);background:var(--surface)}.appointment-modal-card .ghost,.appointment-modal-card .primary{border-radius:16px;padding:10px 18px;font-weight:600;-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);transition:transform .18s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.appointment-modal-card .ghost{background:linear-gradient(180deg,#ffffffd1,#ecf4fca8);border:1px solid rgba(190,206,228,.9);color:#27415d;box-shadow:inset 0 1px #ffffffe0,0 10px 22px #0f213a14}.appointment-modal-card .ghost:hover{background:linear-gradient(180deg,#fffffff0,#f3f8fec7);border-color:#b0c2daf2;color:#17324d;box-shadow:inset 0 1px #ffffffeb,0 12px 24px #0f213a1f;transform:translateY(-1px)}.appointment-modal-card .primary{background:linear-gradient(180deg,#42e0d2e6,#1db3a6d1);border:1px solid rgba(23,153,142,.5);color:#042522;box-shadow:inset 0 1px #ffffff52,0 14px 28px #1db3a63d}.appointment-modal-card .primary:hover{background:linear-gradient(180deg,#52e9dcf0,#22c1b3e0);box-shadow:inset 0 1px #ffffff5c,0 16px 30px #1db3a647;transform:translateY(-1px)}.appointment-modal-card .patient-contact{margin-top:6px;padding:6px 8px;gap:8px;grid-template-columns:repeat(6,minmax(0,1fr))}.appointment-modal-card .field-group.inline-actions{gap:6px}.appointment-modal-card .treatments-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 10px}.appointment-modal-card .appointment-field{min-width:0;grid-column:span 2}.appointment-modal-card .appointment-field-time{grid-column:span 2}.appointment-modal-card .appointment-field-note,.appointment-modal-card .appointment-field-reminders,.appointment-modal-card .appointment-field-patient,.appointment-modal-card .appointment-field-description{grid-column:1 / -1}.appointment-modal-card .appointment-field-treatment{grid-column:1 / -1;z-index:35}.appointment-modal-card .appointment-field label,.appointment-modal-card .appointment-field .muted{font-size:.8rem;line-height:1.2}.appointment-modal-card .appointment-hours-warning{color:#c62828;font-size:.8rem;font-weight:700;line-height:1.2}.appointment-modal-card .appointment-missed-appointment-alert{margin-top:8px;padding:10px 12px;border:1px solid rgba(220,38,38,.34);border-radius:12px;background:#fef2f2;color:#991b1b;font-size:.86rem;font-weight:600;line-height:1.35}.appointment-modal-card .appointment-missed-appointment-alert strong{color:#7f1d1d;margin-right:4px}.appointment-modal-card input,.appointment-modal-card select,.appointment-modal-card textarea{padding:8px 10px;font-size:.9rem;min-height:40px;background:#fff;border-color:#c9d6e7;box-shadow:0 6px 14px #0f213a0d}.appointment-modal-card .patient-dropdown{position:absolute;left:0;right:auto;top:calc(100% + 4px);width:100%;background:#fff;border:1px solid #c9d6e7;box-shadow:0 18px 32px #0a172829;max-height:120px;z-index:30}.appointment-modal-card .patient-input-wrap{position:relative;width:100%}.appointment-modal-card .appointment-patient-entry{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:center}.appointment-modal-card #appointmentPatientTitle,.appointment-modal-card #appointmentPatient{min-width:0}.appointment-modal-card .patient-option{background:#fff}.appointment-modal-card .patient-option:hover{background:#eef4fb}.appointment-modal-card .treatment-dropdown{top:auto;bottom:calc(100% + 2px);width:100%;max-width:100%;max-height:min(360px,42vh);padding:0;border:1px solid #93b9df;border-radius:10px;background:#fff;box-shadow:0 18px 32px #0a172829;overflow:auto;gap:0}.appointment-modal-card .treatment-option-table{width:100%;min-width:760px;border-collapse:collapse}.appointment-modal-card .treatment-option-table th,.appointment-modal-card .treatment-option-table td{padding:10px 12px;border-bottom:1px solid #c8d9ea;white-space:nowrap;text-align:left}.appointment-modal-card .treatment-option-table thead th{position:sticky;top:0;z-index:1;background:#dbe8f5;color:#17324d;font-weight:700}.appointment-modal-card .treatment-option-table th:nth-child(1),.appointment-modal-card .treatment-option-table td:nth-child(1){width:32%}.appointment-modal-card .treatment-option-table th:nth-child(2),.appointment-modal-card .treatment-option-table td:nth-child(2){width:44%}.appointment-modal-card .treatment-option-table th:nth-child(3),.appointment-modal-card .treatment-option-table td:nth-child(3){width:12%}.appointment-modal-card .treatment-option-table th:nth-child(4),.appointment-modal-card .treatment-option-table td:nth-child(4){width:12%}.appointment-modal-card .treatment-option-table tbody tr:nth-child(odd){background:#f3f8fd}.appointment-modal-card .treatment-option-table tbody tr:nth-child(2n){background:#e9f1fa}.appointment-modal-card .treatment-option-row:hover{background:#3f78a8!important;color:#fff}.appointment-modal-card .field-group.inline-actions{flex-wrap:wrap}.appointment-modal-card .field-group.inline-actions .filter-item{grid-template-columns:18px auto;font-size:.78rem;gap:6px}.appointment-modal-card .appointment-field-reminders .field-group.inline-actions{display:grid;grid-template-columns:auto auto minmax(160px,220px) minmax(220px,1fr);align-items:center}.appointment-modal-card .appointment-field-reminders .field-group.inline-actions select,.appointment-modal-card .appointment-field-reminders .field-group.inline-actions input[type=datetime-local]{width:100%;min-width:0}.appointment-modal-card .appointment-field-reminders{padding-bottom:10px}.appointment-modal-card .patient-contact-field{gap:4px;grid-column:span 2}.appointment-modal-card .reminder-status{font-size:.78rem}.appointment-modal-card .patient-contact-field-wide{grid-column:span 3}.appointment-modal-card .patient-contact-field-address,.appointment-modal-card .patient-contact-field-town{grid-column:span 2}.appointment-modal-card .patient-contact-field-compact{grid-column:span 1}.appointment-modal-card #appointmentPhone,.appointment-modal-card #appointmentEmail,.appointment-modal-card #appointmentTownCity,.appointment-modal-card #appointmentPostCode,.appointment-modal-card #appointmentCountry{min-width:0}@media (max-width: 1100px){.appointment-modal-card .treatments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-modal-card .appointment-field-patient,.appointment-modal-card .appointment-field-description,.appointment-modal-card .appointment-field-treatment{grid-column:1 / -1}.appointment-modal-card .appointment-patient-entry{grid-template-columns:92px minmax(0,1fr)}}.modal-section{background:var(--surface-muted);border:1px solid var(--line);padding:18px 20px}.modal-section h3{margin-top:0;margin-bottom:16px;font-size:1.1rem}.send-patient-search-wrap{position:relative}.send-patient-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;max-height:220px;overflow:auto;border-radius:12px;border:1px solid #c6d4e5;background:#fff;box-shadow:0 18px 32px #0a17282e}.send-patient-option{width:100%;border:none;border-bottom:1px solid #e6edf5;background:#fff;padding:10px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px}.send-patient-option:last-child{border-bottom:none}.send-patient-option:hover,.send-patient-option.is-active{background:#eef5fc}.send-patient-option small{color:#5b6f86;font-size:.78rem}.send-patient-empty{padding:10px 12px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.treatment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.treatment-launch-button{border:1px solid rgba(255,255,255,.26);border-radius:999px;background:linear-gradient(135deg,#0ba27efa,#25c4a5eb),#ffffff38;color:#fff;box-shadow:inset 0 1px #ffffff29,0 10px 24px #087b6547,0 0 24px #38d6ca33;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.treatment-launch-button:hover{box-shadow:inset 0 1px #fff3,0 12px 28px #087b6557,0 0 28px #38d6ca42;background:linear-gradient(135deg,#09b088,#2cd1b0f0),#ffffff3d;border-color:#ffffff4d}.treatment-view-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:10px;padding:6px;margin-bottom:0;border-radius:999px;background:linear-gradient(180deg,#ffffff52,#ffffff1f),linear-gradient(135deg,#c3d5e866,#e9f1fa29);border:1px solid rgba(194,208,226,.8);box-shadow:inset 0 1px #ffffffd1,0 12px 30px #1f3b5c1f;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}.treatment-view-toggle .tab{position:relative;overflow:hidden;min-width:102px;padding:9px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.34);background:linear-gradient(180deg,#ffffff80,#ffffff29),linear-gradient(135deg,#e0eaf58f,#ffffff1a);box-shadow:inset 0 1px #ffffffb8,0 8px 18px #233d5e14;color:#2b4663;font-size:.9rem;font-weight:600;letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.treatment-view-toggle .tab:hover{transform:translateY(-1px);border-color:#97c1dfbf;box-shadow:inset 0 1px #ffffffc7,0 12px 24px #2043661f}.treatment-view-toggle .tab.is-active{border-color:#77d3d3b3;background:linear-gradient(180deg,#a5fff8e6,#5ce2d6b8),linear-gradient(135deg,#48d3c6eb,#1eb1abd1);color:#0e4255;box-shadow:inset 0 1px #ffffffd6,0 12px 26px #1fb6b038,0 0 18px #45ded638}.treatment-table-wrap{width:100%;overflow-x:auto;overflow-y:visible;border-radius:16px;border:1px solid var(--line);background:#fff}.treatment-list-view{display:grid;gap:16px}.treatment-list-card{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fffffff5,#f4f9fcf0);padding:22px 24px;box-shadow:0 16px 36px #0f213a14}.treatment-list-card.is-selected{border-color:#1db3a673;box-shadow:0 18px 40px #0f213a14,0 0 0 3px #1db3a61f}.treatment-list-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.treatment-list-card__header .primary{border:1px solid rgba(255,255,255,.26);border-radius:999px;background:linear-gradient(135deg,#0ba27efa,#25c4a5eb),#ffffff38;color:#fff;box-shadow:inset 0 1px #ffffff29,0 10px 24px #087b6547,0 0 24px #38d6ca33;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.treatment-list-card__header .primary:hover{box-shadow:inset 0 1px #fff3,0 12px 28px #087b6557,0 0 28px #38d6ca42;background:linear-gradient(135deg,#09b088,#2cd1b0f0),#ffffff3d;border-color:#ffffff4d}.treatment-list-card__meta{margin:0;color:var(--ink);font-size:1.05rem}.treatment-list-card__meta span{margin-left:8px;color:var(--ink-soft)}.treatment-list-card__content{display:grid;gap:18px}.treatment-list-card__section h3{margin:0 0 6px;font-size:1rem;color:var(--ink)}.treatment-list-card__section p{margin:0;color:var(--ink-soft);white-space:pre-wrap;line-height:1.6}.treatment-list-empty{border:1px dashed var(--line);border-radius:16px;background:#ffffffb3;padding:24px}.treatment-table{width:100%;border-collapse:collapse;min-width:980px;--treatment-header-height: 44px}.treatment-table th,.treatment-table td{padding:12px 14px;text-align:left;font-size:.9rem;border-bottom:1px solid var(--line);white-space:nowrap}.treatment-table thead th{background:#f5f8fc;color:var(--ink-soft);font-weight:600;position:sticky;top:0;z-index:2}.treatment-table thead .filter-row th{position:sticky;top:calc(var(--treatment-header-height) - 1px);z-index:1;background:#f5f8fc}.treatment-table tfoot td{background:#f5f8fc;font-weight:600;color:var(--ink-soft)}.treatments-layout .treatment-table-wrap{overflow-x:hidden}.treatments-layout .treatment-table{min-width:0;table-layout:fixed}.treatments-layout .treatment-table th,.treatments-layout .treatment-table td{padding:10px 8px;font-size:.84rem;line-height:1.2}.treatments-layout .treatment-table thead th{white-space:nowrap}.treatments-layout .treatment-table tbody td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.treatments-layout .treatment-table .filter-row input,.treatments-layout .treatment-table .filter-row select{padding:6px 8px;font-size:.78rem}.treatments-layout .treatment-table th:nth-child(1),.treatments-layout .treatment-table td:nth-child(1){width:4.5%}.treatments-layout .treatment-table th:nth-child(2),.treatments-layout .treatment-table td:nth-child(2){width:10.5%}.treatments-layout .treatment-table th:nth-child(3),.treatments-layout .treatment-table td:nth-child(3){width:8.5%}.treatments-layout .treatment-table th:nth-child(4),.treatments-layout .treatment-table td:nth-child(4){width:9.5%}.treatments-layout .treatment-table th:nth-child(5),.treatments-layout .treatment-table td:nth-child(5){width:15%}.treatments-layout .treatment-table th:nth-child(6),.treatments-layout .treatment-table td:nth-child(6){width:9%}.treatments-layout .treatment-table th:nth-child(7),.treatments-layout .treatment-table td:nth-child(7){width:8%}.treatments-layout .treatment-table th:nth-child(8),.treatments-layout .treatment-table td:nth-child(8){width:5.8%}.treatments-layout .treatment-table th:nth-child(9),.treatments-layout .treatment-table td:nth-child(9),.treatments-layout .treatment-table th:nth-child(10),.treatments-layout .treatment-table td:nth-child(10),.treatments-layout .treatment-table th:nth-child(11),.treatments-layout .treatment-table td:nth-child(11),.treatments-layout .treatment-table th:nth-child(12),.treatments-layout .treatment-table td:nth-child(12){width:7.3%}.all-treatments-table-wrap{overflow-x:hidden;max-height:min(68vh,760px);overflow-y:auto}.all-treatments-table{min-width:0;table-layout:fixed}.all-treatments-table th,.all-treatments-table td{padding:10px 7px;font-size:.84rem;line-height:1.25;white-space:normal;overflow-wrap:break-word;word-break:normal;vertical-align:top}.all-treatments-table thead tr:first-child th{padding-top:13px;padding-bottom:8px;font-size:.8rem;line-height:1.15;white-space:nowrap;overflow-wrap:normal;word-break:normal;vertical-align:middle}.all-treatments-table tbody td:nth-child(3),.all-treatments-table tbody td:nth-child(4),.all-treatments-table tbody td:nth-child(5){overflow-wrap:anywhere}.all-treatments-table th:nth-child(1),.all-treatments-table td:nth-child(1){width:9%}.all-treatments-table th:nth-child(2),.all-treatments-table td:nth-child(2){width:8.5%}.all-treatments-table th:nth-child(3),.all-treatments-table td:nth-child(3){width:15%}.all-treatments-table th:nth-child(4),.all-treatments-table td:nth-child(4){width:15.5%}.all-treatments-table th:nth-child(5),.all-treatments-table td:nth-child(5){width:13.5%}.all-treatments-table th:nth-child(6),.all-treatments-table td:nth-child(6){width:8%}.all-treatments-table th:nth-child(7),.all-treatments-table td:nth-child(7){width:6.3%}.all-treatments-table th:nth-child(8),.all-treatments-table td:nth-child(8){width:7.2%}.all-treatments-table th:nth-child(9),.all-treatments-table td:nth-child(9){width:9.5%}.all-treatments-table th:nth-child(10),.all-treatments-table td:nth-child(10){width:7.5%}.all-treatments-table .filter-row input,.all-treatments-table .filter-row select{min-width:0;max-width:100%;padding:6px 8px;font-size:.78rem}.all-treatments-table thead .filter-row th{overflow:visible}.table-filter-dropdown{position:relative;width:100%}.table-filter-trigger{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:8px;border:1px solid rgba(195,206,221,.95);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#f6fafdeb),#fff;color:#27415d;font:inherit;font-size:.78rem;font-weight:700;line-height:1.1;padding:7px 9px 7px 10px;box-shadow:inset 0 1px #ffffffe6,0 8px 18px #0f213a14;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,color .18s ease,background .18s ease}.table-filter-trigger:hover,.table-filter-dropdown.is-open .table-filter-trigger{border-color:#1db3a680;color:#0e4255;background:linear-gradient(180deg,#fff,#edfaf9f2),#fff;box-shadow:inset 0 1px #ffffffeb,0 8px 18px #0f213a14,0 0 0 3px #1db3a61f}.table-filter-trigger span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-filter-chevron{width:7px;height:7px;flex:0 0 auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-1px) rotate(45deg);opacity:.72;transition:transform .18s ease}.table-filter-dropdown.is-open .table-filter-chevron{transform:translateY(2px) rotate(225deg)}.table-filter-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:25;display:grid;min-width:max(100%,118px);gap:3px;padding:5px;border:1px solid rgba(178,197,218,.98);border-radius:13px;background:linear-gradient(180deg,#fffffffa,#f2f8fcf5),#fff;box-shadow:0 18px 36px #0f213a2e,0 0 0 1px #ffffffb8 inset}.table-filter-option{width:100%;border:0;border-radius:9px;background:transparent;color:#27415d;font:inherit;font-size:.78rem;font-weight:700;line-height:1.2;padding:8px 10px;text-align:left;cursor:pointer;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.table-filter-option:hover,.table-filter-option.is-selected{background:linear-gradient(135deg,#0ba27efa,#25c4a5eb),#1db3a6;color:#fff;box-shadow:0 8px 16px #087b652e}.treatment-total{text-align:right}.treatments-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:start}.field-inline{align-self:center}.field-inline label{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--ink)}.treatment-checkbox-panel{align-self:start}.treatment-checkbox-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 24px;padding-top:2px}.treatment-checkbox{display:inline-flex;align-items:flex-start;gap:8px;margin:0;color:var(--ink);font-weight:500;font-size:.94rem;line-height:1.2}.treatment-checkbox input[type=checkbox]{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}.treatment-checkbox-consent{max-width:220px}@media (max-width: 720px){.treatment-checkbox-row{padding-top:0;gap:12px}.treatment-checkbox-consent{max-width:none}}.tab-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tab{border:1px solid var(--line);background:var(--surface-muted);border-radius:999px;padding:6px 16px;font-size:.85rem;cursor:pointer}.tab.is-active{background:var(--accent);color:#fff;border-color:transparent}.communications-channel-tabs{display:inline-flex;align-items:center;gap:10px;padding:6px;margin-bottom:0;border-radius:999px;background:linear-gradient(180deg,#ffffff4d,#ffffff1f),linear-gradient(135deg,#c3d5e86b,#e9f1fa2e);border:1px solid rgba(194,208,226,.85);box-shadow:inset 0 1px #ffffffd1,0 12px 30px #1f3b5c1f;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}.communications-channel-tab{position:relative;overflow:hidden;min-width:82px;padding:9px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.34);background:linear-gradient(180deg,#ffffff80,#ffffff29),linear-gradient(135deg,#e0eaf58f,#ffffff1a);box-shadow:inset 0 1px #ffffffb8,0 8px 18px #233d5e14;color:#2b4663;font-size:.9rem;font-weight:600;letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.communications-channel-tab:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;background:linear-gradient(180deg,#ffffff80,#fff0);opacity:.9;pointer-events:none}.communications-channel-tab:hover{transform:translateY(-1px);border-color:#b8cce2e6;box-shadow:inset 0 1px #fffc,0 12px 24px #233d5e1f}.communications-channel-tab.is-active{border-color:#79e3dcd1;background:linear-gradient(180deg,#ffffff61,#ffffff1a),linear-gradient(135deg,#24c2b6eb,#69e0e99e);box-shadow:inset 0 1px #ffffff94,0 14px 28px #1fb3ab3d;color:#083b44}.clinical-tab-bar{gap:10px}.clinical-tab{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.55);background:linear-gradient(180deg,#ffffff85,#ffffff2e),linear-gradient(135deg,#739ccc2e,#ffffff14);box-shadow:inset 0 1px #ffffff9e,0 12px 24px #5f7ca124;color:#214260;font-weight:600;letter-spacing:.01em;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.clinical-tab:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:inherit;background:linear-gradient(180deg,#ffffff61,#fff0);pointer-events:none}.clinical-tab:hover{transform:translateY(-1px);border-color:#ffffffb8;box-shadow:inset 0 1px #ffffffb3,0 14px 28px #5f7ca12e}.clinical-tab.is-active{border-color:#6fe8e0b8;background:linear-gradient(180deg,#ffffff4d,#ffffff14),linear-gradient(135deg,#22c4b8e0,#58d6e594);box-shadow:inset 0 1px #ffffff80,0 16px 32px #1db3a63d;color:#083b44}.tab-panel{background:#f5f8fc;border-radius:16px;padding:20px;display:grid;gap:14px}.tab-panel textarea{width:100%;min-height:140px}.general-clinical-items{display:grid;gap:16px}.general-clinical-card{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid #c7d9ee;border-radius:14px;background:#eef5fc}.general-clinical-card__content{display:grid;gap:6px;min-width:0}.general-clinical-card__content h4,.general-clinical-card__content p,.general-clinical-card__content small{margin:0}.general-clinical-card__content h4{color:#17324d;font-size:1rem}.general-clinical-card__content p{color:var(--ink);white-space:pre-wrap}.general-clinical-card__content small{color:var(--ink-soft)}.general-clinical-card__actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.general-card-action{min-width:88px;padding:8px 12px}.general-card-action-danger{color:#a33434;border-color:#a334343d}.general-card-action-danger:hover{background:#a3343414}.general-clinical-editor{display:grid;gap:14px;padding:18px 20px;border:1px solid #c7d9ee;border-radius:14px;background:#eef5fc}.general-clinical-editor__actions{display:flex;justify-content:flex-end;gap:10px}@media (max-width: 720px){.general-clinical-card{flex-direction:column}.general-clinical-card__actions{flex-direction:row;justify-content:flex-start;align-items:center}.general-clinical-editor__actions{justify-content:stretch;flex-direction:column}}.letter-editor-toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.letter-editor-toolbar .toolbar-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.letter-editor-toolbar .ghost{padding:6px 10px;border-radius:10px}.letter-editor-toolbar select{padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:.85rem}.toolbar-sep{width:1px;height:24px;background:var(--line);display:inline-block}.letter-editor-surface{min-height:320px;padding:14px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:.95rem;line-height:1.2;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;color:var(--ink);direction:ltr;text-align:left;white-space:normal}.letter-editor-surface p,.letter-editor-surface h1,.letter-editor-surface h2,.letter-editor-surface h3,.letter-editor-surface h4,.letter-editor-surface h5,.letter-editor-surface h6{margin:0 0 8px}.letter-editor-surface br{line-height:1.2}.letter-editor-surface:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1db3a633}.letter-editor-toolbar .underline{text-decoration:underline}.letter-editor-toolbar .strike{text-decoration:line-through}.letter-editor-body{direction:ltr;text-align:left}.collapsible-body{transition:opacity .3s ease,margin .3s ease;max-height:none;opacity:1;overflow:visible}.medical-questions.collapsible-body{max-height:none}.collapsible.is-collapsed .collapsible-body{max-height:0;opacity:0;margin-top:0;overflow:hidden;pointer-events:none}.collapsible.is-collapsed .chevron{transform:rotate(-45deg)}@media (max-width: 960px){.hero,.layout{grid-template-columns:1fr}.details-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}.appointments-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:stretch}.calendar-filter-bar{display:grid;grid-template-columns:minmax(140px,180px) repeat(4,minmax(160px,1fr)) auto;gap:12px;align-items:start;padding:12px;border-radius:14px;background:var(--surface-muted);border:1px solid var(--line);position:relative}.calendar-filter-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:10px;background:#1d3d5c;color:#fff;font-size:.9rem;font-weight:600;height:fit-content}.filter-settings-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:10px;border:1px solid #d5deeb;background:#fff;color:#1d3d5c;box-shadow:0 4px 10px #0f213a14;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.filter-settings-button svg{width:20px;height:20px}.calendar-filter-settings{display:flex;justify-content:flex-end;align-self:start;position:absolute;right:12px;bottom:12px}.filter-settings-button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0f213a1f;border-color:#b8c7dc}.filter-settings-button:focus-visible{outline:2px solid #2aa6a1;outline-offset:2px}.settings-list{display:flex;flex-direction:column;gap:10px}.settings-row{display:grid;grid-template-columns:minmax(160px,1fr) auto auto auto;align-items:center;gap:10px}.color-picker-wrap{position:relative;display:inline-flex}.settings-row input[type=text]{width:100%}.color-swatch{width:36px;height:36px;border-radius:10px;border:2px solid #ffffff;box-shadow:0 0 0 1px #d5deeb}.color-picker{position:absolute;z-index:5;top:44px;left:0;display:grid;grid-template-columns:repeat(6,28px);gap:8px;padding:10px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px #0f213a29;-webkit-user-select:none;user-select:none}.color-field{grid-column:span 6;position:relative;height:120px;border-radius:12px;border:1px solid #d5deeb;cursor:crosshair;background-blend-mode:multiply;touch-action:none}.color-cursor{position:absolute;width:14px;height:14px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 0 0 1px #0f213a66;transform:translate(-50%,-50%);pointer-events:none}.hue-slider{grid-column:span 6;width:100%;height:12px;-webkit-appearance:none;appearance:none;border-radius:999px;background:transparent;outline:none}.hue-slider::-webkit-slider-runnable-track{height:12px;border-radius:999px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.hue-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #1d3d5c;box-shadow:0 2px 6px #0f213a33;margin-top:-2px}.hue-slider::-moz-range-track{height:12px;border-radius:999px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.hue-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #1d3d5c;box-shadow:0 2px 6px #0f213a33}.color-preview-row{grid-column:span 6;display:grid;grid-template-columns:32px 1fr;gap:8px;align-items:center}.color-preview{width:32px;height:32px;border-radius:10px;border:2px solid #ffffff;box-shadow:0 0 0 1px #d5deeb}.color-option{width:28px;height:28px;border-radius:8px;border:1px solid rgba(15,33,58,.15)}.color-hex{height:32px}.color-ok{grid-column:span 6;justify-self:end;padding:6px 14px;border-radius:999px;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(120deg,var(--accent),#38d6ca);border:none;color:#042522;box-shadow:0 6px 12px #086b632e}.color-ok:hover{transform:translateY(-1px)}.filter-item.inline{display:inline-flex;align-items:center;gap:6px;margin:0}@media (max-width: 900px){.settings-row{grid-template-columns:1fr;align-items:stretch}}.calendar-filter-group{padding:6px 8px;border-radius:10px;background:#fff;border:1px solid var(--line)}.filter-title{font-weight:600;color:var(--ink);margin-bottom:6px;font-size:.85rem}.filter-list{display:grid;gap:10px}.filter-list.compact{gap:6px}.filter-item{display:grid;grid-template-columns:18px 1fr 22px;align-items:center;gap:8px;color:var(--ink);font-size:.82rem}.filter-item input{accent-color:var(--accent)}.filter-color{width:18px;height:18px;border-radius:4px;border:1px solid rgba(0,0,0,.1);justify-self:end}.filter-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--line);font-size:.8rem}.calendar-sidebar-actions{display:flex;gap:8px;align-items:center;height:fit-content;padding:6px 0;justify-content:flex-end}.calendar-shell{display:grid;gap:16px;padding:18px;min-width:0;overflow:hidden}.calendar-shell>*{min-width:0}.appointments-list-view{display:grid;gap:14px}.appointments-list-header h2{margin:0 0 4px;font-size:1.25rem;color:#17324d}.appointments-list-wrap{width:100%;overflow-x:auto;overflow-y:visible;border-radius:16px;border:1px solid var(--line);background:#fff}.appointments-list-table{width:100%;border-collapse:collapse;min-width:980px}.appointments-list-table th,.appointments-list-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.appointments-list-table thead th{background:#d9e7f5;color:#1f3852;font-weight:600;position:sticky;top:0;z-index:1}.appointments-list-table tbody tr:nth-child(odd){background:#f5f9fd}.appointments-list-table tbody tr:nth-child(2n){background:#eaf2fb}.appointments-list-table tbody tr:hover{background:#deebf8}.appointments-list-row{cursor:pointer}.calendar-toolbar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;position:relative;z-index:30}.calendar-loading-indicator{display:inline-flex;align-items:center;gap:10px;width:fit-content;padding:8px 12px;border-radius:999px;border:1px solid rgba(177,194,216,1);background:#ffffffe0;color:#17324d;font-size:.9rem;font-weight:600}.calendar-loading-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(23,50,77,.22);border-top-color:#1db3a6;animation:calendar-spin .8s linear infinite}@keyframes calendar-spin{to{transform:rotate(360deg)}}.calendar-date{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px;border-radius:999px;background:#dbe7f5b8;border:1px solid rgba(191,206,226,.95);box-shadow:inset 0 1px #ffffffb3,0 10px 24px #0f213a14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:31}.calendar-date-picker{position:relative;display:inline-flex;align-items:center;z-index:32}.calendar-date-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:18}.calendar-date .ghost{color:#36506d;background:transparent;border:1px solid transparent;border-radius:999px;box-shadow:none;font-weight:600;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.calendar-date .ghost:hover{background:#ffffff8c;border-color:#bfcee2f2;color:#17324d}.calendar-date-trigger{min-width:190px;padding:8px 16px;font-weight:600;color:#17324d;background:#ffffffd9;border-color:#b1c2d8;box-shadow:inset 0 1px #ffffffd9,0 6px 16px #0f213a14;justify-content:center}.calendar-date-popover{position:absolute;left:0;top:calc(100% + 10px);z-index:40;width:min(320px,calc(100vw - 32px));padding:14px;border-radius:22px;background:linear-gradient(180deg,#ffffffc7,#eaf3fda3),radial-gradient(circle at top left,rgba(255,255,255,.66),transparent 48%);border:1px solid rgba(190,206,228,.92);box-shadow:inset 0 1px #ffffffe6,inset 0 0 0 1px #ffffff47,0 24px 48px #0f213a2e;-webkit-backdrop-filter:blur(20px) saturate(155%);backdrop-filter:blur(20px) saturate(155%);display:grid;gap:10px;overflow:hidden}.calendar-date-popover-header{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px;align-items:center;margin-bottom:12px}.calendar-date-popover-nav{width:40px;height:40px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffffff85;border:1px solid rgba(190,206,228,.88);box-shadow:inset 0 1px #ffffffd1,0 8px 18px #0f213a14}.calendar-date-popover-controls{display:grid;grid-template-columns:minmax(132px,1fr) minmax(104px,.75fr);gap:8px}.calendar-date-popover-controls select{padding:9px 28px 9px 12px;border-radius:14px;border:1px solid rgba(190,206,228,.9);background:linear-gradient(180deg,#ffffffdb,#f1f7fdb8);color:#17324d;font-size:.88rem;font-weight:600;box-shadow:inset 0 1px #ffffffdb,0 6px 16px #0f213a0f}.calendar-date-popover-controls select:first-child{min-width:132px}.calendar-date-popover-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-date-popover-weekdays{margin-bottom:8px;padding:6px 8px;border-radius:14px;background:linear-gradient(180deg,#ffffff80,#e1ecf8b8);border:1px solid rgba(204,217,234,.82);box-shadow:inset 0 1px #ffffffbf}.calendar-date-popover-weekday{text-align:center;font-size:.72rem;font-weight:700;color:#5e7693;letter-spacing:.04em;text-transform:uppercase}.calendar-date-popover-grid{display:grid;gap:4px;padding:8px;border-radius:18px;background:linear-gradient(180deg,#ffffffbd,#ecf4fcb8);border:1px solid rgba(205,217,234,.88);box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #ffffff4d}.calendar-date-popover-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%}.calendar-date-popover-day{border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,#ffffff6b,#ffffff2e);color:#17324d;border-radius:14px;min-height:40px;padding:0;font-size:.9rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px) saturate(145%);backdrop-filter:blur(10px) saturate(145%);transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}.calendar-date-popover-day:hover{background:linear-gradient(180deg,#ffffffb8,#f6faff61);border-color:#bfcee2e6;box-shadow:inset 0 1px #ffffffdb,0 8px 16px #0f213a14;transform:translateY(-1px)}.calendar-date-popover-day.is-outside-month{color:#8a9ab1}.calendar-date-popover-day.is-today{border-color:#1db3a659;color:#0d8f86}.calendar-date-popover-day.is-selected{background:linear-gradient(180deg,#ffffffeb,#f0f7ffb8);border-color:#b1c2d8f5;color:#17324d;box-shadow:inset 0 1px #ffffffeb,inset 0 0 0 1px #ffffff38,0 10px 18px #0f213a1a}.calendar-date-popover-day.is-selected.is-today{border-color:#1db3a685}.calendar-view-tabs .tab{padding:8px 16px}.calendar-view-tabs{display:inline-flex;align-items:center;gap:10px;padding:6px;border-radius:999px;background:#dbe7f5b8;border:1px solid rgba(191,206,226,.95);box-shadow:inset 0 1px #ffffffb3,0 10px 24px #0f213a14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.calendar-zoom-control,.calendar-interval-control{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:999px;background:#dbe7f5b8;border:1px solid rgba(191,206,226,.95);box-shadow:inset 0 1px #ffffffb3,0 10px 24px #0f213a14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#36506d;font-size:.85rem;font-weight:600}.calendar-interval-control select{min-width:110px;padding:6px 32px 6px 12px;border-radius:999px;border:1px solid rgba(177,194,216,1);background:#ffffffd9;color:#17324d;font-size:.84rem;font-weight:600;box-shadow:inset 0 1px #ffffffd9,0 6px 16px #0f213a14}.calendar-zoom-control input[type=range]{width:120px;padding:0;accent-color:var(--accent)}.calendar-zoom-control strong{min-width:44px;text-align:right;color:#17324d;font-size:.82rem}.calendar-grid,.week-grid,.month-grid,.agenda-view{position:relative;z-index:1}.calendar-view-tabs .tab{color:#36506d;background:transparent;border:1px solid transparent;border-radius:999px;font-weight:600;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.calendar-view-tabs .tab:hover{background:#ffffff8c;border-color:#bfcee2f2}.calendar-view-tabs .tab.is-active{background:#ffffffd9;border-color:#b1c2d8;box-shadow:inset 0 1px #ffffffd9,0 6px 16px #0f213a14;color:#17324d}.calendar-grid{border:1px solid var(--line);border-radius:16px;overflow-x:auto;overflow-y:clip;background:#f4f8fc;max-width:100%;-webkit-overflow-scrolling:touch}.calendar-header{display:grid;grid-template-columns:90px 1fr;background:#e4f1ff;border-bottom:1px solid var(--line);align-items:center}.week-grid{display:grid;gap:6px;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.week-header,.week-subheader,.week-body{display:grid;gap:0}.week-body{max-height:min(70vh,900px);overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.week-day-header{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:6px 10px;border-radius:10px;background:#e9f1fb;border:1px solid var(--line);font-weight:600;color:#18324d}.week-day-title{font-size:.85rem}.week-day-sub{font-size:.75rem;color:#5b6b7f}.week-practitioner-header{padding:6px 8px;font-size:.75rem;font-weight:600;color:#1f2f45;border:1px solid var(--line);border-top:none;background:#f7fbff}.week-empty-header{padding:10px;text-align:center;border:1px dashed var(--line);border-top:none;color:#5b6b7f;background:#f7fbff}.week-body .calendar-time-column{border-right:1px solid var(--line)}.week-column{border-left:1px solid var(--line)}.week-empty-body{min-height:240px}.month-grid{display:grid;gap:8px;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.month-grid-header{display:grid;gap:14px}.month-grid-title{font-size:1.05rem;font-weight:700;color:#17324d}.month-grid-days,.month-grid-body{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-grid-body{grid-auto-rows:160px}.month-grid-day-label{min-height:47px;padding:11px 12px;text-align:center;font-weight:700;color:#1f4368;background:#e8f1fb;border:1px solid #cddbea}.month-grid-day-label:first-child{border-top-left-radius:14px}.month-grid-day-label:last-child{border-top-right-radius:14px}.month-day{min-height:0;padding:10px 11px;border-right:1px solid #d3deec;border-bottom:1px solid #d3deec;background:#fff;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;overflow:hidden;contain:layout paint}.month-grid-body .month-day:nth-child(7n+1){border-left:1px solid #d3deec}.month-grid-body .month-day:nth-child(-n+7){border-top:1px solid #d3deec}.month-day.is-outside-month{background:#f5f8fc}.month-day-number{font-size:.95rem;line-height:1;font-weight:700;color:#16385f;z-index:2}.month-day.is-outside-month .month-day-number{color:#7b8ba1}.month-day-appointments{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:0;overflow-y:auto;overscroll-behavior:auto;scroll-behavior:auto;padding-right:0;scrollbar-width:none;-ms-overflow-style:none}.month-day-appointments::-webkit-scrollbar{width:0;height:0}.month-appointment{position:relative;flex:0 0 auto;width:100%;height:52px;min-height:52px;text-align:left;border:1px solid #8da3bf;border-radius:9px;padding:7px 10px;display:grid;align-content:center;gap:3px;cursor:pointer;overflow:hidden;box-shadow:inset 0 1px #ffffff5c,0 5px 10px #0f213a1f;transition:transform .12s ease,box-shadow .16s ease}.month-appointment:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff57,#ffffff1f 46%,#fff0),radial-gradient(circle at 18% 0%,rgba(255,255,255,.28),transparent 52%);pointer-events:none;z-index:0}.month-appointment-time{font-size:.75rem;line-height:1.1;font-weight:800;opacity:1;position:relative;z-index:1}.month-appointment-label{font-size:.86rem;line-height:1.15;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;z-index:1}.month-appointment:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff5c,0 8px 14px #0f213a24}.month-empty{min-height:220px;display:grid;place-items:center}.month-day-empty{min-height:18px}.agenda-view{display:grid;gap:16px}.agenda-range{font-size:1rem;font-weight:700;color:#17324d}.agenda-groups{display:grid;gap:18px}.agenda-group{border:1px solid var(--line);border-radius:18px;background:#f7fbff;overflow:hidden}.agenda-group-header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#e9f1fb;border-bottom:1px solid var(--line)}.agenda-practitioner-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700}.agenda-practitioner-name{font-size:1.05rem;font-weight:700;color:#17324d}.agenda-rows{display:grid}.agenda-row{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(130px,.55fr) minmax(0,1.6fr);border-bottom:1px solid var(--line)}.agenda-row:last-child{border-bottom:none}.agenda-date,.agenda-time{padding:16px;background:#eef5fc}.agenda-time{border-left:1px solid var(--line);font-weight:600;color:#17324d}.agenda-date-day{font-size:.95rem;font-weight:700;color:#17324d}.agenda-date-full{margin-top:4px;font-size:.82rem;color:#52657c}.agenda-appointment{position:relative;border:1px solid transparent;background:#fff;text-align:left;padding:16px;display:grid;gap:4px;cursor:pointer}.agenda-appointment-title{font-size:1.05rem;font-weight:700}.agenda-appointment-meta{font-size:.84rem;opacity:.9}.calendar-time-label{padding:10px 12px;font-size:.85rem;color:var(--ink-soft)}.calendar-practitioner{display:flex;align-items:center;gap:12px;padding:10px 12px;font-weight:600}.calendar-practitioner-empty{color:var(--ink-soft);font-weight:500}.calendar-avatar{width:36px;height:36px;border-radius:50%;background:#d8ecff;color:#2463a0;display:grid;place-items:center;font-weight:700;font-size:.9rem}.calendar-body{display:grid;grid-template-columns:90px 1fr;max-height:min(70vh,900px);overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.calendar-body.zoom-preview-active .calendar-time-column,.calendar-body.zoom-preview-active .calendar-slots,.week-body.zoom-preview-active .calendar-time-column,.week-body.zoom-preview-active .calendar-slots{transform:scaleY(var(--calendar-zoom-preview-scale, 1));transform-origin:top;will-change:transform}.calendar-time-column{--calendar-slot-height: 72px;background:#f9fbfe;border-right:1px solid var(--line);display:grid;grid-auto-rows:var(--calendar-slot-height);background-image:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(214,222,233,.45) calc(100% - 1px));background-size:100% var(--calendar-slot-height)}.calendar-time{padding:0 12px;display:flex;align-items:flex-start;font-size:.8rem;color:var(--ink-soft);line-height:1}.calendar-slots{--calendar-slot-height: 72px;background:#fff;position:relative;--appointment-inset: 8px;display:grid;grid-auto-rows:var(--calendar-slot-height);background-image:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(214,222,233,.45) calc(100% - 1px));background-size:100% var(--calendar-slot-height)}.calendar-column{border-left:1px solid rgba(214,222,233,.6)}.calendar-empty{grid-column:2 / -1;padding:24px;color:var(--ink-soft);font-weight:500}.calendar-slot{border:none;background:transparent;width:100%;outline:none;box-shadow:none;cursor:pointer;box-sizing:border-box;height:100%}.calendar-slot:hover{background:#1db3a614}.calendar-slot.is-occupied,.calendar-slot:disabled{cursor:default;pointer-events:none;background:transparent}.calendar-appointment{position:absolute;left:var(--appointment-inset);right:var(--appointment-inset);padding:8px 12px;background:#1db3a62e;border:1px solid rgba(29,179,166,.4);border-radius:10px;font-size:.82rem;color:#0b4f49;display:grid;gap:4px;cursor:pointer;box-sizing:border-box;overflow:hidden;isolation:isolate;-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);box-shadow:inset 0 1px #ffffff47,0 10px 18px #0914201f;transition:transform .15s ease,box-shadow .2s ease,filter .2s ease}.calendar-appointment:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff47,#ffffff14 45%,#ffffff05),radial-gradient(circle at top left,rgba(255,255,255,.22),transparent 48%);pointer-events:none;z-index:0}.calendar-appointment.is-compact{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:2px;padding:6px 10px}.calendar-appointment-main{display:grid;gap:4px;min-width:0;position:relative;z-index:1}.calendar-appointment.is-compact .calendar-appointment-main{display:grid;grid-auto-rows:min-content;gap:1px}.calendar-appointment.is-compact .calendar-appointment-name{line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-appointment:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0914202e;filter:brightness(1.03)}.appointment-link-icon{position:absolute;top:6px;right:6px;width:24px;height:24px;border:1px solid rgba(255,255,255,.45);border-radius:8px;background:#0b121e52;color:#fff;display:inline-flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease,background .15s ease;z-index:2}.appointment-link-icon svg{width:14px;height:14px}.calendar-appointment:hover .appointment-link-icon,.month-appointment:hover .appointment-link-icon,.agenda-appointment:hover .appointment-link-icon,.appointment-link-icon:focus-visible{opacity:1;pointer-events:auto}.appointment-link-icon:hover{transform:translateY(-1px);background:#0b121e7a}.month-link-icon,.agenda-link-icon{top:7px;right:7px}.month-link-icon{background:#0b121e6b;box-shadow:0 2px 6px #080f1a38}.context-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.context-menu{position:fixed;z-index:21;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 12px 28px #0c121c2e;min-width:180px}.context-menu .ghost{width:100%;text-align:left;border-radius:10px}.calendar-appointment-time{font-weight:600}.calendar-appointment-name{display:block;font-size:1.05rem;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-appointment-treatment{font-size:.78rem;color:currentColor;opacity:.85}.calendar-appointment.is-compact .calendar-appointment-time{display:block;font-size:.68rem;line-height:1}.calendar-appointment.is-compact .calendar-appointment-name{display:block;font-size:.82rem}.calendar-appointment.is-compact .calendar-appointment-treatment{display:block;font-size:.66rem;margin-top:1px}.calendar-appointment-contact{font-size:.72rem;color:currentColor;opacity:.8;display:grid;gap:2px;min-width:0;position:relative;z-index:1}.calendar-appointment-contact span{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-appointment-contact.is-compact{display:grid;justify-items:start;text-align:left;font-size:.64rem;line-height:1;gap:0;min-width:0;max-width:100%;overflow:hidden}.calendar-appointment-contact.is-compact span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%}.calendar-appointment-contact.is-compact span+span{display:none}.patient-field,.patient-input-wrap{position:relative}.patient-dropdown{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 30px #0a17281f;max-height:220px;overflow:auto;z-index:20;display:grid;gap:2px;padding:6px}.patient-option{border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:10px;font-size:.9rem;cursor:pointer}.patient-option:hover{background:var(--surface-muted)}.treatment-dropdown{padding:0;gap:0;max-height:280px;overflow:auto}.treatment-option-table{width:100%;border-collapse:collapse;min-width:620px}.treatment-option-table th,.treatment-option-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.treatment-option-table thead th{position:sticky;top:0;z-index:1;background:#d9e7f5;color:#1f3852;font-weight:600}.treatment-option-row{cursor:pointer}.treatment-option-table tbody tr:nth-child(odd){background:#f5f9fd}.treatment-option-table tbody tr:nth-child(2n){background:#eaf2fb}.treatment-option-row:hover{background:#2f5f88!important;color:#fff}.patient-contact{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-muted);display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));font-size:.9rem}.patient-contact-field{display:grid;gap:6px}.patient-contact-field-wide{grid-column:1 / -1}.patient-contact-field label{color:var(--ink-soft);font-weight:600}.modal-card.modal-card-wide{width:min(1100px,96vw)}.confirm-dialog{width:min(460px,92vw)}.confirm-dialog-message{margin:0;color:var(--ink);font-size:1rem;line-height:1.5}.calendar-footer{display:flex;justify-content:flex-start}@media (max-width: 1024px){.calendar-filter-bar{grid-template-columns:1fr}.month-grid-days,.month-grid-body{min-width:820px}.agenda-row{grid-template-columns:1fr}.agenda-time,.agenda-appointment{border-left:none;border-top:1px solid var(--line)}}.reminders-page{display:flex;flex-direction:column;gap:24px}.notify-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:18px;box-shadow:0 12px 24px #0f172a12;overflow:hidden;content-visibility:auto;contain-intrinsic-size:520px}.notify-card__body{padding:24px 26px;display:flex;flex-direction:column;gap:22px;background:linear-gradient(180deg,#f8fafc59,#f1f5f999)}.notify-card__section{display:flex;flex-direction:column;gap:10px}.notify-card__section--header{gap:16px}.notify-kicker{align-self:flex-start;padding:4px 10px;border-radius:999px;background:#38bdf81f;color:#0369a1;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.notify-card__title{margin:0;font-size:1.35rem;font-weight:700;color:#1f2937}.notify-card__description,.notify-card__summary,.notify-card__footnote,.notify-field__hint{margin:0;color:#475569;line-height:1.6}.notify-card__heading,.notify-card__control-stack{display:flex;flex-direction:column;gap:14px}.notify-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.notify-settings-grid .field-wide{grid-column:1 / -1}.notify-field__label{font-weight:700;color:#1f2937}.notify-field__control,.reminders-page input,.reminders-page textarea,.reminders-page select{width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(203,213,225,.95);background:#f8fafc;color:#0f172a;font-size:.98rem}.notify-field__control:focus,.reminders-page input:focus,.reminders-page textarea:focus,.reminders-page select:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e929;background:#fff}.notify-field__control--textarea{min-height:120px;resize:vertical}.notify-field__control--inline{min-width:110px;padding:8px 10px;font-size:.92rem}.notify-card__search{max-width:360px}.notify-message-mode{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px}.notify-message-mode__controls{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:#0ea5e91a;border:1px solid rgba(14,165,233,.2)}.notify-message-mode__button{border:none;background:transparent;color:#0f4c6d;font-weight:700;padding:8px 14px;border-radius:999px;cursor:pointer}.notify-message-mode__button.is-active{background:#fff;color:#0b4f70;box-shadow:0 6px 14px #0ea5e933}.notify-directory-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.notify-directory-toolbar .notify-field__control{flex:1 1 320px}.notify-directory-toolbar .patient-filter-bar{justify-content:flex-start;flex:0 0 auto}.notify-directory-toolbar .date-range-filter-group{gap:6px;padding:8px 10px}.notify-directory-toolbar .date-range-filter-label{font-size:.76rem}.notify-directory-toolbar .date-range-filter-clear{padding:4px 8px;font-size:.72rem}.notify-directory-toolbar .date-range-filter{gap:5px;flex-wrap:nowrap}.notify-directory-toolbar .date-range-filter select,.notify-directory-toolbar .date-range-filter input{min-width:102px;padding:6px 8px;font-size:.78rem}.notify-directory-table{max-height:280px;overflow:auto;overscroll-behavior:contain}.notify-card__date-controls,.notify-card__toolbar,.notify-card__actions,.notify-card__actions--inline{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.notify-toggle{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#0ea5e914;border:1px solid rgba(14,165,233,.15)}.reminders-page .notify-card__toolbar .notify-toggle{padding:7px 10px;gap:7px}.notify-toggle__input,.notify-checkbox{width:18px;height:18px;accent-color:#0ea5e9}.reminders-page .notify-card__toolbar .notify-toggle__input{width:15px;height:15px}.notify-toggle__label{font-weight:600;color:#0f4c6d}.reminders-page .notify-card__toolbar .notify-toggle__label{font-size:.86rem}.notify-text-button,.notify-secondary-action{padding:10px 14px;border-radius:999px;border:1px solid rgba(14,165,233,.18);background:#0ea5e90f;color:#0f4c6d;font-weight:600;cursor:pointer}.notify-primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:14px;border:none;background:linear-gradient(120deg,#0ea5e9,#06b6d4);color:#fff;font-weight:700;box-shadow:0 14px 28px #0ea5e947;cursor:pointer}.notify-primary-action[disabled],.notify-secondary-action[disabled],.notify-text-button[disabled]{opacity:.55;cursor:not-allowed}.notify-add-manual-button{align-self:flex-start}.notify-progress{display:flex;flex-direction:column;gap:8px}.notify-progress__track{height:10px;border-radius:999px;overflow:hidden;background:#e2e8f0e6}.notify-progress__bar{height:100%;background:linear-gradient(120deg,#0ea5e9,#06b6d4)}.notify-table__wrapper{overflow-x:auto;overflow-y:visible}.notify-card--table .notify-table__wrapper{max-height:560px;overflow:auto;overscroll-behavior:contain}.notify-card--table .notify-table th{position:sticky;top:0;z-index:1;background:#fff}.notify-table{width:100%;min-width:980px;border-collapse:collapse;background:#fff}.notify-table th,.notify-table td{padding:12px 10px;border-bottom:1px solid rgba(226,232,240,.85);text-align:left;vertical-align:middle}.notify-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.notify-table tbody tr:nth-child(odd){background:#f8fafcb3}.notify-table__row--manual td{background:#fef9c3}.notify-tag{display:inline-flex;margin-top:6px;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase}.notify-tag--manual{background:#eab3082e;color:#92400e}.notify-inline-alert{margin-top:0}.notify-list{margin:10px 0 0;padding-left:20px}.notify-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f172a8f}.notify-dialog{width:min(960px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 30px 60px #0f172a59}.notify-dialog__header,.notify-dialog__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px}.notify-dialog__header{border-bottom:1px solid #e5e7eb}.notify-dialog__footer{border-top:1px solid #e5e7eb}.notify-dialog__body{padding:18px 22px;overflow:hidden}.notify-dialog__table-scroll{max-height:60vh;overflow:auto}.notify-delivery-table{width:100%;border-collapse:collapse}.notify-delivery-table th,.notify-delivery-table td{padding:12px 10px 12px 0;border-bottom:1px solid #e5e7eb;vertical-align:top}.notify-dialog__primary{font-weight:700}.notify-dialog__subtext,.notify-dialog__muted{color:#6b7280;font-size:.88rem}.notify-dialog__mono{display:inline-block;padding:6px 8px;border-radius:8px;background:#f3f4f6;font-size:.84rem;word-break:break-all}.notify-delivery-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.84rem;font-weight:700}.notify-delivery-status--success{background:#10b9811f;color:#047857}.notify-delivery-status--failed{background:#f8717129;color:#b91c1c}.notify-icon-button{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:#6b7280}.notify-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:999px;animation:notify-spin .9s linear infinite}@keyframes notify-spin{to{transform:rotate(360deg)}}@media (min-width: 900px){.notify-card__section--header{flex-direction:row;justify-content:space-between;align-items:flex-start}.reminders-page .notify-card__section--header .notify-card__control-stack{margin-left:auto;align-items:flex-end}.reminders-page .notify-card__section--header .notify-card__date-controls{justify-content:flex-end}}@media (max-width: 900px){.notify-settings-grid{grid-template-columns:1fr}}@media (max-width: 1280px){.top-nav-mobile-search{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;max-width:560px;max-height:0;margin:0 0 0 auto;padding:0;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-8px);transition:max-height .22s ease,margin .22s ease,opacity .18s ease,transform .22s ease}.top-nav-mobile-search.is-open{max-height:72px;margin:-16px 0 24px auto;opacity:1;pointer-events:auto;transform:translateY(0)}.top-nav-mobile-search input{width:100%;min-width:0;min-height:46px;padding:12px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:linear-gradient(180deg,#ffffff2e,#ffffff1a),#ffffff1a;color:#f8fbff;font-size:.95rem;box-shadow:inset 0 1px #ffffff14,0 14px 30px #08111f2e;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.top-nav-mobile-search input::placeholder{color:#f8fbffad}.top-nav-mobile-search input:focus{outline:none;border-color:#38d6cab8;box-shadow:0 0 0 3px #38d6ca2e,0 14px 30px #08111f2e}.top-nav-mobile-search-close{width:46px;height:46px;min-width:46px;padding:0;border-radius:50%;border-color:#ffffff3d;background:#ffffff1a;color:#f8fbff;font-size:1.35rem;line-height:1;box-shadow:inset 0 1px #ffffff14,0 12px 26px #08111f24}.top-nav-mobile-search-close:hover{border-color:#38d6ca73;color:#fff;background:#ffffff29}.page{padding-inline:clamp(24px,3.2vw,40px)}.patient-panel{padding:24px}.calendar-shell{padding:16px}.calendar-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-filter-header{grid-column:1 / -1}.calendar-sidebar-actions{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap;padding-right:48px}.calendar-filter-settings{right:12px;bottom:12px}.calendar-sidebar-actions .ghost:not(.filter-settings-button){min-height:44px}.calendar-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,auto);align-items:center}.calendar-date,.calendar-view-tabs{justify-self:start}.calendar-zoom-control,.calendar-interval-control{justify-self:end}.calendar-date{grid-column:1;grid-row:1}.calendar-zoom-control{grid-column:2;grid-row:1}.calendar-view-tabs{grid-column:1;grid-row:2}.calendar-interval-control{grid-column:2;grid-row:2}}@media (max-width: 1100px){.page{padding:34px clamp(16px,3.2vw,32px) 56px}.hero{gap:16px;margin-bottom:22px}.hero-compact{grid-template-columns:1fr}.panel{padding:22px;border-radius:16px}.patient-detail-panel,.profile-section,.notify-card__body{padding:20px}.treatment-table,.appointments-list-table,.notify-table{min-width:860px}.all-treatments-table{min-width:0}.all-treatments-table th,.all-treatments-table td{padding:9px 6px;font-size:.8rem}.all-treatments-table .filter-row input,.all-treatments-table .filter-row select{padding-inline:6px;font-size:.74rem}.all-treatments-table .table-filter-trigger,.all-treatments-table .table-filter-option{font-size:.74rem}.practice-documents-table th,.practice-documents-table td{padding:10px 8px;font-size:.82rem}.practice-document-actions .ghost{min-height:36px;padding:7px 9px;font-size:.78rem}.calendar-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-filter-header,.calendar-filter-settings{grid-column:1 / -1}.calendar-filter-settings{position:static;justify-content:flex-start;padding:0}}@media (max-width: 780px){html,body,app-root{min-height:100dvh}body{overflow-y:auto}.page{min-height:100dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y pinch-zoom;padding:22px 12px 40px}.hero{margin-bottom:18px}h1{font-size:clamp(1.55rem,8vw,2rem);line-height:1.12}.eyebrow{letter-spacing:.18em}.subhead{font-size:.92rem}.panel{padding:16px;border-radius:14px}.top-nav-mobile-search{max-width:none;width:100%}.top-nav-mobile-search.is-open{margin-top:-12px;margin-bottom:22px}.calendar-filter-bar{grid-template-columns:1fr}.calendar-sidebar-actions{padding-right:0}.calendar-toolbar{grid-template-columns:1fr}.calendar-date,.calendar-zoom-control,.calendar-interval-control,.calendar-view-tabs{grid-column:1;grid-row:auto;justify-self:stretch;width:100%}.calendar-date,.calendar-zoom-control,.calendar-interval-control{border-radius:16px}.calendar-date{justify-content:space-between}.calendar-date-trigger{flex:1 1 auto;min-width:0}.calendar-zoom-control,.calendar-interval-control{justify-content:space-between}.subnav{width:100%;max-width:100%;flex-wrap:nowrap;overflow-x:auto;padding:5px;border-radius:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.subnav::-webkit-scrollbar{display:none}.subnav-link,.nav-link{flex:0 0 auto;padding:8px 12px;font-size:.82rem}.patient-toolbar,.treatment-toolbar,.entries-header,.modal-footer,.notify-card__toolbar,.notify-card__actions,.notify-card__actions--inline{align-items:stretch}.patient-toolbar>*,.treatment-toolbar>*,.entries-header>*,.notify-card__toolbar>*,.notify-card__actions>*,.notify-card__actions--inline>*{min-width:0}.patient-toolbar .search-wrap,.patient-toolbar .search-wrap input,.patient-ai-search,.treatment-launch-button,.treatment-view-toggle,.notify-card__search,.notify-field__control{width:100%}.treatment-view-toggle,.tab-bar,.communications-channel-tabs,.clinical-tab-bar{overflow-x:auto;flex-wrap:nowrap;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch}.treatment-view-toggle::-webkit-scrollbar,.tab-bar::-webkit-scrollbar,.communications-channel-tabs::-webkit-scrollbar,.clinical-tab-bar::-webkit-scrollbar{display:none}.tab,.communications-channel-tab,.clinical-tab{flex:0 0 auto}.patient-form,.detail-fields,.treatments-grid,.notify-settings-grid,.patient-contact,.insurance-body,.medical-question-row,.practitioner-hours-row,.settings-row{grid-template-columns:1fr}input,select,textarea{font-size:16px}.primary,.ghost,.tab,.notify-primary-action,.notify-secondary-action,.notify-text-button{min-height:44px}.treatment-table-wrap,.patient-table-wrap,.appointments-list-wrap,.notify-table__wrapper,.services-table-wrap{border-radius:14px;-webkit-overflow-scrolling:touch}.patient-table th,.patient-table td,.treatment-table th,.treatment-table td,.appointments-list-table th,.appointments-list-table td,.notify-table th,.notify-table td{padding:10px 12px;font-size:.84rem}.all-treatments-table th,.all-treatments-table td{padding:8px 5px;font-size:.76rem}.all-treatments-table .filter-row input,.all-treatments-table .filter-row select{padding-inline:5px;font-size:.72rem}.all-treatments-table .table-filter-trigger,.all-treatments-table .table-filter-option{font-size:.72rem}.practice-documents-toolbar .search-wrap,.practice-documents-toolbar .search-wrap input,.practice-documents-toolbar .hero-actions,.practice-documents-toolbar .treatment-launch-button{width:100%}.practice-documents-toolbar .hero-actions{justify-content:stretch}.practice-documents-table th,.practice-documents-table td{padding:9px 7px;font-size:.78rem}.practice-documents-table th:nth-child(1),.practice-documents-table td:nth-child(1){width:32%}.practice-documents-table th:nth-child(6),.practice-documents-table td:nth-child(6){width:26%}.modal-backdrop,.notify-dialog-overlay{align-items:stretch;place-items:stretch;padding:8px}.modal-card,.treatment-modal-card,.appointment-modal-card,.modal-card.modal-card-wide,.notify-dialog{width:100%;max-height:calc(100dvh - 16px);border-radius:14px;padding:14px}.appointment-modal-card{display:block;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.appointment-modal-card .modal-body{overflow:visible;padding-right:0}.appointment-modal-card .patient-contact,.appointment-modal-card .appointment-field-reminders .field-group.inline-actions{grid-template-columns:1fr}.appointment-modal-card .patient-contact-field,.appointment-modal-card .patient-contact-field-wide,.appointment-modal-card .patient-contact-field-address,.appointment-modal-card .patient-contact-field-town,.appointment-modal-card .patient-contact-field-compact{grid-column:1 / -1}.modal-header,.notify-dialog__header,.notify-dialog__footer{gap:10px}.modal-footer{flex-direction:column-reverse}.modal-footer .primary,.modal-footer .ghost,.general-clinical-editor__actions .primary,.general-clinical-editor__actions .ghost{width:100%}.pagination{align-items:stretch}.page-controls,.page-size,.item-count{width:100%;margin-left:0}}@media (max-width: 640px){.mobile-card-table{min-width:0;border-collapse:separate;border-spacing:0 12px;background:transparent}.mobile-card-table thead,.mobile-card-table tbody,.mobile-card-table tfoot,.mobile-card-table tr,.mobile-card-table th,.mobile-card-table td{display:block}.mobile-card-table thead tr:not(.filter-row){display:none}.mobile-card-table thead .filter-row{display:grid;gap:10px;margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f5f8fc}.mobile-card-table thead .filter-row th{position:static;top:auto;z-index:auto;padding:0;border:0;background:transparent}.mobile-card-table thead .filter-row th:empty{display:none}.mobile-card-table tbody tr,.mobile-card-table tfoot tr{margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 10px 24px #0f213a12}.mobile-card-table tbody td,.mobile-card-table tfoot td{display:grid;grid-template-columns:minmax(104px,.42fr) minmax(0,1fr);gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(214,222,233,.72);white-space:normal;word-break:break-word}.mobile-card-table tbody td:last-child,.mobile-card-table tfoot td:last-child{border-bottom:0}.mobile-card-table tbody td:before,.mobile-card-table tfoot td:before{content:attr(data-label);color:var(--ink-soft);font-weight:700;font-size:.78rem}.mobile-card-table tbody td[data-label=""]:before,.mobile-card-table tfoot td[data-label=""]:before{display:none}.mobile-card-table tbody td:not([data-label]):nth-child(8):before{content:"Price"}.mobile-card-table tfoot .treatment-total:before{content:"Total";display:block}.mobile-card-table tfoot td:empty{display:none}.mobile-card-table .empty-row{display:block;padding:16px 0;text-align:center}.mobile-card-table .empty-row:before{display:none}.mobile-card-table td .ghost,.mobile-card-table td .primary{width:fit-content}.patient-table-wrap,.treatment-table-wrap{overflow:visible;border:0;background:transparent}.all-treatments-table th:nth-child(n),.all-treatments-table td:nth-child(n){width:auto}.practice-documents-table th:nth-child(n),.practice-documents-table td:nth-child(n){width:auto}.practice-documents-table .file-link-button{padding:0}.practice-documents-table .file-type-icon{width:38px;min-width:38px;height:46px}.practice-document-actions{justify-content:flex-start}.practice-document-actions .ghost{flex:1 1 calc(50% - 6px);min-width:96px}.table-filter-menu{position:static;min-width:0;margin-top:8px}}@media (max-width: 420px){.page{padding:16px 10px 32px}.panel,.patient-detail-panel,.profile-section,.notify-card__body{padding:14px}.hero{gap:10px}.brand{width:100%}.mobile-card-table tbody td,.mobile-card-table tfoot td{grid-template-columns:1fr;gap:4px}.save-toast{right:12px;bottom:16px;max-width:calc(100vw - 24px)}}.public-shell{min-height:100vh;padding:clamp(20px,3vw,34px) clamp(20px,4vw,56px) 72px;display:grid;align-content:start;gap:22px;background:radial-gradient(circle at 12% 18%,rgba(29,179,166,.24),transparent 48%),radial-gradient(circle at 88% 8%,rgba(96,130,210,.2),transparent 44%),linear-gradient(150deg,#0b1524,#102035 52%,#0a1321);color:#f8fbff}.public-header{display:flex;align-items:center;justify-content:space-between;width:min(1160px,100%);margin:0 auto;padding:2px 2px 8px}.public-brand{color:#f8fbff;text-decoration:none;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.landing-shell{gap:clamp(22px,3.2vw,38px)}.landing-hero{width:min(1160px,100%);margin:0 auto;max-width:1160px;display:grid;gap:16px;padding:clamp(18px,3.4vw,34px) clamp(18px,3.6vw,38px);border-radius:24px;background:radial-gradient(circle at 18% 28%,rgba(29,179,166,.18),transparent 48%),linear-gradient(112deg,#112d47c7,#17305d8c 52%,#1f356161);border:1px solid rgba(176,205,232,.2);box-shadow:0 22px 40px #030a1359}.landing-kicker{margin:0;letter-spacing:.2em;text-transform:uppercase;font-size:.74rem;color:#f8fbffb8}.landing-hero h1{margin:0;max-width:15ch;line-height:1.06;letter-spacing:-.02em;font-size:clamp(2.2rem,5.2vw,4.4rem)}.landing-hero p{margin:0;color:#f8fbffd9;max-width:42ch;font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.45}.landing-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}.landing-actions .primary,.landing-actions .ghost{min-height:52px;padding:0 20px;border-radius:14px;font-weight:600}.landing-actions .primary{color:#042833;background:linear-gradient(180deg,#31d8cf,#21beb8);border:1px solid rgba(120,255,245,.65);box-shadow:0 10px 26px #1db3a657}.landing-actions .ghost{color:#f4fbff;background:#10223c80;border:1px solid rgba(210,232,255,.58);box-shadow:inset 0 1px #ffffff1a}.landing-actions .ghost:hover,.landing-actions .ghost:focus-visible{color:#fff;background:#1d3558d1;border-color:#e4f2ffe0}.public-header .ghost{color:#f4fbff;background:#1527459e;border:1px solid rgba(214,233,255,.66);min-height:40px;padding:0 16px;border-radius:12px;font-weight:600;box-shadow:0 10px 20px #040a143d}.public-header .primary{color:#042833;background:linear-gradient(180deg,#31d8cf,#21beb8);border:1px solid rgba(120,255,245,.65);min-height:40px;padding:0 16px;border-radius:12px;font-weight:600;box-shadow:0 10px 20px #040a143d}.public-header .ghost:hover,.public-header .ghost:focus-visible{color:#fff;background:#1f3861d6;border-color:#ecf6fff2}.public-header .primary:hover,.public-header .primary:focus-visible{background:linear-gradient(180deg,#45e3da,#28c8c1);border-color:#96fff7eb}.landing-grid{width:min(1160px,100%);margin:0 auto;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.landing-card{min-height:152px;border-radius:20px;padding:22px 22px 20px;border:1px solid rgba(186,215,239,.18);background:linear-gradient(165deg,#8cabcd33,#42598147);box-shadow:0 14px 28px #07101c4d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing-card h2{margin:0 0 10px;font-size:1.8rem;line-height:1.2}.landing-card p{margin:0;color:#f8fbffcc;font-size:1rem;line-height:1.42}.login-shell{place-items:start center}.login-card{width:min(460px,100%);border-radius:22px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#ffffff29,#ffffff17);box-shadow:0 24px 54px #040a146b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px;display:grid;gap:12px}.login-card h1{margin:0;font-size:2rem}.login-card>p{margin:0;color:#f8fbffc7}.login-form{display:grid;gap:12px}.login-form label{display:grid;gap:6px;font-size:.88rem;color:#f8fbffe0}.login-form input{border-radius:12px;border:1px solid rgba(255,255,255,.24);background:#0a121e8f;color:#fff;padding:11px 12px}.login-form input::placeholder{color:#f8fbff75}.login-error{margin:0;padding:10px 12px;border-radius:12px;border:1px solid rgba(248,113,113,.35);background:#7f1d1d59;color:#fecaca;font-size:.88rem}@media (max-width: 900px){.landing-hero{padding:22px 18px;border-radius:18px}.landing-hero h1{max-width:100%}.landing-actions .primary,.landing-actions .ghost{width:100%;justify-content:center}.landing-grid{grid-template-columns:1fr}.landing-card{min-height:0}}@media (max-width: 768px){html,body,app-root,.page{min-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.page{overflow-x:hidden;touch-action:pan-y}.panel,.detail-card,.patient-panel,.practice-documents-panel,.appointments-list-view,.agenda-view,.treatments-layout,.details-grid{overflow:visible;touch-action:pan-y}.patient-table-wrap,.treatment-table-wrap,.practice-documents-table-wrap,.appointments-list-wrap,.calendar-grid,.week-grid,.month-grid{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.calendar-body,.week-body{max-height:none;overflow:visible;touch-action:pan-y}.month-day-appointments{overflow-y:auto;touch-action:pan-y}}
