:root{--bg: var(--odon-bg, #f3f6fb);--panel: var(--odon-panel, #ffffff);--card: var(--odon-card, #ffffff);--muted: var(--odon-muted, #5b6b7d);--text: var(--odon-text, #1e2a3a);--line: var(--odon-line, #d7e0ec);--accent: var(--odon-accent, #3b7bff);--accent2: var(--odon-accent2, #12b981)}.odontogram-root{--bg: var(--odon-bg, #f3f6fb);--panel: var(--odon-panel, #ffffff);--card: var(--odon-card, #ffffff);--muted: var(--odon-muted, #5b6b7d);--text: var(--odon-text, #1e2a3a);--line: var(--odon-line, #d7e0ec);--accent: var(--odon-accent, #3b7bff);--accent2: var(--odon-accent2, #12b981);color:var(--text)}.dark .odontogram-root{--bg: var(--odon-bg, #0f172a);--panel: var(--odon-panel, #1e293b);--card: var(--odon-card, #1e293b);--muted: var(--odon-muted, #94a3b8);--text: var(--odon-text, #f1f5f9);--line: var(--odon-line, #334155)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:radial-gradient(1200px 600px at 15% 0%,#ffffff 0%,var(--bg) 60%);color:var(--text)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.brand{display:flex;gap:12px;align-items:center}.dot{width:10px;height:10px;border-radius:999px;background:var(--accent2);box-shadow:0 0 0 6px #12b9811f}.title{font-weight:700;letter-spacing:.2px}.subtitle{font-size:12px;color:var(--muted);margin-top:2px}.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.topbar-group{display:flex;align-items:center;gap:8px}.segmented{display:flex;gap:6px}.btn{border:1px solid var(--line);color:var(--text);background:#3b7bff1f;padding:8px 12px;border-radius:12px;cursor:pointer;font-weight:600}.btn-sm{padding:6px 10px;font-size:12px}.btn:hover{background:#3b7bff2e}.btn-ghost{background:#0000000a}.btn-danger{background:#d945451f;border-color:#d9454566;color:#b83a3a}.btn-danger:hover{background:#d9454533}.btn-toggle[aria-pressed=true]{background:#640feb33;border-color:#12b98180}.btn-toggle[aria-pressed=false]{background:#0000000a}.dropdown{position:relative}.dropdown-menu{position:absolute;right:0;top:100%;margin-top:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 24px #1e2a3a1f;padding:6px;display:flex;flex-direction:column;gap:4px;min-width:180px;z-index:20}.dropdown-item{border:1px solid var(--line);background:#0000000a;color:var(--text);padding:8px 10px;border-radius:10px;font-weight:600;cursor:pointer;text-align:left}.dropdown-item:hover{background:#00000014}.dropdown-item[aria-checked=true]{background:#3b7bff2e;border-color:#3b7bff73}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#3b7bff1f;color:var(--text);padding:8px 34px 8px 12px;border-radius:12px;font-weight:600;min-width:220px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--text) 50%),linear-gradient(135deg,var(--text) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 12px) 52%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}select:focus{outline:none;box-shadow:0 0 0 3px #3b7bff2e}.layout{display:grid;grid-template-columns:1fr 360px;gap:14px;padding:14px}.chart{background:#ffffffe6;border:1px solid var(--line);border-radius:18px;overflow:hidden}.chart-header{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.chart-title{font-weight:700}.chart-hint{font-size:12px;color:var(--muted);margin-top:4px}.chart-actions{display:flex;align-items:center;gap:8px}.tooth-grid{display:grid;grid-template-columns:repeat(16,minmax(36px,1fr));gap:4px;padding:10px}.tooth-label-row{display:contents}.tooth-label-cell{text-align:center;font-size:11px;color:#1e2a3acc;padding:2px 0 4px;font-weight:600;cursor:pointer}.tooth-label-cell:hover{color:#1e2a3a}.tooth-tile{position:relative;border:1px solid var(--line);border-radius:14px;background:#ffffffb3;padding:2px;cursor:pointer;transition:transform .05s ease,border-color .12s ease,background .12s ease;min-height:100px}.tooth-tile.occl-view{min-height:78px}.tooth-tile.placeholder{cursor:default;background:#ffffff4d}.tooth-tile.placeholder .tooth-svg svg{opacity:0}.tooth-tile:hover{background:#3b7bff14}.tooth-tile:active{transform:scale(.99)}@keyframes odon-dash-pulse{0%,to{border-color:#3b7bff80}50%{border-color:#3b7bffe6}}@keyframes odon-glow-pulse{0%,to{filter:drop-shadow(0 0 3px rgba(59,123,255,.2))}50%{filter:drop-shadow(0 0 7px rgba(59,123,255,.45))}}.tooth-tile:after{content:"";position:absolute;inset:-2px;border-radius:15px;border:2px dashed transparent;pointer-events:none;transition:border-color .25s ease}.tooth-tile .tooth-svg svg{transition:filter .25s ease}.tooth-tile.active{border-color:#3b7bffb3;background:#3b7bff0f;transition:border-color .2s ease,background .2s ease}.tooth-tile.active:after{border-color:#3b7bff8c;animation:odon-dash-pulse 1.6s ease-in-out infinite}.tooth-tile.active .tooth-svg svg{filter:drop-shadow(0 0 4px rgba(59,123,255,.3));animation:odon-glow-pulse 2.5s ease-in-out infinite}.tooth-tile:focus{outline:none}.tooth-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 3px #3b7bff40;z-index:1}.tooth-grid.read-only .tooth-tile{cursor:default;pointer-events:none}.tooth-grid.read-only .tooth-tile:hover{background:inherit}.tooth-grid.read-only .tooth-label-cell{cursor:default;pointer-events:none}.panel.read-only{pointer-events:none;opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media(prefers-reduced-motion:reduce){.tooth-tile.active:after{animation:none;border-color:#3b7bffb3}.tooth-tile.active .tooth-svg svg{animation:none;filter:drop-shadow(0 0 4px rgba(59,123,255,.35))}}.tooth-svg{width:100%;height:120px;display:flex;align-items:center;justify-content:center}.tooth-svg svg{width:72px;height:122px;pointer-events:none}.tooth-tile.occl-view .tooth-svg{height:80px}.tooth-tile.occl-view .tooth-svg svg{width:64px;height:64px}.tooth-tile.tpl-14 .tooth-svg svg{width:68px;height:116px}.tooth-tile.tpl-11 .tooth-svg svg,.tooth-tile.tpl-13 .tooth-svg svg{width:60px;height:102px}.tooth-tile.wisdom-hidden{opacity:.45;pointer-events:none}.tooth-tile.wisdom-hidden .tooth-svg svg{opacity:0}.tooth-tile.occl-hidden,.tooth-svg [data-active="0"]{display:none!important}.panel{background:#fffffff2;border:1px solid var(--line);border-radius:18px;overflow:hidden}.panel-header{padding:12px 14px;border-bottom:1px solid var(--line)}.select-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.select-actions-row{display:flex;flex-wrap:wrap;gap:6px}.status-actions{flex-wrap:wrap;gap:6px}.status-extra-row{align-items:center;gap:8px;flex-wrap:wrap}.status-extra-row select{min-width:220px}.btn-icon{padding:9px 15px;font-size:12px}.btn-icon .icon,.btn-icon .icon-img,.btn-icon svg{width:32px;height:32px;display:block}.fade-toggle{transition:opacity .16s ease,max-width .16s ease,padding .16s ease,margin .16s ease,border-width .16s ease,transform .16s ease;max-width:200px}.fade-toggle.is-hidden{opacity:0;pointer-events:none;max-width:0;padding-left:0;padding-right:0;margin:0;border-width:0;transform:scale(.96)}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-title-actions{display:flex;align-items:center;gap:8px}.panel-title{font-weight:800}.panel-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.pill{display:inline-block;background:#12b98124;border:1px solid rgba(18,185,129,.25);padding:2px 8px;border-radius:999px;font-weight:700;color:var(--text)}.warnings{margin-top:10px;display:flex;flex-direction:column;gap:8px}.warning{font-size:12px;color:#8a5b1a;border:1px solid rgba(255,198,116,.45);background:#ffc67438;padding:8px 10px;border-radius:12px}.panel-body{padding:14px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 110px);overflow:auto}.card{background:#ffffffe6;border:1px solid var(--line);border-radius:16px;padding:12px}.card-title{font-weight:800;margin-bottom:8px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.card.collapsed .card-title{margin-bottom:0}.card.collapsed .card-body,.card.collapsed #statusCardBody,.card.collapsed .status-extra-row,.card.collapsed .hint,.card.collapsed .row,.card.collapsed .check-grid,.card.collapsed label{display:none}.icon-btn{border:1px solid var(--line);background:#ffffffb3;color:var(--text);border-radius:999px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;line-height:1}.icon-btn .icon{width:16px;height:16px}.icon-btn:hover{background:#3b7bff1f}.icon-btn-danger{color:#d94545;border-color:#d9454566;background:#d9454514}.icon-btn-danger:hover{background:#d9454526}.card-subtitle{font-weight:700;margin:6px 0}.hint{font-size:12px;color:var(--muted);margin:6px 0 10px}.row{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 2px}.contact-row{margin-bottom:6px}.bruxism-row{margin-top:6px;gap:8px}.fissure-row{margin-top:10px;justify-content:center;text-align:center}#crownReplaceRow,#crownNeededRow,#missingClosedRow{margin-top:8px}.bridge-pillar-row{margin-top:10px}.inline-checks{padding:0}.inline-checks label{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 10px;border-radius:12px;border:1px solid var(--line);background:#00000005;cursor:pointer}.inline-checks label:hover{background:#3b7bff0f}.inline-checks input[type=checkbox]{display:none}.inline-checks label:has(input[type=checkbox]:checked){background:#12b9812e;border-color:#12b98180}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-grid label{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 8px;border-radius:12px;border:1px solid var(--line);background:#00000005;cursor:pointer}.check-grid label:hover{background:#3b7bff0f}.check-grid input[type=checkbox]{display:none}.check-grid label:has(input[type=checkbox]:checked){background:#12b9812e;border-color:#12b98180}.row input[type=checkbox]{display:none}.row:has(input[type=checkbox]){border-radius:12px;border:1px solid var(--line);padding:6px 10px;background:#00000005;cursor:pointer}.inline-checks:has(input[type=checkbox]){border:0;background:none;padding:0}.row:has(input[type=checkbox]:checked){background:#12b9812e;border-color:#12b98180}.inline-checks:has(input[type=checkbox]:checked){background:none;border:0}.radio-list{display:flex;flex-direction:column;gap:8px}.radio-list label{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 8px;border-radius:12px;border:1px solid var(--line);background:#00000005}.radio-list label:hover{background:#3b7bff0f}.divider{height:1px;background:var(--line);margin:10px 0}.hidden{display:none!important}@media(max-width:1100px){.layout{grid-template-columns:1fr}.panel{order:2}}.dark{--bg: var(--odon-bg, #0f172a);--panel: var(--odon-panel, #1e293b);--card: var(--odon-card, #1e293b);--muted: var(--odon-muted, #94a3b8);--text: var(--odon-text, #f1f5f9);--line: var(--odon-line, #334155)}.dark body{background:var(--bg)}.dark .topbar{background:#0f172aeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dark .btn{background:#60a5fa26}.dark .btn:hover{background:#60a5fa40}.dark .btn-ghost{background:#ffffff0f}.dark .btn-danger{background:#f871711f;border-color:#f871714d;color:#f87171}.dark .btn-danger:hover{background:#f8717138}.dark .btn-toggle[aria-pressed=false]{background:#ffffff0f}.dark .dropdown-menu{background:#1e293b;box-shadow:0 12px 24px #00000073}.dark .dropdown-item{background:#ffffff0f}.dark .dropdown-item:hover{background:#ffffff1f}.dark .dropdown-item[aria-checked=true]{background:#60a5fa33;border-color:#60a5fa73}.dark select{background:#60a5fa26;background-image:linear-gradient(45deg,transparent 50%,var(--text) 50%),linear-gradient(135deg,var(--text) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 12px) 52%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.dark .chart{background:#1e293be6}.dark .tooth-label-cell{color:#f1f5f999}.dark .tooth-label-cell:hover{color:#f1f5f9}.dark .tooth-tile{background:#1e293bb3}.dark .tooth-tile.placeholder{background:#1e293b4d}.dark .tooth-tile:hover{background:#60a5fa1f}@keyframes odon-dash-pulse-dark{0%,to{border-color:#60a5fa73}50%{border-color:#60a5fad9}}@keyframes odon-glow-pulse-dark{0%,to{filter:drop-shadow(0 0 3px rgba(96,165,250,.2))}50%{filter:drop-shadow(0 0 7px rgba(96,165,250,.45))}}.dark .tooth-tile.active{border-color:#60a5fa99;background:#60a5fa14}.dark .tooth-tile.active:after{border-color:#60a5fa73;animation-name:odon-dash-pulse-dark}.dark .tooth-tile.active .tooth-svg svg{animation-name:odon-glow-pulse-dark;filter:drop-shadow(0 0 4px rgba(96,165,250,.3))}.dark .tooth-tile:focus-visible{outline-color:#60a5facc;box-shadow:0 0 0 3px #60a5fa40}.dark .odon-note-backdrop{background:#0000008c}.dark .odon-note-popover{background:var(--panel);box-shadow:0 16px 48px #00000080}.dark .odon-note-textarea{background:#ffffff0f;border-color:var(--line);color:var(--text)}.dark .odon-note-textarea:focus{box-shadow:0 0 0 3px #60a5fa33;border-color:#60a5fa80}.dark .panel{background:#1e293bf2}.dark .card{background:#1e293bcc;border-color:var(--line)}.dark .icon-btn{background:#1e293bb3}.dark .icon-btn:hover{background:#60a5fa26}.dark .icon-btn-danger{color:#f87171;border-color:#f871714d;background:#f871711a}.dark .icon-btn-danger:hover{background:#f8717133}.dark .warning{color:#fbbf24;border-color:#fbbf244d;background:#fbbf241a}.dark .inline-checks label,.dark .check-grid label,.dark .radio-list label{background:#ffffff0a}.dark .inline-checks label:hover,.dark .check-grid label:hover,.dark .radio-list label:hover{background:#60a5fa1a}.dark .row:has(input[type=checkbox]){background:#ffffff0a}.dark .pill{background:#34d39926;border-color:#34d3994d}.btn-theme{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:12px;background:#0000000a;color:var(--text);cursor:pointer;transition:background .15s ease}.btn-theme:hover{background:#3b7bff1f}.dark .btn-theme{background:#ffffff0f}.dark .btn-theme:hover{background:#60a5fa26}.tooth-note-icon{display:inline-block;font-size:9px;margin-left:2px;vertical-align:middle;opacity:.75}.odon-note-backdrop{position:fixed;inset:0;z-index:120;background:#00000059;animation:odon-fade-in .12s ease}.odon-note-popover{position:relative;background:var(--panel, #fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px #0003;padding:14px;width:min(320px,90vw);display:flex;flex-direction:column;gap:10px;animation:odon-ctx-pop .12s ease}.odon-note-header{display:flex;align-items:center;justify-content:space-between}.odon-note-title{font-weight:700;font-size:14px;color:var(--text)}.odon-note-textarea{width:100%;min-height:60px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-family:inherit;font-size:13px;color:var(--text);background:#00000005;resize:vertical}.odon-note-textarea:focus{outline:none;box-shadow:0 0 0 3px #3b7bff2e;border-color:#3b7bff80}.odon-note-textarea::-moz-placeholder{color:var(--muted)}.odon-note-textarea::placeholder{color:var(--muted)}.odon-note-actions{display:flex;gap:8px}.odon-note-actions .odon-zoom-btn{flex:1}.warning-item{padding:6px 10px;border-radius:8px;background:#eab3081f;color:#92400e;font-size:12px;font-weight:600;line-height:1.4;margin-bottom:4px}.dark .warning-item{background:#facc151a;color:#fde047}.odon-zoom-overlay{position:fixed;inset:0;z-index:100;background:#0006;display:flex;align-items:center;justify-content:center;animation:odon-fade-in .15s ease}@keyframes odon-fade-in{0%{opacity:0}to{opacity:1}}.odon-zoom-popover{background:var(--panel, #fff);border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 60px #00000040;padding:16px;max-width:min(360px,90vw);width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}.odon-zoom-header{width:100%;display:flex;align-items:center;justify-content:space-between}.odon-zoom-title{font-weight:800;font-size:16px;color:var(--text)}.odon-zoom-close{width:32px;height:32px;border:1px solid var(--line);border-radius:999px;background:#0000000a;color:var(--text);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.odon-zoom-close:hover{background:#d945451f;color:#d94545}.odon-zoom-svg{width:200px;height:200px;display:flex;align-items:center;justify-content:center}.odon-zoom-svg svg{width:180px;height:180px;pointer-events:none}.odon-zoom-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.odon-zoom-btn{border:1px solid var(--line);background:#3b7bff14;color:var(--text);padding:10px 8px;border-radius:12px;font-weight:600;font-size:13px;cursor:pointer;text-align:center}.odon-zoom-btn:hover{background:#3b7bff2e}.odon-zoom-btn.active{background:#12b9812e;border-color:#12b98180}.odon-zoom-btn.danger{background:#d9454514;border-color:#d945454d;color:#b83a3a}.odon-zoom-btn.danger:hover{background:#d945452e}.odon-ctx-menu{position:fixed;z-index:110;background:var(--panel, #fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px #0003;padding:6px;min-width:180px;display:flex;flex-direction:column;gap:4px;animation:odon-ctx-pop .12s ease}@keyframes odon-ctx-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.odon-ctx-item{border:1px solid var(--line);background:#00000005;color:var(--text);padding:10px 14px;border-radius:12px;font-weight:600;font-size:13px;cursor:pointer;text-align:left}.odon-ctx-item:hover{background:#3b7bff1a}.odon-ctx-item.danger{color:#b83a3a}.odon-ctx-item.danger:hover{background:#d945451f}.odon-ctx-divider{height:1px;background:var(--line);margin:2px 0}.dark .odon-zoom-overlay{background:#0009}.dark .odon-zoom-popover{background:var(--panel);box-shadow:0 20px 60px #00000080}.dark .odon-zoom-close{background:#ffffff0f}.dark .odon-zoom-close:hover{background:#f8717126;color:#f87171}.dark .odon-zoom-btn{background:#60a5fa1a}.dark .odon-zoom-btn:hover{background:#60a5fa33}.dark .odon-zoom-btn.active{background:#34d3992e;border-color:#34d39966}.dark .odon-zoom-btn.danger{background:#f871711a;border-color:#f8717140;color:#f87171}.dark .odon-ctx-menu{background:var(--panel);box-shadow:0 12px 40px #00000080}.dark .odon-ctx-item{background:#ffffff0a}.dark .odon-ctx-item:hover{background:#60a5fa1f}.dark .odon-ctx-item.danger{color:#f87171}.tooth-grid.odon-pinch-active{touch-action:none;transform-origin:center center;transition:transform .05s ease}@media(pointer:coarse){.tooth-tile{min-height:56px}.tooth-tile .tooth-svg{height:80px}.tooth-tile.occl-view .tooth-svg{height:60px}.tooth-label-cell{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.chart-actions .btn-icon{min-width:44px;min-height:44px}}.odon-arch-toggle{display:none;justify-content:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.odon-arch-toggle .odon-arch-btn{border:1px solid var(--line);background:#0000000a;color:var(--text);padding:8px 20px;border-radius:12px;font-weight:700;font-size:13px;cursor:pointer;flex:1;text-align:center}.odon-arch-toggle .odon-arch-btn.active{background:#3b7bff2e;border-color:#3b7bff73}.dark .odon-arch-toggle .odon-arch-btn{background:#ffffff0f}.dark .odon-arch-toggle .odon-arch-btn.active{background:#60a5fa33;border-color:#60a5fa73}@media(max-width:600px){.odon-arch-toggle{display:flex}.tooth-grid.odon-arch-upper .lower-row,.tooth-grid.odon-arch-upper .lower-row+.tooth-label-row{display:none!important}.tooth-grid.odon-arch-lower .upper-row,.tooth-grid.odon-arch-lower .tooth-label-row:first-child{display:none!important}}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{filter:brightness(1.08)}.treatment-summary{margin-top:16px;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:14px 16px}.treatment-summary-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.treatment-summary-title{font-weight:800;font-size:14px;color:var(--text)}.treatment-summary-empty{color:var(--muted);font-size:13px}.jaw-panel{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px 14px;margin-bottom:12px}.jaw-panel-title{font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.jaw-panel-columns{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px}.jaw-column{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.jaw-row{display:flex;flex-direction:row;align-items:flex-end;gap:9px;min-height:22px}.jaw-tooth-chip{flex:0 0 auto;min-width:26px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:var(--card);font-weight:800;font-size:11.5px;color:var(--text);padding:0 6px}.jaw-row.has-items .jaw-tooth-chip{background:var(--accent);border-color:var(--accent);color:#fff}.jaw-leader{flex:1;border-bottom:1.5px dotted var(--line);line-height:1.35;padding-bottom:2px;min-height:16px}.jaw-items{color:var(--text);font-size:12.5px;font-weight:600}@media(max-width:640px){.jaw-panel-columns{grid-template-columns:1fr}}[dir=rtl] .dropdown-menu{right:auto;left:0}[dir=rtl] .dropdown-item{text-align:right}[dir=rtl] .tooth-note-icon{margin-left:0;margin-right:2px}[dir=rtl] .odon-ctx-item{text-align:right}.tooth-grid{direction:ltr}.clinic-shell{display:flex;min-height:100vh;background:#f3f6fb}.clinic-sidebar{width:248px;flex:0 0 248px;background:#0f172a;color:#e2e8f0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.clinic-sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.clinic-sidebar-logo{font-size:26px}.clinic-sidebar-name{font-weight:800;font-size:14px;color:#fff}.clinic-sidebar-sub{font-size:11px;color:#94a3b8}.clinic-nav{display:flex;flex-direction:column;gap:2px;padding:12px 10px;flex:1;overflow-y:auto}.clinic-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#cbd5e1;text-decoration:none;font-weight:600;font-size:13.5px;transition:background .12s ease,color .12s ease}.clinic-nav-item:hover{background:#ffffff12;color:#fff}.clinic-nav-item.active{background:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb66}.clinic-nav-icon{font-size:16px;width:22px;text-align:center}.clinic-sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px}.clinic-sidebar-user{font-size:11.5px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clinic-logout{background:#ffffff14;color:#e2e8f0;border:none;border-radius:8px;padding:8px 10px;font-weight:700;font-size:12.5px;cursor:pointer}.clinic-logout:hover{background:#ef444440;color:#fff}.clinic-content{flex:1;min-width:0;overflow-x:hidden}.page{max-width:1080px;margin:0 auto;padding:28px 28px 48px}.page-wide{max-width:none;padding:16px 8px}.page-header h1{margin:0 0 4px;font-size:24px;color:#1e2a3a}.page-header p{margin:0 0 20px;color:#5b6b7d;font-size:14px}.card{background:#fff;border:1px solid #d7e0ec;border-radius:14px;padding:18px 20px;margin-bottom:18px}.card h2{margin:0 0 12px;font-size:15px;color:#1e2a3a}.card-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-header-row h2{margin:0}.empty{color:#5b6b7d;font-size:13.5px}.muted{color:#5b6b7d;font-size:13px}.ok-msg{color:#12b981;font-weight:700;font-size:13px}.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:8px}.inline-form input,.inline-form select,.search{border:1px solid #d7e0ec;border-radius:10px;padding:9px 12px;font-size:13.5px;flex:1;min-width:120px;background:#fff;color:#1e2a3a}.inline-form button{white-space:nowrap}.btn-accent{background:#2563eb;color:#fff;border:none;border-radius:10px;padding:9px 16px;font-weight:700;font-size:13.5px;cursor:pointer}.btn-accent:hover{filter:brightness(1.1)}.btn-accent:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:#0000000a;color:#1e2a3a;border:1px solid #d7e0ec;border-radius:10px;padding:8px 14px;font-weight:600;font-size:13px;cursor:pointer}.btn-ghost:hover{background:#00000014}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger-sm{background:#d9454514;color:#b83a3a;border:1px solid rgba(217,69,69,.3);border-radius:8px;padding:5px 10px;font-weight:600;font-size:12px;cursor:pointer}.btn-danger-sm:hover{background:#d9454529}.search{max-width:220px;flex:0 1 220px}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th{text-align:left;color:#5b6b7d;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:2px solid #d7e0ec}.data-table td{padding:10px;border-bottom:1px solid #e8eef7;color:#1e2a3a;vertical-align:middle}.data-table tr:hover td{background:#f6f9fe}.data-table .strong{font-weight:700}.row-actions{display:flex;gap:8px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid #d7e0ec;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:4px;text-decoration:none;transition:box-shadow .12s ease,transform .12s ease}a.stat-card:hover{box-shadow:0 8px 20px #1e2a3a1a;transform:translateY(-1px)}.stat-icon{font-size:22px}.stat-value{font-size:24px;font-weight:800;color:#1e2a3a}.stat-label{font-size:12.5px;color:#5b6b7d;font-weight:600}.quickstart{margin:0;padding-left:20px;color:#1e2a3a;font-size:14px;line-height:2}.quickstart a{color:#2563eb;font-weight:700;text-decoration:none}.status-select{border-radius:8px;border:1px solid #d7e0ec;padding:5px 8px;font-weight:700;font-size:12.5px}.status-planned{color:#b45309;background:#fef3c7}.status-in-progress{color:#1d4ed8;background:#dbeafe}.status-done{color:#047857;background:#d1fae5}.quote-totals{display:flex;align-items:center;gap:18px;margin-top:14px;justify-content:flex-end;flex-wrap:wrap}.quote-totals label{display:flex;align-items:center;gap:8px;font-size:13px;color:#5b6b7d;font-weight:600}.quote-totals input{border:1px solid #d7e0ec;border-radius:8px;padding:6px 8px}.quote-total-value{font-size:15px;color:#1e2a3a}.bar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.bar-list li{display:flex;align-items:center;gap:12px}.bar-label{flex:0 0 200px;font-size:13px;font-weight:600;color:#1e2a3a}.bar-track{flex:1;height:10px;border-radius:999px;background:#e8eef7;overflow:hidden}.bar-fill{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:999px}.bar-count{flex:0 0 28px;text-align:right;font-weight:800;color:#1e2a3a;font-size:13px}.odon-pagebar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 24px 0}.odon-pagebar h1{margin:0;font-size:20px;color:#1e2a3a}.odon-pagebar p{margin:2px 0 0;color:#5b6b7d;font-size:13px}.odon-pagebar-actions{display:flex;gap:10px;align-items:center}.odon-pagebar-actions select{border:1px solid #d7e0ec;border-radius:10px;padding:9px 12px;font-size:13.5px;background:#fff;color:#1e2a3a}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e3a8a 60%,#2563eb);padding:24px}.auth-card{background:#fff;border-radius:18px;padding:34px 36px;width:100%;max-width:420px;box-shadow:0 24px 60px #02061766}.auth-logo{font-size:38px;text-align:center;margin-bottom:6px}.auth-title{margin:0;text-align:center;font-size:22px;color:#0f172a}.auth-subtitle{margin:4px 0 22px;text-align:center;color:#5b6b7d;font-size:13.5px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;color:#334155}.auth-form input{border:1px solid #d7e0ec;border-radius:10px;padding:11px 13px;font-size:14px}.auth-form input:focus{outline:2px solid #2563eb;border-color:#2563eb}.auth-submit{background:#2563eb;color:#fff;border:none;border-radius:10px;padding:12px;font-weight:800;font-size:14.5px;cursor:pointer;margin-top:4px}.auth-submit:hover{filter:brightness(1.08)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:#d9454514;border:1px solid rgba(217,69,69,.3);color:#b83a3a;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600}.auth-info{background:#2563eb12;border:1px solid rgba(37,99,235,.25);color:#1e3a8a;border-radius:10px;padding:10px 12px;font-size:13px}.auth-links{margin-top:18px;display:flex;flex-direction:column;gap:6px;text-align:center;font-size:13px;color:#5b6b7d}.auth-links a{color:#2563eb;font-weight:700;text-decoration:none}.auth-links a:hover{text-decoration:underline}.clinic-sidebar-user{display:flex;flex-direction:column;gap:1px}.clinic-sidebar-user strong{color:#e2e8f0;font-size:12.5px}.clinic-sidebar-role{color:#64748b;font-size:11px;font-weight:600}.field-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#5b6b7d}.field-label select{border:1px solid #d7e0ec;border-radius:8px;padding:7px 10px;background:#fff;color:#1e2a3a}.rates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:10px}.rate-field{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#5b6b7d}.rate-field input{border:1px solid #d7e0ec;border-radius:8px;padding:7px 9px;font-size:13px}.price-group{margin-bottom:16px}.price-category{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#2563eb;border-bottom:1px solid #e8eef7;padding-bottom:4px}.pill-you{margin-left:8px;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:800;text-transform:uppercase}.role-legend{margin:0;padding-left:18px;color:#1e2a3a;font-size:13.5px;line-height:1.9}.status-appt-scheduled{color:#1d4ed8;background:#dbeafe}.status-appt-completed{color:#047857;background:#d1fae5}.status-appt-cancelled{color:#b91c1c;background:#fee2e2}.dialog-overlay{position:fixed;inset:0;background:#0206178c;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.dialog{background:#fff;border-radius:16px;width:100%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 30px 80px #02061780}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid #e8eef7}.dialog-header h2{margin:0;font-size:17px;color:#0f172a}.dialog-close{background:none;border:none;font-size:16px;cursor:pointer;color:#5b6b7d;width:30px;height:30px;border-radius:8px}.dialog-close:hover{background:#0000000f}.dialog-body{padding:16px 22px;overflow-y:auto}.dialog-body h3{margin:14px 0 8px;font-size:13.5px;color:#1e2a3a}.dialog-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13.5px;color:#1e2a3a}.dialog-table td{padding:6px 8px}.tooth-chip{display:inline-block;background:#2563eb;color:#fff;border-radius:999px;padding:2px 10px;font-weight:800;font-size:11.5px;min-width:36px;text-align:center}.auto-badge{margin-left:8px;background:#d1fae5;color:#047857;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:800;text-transform:uppercase}.price-input{width:100px;border:1px solid #d7e0ec;border-radius:8px;padding:6px 8px;font-size:13px;text-align:right}.price-input:disabled{background:#f6f9fe;color:#5b6b7d}.total-row td{border-top:2px solid #d7e0ec;font-size:14px}.dialog-field{display:flex;flex-direction:column;gap:5px;margin-top:12px;font-size:12.5px;font-weight:700;color:#334155}.dialog-field textarea{border:1px solid #d7e0ec;border-radius:10px;padding:9px 12px;font-size:13.5px;font-family:inherit;resize:vertical}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid #e8eef7}.clinic-sidebar-logo-img{width:34px;height:34px;border-radius:8px;-o-object-fit:cover;object-fit:cover;background:#fff}.admin-sidebar{background:#111827}.admin-sidebar .clinic-nav-item.active{background:#7c3aed;box-shadow:0 4px 12px #7c3aed66}.admin-auth{background:linear-gradient(135deg,#111827,#4c1d95 60%,#7c3aed)}.branding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:12px}.brand-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;color:#334155}.brand-preview{max-width:120px;max-height:80px;border:1px solid #d7e0ec;border-radius:8px;-o-object-fit:contain;object-fit:contain;background:#fff;padding:4px}.field-toggles{display:flex;flex-wrap:wrap;gap:14px}.toggle-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#1e2a3a;font-weight:600}.feature-badges{display:flex;gap:3px;flex-wrap:wrap}.pdf-actions{display:flex;gap:4px;flex-wrap:wrap}.pdf-actions .btn-ghost{padding:5px 8px;font-size:13px;line-height:1}.row-busy{opacity:.55;pointer-events:none}.prefs-switcher{display:flex;align-items:center;gap:6px;margin-bottom:8px}.prefs-theme-btn{background:#ffffff1a;border:none;border-radius:8px;color:#e2e8f0;width:30px;height:30px;cursor:pointer;font-size:14px;flex:0 0 auto}.prefs-theme-btn:hover{background:#fff3}.prefs-lang-select{flex:1;min-width:0;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#e2e8f0;padding:6px 8px;font-size:12px}.prefs-lang-select option{color:#1e2a3a}.prefs-switcher.compact{margin:0}.section-builder{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}.section-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border:1px solid var(--line,#d7e0ec);border-radius:8px}.section-row.on{border-color:var(--accent,#2563eb);background:#2563eb0f}.section-order{display:flex;align-items:center;gap:4px}.section-pos{font-size:11px;font-weight:800;color:var(--accent,#2563eb);min-width:22px}.section-order .btn-ghost{padding:3px 8px}@media(max-width:860px){.clinic-shell{flex-direction:column}.clinic-sidebar{width:100%;flex:none;height:auto;position:static}.clinic-nav{flex-direction:row;flex-wrap:wrap}.clinic-nav-item{font-size:12.5px;padding:8px 10px}.bar-label{flex-basis:120px}}.dark .clinic-shell,.dark .clinic-content{background:#0b1120}.dark .page-header h1{color:#f1f5f9}.dark .page-header p{color:#94a3b8}.dark .card{background:#1e293b;border-color:#334155}.dark .card h2,.dark .card h3{color:#f1f5f9}.dark .muted,.dark .empty{color:#94a3b8}.dark .stat-card{background:#1e293b;border-color:#334155}.dark a.stat-card:hover{box-shadow:0 8px 20px #0006}.dark .stat-value{color:#f1f5f9}.dark .stat-label{color:#94a3b8}.dark .quickstart{color:#e2e8f0}.dark .inline-form input,.dark .inline-form select,.dark .search,.dark .field-label select,.dark .rate-field input,.dark .dialog-field input,.dark .dialog-field textarea,.dark .dialog-field select,.dark .price-input,.dark .status-select,.dark .quote-totals input,.dark .odon-pagebar-actions select{background:#0f172a;color:#e2e8f0;border-color:#334155}.dark .field-label{color:#94a3b8}.dark .btn-ghost{background:#ffffff0f;color:#e2e8f0;border-color:#334155}.dark .btn-ghost:hover{background:#ffffff1f}.dark .data-table th{color:#94a3b8;border-bottom-color:#334155}.dark .data-table td{color:#e2e8f0;border-bottom-color:#1f2a3b}.dark .data-table tr:hover td{background:#243043}.dark .price-category{color:#60a5fa;border-bottom-color:#334155}.dark .dialog{background:#1e293b}.dark .dialog-header,.dark .dialog-footer{border-color:#334155}.dark .dialog-header h2{color:#f1f5f9}.dark .dialog-close{color:#94a3b8}.dark .dialog-close:hover{background:#ffffff1a}.dark .dialog-meta{color:#e2e8f0}.dark .section-row{border-color:#334155}.dark .section-row.on{background:#2563eb2e}.dark .total-row td{border-top-color:#334155}.dark .bar-track{background:#334155}.dark .role-legend,.dark .quickstart a{color:#e2e8f0}.dark .brand-preview{background:#0f172a;border-color:#334155}.dark .toggle-row{color:#e2e8f0}.dark .auth-card{background:#1e293b}.dark .auth-title{color:#f1f5f9}.dark .auth-subtitle{color:#94a3b8}.dark .auth-form label{color:#cbd5e1}.dark .auth-form input{background:#0f172a;color:#e2e8f0;border-color:#334155}[dir=rtl] .clinic-nav-item{flex-direction:row-reverse;text-align:right}[dir=rtl] .card-header-row,[dir=rtl] .inline-form,[dir=rtl] .quote-totals,[dir=rtl] .dialog-meta{flex-direction:row-reverse}[dir=rtl] .data-table th,[dir=rtl] .data-table td{text-align:right}.auth-prefs{display:flex;justify-content:flex-end;margin-bottom:8px}.auth-prefs .prefs-theme-btn{background:#00000014;color:#334155}.auth-prefs .prefs-lang-select{background:#fff;color:#1e2a3a;border-color:#d7e0ec}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:15px;color:#5b6b7d;background:#f3f6fb}.dark .auth-loading{background:#0b1120;color:#94a3b8}.impersonation-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#7c3aed;color:#fff;padding:8px 18px;font-size:13px;font-weight:600}.impersonation-exit{background:#fff3;color:#fff;border:none;border-radius:8px;padding:6px 12px;font-weight:700;font-size:12.5px;cursor:pointer}.impersonation-exit:hover{background:#ffffff52}.dx-edit{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-height:260px;overflow-y:auto;padding:4px;border:1px solid var(--line,#d7e0ec);border-radius:10px}.dx-col-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent,#2563eb);margin:4px 0 6px}.dx-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.dx-input{flex:1;min-width:0;border:1px solid var(--line,#d7e0ec);border-radius:8px;padding:5px 8px;font-size:12.5px}.dark .dx-edit{border-color:#334155}.dark .dx-input{background:#0f172a;color:#e2e8f0;border-color:#334155}@media(max-width:560px){.dx-edit{grid-template-columns:1fr}}.dialog-chart{border:1px solid var(--line,#d7e0ec);border-radius:12px;padding:10px 12px;margin-bottom:14px;background:#00000004}.dialog-chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.dialog-chart-wrap{max-height:420px;overflow:auto;border-radius:10px}.dark .dialog-chart{background:#ffffff08;border-color:#334155}.dialog.dialog-wide{max-width:1180px;width:96vw;max-height:94vh}.dialog-wide .dialog-body{max-height:none}.dialog-wide .dialog-chart-wrap{max-height:none;overflow:visible}.dialog-wide .odon-pagebar{padding:0}@media(max-width:900px){.dialog.dialog-wide{width:100vw;height:100vh;max-height:100vh;border-radius:0}}.ghl-grid{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}@media(max-width:900px){.ghl-grid{grid-template-columns:1fr}}.ghl-error{background:#fef2f2;border:1px solid #f5c2c2;color:#9b2c2c;padding:10px 14px;border-radius:10px;margin-bottom:12px;font-size:13px}.ghl-list{padding:12px}.ghl-search{display:flex;gap:8px;margin-bottom:10px}.ghl-search input{flex:1}.ghl-contacts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:560px;overflow:auto}.ghl-contact{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:8px;padding:8px 10px;cursor:pointer}.ghl-contact:hover{background:#0000000a}.ghl-contact.active{background:var(--odon-accent,#2f80ed);color:#fff}.ghl-contact span{font-size:12px;opacity:.75}.ghl-detail{padding:16px}.ghl-detail h2{margin:0 0 2px}.ghl-detail h3{margin:14px 0 8px;font-size:14px}.ghl-meta{color:#5b6b7d;font-size:13px;margin:0 0 6px}.ghl-fields{display:flex;flex-direction:column;gap:8px}.ghl-field{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:10px}.ghl-field span{font-size:13px;color:#33414f}.ghl-addfield{display:flex;gap:8px;margin-top:10px}.ghl-addfield input{flex:1}.ghl-comment-box{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.ghl-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ghl-notes li{background:#f6f8fb;border:1px solid var(--odon-line,#e2e8f0);border-radius:10px;padding:10px 12px}.ghl-notes p{margin:0 0 4px;font-size:13.5px;white-space:pre-wrap}.ghl-notes time{font-size:11.5px;color:#7a8898}.stack-form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.stack-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#33414f}html.dark .ghl-notes li{background:#1e293b;border-color:#334155}html.dark .ghl-contact:hover{background:#ffffff0f}.dialog-table .tooth-input,.dialog-table .qty-input{width:54px;text-align:center;padding:4px 6px}.dialog-table .dx-input{min-width:140px;width:100%}.dialog-table td{vertical-align:middle}
