:root{--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:40px;--space-7:48px;--radius-sm:4px;--radius-md:6px;--radius-pill:999px;--color-bg:#f4f6f7;--color-surface:#fff;--color-surface-sunken:#f8f9fa;--color-border:#dde2e5;--color-border-strong:#c7cdd1;--color-text-primary:#1c2529;--color-text-secondary:#5b6a70;--color-text-muted:#8a969a;--color-text-inverse:#fff;--color-primary:#0f7a6f;--color-primary-hover:#0c655c;--color-primary-subtle:#e4f2f0;--color-sidebar-bg:#1b2a30;--color-sidebar-text:#b9c6ca;--color-sidebar-text-active:#fff;--color-sidebar-active-bg:#274048;--color-sidebar-border:#2a3a40;--color-success:#1f8a54;--color-success-bg:#e5f4ec;--color-warning:#a56a11;--color-warning-bg:#fbf0dd;--color-danger:#b3311f;--color-danger-bg:#fbe9e6;--color-info:#33627e;--color-info-bg:#e6eef3;--font-family:"Segoe UI", -apple-system, BlinkMacSystemFont, "Inter", Arial, sans-serif;--font-size-page-title:20px;--font-size-section-title:14px;--font-size-body:13px;--font-size-secondary:12.5px;--font-size-table:13px;--font-size-label:12px;--font-size-meta:11.5px;--line-height-base:1.45;--shadow-sm:0 1px 2px #141e210f;--shadow-md:0 4px 16px #141e211f;--control-height:32px;--control-height-sm:26px}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-body);line-height:var(--line-height-base);color:var(--color-text-primary);background:var(--color-bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2,h3,h4,p{margin:0}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}table{border-collapse:collapse}.sidebar{background:var(--color-sidebar-bg);width:232px;color:var(--color-sidebar-text);flex-direction:column;flex-shrink:0;height:100vh;display:flex}.sidebar-brand{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--color-sidebar-border);display:flex}.sidebar-brand-mark{border-radius:var(--radius-sm);background:var(--color-primary);width:30px;height:30px;color:var(--color-text-inverse);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.sidebar-brand-name{font-size:var(--font-size-section-title);color:var(--color-sidebar-text-active);font-weight:600}.sidebar-nav{padding:var(--space-3) var(--space-2);gap:var(--space-1);flex-direction:column;display:flex}.sidebar-nav-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);color:var(--color-sidebar-text);font-size:var(--font-size-body);font-weight:500;text-decoration:none;display:flex}.sidebar-nav-item:hover{background:var(--color-sidebar-border);color:var(--color-sidebar-text-active)}.sidebar-nav-item-active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-text-active)}.sidebar-nav-icon{flex-shrink:0;display:inline-flex}.app-header{height:52px;padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.app-header-context{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.app-header-right{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;min-width:0;display:flex}.app-header-clinic{font-size:var(--font-size-secondary);color:var(--color-text-secondary);white-space:nowrap}.app-header-divider{background:var(--color-border);width:1px;height:20px}.app-header-role-switch{align-items:center;gap:var(--space-1);display:flex}.app-header-role-switch-label{font-size:var(--font-size-meta);color:var(--color-text-muted)}.app-header-role-switch-select{height:var(--control-height-sm);padding:0 var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-meta)}.app-header-role-switch-select:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary)}.app-header-user{align-items:center;gap:var(--space-2);display:flex}.app-header-user-avatar{border-radius:var(--radius-pill);background:var(--color-primary-subtle);width:26px;height:26px;color:var(--color-primary);justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.app-header-user-name{font-size:var(--font-size-secondary);color:var(--color-text-primary);font-weight:500}.app-shell{width:100%;height:100vh;display:flex;overflow:hidden}.app-shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-shell-content{padding:var(--space-4);flex:1;overflow-y:auto}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.page-header-text{gap:var(--space-1);flex-direction:column;display:flex}.page-header-title{font-size:var(--font-size-page-title);color:var(--color-text-primary);font-weight:600}.page-header-secondary{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.page-header-actions{gap:var(--space-2);flex-shrink:0;display:flex}.status-badge{height:20px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-meta);white-space:nowrap;align-items:center;font-weight:600;line-height:1;display:inline-flex}.status-badge-success{background:var(--color-success-bg);color:var(--color-success)}.status-badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.status-badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.status-badge-info{background:var(--color-info-bg);color:var(--color-info)}.status-badge-neutral{background:var(--color-surface-sunken);color:var(--color-text-secondary);border:1px solid var(--color-border)}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table)}.data-table thead th{text-align:left;font-size:var(--font-size-label);color:var(--color-text-secondary);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);white-space:nowrap;font-weight:600}.data-table tbody td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);color:var(--color-text-primary);height:40px}.data-table tbody tr:last-child td{border-bottom:none}.data-table-row-clickable{cursor:pointer}.data-table-row-clickable:hover td{background:var(--color-surface-sunken)}.data-table-row-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.table-empty{padding:var(--space-5);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body)}.dashboard-summary-row{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.summary-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-1);flex-direction:column;display:flex}.summary-tile-value{color:var(--color-text-primary);font-size:22px;font-weight:700}.summary-tile-label{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.dashboard-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.dashboard-section-wide{grid-column:1/-1}.dashboard-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.section-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);margin-bottom:var(--space-3);font-weight:600}.simple-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.simple-list-item{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.simple-list-item:last-child{border-bottom:none;padding-bottom:0}.simple-list-item-clickable{cursor:pointer;border-radius:var(--radius-sm);margin:0 calc(var(--space-2) * -1);padding-left:var(--space-2);padding-right:var(--space-2)}.simple-list-item-clickable:hover{background:var(--color-surface-sunken)}.simple-list-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.simple-list-item-title{font-size:var(--font-size-body);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.simple-list-item-sub{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.simple-list-item-meta{font-size:var(--font-size-secondary);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.simple-list-item-balance{color:var(--color-text-primary);font-weight:600}.dentist-alert-none{color:var(--color-text-muted)}.dentist-alert-flag{color:var(--color-warning);font-weight:500}.dentist-incomplete-notes-count{font-size:var(--font-size-secondary);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.search-field{align-items:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;max-width:420px;display:flex}.search-field:focus-within{border-color:var(--color-primary);outline:2px solid var(--color-primary);outline-offset:0}.search-field-icon{color:var(--color-text-muted);flex-shrink:0}.search-field-input{font-size:var(--font-size-body);color:var(--color-text-primary);background:0 0;border:none;outline:none;width:100%}.search-field-input::placeholder{color:var(--color-text-muted)}.btn{height:var(--control-height);padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-body);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);white-space:nowrap;border:1px solid #0000;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-text-primary)}.modal-overlay{z-index:100;background:#141e2166;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:560px;max-width:calc(100vw - var(--space-5));max-height:calc(100vh - var(--space-6));flex-direction:column;display:flex}.modal-panel-wide{width:min(1100px, calc(100vw - var(--space-4)));max-height:calc(100vh - var(--space-4))}.modal-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.modal-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);background:0 0;border:none;font-size:20px;line-height:1}.modal-close:hover{color:var(--color-text-primary)}.modal-body{padding:var(--space-4);overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-label{font-size:var(--font-size-label);color:var(--color-text-secondary);font-weight:600}.field-input{height:var(--control-height);padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-body)}.field-input:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary)}.field-hint{font-size:var(--font-size-meta);color:var(--color-text-muted)}.field-input-textarea{height:auto;min-height:64px;padding:var(--space-2);resize:vertical;line-height:var(--line-height-base);font-family:inherit}.field-error{border-color:var(--color-danger)}.field-error-message{font-size:var(--font-size-meta);color:var(--color-danger)}.add-patient-form{gap:var(--space-3);flex-direction:column;display:flex}.add-patient-form-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.add-patient-demo-note{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--font-size-meta);margin:0;line-height:1.4}.patients-toolbar{margin-bottom:var(--space-3)}.patients-table-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.patient-name-cell{align-items:center;gap:var(--space-2);display:flex}.patient-name-cell-name{font-weight:500}.balance-outstanding{color:var(--color-danger);font-weight:600}.tabs{gap:var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;min-width:0;display:flex}.tab-item{padding:var(--space-2) var(--space-1) var(--space-2);font-size:var(--font-size-body);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:500}.tab-item:hover{color:var(--color-text-primary)}.tab-item-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}@media (width<=900px){.tabs{gap:var(--space-2) var(--space-3)}}.empty-state{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.empty-state-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.empty-state-description{font-size:var(--font-size-secondary);color:var(--color-text-muted);max-width:360px}.patient-overview{gap:var(--space-4);flex-direction:column;display:flex}.overview-quick-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.overview-alerts{gap:var(--space-2);flex-direction:column;display:flex}.patient-alert{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-body);border-left:3px solid #0000;align-items:center;font-weight:500;display:flex}.patient-alert-warning{background:var(--color-warning-bg);color:var(--color-warning);border-left-color:var(--color-warning)}.patient-alert-danger{background:var(--color-danger-bg);color:var(--color-danger);border-left-color:var(--color-danger)}.patient-alert-neutral{background:var(--color-surface-sunken);color:var(--color-text-secondary);border-left-color:var(--color-border-strong)}.overview-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.overview-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.overview-section-wide{grid-column:1/-1}.overview-section-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.overview-section-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.overview-view-all-link{color:var(--color-primary);font-size:var(--font-size-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.overview-view-all-link:hover{text-decoration:underline}.overview-appointment,.overview-treatment{flex-direction:column;gap:2px;display:flex}.overview-appointment-date{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.overview-appointment-purpose,.overview-treatment-name{font-size:var(--font-size-body);color:var(--color-text-primary)}.overview-appointment-dentist,.overview-treatment-tooth,.overview-treatment-status,.overview-treatment-next{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.overview-account{gap:var(--space-1);margin-bottom:var(--space-1);flex-direction:column;display:flex}.overview-account-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.overview-account-label{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.overview-account-value{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.overview-account-value-due{color:var(--color-danger)}.overview-account-empty{font-size:var(--font-size-secondary);color:var(--color-text-muted)}.overview-visit-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.overview-visit-item{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;display:flex}.overview-visit-item:last-child{border-bottom:none;padding-bottom:0}.overview-visit-item-meta{gap:var(--space-2);align-items:baseline;display:flex}.overview-visit-item-date{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.overview-visit-item-dentist{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.overview-visit-item-complaint{font-size:var(--font-size-body);color:var(--color-text-primary)}.overview-visit-item-notes{font-size:var(--font-size-secondary);color:var(--color-text-muted)}@media (width<=1200px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.overview-grid{grid-template-columns:minmax(0,1fr)}.overview-visit-item-meta{flex-direction:column;align-items:flex-start}}.appt-form{gap:var(--space-3);flex-direction:column;display:flex}.appt-form-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.appt-form-row-3{gap:var(--space-3);grid-template-columns:1fr 1fr 1fr;display:grid}@media (width<=600px){.appt-form-row,.appt-form-row-3{grid-template-columns:1fr}}.billing{gap:var(--space-4);flex-direction:column;display:flex}.billing-summary-row{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.billing-summary-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-1);flex-direction:column;display:flex}.billing-summary-value{color:var(--color-text-primary);font-size:22px;font-weight:700}.billing-summary-label{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.billing-actions{gap:var(--space-2);display:flex}.billing-more-menu{position:relative}.billing-more-menu-panel{z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md,var(--shadow-sm));padding:var(--space-1);flex-direction:column;min-width:160px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.billing-more-menu-item{text-align:left;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-secondary);color:var(--color-text-primary);cursor:pointer;background:0 0;border:none}.billing-more-menu-item:hover{background:var(--color-surface-sunken)}.billing-ledger-panel{gap:var(--space-2);flex-direction:column;display:flex}.billing-ledger-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.billing-ledger-balance{color:var(--color-text-primary);font-weight:600}.payment-plan-panel,.payment-plan-list{gap:var(--space-2);flex-direction:column;display:flex}.payment-plan-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.payment-plan-card-title{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.payment-plan-figures{gap:var(--space-5);display:flex}.payment-plan-figure{flex-direction:column;gap:2px;display:flex}.payment-plan-figure-label{font-size:var(--font-size-meta);color:var(--color-text-muted)}.payment-plan-figure-value{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.payment-plan-terms-row{gap:var(--space-3);font-size:var(--font-size-secondary);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.payment-plan-schedule-row{padding-top:var(--space-2);border-top:1px solid var(--color-border)}.payment-plan-paid-in-full{font-size:var(--font-size-secondary);color:var(--color-success);font-weight:600}.billing-computed-summary{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);flex-direction:column;gap:4px;display:flex}.billing-computed-row{font-size:var(--font-size-secondary);color:var(--color-text-secondary);justify-content:space-between;display:flex}.billing-computed-row span:first-child{color:var(--color-text-muted)}.billing-computed-row span:last-child{color:var(--color-text-primary);font-weight:600}.billing-correction-note{font-size:var(--font-size-secondary);color:var(--color-text-muted);margin:0;font-style:italic}.billing-computed-note{margin:var(--space-1) 0 0;font-size:var(--font-size-meta);color:var(--color-text-muted);font-style:italic}.billing-form{gap:var(--space-3);flex-direction:column;display:flex}.billing-form-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.billing-direction-toggle{gap:var(--space-1);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);width:fit-content;padding:2px;display:flex}.billing-direction-toggle-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-secondary);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-weight:500}.billing-direction-toggle-btn-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}@media (width<=1400px){.billing-summary-row{grid-template-columns:repeat(2,1fr)}}.visits-tab{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.visits-tab-empty{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:320px;display:flex}.visit-detail{gap:var(--space-2);flex-direction:column;margin:0;display:flex}.visit-detail-row{gap:var(--space-3);display:flex}.visit-detail-row dt{font-size:var(--font-size-label);color:var(--color-text-secondary);flex:0 0 130px;font-weight:600}.visit-detail-row dd{font-size:var(--font-size-body);color:var(--color-text-primary);flex:1;margin:0}.visit-detail-row-notes dd{line-height:var(--line-height-base)}.new-visit-form{gap:var(--space-3);flex-direction:column;display:flex}.new-visit-form-section-title{font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);margin:0;font-weight:700}.new-visit-form-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.tooth-graphic{padding:var(--tooth-button-pad,3px);border-radius:var(--radius-sm);cursor:pointer;width:min(100%, var(--tooth-button-size,42px));background:0 0;border:none;flex-direction:column;place-self:end center;align-items:center;gap:2px;min-width:0;display:flex}.tooth-graphic:hover .tooth-outline{stroke:var(--color-primary)}.tooth-graphic-selected{background:var(--color-primary-subtle)}.tooth-graphic-selected .tooth-outline{stroke:var(--color-primary);stroke-width:2px}.tooth-graphic-svg{width:100%;height:auto;overflow:visible}.tooth-root{fill:var(--color-surface-sunken);stroke:var(--color-border-strong);stroke-width:.75px}.tooth-crown{fill:var(--color-surface);stroke:none}.tooth-outline{fill:none;stroke:var(--color-border-strong);stroke-width:1.25px}.tooth-crown-cap{fill-opacity:.95;stroke-width:2.1px;paint-order:stroke}.tooth-anatomy-details{fill:none;stroke:var(--color-text-muted);stroke-width:.85px;stroke-linecap:round;stroke-linejoin:round;opacity:.36}.tooth-missing-stroke{stroke:var(--color-text-muted);fill:none}.tooth-extraction-mark line{stroke-width:1.9px;stroke-linecap:round}.tooth-impact-mark{opacity:.95}.tooth-3d-viewer{gap:var(--space-2);flex-direction:column;min-width:0;display:flex;position:relative}.tooth-3d-viewer-toolbar{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tooth-3d-viewer-mode,.tooth-3d-viewer-view-group{align-items:center;gap:6px;display:inline-flex}.tooth-3d-viewer-view-btn,.tooth-3d-viewer-zoom-btn{border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface);height:34px;color:var(--color-text-secondary);font-size:var(--font-size-secondary);cursor:pointer;padding:0 12px;font-weight:700}.tooth-3d-viewer-mode-btn{border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);height:34px;color:var(--color-text-secondary);font-size:var(--font-size-secondary);cursor:pointer;padding:0 12px;font-weight:700}.tooth-3d-viewer-mode-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-text-primary)}.tooth-3d-viewer-mode-btn-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.tooth-3d-viewer-mode-btn:disabled{opacity:.55;cursor:not-allowed}.tooth-3d-viewer-view-btn:hover,.tooth-3d-viewer-zoom-btn:hover{border-color:var(--color-primary);color:var(--color-text-primary)}.tooth-3d-viewer-view-btn-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.tooth-3d-viewer-zoom{align-items:center;gap:6px;display:inline-flex}.tooth-3d-viewer-zoom-btn{width:38px;padding:0}.tooth-3d-viewer-zoom-btn-reset{width:auto;min-width:70px;padding:0 12px}.tooth-3d-viewer-stage{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:grab;background:#f4efe8;min-height:460px;position:relative;overflow:hidden}.tooth-3d-viewer-stage.is-dragging{cursor:grabbing}.tooth-3d-viewer-canvas{width:100%;height:100%;display:block}.tooth-3d-viewer-overlay{color:var(--color-text-secondary);font-size:var(--font-size-secondary);letter-spacing:.01em;pointer-events:none;background:linear-gradient(#f4efe8e0,#f4efe8b8);justify-content:center;align-items:center;font-weight:600;display:flex;position:absolute;inset:0}.tooth-3d-viewer-overlay-error{color:var(--color-danger)}@media (width<=700px){.tooth-3d-viewer-stage{min-height:360px}}.tooth-surface-map{gap:var(--space-2);flex-direction:column;display:flex}.tooth-surface-map-svg{align-self:center;width:100%;max-width:180px;overflow:visible}.tooth-surface-map-region{fill:var(--color-surface);stroke:var(--color-border-strong);stroke-width:1.5px;cursor:pointer;transition:fill .12s,stroke .12s,transform .12s}.tooth-surface-map-region:hover{stroke:var(--color-primary);fill:var(--color-primary-subtle)}.tooth-surface-map-region-selected{fill:var(--color-primary);stroke:var(--color-primary)}.tooth-surface-map-region-disabled{cursor:default}.tooth-surface-map-region-disabled:hover{fill:var(--color-surface);stroke:var(--color-border-strong)}.tooth-surface-map-label{fill:var(--color-text-primary);text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:9px;font-weight:700}.tooth-surface-map-region-selected+.tooth-surface-map-label,.tooth-surface-map-region-selected~.tooth-surface-map-label{fill:var(--color-text-inverse)}.tooth-surface-map-key{font-size:var(--font-size-meta);color:var(--color-text-secondary);flex-wrap:wrap;justify-content:center;gap:6px 10px;display:flex}.tooth-surface-map-key-item strong{color:var(--color-text-primary)}.tooth-inspector-modal{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.tooth-inspector-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.tooth-inspector-kicker{font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:4px;font-weight:700}.tooth-inspector-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);margin:0;font-weight:700}.tooth-inspector-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tooth-inspector-badge{border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--font-size-meta);align-items:center;padding:4px 10px;font-weight:700;display:inline-flex}.tooth-inspector-badge-readonly{background:var(--color-info-bg);border-color:var(--color-info);color:var(--color-info)}.tooth-inspector-grid{gap:var(--space-4);grid-template-columns:minmax(400px,.96fr) minmax(380px,1.04fr);min-width:0;display:grid}.tooth-inspector-viewer-card,.tooth-inspector-form-card{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.tooth-inspector-viewer-note{color:var(--color-text-secondary);font-size:var(--font-size-secondary);max-width:42rem;margin:0}.tooth-inspector-section-label{font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:700}.tooth-inspector-entries{flex-direction:column;gap:6px;display:flex}.tooth-inspector-entry{justify-content:space-between;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);width:100%;padding:var(--space-2);cursor:pointer;text-align:left;display:flex}.tooth-inspector-entry:hover{border-color:var(--color-primary)}.tooth-inspector-entry:disabled{cursor:not-allowed;opacity:.6}.tooth-inspector-entry-main{font-size:var(--font-size-secondary);color:var(--color-text-primary)}.tooth-inspector-entry-sub{font-size:var(--font-size-meta);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.tooth-inspector-annotation-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.tooth-inspector-annotation-state{font-size:var(--font-size-secondary);color:var(--color-text-muted);font-weight:600}.tooth-inspector-annotation-state-marked{color:var(--color-success)}.tooth-inspector-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.tooth-inspector-apply{min-width:180px}.tooth-inspector-readonly{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--font-size-secondary)}@media (width<=980px){.tooth-inspector-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.tooth-inspector-header{flex-direction:column}.tooth-inspector-badges{justify-content:flex-start}}.dental-chart{gap:var(--space-4);flex-direction:column;display:flex;container:dental-chart/inline-size}.dental-chart-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.dentition-toggle{gap:var(--space-1);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2px;display:flex}.dentition-toggle-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-secondary);color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:var(--space-1);background:0 0;border:none;font-weight:500;display:inline-flex}.dentition-toggle-btn-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}.dentition-toggle-btn-disabled{cursor:not-allowed;color:var(--color-text-muted)}.dentition-toggle-badge{text-transform:uppercase;letter-spacing:.03em;background:var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-pill);padding:1px 6px;font-size:10px;font-weight:600}.chart-legend{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.chart-legend-item{font-size:var(--font-size-secondary);color:var(--color-text-secondary);align-items:center;gap:6px;display:inline-flex}.chart-legend-swatch{border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);width:12px;height:12px;display:inline-block}.chart-legend-note{font-size:var(--font-size-meta);color:var(--color-text-muted);font-style:italic}.dental-chart-main{gap:var(--space-4);grid-template-columns:minmax(0,1fr) clamp(280px,24vw,340px);align-items:start;display:grid}.odontogram-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-4);--tooth-button-size:clamp(40px, 8.25cqw, 60px);--tooth-button-gap:clamp(1px, .45cqw, 4px);--tooth-button-pad:clamp(1px, .4cqw, 3px);flex-direction:column;min-width:0;display:flex;container:odontogram/inline-size}.arch-row{gap:var(--space-2);flex-direction:column;display:flex}.arch-row-label{font-size:var(--font-size-label);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.arch-teeth{place-items:end center;gap:var(--tooth-button-gap);grid-template-columns:repeat(8,minmax(0,1fr)) 1px repeat(8,minmax(0,1fr));min-width:0;display:grid}.arch-midline{background:var(--color-border-strong);place-self:stretch center;width:1px;margin:0}.chart-fill-condition{background:var(--color-surface-sunken);fill:var(--color-surface-sunken);stroke:var(--color-border-strong);border-color:var(--color-border-strong)!important}.chart-fill-existing{background:var(--color-success-bg);fill:var(--color-success-bg);stroke:var(--color-success);border-color:var(--color-success)!important}.chart-fill-planned{background:var(--color-danger-bg);fill:var(--color-danger-bg);stroke:var(--color-danger);border-color:var(--color-danger)!important}.chart-fill-completed{background:var(--color-info-bg);fill:var(--color-info-bg);stroke:var(--color-info);border-color:var(--color-info)!important}.tooth-detail-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-3);top:var(--space-3);flex-direction:column;min-width:0;display:flex;position:sticky}.tooth-panel-header{justify-content:space-between;align-items:baseline;display:flex}.tooth-panel-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:700}.tooth-panel-subtitle{font-size:var(--font-size-meta);color:var(--color-text-muted)}.tooth-panel-summary-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.tooth-panel-section{gap:var(--space-2);flex-direction:column;display:flex}.surface-selection-summary{flex-wrap:wrap;gap:6px;display:flex}.surface-selection-chip{border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-text-primary);font-size:var(--font-size-meta);padding:4px 10px;font-weight:600}.surface-selection-empty{color:var(--color-text-muted);font-size:var(--font-size-meta)}.whole-tooth-toggle{height:var(--control-height);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-secondary);cursor:pointer;font-weight:600}.whole-tooth-toggle:hover{border-color:var(--color-primary)}.whole-tooth-toggle-active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.apply-chart-btn{width:100%;margin-top:var(--space-1)}.chart-findings-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.chart-findings-header{justify-content:space-between;align-items:baseline;display:flex}.chart-findings-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.chart-findings-count{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.tooth-panel-edit-label{font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.03em;color:var(--color-primary);font-weight:700}.tooth-entry-list{gap:var(--space-1);flex-direction:column;display:flex}.tooth-entry-list-item{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);cursor:pointer;text-align:left;display:flex}.tooth-entry-list-item:hover:not(:disabled){border-color:var(--color-primary)}.tooth-entry-list-item:disabled{cursor:default}.tooth-entry-list-summary{font-size:var(--font-size-secondary);color:var(--color-text-primary)}.tooth-panel-actions{gap:var(--space-2);display:flex}.tooth-panel-actions .apply-chart-btn{flex:1;margin-top:0}@media (width<=1400px){.dental-chart-main{grid-template-columns:minmax(0,1fr) clamp(260px,23vw,300px)}.arch-teeth{gap:var(--tooth-button-gap)}}@container dental-chart (width<=820px){.dental-chart-main{grid-template-columns:minmax(0,1fr)}.tooth-detail-panel{position:static}}@container odontogram (width<=720px){.odontogram-panel{--tooth-button-size:clamp(36px, 8.2cqw, 56px);--tooth-button-gap:clamp(0px, .3cqw, 3px);--tooth-button-pad:clamp(1px, .28cqw, 2px)}}@container odontogram (width<=600px){.odontogram-panel{--tooth-button-size:clamp(32px, 9cqw, 50px);--tooth-button-gap:clamp(0px, .25cqw, 2px);--tooth-button-pad:1px}}.tooth-panel-readonly-note{font-size:var(--font-size-secondary);color:var(--color-text-muted);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2)}.surface-btn:disabled,.whole-tooth-toggle:disabled,.apply-chart-btn:disabled{cursor:not-allowed;opacity:.55}.chart-entry-remove:disabled{cursor:not-allowed;opacity:.4;text-decoration:none}.treatment-plan-form{gap:var(--space-3);flex-direction:column;display:flex}.treatment-plan-form-row{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.tooth-area-toggle{gap:var(--space-1);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);width:fit-content;padding:2px;display:flex}.tooth-area-toggle-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-secondary);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-weight:500}.tooth-area-toggle-btn-active{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}.tooth-picker{margin-top:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-2);gap:var(--space-1);flex-direction:column;display:flex}.tooth-picker-row{align-items:flex-end;gap:1px;display:flex}.tooth-picker-row .tooth-graphic{width:26px;min-width:26px;max-width:26px;padding:1px}.tooth-picker-row .tooth-graphic-svg{width:22px;height:35px}.tooth-picker-midline{background:var(--color-border-strong);align-self:stretch;width:1px;margin:0 3px}.tooth-picker-selected{margin:var(--space-1) 0 0;font-size:var(--font-size-secondary);color:var(--color-text-primary);font-weight:600}.chart-source-summary{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);padding:var(--space-2) var(--space-3);flex-direction:column;gap:2px;display:flex}.chart-source-summary-label{font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-muted);margin-bottom:2px;font-weight:700}.chart-source-summary-tooth{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.chart-source-summary-row{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.chart-source-summary-row strong{color:var(--color-text-primary);font-weight:600}.treatment-plan{gap:var(--space-4);flex-direction:column;display:flex}.treatment-plan-header{justify-content:space-between;align-items:center;display:flex}.treatment-plan-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.treatment-plan-tooth-cell{flex-direction:column;gap:2px;display:flex}.treatment-plan-tooth-cell-sub{font-size:var(--font-size-meta);color:var(--color-text-muted)}.treatment-plan-created-note{font-size:var(--font-size-meta);color:var(--color-text-muted);font-style:italic}.chart-entry-actions{align-items:center;gap:var(--space-1);display:inline-flex}.chart-entry-edit,.chart-entry-delete{font-size:var(--font-size-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.chart-entry-edit{color:var(--color-primary)}.chart-entry-delete{color:var(--color-danger)}.chart-entry-edit:hover,.chart-entry-delete:hover{text-decoration:underline}.chart-entry-actions-sep{color:var(--color-border-strong);font-size:var(--font-size-secondary)}.delete-confirm-btn{background:var(--color-danger);border-color:var(--color-danger)}.delete-confirm-summary{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.add-progress-form{gap:var(--space-3);flex-direction:column;display:flex}.add-progress-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.add-progress-template-section{border-top:1px solid var(--color-border);padding-top:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.add-progress-template-label{font-size:var(--font-size-label);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.add-progress-next-appt{border-top:1px solid var(--color-border);padding-top:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.add-progress-next-appt-toggle{align-items:center;gap:var(--space-2);font-size:var(--font-size-body);color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;display:flex}.add-progress-next-appt-toggle input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}.add-progress-next-appt-fields{gap:var(--space-3);flex-direction:column;padding-left:23px;display:flex}@media (width<=540px){.add-progress-row{grid-template-columns:1fr}}.case-detail{gap:var(--space-4);flex-direction:column;display:flex}.case-detail-back{color:var(--color-primary);font-size:var(--font-size-secondary);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:500}.case-detail-back:hover{text-decoration:underline}.case-detail-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.case-detail-title-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.case-detail-title{font-size:var(--font-size-page-title);color:var(--color-text-primary);margin:0;font-weight:600}.case-detail-title-location{color:var(--color-text-secondary);font-weight:400}.case-detail-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-secondary);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.case-detail-meta-sep{color:var(--color-border-strong)}.case-detail-fee-ref{color:var(--color-text-muted);font-style:italic}.case-detail-current-stage{font-size:var(--font-size-body);color:var(--color-text-secondary)}.case-detail-current-stage strong{color:var(--color-text-primary)}.case-detail-last-progress{color:var(--color-text-muted)}.case-stage-track{padding-bottom:var(--space-1);gap:0;display:flex;overflow-x:auto}.case-stage-pip{flex-direction:column;flex:1;align-items:center;min-width:64px;display:flex;position:relative}.case-stage-pip+.case-stage-pip:before{content:"";background:var(--color-border);height:2px;position:absolute;top:7px;left:calc(7px - 50%);right:calc(50% + 7px)}.case-stage-pip-completed+.case-stage-pip:before,.case-stage-pip-current+.case-stage-pip:before{background:var(--color-primary)}.case-stage-pip-dot{border:2px solid var(--color-border);background:var(--color-surface);z-index:1;border-radius:50%;width:14px;height:14px;position:relative}.case-stage-pip-completed .case-stage-pip-dot{background:var(--color-primary);border-color:var(--color-primary)}.case-stage-pip-current .case-stage-pip-dot{background:var(--color-surface);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.case-stage-pip-label{margin-top:var(--space-1);color:var(--color-text-muted);text-align:center;max-width:72px;font-size:10px;line-height:1.3}.case-stage-pip-completed .case-stage-pip-label{color:var(--color-primary)}.case-stage-pip-current .case-stage-pip-label{color:var(--color-text-primary);font-weight:600}.case-timeline-toolbar{justify-content:space-between;align-items:center;display:flex}.case-timeline-heading{font-size:var(--font-size-section-title);color:var(--color-text-primary);margin:0;font-weight:600}.case-timeline{border-left:2px solid var(--color-border);margin-left:var(--space-2);padding-left:var(--space-4);flex-direction:column;gap:0;display:flex}.case-timeline-entry{padding-bottom:var(--space-4);position:relative}.case-timeline-dot{left:calc(-1 * var(--space-4) - 5px);background:var(--color-primary);border:2px solid var(--color-surface);width:8px;height:8px;box-shadow:0 0 0 2px var(--color-primary);border-radius:50%;position:absolute;top:4px}.case-timeline-body{gap:var(--space-1);flex-direction:column;display:flex}.case-timeline-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.case-timeline-date{font-size:var(--font-size-secondary);color:var(--color-text-primary);font-weight:600}.case-timeline-stage{font-size:var(--font-size-secondary);color:var(--color-primary);background:var(--color-primary-subtle);padding:1px var(--space-2);border-radius:var(--radius-pill);font-weight:500}.case-timeline-dentist{font-size:var(--font-size-meta);color:var(--color-text-muted)}.case-timeline-notes{font-size:var(--font-size-body);color:var(--color-text-primary);line-height:var(--line-height-base);margin:0}.case-timeline-detail-row{font-size:var(--font-size-meta);color:var(--color-text-secondary);margin:0}.case-timeline-next{font-size:var(--font-size-secondary);color:var(--color-text-muted);margin:0}.case-timeline-next-label{color:var(--color-text-secondary);font-weight:500}.case-timeline-empty{font-size:var(--font-size-body);color:var(--color-text-muted);font-style:italic}.case-detail-secondary-actions{gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}.case-secondary-action{font-size:var(--font-size-secondary);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0}.case-secondary-action:hover{color:var(--color-text-primary);text-decoration:underline}.case-secondary-action-danger,.case-secondary-action-danger:hover{color:var(--color-danger)}.case-confirm-sub{font-size:var(--font-size-secondary);color:var(--color-text-secondary);margin-top:var(--space-1)}@media (width<=768px){.case-stage-track{gap:0}.case-stage-pip{min-width:52px}.case-stage-pip-label{white-space:nowrap;text-overflow:ellipsis;max-width:52px;font-size:9px;overflow:hidden}.case-detail-title{font-size:17px}}.new-case-form{gap:var(--space-3);flex-direction:column;display:flex}.new-case-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.new-case-template-grid{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.new-case-template-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--font-size-secondary);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:border-color .1s,color .1s}.new-case-template-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.new-case-template-btn-active{border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary);font-weight:600}@media (width<=540px){.new-case-row{grid-template-columns:1fr}}.start-treatment-form{gap:var(--space-3);flex-direction:column;display:flex}.start-treatment-summary{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-1);flex-direction:column;display:flex}.start-treatment-summary-title{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.start-treatment-summary-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-secondary);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.start-treatment-summary-sep{color:var(--color-border-strong)}.start-treatment-summary-note{font-size:var(--font-size-meta);color:var(--color-text-muted);margin:0}.treatment-tab{gap:var(--space-4);flex-direction:column;display:flex}.treatment-section{gap:var(--space-3);flex-direction:column;display:flex}.treatment-section-header{justify-content:space-between;align-items:center;display:flex}.treatment-section-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0;font-weight:600}.case-card-list{gap:var(--space-2);flex-direction:column;display:flex}.case-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);cursor:pointer;transition:border-color .1s;display:flex}.case-card:hover{border-color:var(--color-primary)}.case-card-planned{border-left:3px solid var(--color-warning);cursor:default}.case-card-planned:hover{border-left-color:var(--color-warning);border-color:var(--color-border)}.case-card-main{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.case-card-title-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.case-card-title{font-size:var(--font-size-body);color:var(--color-text-primary);font-weight:600}.case-card-location{font-size:var(--font-size-secondary);color:var(--color-text-secondary);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:1px var(--space-2)}.case-card-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-secondary);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.case-card-meta strong{color:var(--color-text-primary)}.case-card-meta-sep{color:var(--color-border-strong)}.case-card-last{color:var(--color-text-muted)}.case-card-open{color:var(--color-primary);font-size:var(--font-size-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;padding:0;font-weight:500}.case-card-open:hover{text-decoration:underline}.case-completed-list{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:0;display:flex;overflow:hidden}.case-completed-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);cursor:pointer;font-size:var(--font-size-secondary);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.case-completed-row:last-child{border-bottom:none}.case-completed-row:hover{background:var(--color-surface-sunken)}.case-completed-title{color:var(--color-text-primary);font-weight:500}.case-completed-location{color:var(--color-text-secondary)}.case-completed-date{color:var(--color-text-muted);font-size:var(--font-size-meta);margin-left:auto}.treatment-plan-toggle{align-items:center;gap:var(--space-3);background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:var(--space-2) var(--space-3);cursor:pointer;text-align:left;display:flex}.treatment-plan-toggle:hover{border-color:var(--color-primary)}.treatment-plan-toggle-title{flex-shrink:0;margin:0}.treatment-plan-toggle-meta{font-size:var(--font-size-secondary);color:var(--color-text-muted);flex:1}.treatment-plan-toggle-icon{font-size:var(--font-size-meta);color:var(--color-text-muted);flex-shrink:0}.treatment-tab-fab{padding-top:var(--space-2);border-top:1px solid var(--color-border);justify-content:flex-end;display:flex}@media (width<=768px){.case-card{align-items:flex-start;gap:var(--space-2);flex-direction:column}.case-card-open{align-self:flex-end}.case-completed-date{margin-left:0}}.documents-tab{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.documents-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.documents-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.documents-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-body);margin-top:4px}.documents-filter-bar{gap:var(--space-2);flex-wrap:wrap;display:flex}.documents-filter-chip{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-secondary);cursor:pointer;border-radius:999px;padding:6px 12px;font-weight:500}.documents-filter-chip-active{background:var(--color-surface-sunken);color:var(--color-primary);border-color:var(--color-primary)}.documents-title-cell,.documents-area-cell{flex-direction:column;gap:2px;display:flex}.documents-title-primary{color:var(--color-text-primary);font-weight:600}.documents-title-secondary,.documents-area-secondary{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.documents-empty-inline{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;color:var(--color-text-muted)}.documents-footnote{color:var(--color-text-muted);font-size:var(--font-size-meta);margin:0}.documents-preview{gap:var(--space-3);flex-direction:column;display:flex}.documents-preview-meta{gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-sunken);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.documents-preview-meta div{flex-direction:column;gap:3px;display:flex}.documents-preview-label{color:var(--color-text-muted);font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:.02em}.documents-preview-surface,.documents-preview-details{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);background:linear-gradient(#ffffffc7,#f4f7f8f5)}.documents-preview-surface{justify-content:center;gap:var(--space-2);text-align:center;min-height:200px;color:var(--color-text-secondary);flex-direction:column;display:flex}.documents-preview-badge{background:var(--color-primary);color:var(--color-text-inverse);font-size:var(--font-size-label);letter-spacing:.02em;border-radius:999px;align-self:center;padding:4px 10px;font-weight:700}.documents-preview-text{color:var(--color-text-secondary);margin:0}@media (width<=900px){.documents-tab{padding:var(--space-3)}.documents-header{align-items:stretch}}.patient-workspace{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.patient-workspace-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.patient-workspace-header>*{min-width:0}.patient-workspace-identity{flex-direction:column;gap:2px;display:flex}.patient-workspace-name{font-size:var(--font-size-page-title);color:var(--color-text-primary);font-weight:600}.patient-workspace-id{font-size:var(--font-size-meta);color:var(--color-text-muted)}.patient-workspace-facts{gap:var(--space-5);flex-wrap:wrap;margin:0;display:flex}.patient-workspace-fact{flex-direction:column;gap:2px;min-width:0;display:flex}.patient-workspace-fact dt{font-size:var(--font-size-label);color:var(--color-text-secondary);font-weight:600}.patient-workspace-fact dd{font-size:var(--font-size-body);color:var(--color-text-primary);margin:0;font-weight:500}.patient-workspace-balance-due{color:var(--color-danger)}.patient-workspace-tab-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:center;align-items:center;min-height:320px;display:flex}.patient-workspace-back-link{color:var(--color-primary);font-size:var(--font-size-body);font-weight:500}@media (width<=900px){.patient-workspace-header{align-items:flex-start}.patient-workspace-facts{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}}@media (width<=640px){.patient-workspace-facts{grid-template-columns:minmax(0,1fr)}}.appointments-page{gap:var(--space-4);flex-direction:column;display:flex}.appt-filter-bar{align-items:center;gap:var(--space-2);display:flex}.appt-filter-btn{padding:5px var(--space-3);font-size:var(--font-size-body);font-family:var(--font-family);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-weight:500;line-height:var(--control-height);height:var(--control-height);transition:background .1s,color .1s,border-color .1s}.appt-filter-btn:hover{background:var(--color-surface-sunken);color:var(--color-text-primary)}.appt-filter-btn-active{background:var(--color-primary-subtle);color:var(--color-primary);border-color:var(--color-primary);font-weight:600}.appt-filter-count{font-size:var(--font-size-meta);color:inherit;opacity:.75;margin-left:4px}.appt-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.appt-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table)}.appt-table thead th{padding:9px var(--space-3);text-align:left;font-size:var(--font-size-label);color:var(--color-text-secondary);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border);white-space:nowrap;font-weight:600}.appt-table tbody tr{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .1s}.appt-table tbody tr:last-child{border-bottom:none}.appt-table tbody tr:hover{background:var(--color-surface-sunken)}.appt-table td{padding:9px var(--space-3);vertical-align:middle;color:var(--color-text-primary)}.appt-td-date{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:var(--font-size-body)}.appt-td-time{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.appt-td-dur{white-space:nowrap;color:var(--color-text-muted);font-size:var(--font-size-secondary)}.appt-td-patient{font-weight:500}.appt-patient-link{font:inherit;color:var(--color-primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .1s}.appt-patient-link:hover{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.appt-td-reason{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.appt-td-provider{white-space:nowrap;color:var(--color-text-secondary)}.appt-td-case{max-width:150px}.appt-case-chip{border-radius:var(--radius-pill);background:var(--color-info-bg);color:var(--color-info);font-size:var(--font-size-meta);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;max-width:150px;padding:2px 7px;font-weight:500;display:inline-block;overflow:hidden}.appt-status{border-radius:var(--radius-pill);font-size:var(--font-size-meta);white-space:nowrap;padding:2px 8px;font-weight:600;display:inline-block}.appt-status-Scheduled{background:var(--color-info-bg);color:var(--color-info)}.appt-status-Arrived{background:var(--color-warning-bg);color:var(--color-warning)}.appt-status-Completed{background:var(--color-success-bg);color:var(--color-success)}.appt-status-Cancelled{color:var(--color-text-muted);background:#f0f1f2}.appt-status-No-show{background:var(--color-danger-bg);color:var(--color-danger)}.appt-status-Rescheduled{color:var(--color-text-secondary);background:#f0f1f2}.appt-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}@media (width<=900px){.appt-table .appt-col-dur,.appt-table .appt-col-notes{display:none}}@media (width<=768px){.appt-table .appt-col-provider,.appt-table .appt-col-case{display:none}.appt-table-wrap{overflow-x:auto}.appt-table .appt-td-reason{width:120px;max-width:120px}}.clinic-billing-page{gap:var(--space-4);flex-direction:column;display:flex}.cbill-filter-bar{align-items:center;gap:var(--space-2);display:flex}.cbill-filter-btn{padding:5px var(--space-3);font-size:var(--font-size-body);font-family:var(--font-family);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-weight:500;line-height:var(--control-height);height:var(--control-height);transition:background .1s,color .1s,border-color .1s}.cbill-filter-btn:hover{background:var(--color-surface-sunken);color:var(--color-text-primary)}.cbill-filter-btn-active{background:var(--color-primary-subtle);color:var(--color-primary);border-color:var(--color-primary);font-weight:600}.cbill-filter-count{font-size:var(--font-size-meta);color:inherit;opacity:.75;margin-left:4px}.cbill-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.cbill-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table)}.cbill-table thead th{padding:9px var(--space-3);text-align:left;font-size:var(--font-size-label);color:var(--color-text-secondary);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border);white-space:nowrap;font-weight:600}.cbill-table thead th.cbill-col-currency{text-align:right}.cbill-table tbody tr{border-bottom:1px solid var(--color-border);transition:background .1s}.cbill-table tbody tr:last-child{border-bottom:none}.cbill-table tbody tr:hover{background:var(--color-surface-sunken)}.cbill-table td{padding:9px var(--space-3);vertical-align:middle;color:var(--color-text-primary)}.cbill-col-currency{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.cbill-col-date{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--color-text-secondary);font-size:var(--font-size-body)}.cbill-col-method{white-space:nowrap}.cbill-col-ref{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.cbill-col-applied{color:var(--color-text-secondary);font-size:var(--font-size-secondary);max-width:240px}.cbill-applied-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cbill-col-payment{white-space:nowrap}.cbill-col-action{text-align:right;width:120px}.cbill-patient-link{font:inherit;color:var(--color-primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .1s}.cbill-patient-link:hover{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.cbill-balance-due{color:var(--color-danger);font-weight:600}.cbill-balance-clear{color:var(--color-success);font-weight:600}.cbill-last-payment{align-items:center;gap:var(--space-1);font-size:var(--font-size-secondary);flex-wrap:wrap;display:flex}.cbill-method-badge{border-radius:var(--radius-pill);background:var(--color-info-bg);color:var(--color-info);font-size:var(--font-size-meta);white-space:nowrap;padding:1px 6px;font-weight:500;display:inline-block}.cbill-payment-date{color:var(--color-text-muted)}.cbill-no-payment{color:var(--color-text-muted);font-size:var(--font-size-secondary)}.cbill-amount-paid{color:var(--color-success);font-weight:600}.cbill-action-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:3px var(--space-2);font-size:var(--font-size-secondary);font-family:var(--font-family);color:var(--color-primary);cursor:pointer;white-space:nowrap;background:0 0;font-weight:500;transition:background .1s,border-color .1s}.cbill-action-btn:hover{background:var(--color-primary-subtle);border-color:var(--color-primary)}@media (width<=1024px){.cbill-col-charged,.cbill-col-paid{display:none}}@media (width<=768px){.cbill-col-ref,.cbill-col-applied{display:none}.cbill-table-wrap{overflow-x:auto}}.settings-page{gap:var(--space-4);flex-direction:column;display:flex}.settings-panel{gap:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);flex-direction:column;display:flex}.settings-demo-banner{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-warning-bg);color:var(--color-warning);font-weight:500}.settings-section{gap:var(--space-3);flex-direction:column;display:flex}.settings-section-header{flex-direction:column;gap:2px;display:flex}.settings-section-title{font-size:var(--font-size-section-title);color:var(--color-text-primary);font-weight:600}.settings-section-subtitle{font-size:var(--font-size-secondary);color:var(--color-text-secondary)}.settings-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.settings-status{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-success-bg);color:var(--color-success);font-weight:500}.settings-actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=900px){.settings-grid{grid-template-columns:minmax(0,1fr)}}
