:root{--c-primary-50:#ecf8fb;--c-primary-100:#cfeef5;--c-primary-200:#9dddea;--c-primary-300:#66c9db;--c-primary-400:#35b3c7;--c-primary-500:#0f9ab0;--c-primary-600:#0b7e92;--c-primary-700:#0a6577;--c-primary-800:#0b5161;--c-primary-900:#0a4250;--c-primary-contrast:#fff;--c-n-0:#fff;--c-n-25:#fbfcfd;--c-n-50:#f5f7f9;--c-n-100:#eaeef2;--c-n-200:#d7dde4;--c-n-300:#b8c1cc;--c-n-400:#8b97a6;--c-n-500:#66717f;--c-n-600:#4b5563;--c-n-700:#374151;--c-n-800:#232b36;--c-n-900:#141a22;--c-success-bg:#e7f6ec;--c-success-fg:#14713d;--c-success-br:#9fd8b4;--c-warning-bg:#fdf3e0;--c-warning-fg:#8a5a00;--c-warning-br:#f0cf90;--c-danger-bg:#fdeaea;--c-danger-fg:#a11b1b;--c-danger-br:#f0aeae;--c-info-bg:#e9f2fd;--c-info-fg:#14459c;--c-info-br:#a9c8f3;--c-neutral-bg:#eef1f4;--c-neutral-fg:#4b5563;--c-neutral-br:#d7dde4;--bg-app:var(--c-n-50);--bg-surface:var(--c-n-0);--bg-subtle:var(--c-n-25);--text-strong:var(--c-n-900);--text-default:var(--c-n-700);--text-muted:var(--c-n-500);--text-inverse:var(--c-n-0);--border:var(--c-n-200);--border-strong:var(--c-n-300);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-num:"SF Mono",ui-monospace,Menlo,Consolas,monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:26px;--fs-3xl:32px;--lh-tight:1.25;--lh-normal:1.5;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-full:999px;--sh-sm:0 1px 2px #141a220f;--sh-md:0 2px 8px #141a221a;--sh-lg:0 12px 32px #141a222e;--z-nav:100;--z-topbar:200;--z-drawer:300;--z-modal:400;--z-toast:500;--sidebar-w:228px;--topbar-h:56px;--content-max:1440px;--c-find-caries-bg:#f6cdc9;--c-find-caries-br:#b3554c;--c-find-caries-fg:#8f1d1d;--c-find-endo-bg:#e6dcf6;--c-find-endo-br:#7a5aa8;--c-find-endo-fg:#4a2a7a;--c-find-periapical-bg:#fbdec4;--c-find-periapical-br:#a85f22;--c-find-periapical-fg:#7a3a00;--c-find-perio-bg:#d6e5fa;--c-find-perio-br:#4472b5;--c-find-perio-fg:#14459c;--c-find-missing-bg:#e4e8ed;--c-find-missing-br:#606a76;--c-find-missing-fg:#374151;--c-find-crown-bg:#d3eff5;--c-find-crown-br:#1a8092;--c-find-crown-fg:#0a6577;--c-find-filling-bg:#d3ecdd;--c-find-filling-br:#348456;--c-find-filling-fg:#14713d;--c-find-impacted-bg:#f8e8b8;--c-find-impacted-br:#8c6e0c;--c-find-impacted-fg:#6b4e00;--c-find-other-bg:#fff;--c-find-other-br:#66717f;--c-find-other-fg:#232b36;--c-chart-ink:#141a22;--c-chart-line:#66717f;--c-chart-paper:#fff;--c-chart-empty-bg:#fbfcfd;--c-chart-grid:#eaeef2;--c-chart-selected:#0b7e92;--c-chart-hover:#35b3c7;--c-chart-badge-bg:#141a22;--c-chart-badge-fg:#fff;--c-chart-hatch:#4b5563}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--text-default);background:var(--bg-app);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--c-primary-700);text-decoration:none}a:hover{text-decoration:underline}img,svg{display:block}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--c-primary-300);outline-offset:2px;border-radius:var(--r-sm)}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--bg-surface);border-right:1px solid var(--border);z-index:var(--z-nav);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebarBrand{align-items:center;gap:var(--s-2);height:var(--topbar-h);padding:0 var(--s-4);border-bottom:1px solid var(--border);font-weight:var(--fw-bold);font-size:var(--fs-lg);color:var(--c-primary-800);letter-spacing:-.2px;display:flex}.sidebarBrand .brandMark{background:var(--c-primary-600);color:#fff;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;display:grid}.sidebarNav{padding:var(--s-3) var(--s-2);flex:1;overflow-y:auto}.sidebarNavLabel{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:var(--fw-semibold);padding:var(--s-3) var(--s-3) var(--s-1)}.navItem{align-items:center;gap:var(--s-3);height:40px;padding:0 var(--s-3);border-radius:var(--r-md);color:var(--text-default);font-size:var(--fs-md);font-weight:var(--fw-medium);margin-bottom:2px;transition:background .15s,color .15s;display:flex;position:relative}.navItem:hover{background:var(--c-n-50);text-decoration:none}.navItem.active{background:var(--c-primary-50);color:var(--c-primary-700);font-weight:var(--fw-semibold)}.navItem.active:before{content:"";background:var(--c-primary-600);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-8px}.navItem svg{flex:none}.navDivider{background:var(--border);height:1px;margin:var(--s-3) var(--s-2)}.sidebarFoot{border-top:1px solid var(--border);padding:var(--s-3) var(--s-4);font-size:var(--fs-xs);color:var(--text-muted)}.mainCol{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:var(--z-topbar);height:var(--topbar-h);align-items:center;gap:var(--s-4);padding:0 var(--s-6);background:var(--bg-surface);border-bottom:1px solid var(--border);flex:none;display:flex;position:sticky;top:0}.topbarClinic{font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-base);white-space:nowrap}.topbarSearch{flex:1;max-width:420px;margin:0 auto}.topbarRight{align-items:center;gap:var(--s-3);margin-left:auto;display:flex}.topbarDate{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap}.userChip{align-items:center;gap:var(--s-2);min-height:40px;padding:4px var(--s-2);border-radius:var(--r-md);cursor:pointer;background:0 0;border:1px solid #0000;transition:background .15s;display:flex}.userChip:hover{background:var(--c-n-50)}.userChipMeta{text-align:left;line-height:1.15}.userChipName{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-strong)}.userChipRole{font-size:var(--fs-xs);color:var(--text-muted);text-transform:capitalize}.userMenu{right:var(--s-6);top:calc(var(--topbar-h) - 4px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-md);min-width:190px;padding:var(--s-1);z-index:var(--z-topbar);position:absolute}.userMenuItem{align-items:center;gap:var(--s-2);width:100%;min-height:40px;padding:0 var(--s-3);border-radius:var(--r-sm);cursor:pointer;text-align:left;font-size:var(--fs-md);color:var(--text-default);background:0 0;border:0;display:flex}.userMenuItem:hover{background:var(--c-n-50)}.hamburger{display:none}.page{width:100%;max-width:var(--content-max);padding:var(--s-6);flex:1;margin:0 auto}.pageNarrow{max-width:980px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.cardPad{padding:var(--s-5)}.cardHeader{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.cardTitle{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-strong)}.cardSub{font-size:var(--fs-sm);color:var(--text-muted)}.cardBody{padding:var(--s-5)}.cardBodyFlush{padding:0}.pageHeader{justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.pageTitle{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-strong);line-height:var(--lh-tight)}.pageSubtitle{font-size:var(--fs-md);color:var(--text-muted);margin-top:2px}.pageActions{gap:var(--s-2);flex-wrap:wrap;display:flex}.btn{border-radius:var(--r-md);font-weight:var(--fw-semibold);font-size:var(--fs-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;text-decoration:none;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn:focus-visible{outline:2px solid var(--c-primary-300);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{opacity:.4;pointer-events:none}.btn-sm{height:32px;padding:0 10px}.btn-md{height:36px;padding:0 14px}.btn-lg{height:44px;font-size:var(--fs-base);padding:0 20px}.btn-sm{position:relative}.btn-sm:after{content:"";position:absolute;inset:-4px 0}.btn-primary{background:var(--c-primary-600);color:#fff}.btn-primary:hover{background:var(--c-primary-700)}.btn-secondary{background:var(--bg-surface);border-color:var(--border-strong);color:var(--text-default)}.btn-secondary:hover{background:var(--c-n-50)}.btn-ghost{color:var(--text-default);background:0 0}.btn-ghost:hover{background:var(--c-n-50)}.btn-danger{color:var(--c-danger-fg);background:0 0;border-color:#0000}.btn-danger:hover{background:var(--c-danger-bg)}.btn-dangerSolid{background:var(--c-danger-fg);color:#fff}.btn-dangerSolid:hover{filter:brightness(.92)}.btn-link{color:var(--c-primary-700);height:auto;font-weight:var(--fw-medium);background:0 0;padding:0}.btn-link:hover{text-decoration:underline}.btn-block{width:100%}.btnIcon{width:32px;height:32px;padding:0}.btnLoadingLabel{opacity:.7}.field{gap:var(--s-1);flex-direction:column;min-width:0;display:flex}.fieldLabel{font-size:var(--fs-sm);color:var(--text-default);font-weight:var(--fw-medium);align-items:center;gap:4px;display:flex}.fieldRequired{color:var(--c-danger-fg)}.fieldReq text{fill:currentColor}.input,.select,.textarea{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);width:100%;height:36px;color:var(--text-strong);font-size:var(--fs-md);padding:0 10px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;height:auto;min-height:76px;line-height:var(--lh-normal);padding:8px 10px}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2366717f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.input::placeholder,.textarea::placeholder{color:var(--c-n-400)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-primary-500);outline:none;box-shadow:0 0 0 3px #0f9ab026}.input:disabled,.select:disabled,.textarea:disabled{background:var(--c-n-50);color:var(--text-muted);cursor:not-allowed}.inputError,.inputError:hover,.inputError:focus{border-color:var(--c-danger-fg)}.fieldError{font-size:var(--fs-sm);color:var(--c-danger-fg)}.fieldHint{font-size:var(--fs-sm);color:var(--text-muted)}.inputWrap{align-items:center;display:flex;position:relative}.inputPrefix{color:var(--text-muted);font-size:var(--fs-md);pointer-events:none;position:absolute;left:10px}.inputWrap .hasPrefix{padding-left:24px}.inputSuffix{align-items:center;gap:4px;display:flex;position:absolute;right:8px}.checkboxRow{align-items:center;gap:var(--s-2);min-height:40px;display:flex}.checkboxRow input{width:16px;height:16px;accent-color:var(--c-primary-600);cursor:pointer}.checkboxRow label{font-size:var(--fs-md);cursor:pointer}.formGrid{gap:var(--s-4) var(--s-4);grid-template-columns:1fr 1fr;display:grid}.formGrid .span2{grid-column:1/-1}.formSection{border-top:1px solid var(--border);padding-top:var(--s-4);margin-top:var(--s-5)}.formSection:first-child{border-top:0;margin-top:0;padding-top:0}.formSectionTitle{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);font-weight:var(--fw-semibold);margin-bottom:var(--s-3)}.tagList{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.tag{background:var(--c-primary-50);height:24px;color:var(--c-primary-800);border:1px solid var(--c-primary-200);border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:center;gap:6px;padding:0 8px;display:inline-flex}.tag button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;display:flex}.tableWrap{border-radius:var(--r-lg);width:100%;overflow-x:auto}table.table{border-collapse:separate;border-spacing:0;width:100%}.table th{z-index:1;height:36px;padding:0 var(--s-3);background:var(--bg-subtle);border-bottom:1px solid var(--border);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:var(--fw-semibold);text-align:left;white-space:nowrap;position:sticky;top:0}.table td{height:40px;padding:6px var(--s-3);border-bottom:1px solid var(--border);font-size:var(--fs-md);color:var(--text-default);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--bg-subtle)}.table tbody tr.clickable{cursor:pointer}.table th.right,.table td.right{text-align:right}.table td.num,.table th.num{font-variant-numeric:tabular-nums}.table th.num{text-align:right}.table .actionsCell{text-align:right;white-space:nowrap}.table .actionsCell .btn+.btn{margin-left:2px}.sortBtn{cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;align-items:center;gap:4px;min-height:36px;padding:0;display:inline-flex}.stickyTableScroll{max-height:70vh;overflow:auto}.rowStrikethrough{text-decoration:line-through}.expandRow>td{height:auto;padding:var(--s-3) var(--s-4) var(--s-4);background:var(--bg-subtle)}.expandRow .table{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md)}.expandRow .table th{height:30px;position:static}.expandRow .table td{height:34px;font-size:var(--fs-sm)}.expandRow .table tbody tr:hover{background:0 0}.table tfoot td{background:var(--bg-subtle);border-top:1px solid var(--border-strong);height:44px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-strong)}.expandBtn{flex:none}.expandBtn svg{transition:transform .15s ease-out;transform:rotate(-90deg)}.expandBtn.open svg{transform:rotate(0)}.rowLink{font-weight:var(--fw-semibold)}.table th.expandCol,.table td.expandCol{width:46px;padding-right:0}.table td.expandCol{text-align:center}.table tbody tr.lastRow td{border-bottom:0}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--c-n-100) 25%, var(--c-n-50) 50%, var(--c-n-100) 75%);background-size:200% 100%;animation:1.2s linear infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;width:15px;height:15px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pill{border-radius:var(--r-full);height:22px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);white-space:nowrap;border:1px solid #0000;align-items:center;padding:0 8px;display:inline-flex}.stateBox{text-align:center;padding:var(--s-10) var(--s-6);justify-content:center;align-items:center;gap:var(--s-2);flex-direction:column;display:flex}.stateArt{color:var(--c-n-400);margin-bottom:var(--s-2)}.stateTitle{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.stateDesc{font-size:var(--fs-md);color:var(--text-muted);max-width:420px}.stateAction{margin-top:var(--s-3)}.stateError .stateArt{color:var(--c-danger-fg)}.filterBar{align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.filterBar .grow{flex:1;min-width:200px;max-width:340px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--bg-surface);height:30px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-default);cursor:pointer;padding:0 12px;transition:all .15s}.chip:hover{background:var(--c-n-50)}.chip.active{background:var(--c-primary-50);border-color:var(--c-primary-300);color:var(--c-primary-700);font-weight:var(--fw-semibold)}.searchBox{align-items:center;display:flex;position:relative}.searchBox .searchIcon{color:var(--text-muted);pointer-events:none;display:flex;position:absolute;left:10px}.searchBox input{padding-left:32px;padding-right:40px}.searchBox kbd{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--text-muted);background:var(--c-n-50);border:1px solid var(--border);border-radius:var(--r-sm);pointer-events:none;padding:1px 6px;position:absolute;right:8px}.searchBox .searchClear{cursor:pointer;color:var(--text-muted);border-radius:var(--r-sm);background:0 0;border:0;padding:4px;display:flex;position:absolute;right:6px}.searchBox .searchClear:hover{background:var(--c-n-100)}.tabs{gap:var(--s-5);border-bottom:1px solid var(--border);height:40px;margin-bottom:var(--s-4);align-items:stretch;display:flex}.tab{cursor:pointer;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-muted);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 2px;transition:color .15s,border-color .15s}.tab:hover{color:var(--text-default)}.tab.active{color:var(--c-primary-600);border-bottom-color:var(--c-primary-600);font-weight:var(--fw-semibold)}.overlay{z-index:var(--z-modal);padding:var(--s-4);background:#141a2273;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-surface);border-radius:var(--r-lg);width:560px;max-width:100%;box-shadow:var(--sh-lg);flex-direction:column;max-height:calc(100vh - 32px);animation:.15s ease-out popIn;display:flex}@keyframes popIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.modalLg{width:800px}.modalHeader{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.modalTitle{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.modalBody{padding:var(--s-5);max-height:70vh;overflow-y:auto}.modalFooter{justify-content:flex-end;gap:var(--s-2);padding:var(--s-4) var(--s-5);border-top:1px solid var(--border);display:flex}.drawerOverlay{z-index:var(--z-drawer);background:#141a2273;animation:.15s ease-out fadeIn;position:fixed;inset:0}.drawer{background:var(--bg-surface);width:480px;max-width:100%;box-shadow:var(--sh-lg);z-index:var(--z-drawer);flex-direction:column;animation:.2s ease-out slideIn;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slideIn{0%{opacity:.5;transform:translate(40px)}to{opacity:1;transform:none}}.drawerHeader{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.drawerBody{padding:var(--s-5);flex:1;overflow-y:auto}.drawerFooter{padding:var(--s-4) var(--s-5);border-top:1px solid var(--border);gap:var(--s-2);flex-wrap:wrap;display:flex}.toastWrap{right:var(--s-5);bottom:var(--s-5);z-index:var(--z-toast);gap:var(--s-2);flex-direction:column;max-width:calc(100vw - 40px);display:flex;position:fixed}.toast{align-items:center;gap:var(--s-3);min-width:260px;max-width:420px;padding:var(--s-3) var(--s-4);background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--c-primary-600);border-radius:var(--r-md);box-shadow:var(--sh-md);font-size:var(--fs-md);color:var(--text-strong);animation:.15s ease-out toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toastSuccess{border-left-color:var(--c-success-fg)}.toastError{border-left-color:var(--c-danger-fg)}.toastInfo{border-left-color:var(--c-info-fg)}.toastWarning{border-left-color:var(--c-warning-fg)}.toastIcon{flex:none;display:flex}.toastSuccess .toastIcon{color:var(--c-success-fg)}.toastError .toastIcon{color:var(--c-danger-fg)}.toastInfo .toastIcon{color:var(--c-info-fg)}.toastWarning .toastIcon{color:var(--c-warning-fg)}.toastMsg{flex:1}.toastClose{cursor:pointer;color:var(--text-muted);border-radius:var(--r-sm);background:0 0;border:0;padding:4px;display:flex}.toastClose:hover{background:var(--c-n-50)}.statGrid{gap:var(--s-4);margin-bottom:var(--s-5);grid-template-columns:repeat(5,1fr);display:grid}.statGrid6{grid-template-columns:repeat(6,1fr)}.statCard{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--s-4);text-align:left;cursor:pointer;width:100%;transition:border-color .15s,box-shadow .15s,transform .15s;display:block}.statCard:hover{border-color:var(--c-primary-300);box-shadow:var(--sh-md);transform:translateY(-1px)}.statCard.static{cursor:default}.statCard.static:hover{border-color:var(--border);box-shadow:var(--sh-sm);transform:none}.statLabel{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:var(--fw-semibold)}.statValue{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text-strong);font-variant-numeric:tabular-nums;margin-top:4px;line-height:1.15}.statHelper{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}.statHelper.up{color:var(--c-success-fg)}.statHelper.down{color:var(--c-danger-fg)}.statCard.emphasis{border-color:var(--c-primary-300);background:linear-gradient(180deg, var(--c-primary-50), var(--bg-surface))}.grid2{gap:var(--s-4);grid-template-columns:2fr 1fr;display:grid}.grid2even{gap:var(--s-4);grid-template-columns:1fr 1fr;display:grid}.grid3{gap:var(--s-4);grid-template-columns:repeat(3,1fr);display:grid}.stack{gap:var(--s-4);flex-direction:column;display:flex}.stackSm{gap:var(--s-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s-2);display:flex}.rowBetween{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.muted{color:var(--text-muted)}.strong{color:var(--text-strong);font-weight:var(--fw-semibold)}.dangerText{color:var(--c-danger-fg)}.successText{color:var(--c-success-fg)}.warningText{color:var(--c-warning-fg)}.small{font-size:var(--fs-sm)}.xsmall{font-size:var(--fs-xs)}.mt2{margin-top:var(--s-2)}.mt3{margin-top:var(--s-3)}.mt4{margin-top:var(--s-4)}.mb3{margin-bottom:var(--s-3)}.mb4{margin-bottom:var(--s-4)}.barChart{align-items:flex-end;gap:var(--s-2);height:130px;padding-top:var(--s-2);display:flex}.barChartCol{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.barChartBar{background:var(--c-primary-400);border-radius:var(--r-sm) var(--r-sm) 0 0;width:100%;max-width:42px;min-height:3px;transition:background .15s;position:relative}.barChartCol:hover .barChartBar{background:var(--c-primary-600)}.barChartLabel{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.hbarRow{gap:var(--s-3);font-size:var(--fs-md);grid-template-columns:150px 1fr auto;align-items:center;display:grid}.hbarTrack{background:var(--c-n-100);border-radius:var(--r-full);height:8px;overflow:hidden}.hbarFill{background:var(--c-primary-500);border-radius:var(--r-full);height:100%;transition:width .3s ease-out}.alert{gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-md);border:1px solid;align-items:flex-start;display:flex}.alertDanger{background:var(--c-danger-bg);border-color:var(--c-danger-br);color:var(--c-danger-fg)}.alertWarning{background:var(--c-warning-bg);border-color:var(--c-warning-br);color:var(--c-warning-fg)}.alertInfo{background:var(--c-info-bg);border-color:var(--c-info-br);color:var(--c-info-fg)}.alertSuccess{background:var(--c-success-bg);border-color:var(--c-success-br);color:var(--c-success-fg)}.kvGrid{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.kvLabel{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:var(--fw-semibold)}.kvValue{font-size:var(--fs-md);color:var(--text-strong);word-break:break-word;margin-top:2px}.divider{background:var(--border);height:1px;margin:var(--s-4) 0}.avatar{background:var(--c-primary-100);width:32px;height:32px;color:var(--c-primary-800);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.3px;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatarLg{width:48px;height:48px;font-size:var(--fs-lg)}.avatarSm{width:26px;height:26px;font-size:var(--fs-xs)}.combo{position:relative}.comboMenu{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-md);max-height:280px;z-index:var(--z-modal);padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.comboOption{cursor:pointer;border-radius:var(--r-sm);text-align:left;background:0 0;border:0;flex-direction:column;gap:1px;width:100%;min-height:40px;padding:8px 10px;display:flex}.comboOption:hover,.comboOption.active{background:var(--c-primary-50)}.comboOption .primary{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-strong)}.comboOption .secondary{font-size:var(--fs-sm);color:var(--text-muted)}.comboEmpty{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;padding:10px}.pagination{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.paginationInfo{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.paginationControls{align-items:center;gap:4px;display:flex}.pageBtn{border:1px solid var(--border);background:var(--bg-surface);border-radius:var(--r-sm);cursor:pointer;min-width:32px;height:32px;font-size:var(--fs-sm);color:var(--text-default);justify-content:center;align-items:center;padding:0 8px;transition:all .15s;display:inline-flex;position:relative}.pageBtn:after{content:"";position:absolute;inset:-4px}.pageBtn:hover:not(:disabled){background:var(--c-n-50);border-color:var(--border-strong)}.pageBtn:disabled{opacity:.4;cursor:not-allowed}.pageBtn.current{background:var(--c-primary-600);border-color:var(--c-primary-600);color:#fff;font-weight:var(--fw-semibold)}.pageGap{color:var(--text-muted);font-size:var(--fs-sm);padding:0 2px}.pageSize{height:32px;font-size:var(--fs-sm);padding:0 24px 0 8px}.loginPage{min-height:100vh;padding:var(--s-6);background:radial-gradient(1000px 500px at 15% -10%, var(--c-primary-100), transparent 60%), radial-gradient(800px 400px at 100% 110%, var(--c-primary-50), transparent 60%), var(--bg-app);justify-content:center;align-items:center;display:flex}.loginCard{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:400px;box-shadow:var(--sh-lg);padding:var(--s-8) var(--s-6) var(--s-6)}.loginBrand{align-items:center;gap:var(--s-2);text-align:center;margin-bottom:var(--s-6);flex-direction:column;display:flex}.loginLogo{background:var(--c-primary-600);color:#fff;width:52px;height:52px;box-shadow:var(--sh-md);border-radius:14px;place-items:center;display:grid}.loginTitle{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text-strong);letter-spacing:-.4px}.loginSub{font-size:var(--fs-md);color:var(--text-muted)}.demoBox{margin-top:var(--s-5);padding:var(--s-3);background:var(--bg-subtle);border:1px dashed var(--border-strong);border-radius:var(--r-md);font-size:var(--fs-sm)}.demoBoxTitle{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:var(--fw-semibold);margin-bottom:6px}.demoRow{justify-content:space-between;align-items:center;gap:var(--s-2);border-radius:var(--r-sm);cursor:pointer;width:100%;min-height:34px;font-size:var(--fs-sm);color:var(--text-default);text-align:left;background:0 0;border:0;padding:4px 8px;display:flex}.demoRow:hover{background:var(--c-primary-50)}.demoRow code{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--text-muted)}.demoRole{font-weight:var(--fw-semibold);color:var(--text-strong);text-transform:capitalize}.recoveryCode{box-sizing:border-box;width:100%;font-family:var(--font-num,ui-monospace, monospace);font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:.1em;color:var(--text-strong);background:var(--bg-subtle);border:1px dashed var(--border-strong);border-radius:var(--r-md);padding:var(--s-3);text-align:center;word-break:break-all;display:block}.calGrid{grid-template-columns:56px repeat(var(--cal-cols,3), minmax(140px, 1fr));display:grid;position:relative}.calHeadCell{z-index:2;background:var(--bg-subtle);border-bottom:1px solid var(--border);border-left:1px solid var(--border);padding:8px var(--s-3);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-strong);text-align:center;position:sticky;top:0}.calTimeCell{border-bottom:1px solid var(--border);height:56px;font-size:var(--fs-xs);color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;padding:4px 8px 0 0}.calCell{border-bottom:1px solid var(--border);border-left:1px solid var(--border);height:56px;position:relative}.calBody{position:relative}.calBlocks{pointer-events:none;position:absolute;inset:0 0 0 56px}.calBlockCol{pointer-events:none;position:absolute;top:0;bottom:0}.calBlock{pointer-events:auto;border-radius:var(--r-md);cursor:pointer;text-align:left;font-size:var(--fs-sm);border:1px solid;flex-direction:column;gap:1px;padding:5px 8px;transition:box-shadow .15s,transform .15s;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.calBlock:hover{box-shadow:var(--sh-md);z-index:3}.calBlockName{font-weight:var(--fw-semibold);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calBlockMeta{color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calBlock.booked{background:var(--c-info-bg);border-color:var(--c-info-br)}.calBlock.checked_in{background:var(--c-warning-bg);border-color:var(--c-warning-br)}.calBlock.in_treatment{background:var(--c-primary-50);border-color:var(--c-primary-200)}.calBlock.completed{background:var(--c-success-bg);border-color:var(--c-success-br)}.calBlock.no_show{background:var(--c-danger-bg);border-color:var(--c-danger-br)}.calBlock.cancelled{background:var(--c-neutral-bg);border-color:var(--c-neutral-br);opacity:.75}.calScroll{overflow-x:auto}.planCard{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--s-5);gap:var(--s-3);flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.planCard:hover{border-color:var(--c-primary-300);box-shadow:var(--sh-md)}.planCardName{font-size:var(--fs-xs);letter-spacing:1px;text-transform:uppercase;font-weight:var(--fw-bold);color:var(--c-primary-700)}.planCardFee{font-size:var(--fs-3xl);font-weight:var(--fw-bold);color:var(--text-strong);font-variant-numeric:tabular-nums;line-height:1}.planCardFee span{font-size:var(--fs-md);font-weight:var(--fw-normal);color:var(--text-muted)}.planCardList{font-size:var(--fs-md);color:var(--text-default);flex-direction:column;gap:6px;display:flex}.planCardList li{align-items:center;gap:8px;display:flex}.planCardList li svg{color:var(--c-primary-600);flex:none}.quotaBar{flex-direction:column;gap:3px;min-width:120px;display:flex}.quotaBarTop{font-size:var(--fs-xs);color:var(--text-muted);justify-content:space-between;display:flex}.quotaTrack{background:var(--c-n-100);border-radius:var(--r-full);height:6px;overflow:hidden}.quotaFill{background:var(--c-primary-500);border-radius:var(--r-full);height:100%}.quotaFill.warn{background:var(--c-warning-fg)}.invoiceSheet{color:#111;background:#fff}.invHeader{justify-content:space-between;gap:var(--s-6);flex-wrap:wrap;display:flex}.invClinicName{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:#111}.invMeta{font-size:var(--fs-md)}.invMetaRight{text-align:right}.invTable{border-collapse:collapse;width:100%;margin-top:var(--s-4)}.invTable th,.invTable td{border:1px solid var(--c-n-300);font-size:var(--fs-md);text-align:left;padding:7px 10px}.invTable th{background:var(--c-n-50);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px}.invTable td.right,.invTable th.right{text-align:right;font-variant-numeric:tabular-nums}.invTotals{margin-top:var(--s-4);justify-content:flex-end;display:flex}.invTotalsTable{border-collapse:collapse;min-width:320px}.invTotalsTable td{font-size:var(--fs-md);padding:5px 10px}.invTotalsTable td.right{text-align:right;font-variant-numeric:tabular-nums}.invTotalsTable tr.grand td{font-weight:var(--fw-bold);font-size:var(--fs-lg);color:#111;border-top:2px solid #111}.invFooter{margin-top:var(--s-5);padding-top:var(--s-3);border-top:1px dashed var(--c-n-300);font-size:var(--fs-sm);color:var(--c-n-600);justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;display:flex}.diagEditor{gap:var(--s-4);display:grid}.diagLower{gap:var(--s-4);grid-template-columns:1fr 320px;align-items:start;display:grid}.diagLowerMain{gap:var(--s-4);min-width:0;display:grid}.diagLowerMain>*{min-width:0}.diagRail{top:calc(var(--topbar-h) + var(--s-4));gap:var(--s-4);display:grid;position:sticky}@media (width>=1441px){.diagLower{grid-template-columns:1fr 360px}}@media (width<=1023px){.diagLower{grid-template-columns:1fr}.diagRail{position:static}}.diagVisitBar{justify-content:space-between;align-items:flex-start;gap:var(--s-4);flex-wrap:wrap;display:flex}.diagVisitId{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.diagVisitName{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.diagVisitControls{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.diagVisitField{align-items:center;gap:var(--s-2);display:flex}.diagVisitField>label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-medium)}.diagVisitAlerts{margin-top:var(--s-3)}.diagDateWarn{margin-top:var(--s-2);align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.diagBanner{margin-bottom:var(--s-4)}.diagFindingsWrap{max-height:360px;overflow:auto}.diagFindingsWrap thead th{z-index:1;background:var(--bg-surface);position:sticky;top:0}.diagTreatCell{flex-direction:column;gap:2px;display:flex}.diagTreatCode{color:var(--text-muted);font-size:var(--fs-xs)}.diagTreatNone{color:var(--text-muted);font-style:italic}.diagAddWrap{align-items:center;gap:var(--s-2);display:flex}.diagEstimate{justify-content:flex-end;align-items:baseline;gap:var(--s-3);padding-top:var(--s-3);margin-top:var(--s-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.diagEstimateTotal{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-strong)}.diagEstimateNote{font-size:var(--fs-sm);color:var(--text-muted)}.diagSummary{gap:var(--s-2);display:grid}.diagSummaryRow{justify-content:space-between;align-items:baseline;gap:var(--s-3);font-size:var(--fs-md);display:flex}.diagSummaryRow dt{color:var(--text-muted)}.diagSummaryRow dd{font-weight:var(--fw-medium);margin:0}.diagSummaryFoot{margin-top:var(--s-2);padding-top:var(--s-3);border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted)}.diagSummaryPrimary{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.diagHistory{min-width:200px}.diagSummary dl,.hdoPatient{margin:0}.invTable td.hdoGroupRow{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--c-n-700,#444);background:#f4f4f4;padding-top:6px;padding-bottom:6px}.diagAdviceFoot{align-items:flex-end;gap:var(--s-3);margin-top:var(--s-3);flex-wrap:wrap;display:flex}.diagAdviceCount{font-size:var(--fs-sm);color:var(--text-muted)}.diagPrintNotice{display:none}.toothChartWrap{gap:var(--s-3);flex-direction:column;display:flex}.diagEditor .toothChartWrap{width:100%;max-width:1000px;margin-inline:auto}.chartToolbar{justify-content:flex-end;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.dentitionChips{gap:6px;display:flex}.chipDiag{align-items:center;gap:6px;display:inline-flex}.chipDiag.active{border-color:var(--c-primary-600);box-shadow:inset 0 0 0 1px var(--c-primary-600)}.toothFigure{gap:var(--s-2);flex-direction:column;margin:0;display:flex}.toothFigcap{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.toothFigTitle{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-strong)}.archLabelRow{justify-content:space-between;align-items:baseline;gap:var(--s-4);display:flex}.archLabel{font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.toothChartFrame{padding-bottom:var(--s-2);position:relative;overflow-x:auto}.toothChart{--cell-w:54px;--cell-h:64px;--midline:24px;gap:var(--s-3);flex-direction:column;width:max-content;max-width:1000px;margin:0 auto;display:flex}.toothChart[data-dentition=primary]{max-width:700px}@media (width<=1279px){.toothChart{--cell-w:48px;--cell-h:58px}}@media (width<=1023px){.toothChart{--cell-w:44px;--cell-h:54px;--midline:20px}}.arch{gap:var(--midline);justify-content:center;display:flex}.quadrant{grid-template-columns:repeat(8, var(--cell-w));gap:2px;display:grid}.toothChart[data-dentition=primary] .quadrant{grid-template-columns:repeat(5, var(--cell-w))}.tooth{width:var(--cell-w);height:var(--cell-h);cursor:pointer;font:inherit;color:inherit;border-radius:var(--r-sm);-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;margin:0;padding:0;display:flex;position:relative}.tooth:hover{box-shadow:inset 0 0 0 2px var(--c-chart-hover,var(--c-primary-300));background:#0b7e9212}.tooth:focus-visible{outline:2px solid var(--c-primary-300);outline-offset:2px}.tooth.active{box-shadow:inset 0 0 0 2px var(--c-chart-selected)}.toothNumber{font-family:var(--font-num,var(--font));color:var(--text-muted);-webkit-user-select:none;user-select:none;order:-1;font-size:11px;line-height:1}.tooth .toothNumber.bottom{order:0}.toothSvg{width:100%;height:auto;display:block}.toothChartSkeleton{gap:var(--s-3);flex-direction:column;display:flex}.toothChartSkeleton .tooth{cursor:default}.toothChartSkeleton .tooth:hover{box-shadow:none;background:0 0}.toothTooltip{z-index:40;width:max-content;min-width:240px;max-width:320px;padding:var(--s-2);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-md);pointer-events:none;font-size:var(--fs-sm);gap:4px;display:grid;position:absolute}.toothTooltipTitle{font-weight:var(--fw-semibold);color:var(--text-strong)}.toothTooltipRow{align-items:center;gap:var(--s-2);display:flex}.toothTooltipRow>.num{margin-left:auto}.toothTooltipSwatch{width:14px;height:14px;font-size:9px;line-height:1;font-weight:var(--fw-bold);border:1.5px solid;border-radius:3px;flex:none;justify-content:center;align-items:center;display:inline-flex}.toothTooltipText{min-width:0;color:var(--text-default);flex:1}.toothTooltipMore{color:var(--text-muted);font-size:var(--fs-xs)}.toothLegend{padding:var(--s-3) 0 0;border-top:1px solid var(--border);align-items:center;gap:4px var(--s-3);color:var(--text-muted);flex-wrap:wrap;margin:0;font-size:11px;list-style:none;display:flex}.toothLegendLabel{font-weight:var(--fw-semibold);color:var(--text-default)}.toothLegendItem{align-items:center;gap:5px;display:inline-flex}.legendSwatch{flex:none;width:14px;height:14px}.toothLegendSurfaces{flex-basis:100%}.drawerSection+.drawerSection{margin-top:var(--s-4)}.drawerSectionTitle{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-strong);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);margin-bottom:var(--s-3);padding-bottom:6px}.spHeader{gap:var(--s-4);align-items:flex-start;display:flex}.spPicker{flex:none}.spGrid{grid-template-rows:repeat(3,44px);grid-template-columns:repeat(3,44px);width:132px;height:132px;display:grid}.spZone{border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-muted);font:inherit;font-size:10px;font-weight:var(--fw-semibold);letter-spacing:.02em;text-transform:uppercase;cursor:pointer;text-align:center;justify-content:center;align-items:center;padding:2px;transition:background .12s,border-color .12s,color .12s;display:flex}.spZone:hover:not(:disabled){background:var(--c-n-50)}.spZone:focus-visible{outline:2px solid var(--c-primary-300);outline-offset:-2px;z-index:1}.spZone.on{background:var(--c-primary-50);border:2px solid var(--c-primary-600);color:var(--c-primary-700)}.spZone:disabled{opacity:.5;cursor:not-allowed}.spTop{grid-area:1/1/auto/4}.spLeft{grid-area:2/1}.spCentre{grid-area:2/2}.spRight{grid-area:2/3}.spBottom{grid-area:3/1/auto/4}.spError{width:132px;margin-top:6px}.spKey{gap:var(--s-2);min-width:0;font-size:var(--fs-sm);flex:1;align-content:start;display:grid}.spCount{font-size:var(--fs-md);color:var(--text-strong);font-weight:var(--fw-medium)}.spKeyList{color:var(--text-muted);font-size:var(--fs-xs);gap:3px;margin:0;padding:0;list-style:none;display:grid}.spKeyList b{color:var(--text-default);font-weight:var(--fw-semibold)}.findMiniList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.findMiniList li{align-items:center;gap:var(--s-2);padding:6px var(--s-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-subtle);display:flex}.findMiniList li.current{border-color:var(--c-primary-600);background:var(--c-primary-50)}.findGlyph{width:20px;height:20px;font-size:11px;font-weight:var(--fw-bold);border:1.5px solid;border-radius:4px;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.findMiniText{min-width:0;font-size:var(--fs-sm);color:var(--text-default);flex:1}.findMiniList li>.num{font-size:var(--fs-sm)}.priceReset{align-items:center;gap:var(--s-2);margin-top:-6px;display:flex}.rxEditor{gap:var(--s-3);display:grid}.rxPickerRow{display:flex}.rxPicker{flex:1;gap:6px;min-width:0;display:grid}.rxFormularyError{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--bg-subtle);font-size:var(--fs-sm);color:var(--text-muted);display:flex}.regimenStrip{gap:var(--s-3);padding:var(--s-3);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-md);display:grid}.regimenText{font-size:var(--fs-md);color:var(--text-default);line-height:1.5}.regimenWarn{align-items:center;gap:var(--s-2);padding:6px var(--s-3);border-radius:var(--r-md);background:var(--c-warning-bg);border:1px solid var(--c-warning-br);color:var(--c-warning-fg);font-size:var(--fs-sm);display:flex}.regimenFields{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.regimenActions{justify-content:flex-end;align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.rxTable td{vertical-align:middle;height:48px}.rxDrugCell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rxDrugCell b{font-weight:var(--fw-semibold)}.rxAdviceTag{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--r-full);background:var(--c-n-100);color:var(--text-muted);padding:1px 6px}.rxStdBadge{display:inline-flex}.rxInline{align-items:center;gap:6px;display:flex}.rxInline>*{min-width:0}.rxModeSwitch{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-full);align-self:start;gap:2px;padding:3px;display:inline-flex}.rxModeBtn{color:var(--text-muted);background:0 0;border:none}.rxModeBtn:hover{color:var(--text-default);background:0 0}.rxModeBtn.on{background:var(--bg-surface);color:var(--text-strong);box-shadow:0 1px 2px #0f172a1a}.rxModeBtn.on:hover{background:var(--bg-surface);color:var(--text-strong)}.rxAiPanel{gap:var(--s-3);min-width:0;display:grid}.rxAiPrivacy{padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--c-info-bg);border:1px solid var(--c-info-br);color:var(--c-info-fg);line-height:1.5}.rxAiMeta{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.rxAiActions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.rxAiBusy{font-size:var(--fs-sm);color:var(--text-muted)}.rxAiWarnList{font-size:var(--fs-sm);margin:4px 0 0;padding-left:18px;line-height:1.5}.rxAiDisclaimer{font-size:var(--fs-xs);color:var(--text-muted);border-top:1px dashed var(--border);padding-top:var(--s-2);line-height:1.5}.rxSuggestList{gap:var(--s-2);min-width:0;display:grid}.rxSuggestCard{min-width:0;padding:var(--s-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);gap:6px;display:grid}.rxSuggestCardWarn{border-color:var(--c-danger-br);background:var(--c-danger-bg)}.rxSuggestHead{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.rxSuggestName{font-weight:var(--fw-semibold);color:var(--text-strong);min-width:0}.rxSuggestRegimen{font-size:var(--fs-sm);color:var(--text-default);line-height:1.45}.rxSuggestRationale{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;line-height:1.45}.rxSuggestWarn{font-size:var(--fs-sm);color:var(--c-danger-fg);align-items:flex-start;gap:6px;line-height:1.45;display:flex}.rxSuggestFoot{justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-top:2px;display:flex}.rxToothChips{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.rxToothChip{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--r-full);background:var(--c-n-100);border:1px solid var(--border);color:var(--text-muted);padding:1px 6px}.rxSuggestGroups{gap:var(--s-4);min-width:0;display:grid}.rxSuggestGroup{gap:var(--s-2);min-width:0;display:grid}.rxSuggestGroupTitle{font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0}.rxOffListTag{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--r-full);background:var(--c-warning-bg);border:1px solid var(--c-warning-br);color:var(--c-warning-fg);padding:1px 6px}.rxSuggestModelNote{font-size:var(--fs-xs);color:var(--c-warning-fg)}.psPanel{gap:var(--s-3);min-width:0;display:grid}.psPrivacy{padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--c-info-bg);border:1px solid var(--c-info-br);color:var(--c-info-fg);line-height:1.5}.psMeta{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.psActions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.psBusy{font-size:var(--fs-sm);color:var(--text-muted)}.psWarnList{font-size:var(--fs-sm);color:var(--c-warning-fg);margin:0;padding-left:18px;line-height:1.5}.psDisclaimer{font-size:var(--fs-xs);color:var(--text-muted);border-top:1px dashed var(--border);padding-top:var(--s-2);line-height:1.5}.psGroups{gap:var(--s-4);min-width:0;display:grid}.psGroup{gap:var(--s-2);min-width:0;display:grid}.psGroupTitle{font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0}.psGroupNow{font-size:var(--fs-sm);color:var(--text-default)}.psList{gap:var(--s-2);min-width:0;display:grid}.psCard{min-width:0;padding:var(--s-3);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);gap:6px;display:grid}.psCardApplied{border-color:var(--c-success-br);background:var(--c-success-bg)}.psHead{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.psName{font-weight:var(--fw-semibold);color:var(--text-strong);min-width:0}.psCode{font-size:var(--fs-xs);color:var(--text-muted)}.psStageChip{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--r-full);border:1px solid;padding:1px 6px}.psPriceRow{align-items:baseline;gap:var(--s-2);flex-wrap:wrap;display:flex}.psPrice{font-weight:var(--fw-semibold);color:var(--text-strong)}.psUnit{font-size:var(--fs-xs);color:var(--text-muted)}.psRationale{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;line-height:1.45}.psFoot{justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-top:2px;display:flex}.psFootActions{align-items:center;gap:var(--s-2);display:flex}.psAttachedTag{font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--r-full);background:var(--c-success-bg);border:1px solid var(--c-success-br);color:var(--c-success-fg);padding:1px 6px}.hdoPreview{background:var(--bg-app);min-height:100%;padding:var(--s-6)}.hdoSheet{max-width:794px;margin:0 auto}.hdoSection{margin-top:var(--s-5)}.hdoSectionTitle{font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:.06em;text-transform:uppercase;color:#111;margin-bottom:var(--s-3);border-bottom:1px solid #bbb;padding-bottom:4px}.hdoLetterhead{justify-content:space-between;gap:var(--s-6);flex-wrap:wrap;display:flex}.hdoPatient{gap:var(--s-2) var(--s-4);font-size:var(--fs-md);grid-template-columns:repeat(3,1fr);display:grid}.hdoPatient>div{gap:6px;display:flex}.hdoPatient dt{color:var(--c-n-600);flex:none}.hdoPatient dd{font-weight:var(--fw-medium);margin:0}.hdoChart{margin-top:var(--s-3)}.hdoChart+.hdoChart{margin-top:var(--s-4)}.hdoChartCaption{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:6px}.hdoFindings,.hdoRx{margin-top:var(--s-3)}.hdoEstimateNote{font-size:var(--fs-sm);color:var(--c-n-600);text-align:right;margin-top:4px}.hdoDisclaimer{margin-top:var(--s-5);font-size:var(--fs-sm);color:#333;border:1px dashed #777;padding:8px 10px}.hdoSignature{justify-content:space-between;gap:var(--s-8);margin-top:var(--s-6);font-size:var(--fs-sm);display:flex}.hdoSignatureLine{border-top:1px solid #111;width:60mm;padding-top:4px}.hdoSignatureDate{text-align:right;border-top:1px solid #111;width:40mm;padding-top:4px}.hdoSigNote{color:var(--c-n-600);font-size:var(--fs-xs)}.hdoPrintActions{justify-content:flex-end;gap:var(--s-2);margin-bottom:var(--s-3);display:flex}.hdoAdvice{white-space:pre-wrap;font-size:var(--fs-md);line-height:1.55}.hdoFindingsCol{width:28px}.hdoToothCol{width:64px}.hdoCostCol{width:90px}.hdoRxColDrug{width:150px}.hdoRxColStrength{width:70px}.hdoRxColDosage{width:190px}.hdoRxColDuration{width:70px}@media (width<=1199px){.sidebar{width:64px}.sidebar .navLabel,.sidebarBrand .brandText,.sidebarFoot,.sidebarNavLabel{display:none}.sidebarBrand,.navItem{justify-content:center;padding:0}.navItem.active:before{left:-6px}.mainCol{margin-left:64px}.statGrid{grid-template-columns:repeat(3,1fr)}}@media (width<=899px){.sidebar{width:228px;box-shadow:var(--sh-lg);transition:transform .2s ease-out;transform:translate(-100%)}.sidebar.open{transform:none}.sidebar .navLabel,.sidebarBrand .brandText,.sidebarFoot,.sidebarNavLabel{display:block}.sidebarBrand{padding:0 var(--s-4);justify-content:flex-start}.navItem{padding:0 var(--s-3);justify-content:flex-start}.mainCol{margin-left:0}.hamburger{display:inline-flex}.topbar{padding:0 var(--s-4);gap:var(--s-2)}.topbarClinic,.topbarDate,.userChipMeta{display:none}.topbarSearch{max-width:none}.page{padding:var(--s-4)}.statGrid{grid-template-columns:repeat(2,1fr)}.grid2,.grid2even,.grid3,.formGrid{grid-template-columns:1fr}.formGrid .span2{grid-column:auto}.modal{border-radius:var(--r-lg) var(--r-lg) 0 0;align-self:flex-end;width:100%;max-height:92vh}.overlay{align-items:flex-end;padding:0}.drawer{width:100%}.btn-sm,.btn-md{height:40px}}@media (width<=640px){.statGrid{gap:var(--s-3);grid-template-columns:1fr 1fr}.pageHeader{flex-direction:column;align-items:stretch}}.imgLightbox{background:var(--bg-surface);border-radius:var(--r-lg);width:min(960px,100%);max-height:calc(100vh - 32px);box-shadow:var(--sh-lg);flex-direction:column;animation:.15s ease-out popIn;display:flex;overflow:hidden}.imgLightboxBar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);display:flex}.imgLightboxName{font-weight:var(--fw-semibold);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;max-width:46vw;overflow:hidden}.imgLightboxBody{background:var(--c-n-900);padding:var(--s-4);justify-content:center;align-items:center;min-height:240px;display:flex;overflow:auto}.imgLightboxImg{object-fit:contain;max-width:100%;max-height:calc(100vh - 160px)}.imgFileCard{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);background:var(--bg-subtle)}.imgUploadProgress{margin-top:var(--s-1)}.input[type=file]{cursor:pointer;height:auto;padding:6px 10px;line-height:1.4}.input[type=file]::file-selector-button{border:1px solid var(--border-strong);background:var(--bg-surface);border-radius:var(--r-sm);font:inherit;color:var(--text-default);cursor:pointer;margin-right:10px;padding:4px 10px}@media (width<=720px){.imgLightbox{border-radius:var(--r-lg) var(--r-lg) 0 0;align-self:flex-end;width:100%;max-height:92vh}.imgLightboxName{max-width:40vw}}.licenseBanner{border-left:0;border-right:0;border-radius:0;align-items:center}.licenseBannerMsg{flex:1}.licenseBannerLink{font-weight:var(--fw-semibold);text-decoration:underline}.brandLogoImg{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:8px;flex:none;width:28px;height:28px}.loginLogoImg{object-fit:contain;border:1px solid var(--border);width:52px;height:52px;box-shadow:var(--sh-md);background:#fff;border-radius:14px}.brandColorInput{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-surface);cursor:pointer;width:44px;height:36px;padding:2px}.brandLogoPreview{object-fit:contain;border:1px solid var(--border);border-radius:var(--r-sm);background:#fff;max-width:180px;max-height:48px;padding:4px}.updateNotes{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-2) var(--s-3);background:var(--bg-subtle)}.updateNotes>summary{cursor:pointer;font-weight:var(--fw-semibold);font-size:var(--fs-sm)}.updateNotesBody{margin-top:var(--s-2);white-space:pre-wrap;font-size:var(--fs-sm);color:var(--text-default);line-height:var(--lh-normal)}@media print{@page{size:A4;margin:12mm}body{color:#000;background:#fff;font-size:11pt}.sidebar,.topbar,.no-print,.pageActions,.toastWrap,.filterBar,.pagination,.tabs,.modal,.overlay,.drawerOverlay,.drawer,.hamburger{display:none!important}.mainCol{margin-left:0}.page{max-width:none;padding:0}.card{box-shadow:none;border:1px solid #bbb;border-radius:0}.invoiceSheet .cardHeader{border-bottom:1px solid #bbb}thead{display:table-header-group}.invHeader,.invTotals,.invFooter,.cardHeader,.alert{break-inside:avoid;page-break-inside:avoid}.invTable th{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f2f2f2!important}.num,.statValue,td,th{font-variant-numeric:tabular-nums}.printFooter{color:#444;text-align:center;margin-top:16px;font-size:9pt;display:block!important}a{color:#000}.hdoPreview{background:#fff;padding:0}.hdoPrintActions,.hdoPreview .pageActions{display:none!important}.hdoSheet{max-width:none;margin:0;box-shadow:none!important;border:0!important;border-radius:0!important}.hdoSheet .cardBody{padding:0!important}.hdoSection{margin-top:10px}.hdoSectionTitle{break-after:avoid;page-break-after:avoid;margin-bottom:4px;font-size:9pt}.hdoPatient{gap:2px 10px;font-size:9.5pt}.hdoLetterhead,.hdoPatient,.hdoChart,.hdoChart+.hdoChart,.hdoSignature,.hdoDisclaimer{break-inside:avoid;page-break-inside:avoid}.hdoChart .toothChart{width:100%;max-width:186mm;margin:0 auto}.hdoChart .arch{gap:10px}.hdoChart .quadrant{grid-template-columns:repeat(8,minmax(0,1fr));gap:1px}.hdoChart .toothChart[data-dentition=primary]{max-width:115mm}.hdoChart .toothChart[data-dentition=primary] .quadrant{grid-template-columns:repeat(5,minmax(0,1fr))}.hdoChart .tooth{width:auto;height:auto}.hdoChart .toothSvg{width:100%;height:auto}.hdoChart .toothNumber{font-size:7.5pt}.hdoEstimateNote{font-size:8.5pt}.hdoDisclaimer{border-color:#777;margin-top:10px;padding:5px 7px;font-size:8.5pt}.hdoSignature{gap:24mm;margin-top:14px;font-size:9pt}.hdoSignatureLine{width:60mm}.hdoSignatureDate{width:40mm}.hdoSigNote{font-size:8pt}.hdoClosing,.hdoFindings tr,.hdoRx tr{break-inside:avoid;page-break-inside:avoid}.hdoFindings thead,.hdoRx thead{display:table-header-group}.hdoRx tbody tr:first-child{break-before:avoid;page-break-before:avoid}.hdoFindings .invTable,.hdoRx .invTable{margin-top:4px}.hdoFindings .invTable td,.hdoRx .invTable td,.hdoFindings .invTable th,.hdoRx .invTable th{padding:4px 6px;font-size:8.5pt}.hdoSheet .toothChart,.hdoSheet .toothChart *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.hdoSheet .toothChart button{outline:none!important}.hdoSheet .toothChart .toothFocus,.hdoSheet .toothChart [data-hover=true]{display:none!important}.hdoSheet .toothChart .tooth:hover,.hdoSheet .toothChart .tooth.active{box-shadow:none;background:0 0}.diagEditor{display:none!important}.diagPrintNotice{padding:24px;font-size:12pt;display:block!important}}.printFooter{display:none}
