:root{--bg: var(--odon-bg, hsl(var(--background)));--panel: var(--odon-panel, hsl(var(--card)));--card: var(--odon-card, hsl(var(--card)));--muted: var(--odon-muted, hsl(var(--muted-foreground)));--text: var(--odon-text, hsl(var(--foreground)));--line: var(--odon-line, hsl(var(--border)));--accent: var(--odon-accent, hsl(var(--charcoal)));--accent2: var(--odon-accent2, hsl(var(--pale-oak)))}.odontogram-root{--bg: var(--odon-bg, hsl(var(--background)));--panel: var(--odon-panel, hsl(var(--card)));--card: var(--odon-card, hsl(var(--card)));--muted: var(--odon-muted, hsl(var(--muted-foreground)));--text: var(--odon-text, hsl(var(--foreground)));--line: var(--odon-line, hsl(var(--border)));--accent: var(--odon-accent, hsl(var(--charcoal)));--accent2: var(--odon-accent2, hsl(var(--pale-oak)));color:var(--text);width:100%;max-width:100%;overflow-x:clip}.odontogram-root,.odontogram-root *{box-sizing:border-box}.odontogram-root{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:radial-gradient(1200px 600px at 15% 0%,hsl(var(--card)) 0%,var(--bg) 60%)}.odontogram-root .topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.odontogram-root .brand{display:flex;gap:12px;align-items:center}.odontogram-root .dot{width:10px;height:10px;border-radius:999px;background:var(--accent2);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent2) 12%,transparent)}.odontogram-root .title{font-weight:700;letter-spacing:.2px}.odontogram-root .subtitle{font-size:12px;color:var(--muted);margin-top:2px}.odontogram-root .topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.odontogram-root .topbar-group{display:flex;align-items:center;gap:8px}.odontogram-root .segmented{display:flex;gap:6px}.odontogram-root .btn{border:1px solid var(--line);color:var(--text);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:8px 12px;border-radius:12px;cursor:pointer;font-weight:600}.odontogram-root .btn-sm{padding:6px 10px;font-size:12px}.odontogram-root .btn:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.odontogram-root .btn-ghost{background:#0000000a}.odontogram-root .btn-ghost:hover{background:#00000014}.odontogram-root .btn-danger{background:#d945451f;border-color:#d9454566;color:#b83a3a}.odontogram-root .btn-danger:hover{background:#d9454533}.odontogram-root .btn-toggle[aria-pressed=true]{background:#640feb33;border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.odontogram-root .btn-toggle[aria-pressed=false]{background:#0000000a}.odontogram-root .dropdown{position:relative}.odontogram-root .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}.odontogram-root .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}.odontogram-root .dropdown-item:hover{background:#00000014}.odontogram-root .dropdown-item[aria-checked=true]{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.odontogram-root select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 12%,transparent);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}.odontogram-root select:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.odontogram-root .layout{display:grid;grid-template-columns:1fr min(360px,38%);gap:14px;padding:0;min-width:0;width:100%;max-width:100%}.odontogram-root .chart{background:#ffffffe6;border:1px solid var(--line);border-radius:18px;overflow-x:clip;overflow-y:visible;min-width:0;width:100%;max-width:100%}.odontogram-root .tooth-grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:clamp(2px,.35vw,4px);padding:clamp(6px,1.2vw,10px);width:100%;max-width:100%;box-sizing:border-box}.odontogram-root .chart.arch-mode{overflow-x:clip;overflow-y:visible;min-height:580px}.odontogram-root .chart-header{padding:10px 12px;border-bottom:1px solid var(--line);overflow-x:clip;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.odontogram-root .chart-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.odontogram-root .odontogram-page-toolbar{background:transparent;width:auto;max-width:100%;overflow:visible;padding:0}.odontogram-root .odontogram-page-toolbar .chart-page-actions{justify-content:flex-end}.odontogram-root .chart-toolbar,.odontogram-root .chart-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}.odontogram-root .chart-toolbar-divider{width:1px;height:26px;background:var(--line);margin:0 2px;flex-shrink:0;align-self:center}.odontogram-root .chart-toolbar-extras{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.odontogram-root .chart-mode-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;color:#047857;background:#0596691f;border:1px solid rgba(5,150,105,.25)}.odontogram-root .dark .chart-mode-badge{color:#6ee7b7;background:#0596692e;border-color:#6ee7b740}.odontogram-root .chart-toolbar-group{display:flex;align-items:center;gap:8px}.odontogram-root .chart-title{font-weight:700}.odontogram-root .chart-hint{font-size:12px;color:var(--muted);margin-top:4px}.odontogram-root .chart.arch-mode .chart-actions .linear-view-only{display:none}.odontogram-root .tooth-grid.tooth-grid-primary{grid-template-columns:repeat(10,minmax(0,1fr))}.odontogram-root .tooth-label-row{display:contents}.odontogram-root .arch-view-root{animation:arch-view-in .25s ease;width:100%;max-width:100%}@keyframes arch-view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.odontogram-root .arch-view-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:0 8px 10px}.odontogram-root .arch-view-toolbar-group{display:inline-flex;align-items:center;gap:4px;padding:2px;border:1px solid var(--line);border-radius:999px;background:#00000005}.odontogram-root .arch-view-toolbar .btn.active{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.odontogram-root .arch-view-only{display:none}.odontogram-root .chart.arch-mode .arch-view-only{display:inline-flex}.odontogram-root .chart.arch-mode.split-view{display:flex;flex-direction:column;min-height:auto;height:auto;max-height:none;overflow:visible;padding-bottom:14px}.odontogram-root .chart.arch-mode.split-view .chart-header{flex-shrink:0}.odontogram-root .chart.arch-mode.split-view .arch-view-root.is-split{flex:0 0 auto;display:flex;flex-direction:column;overflow:visible;padding-top:4px}.odontogram-root .chart.arch-mode.split-view .arch-view-toolbar{flex-shrink:0;padding:0 12px 10px}.odontogram-root .chart.arch-mode.split-view .arch-chart-container{flex:0 0 auto;min-height:0;padding:12px 12px 14px}.odontogram-root .chart.arch-mode.split-view .arch-chart-container .Odontogram{width:100%;height:auto}.odontogram-root .chart.arch-mode.split-view .arch-chart-container .Odontogram svg{height:auto;width:100%}.odontogram-root .chart.arch-mode.split-view .arch-chart-container[data-arch-size=sm] .Odontogram{max-width:min(340px,100%)}.odontogram-root .chart.arch-mode.split-view .arch-chart-container[data-arch-size=md] .Odontogram{max-width:min(420px,100%)}.odontogram-root .chart.arch-mode.split-view .arch-chart-container[data-arch-size=lg] .Odontogram{max-width:min(520px,100%)}.odontogram-root .chart.arch-mode.split-view .tooth-grid.arch-split-grid{flex:0 0 auto;max-height:none;overflow:visible;border-top:1px solid var(--line);padding:10px 10px 12px;gap:4px}.odontogram-root .tooth-grid.odon-arch-upper .lower-row,.odontogram-root .tooth-grid.odon-arch-upper .lower-row+.tooth-label-row{display:none!important}.odontogram-root .tooth-grid.odon-arch-lower .upper-row,.odontogram-root .tooth-grid.odon-arch-lower .tooth-label-row:first-child{display:none!important}.odontogram-root .arch-chart-container{display:flex;justify-content:center;align-items:center;padding:20px 8px 10px;min-height:320px}.odontogram-root .arch-chart-container[data-arch-size=sm] .Odontogram{max-width:min(300px,100%)}.odontogram-root .arch-chart-container[data-arch-size=md] .Odontogram{max-width:min(380px,100%)}.odontogram-root .arch-chart-container[data-arch-size=lg] .Odontogram{max-width:min(480px,100%)}.odontogram-root .arch-chart-container .Odontogram{width:100%}.odontogram-root .dark .arch-view-toolbar-group{background:#ffffff0a}.odontogram-root .dark .arch-view-toolbar .btn.active{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.odontogram-root .arch-legend{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;margin:0 12px 8px;padding:0;list-style:none;font-size:12px}.odontogram-root .arch-legend li{display:inline-flex;align-items:center;gap:6px}.odontogram-root .arch-legend-swatch{width:14px;height:14px;border-radius:4px;border:2px solid;display:inline-block}.odontogram-root .arch-view-hint{margin:0 12px 12px;text-align:center;font-size:12px;color:var(--muted)}.odontogram-root .arch-view-hint-action{color:var(--accent, #3b7bff)}.odontogram-root .arch-view-hint-primary{color:#047857;font-weight:600}.odontogram-root .dark .arch-view-hint-primary{color:#6ee7b7}.odontogram-root .odon-primary-hidden{display:none!important}.odontogram-root .arch-tooltip-extra,.odontogram-root .arch-tooltip-note,.odontogram-root .arch-tooltip-hint{margin:6px 0 0;font-size:12px}.odontogram-root .arch-tooltip-note{font-style:italic}.odontogram-root svg g.arch-wisdom-hidden{opacity:.25;pointer-events:none}.odontogram-root svg text.arch-tooth-extra,.odontogram-root svg text.arch-tooth-note{font-size:9px;font-weight:700;pointer-events:none}.odontogram-root svg text.arch-tooth-extra{fill:#7c3aed}.odontogram-root svg text.arch-tooth-note{font-size:10px}.odontogram-root svg .arch-bridge-link{stroke:#7c3aed;stroke-width:2.5;stroke-linecap:round;opacity:.75}.odontogram-root .dark svg text.arch-tooth-extra{fill:#c4b5fd}.odontogram-root .dark svg .arch-bridge-link{stroke:#a78bfa}.odontogram-root .dark .arch-legend-swatch{box-shadow:0 0 0 1px #ffffff1f}.odontogram-root .arch-chart-container .Odontogram svg{width:100%;height:auto;background:transparent!important}.odontogram-root .arch-chart-container svg text.arch-tooth-number{fill:var(--text, #1e2a3a);font-size:12px;font-weight:600;font-family:system-ui,-apple-system,sans-serif;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.odontogram-root .arch-chart-container .Odontogram ul{color:var(--text);margin:8px 0 0;padding:0;justify-content:center}.odontogram-root .arch-chart-container .Odontogram ul li span:last-child{text-transform:none}.odontogram-root .arch-tooltip-content{text-align:left;max-width:220px}.odontogram-root .arch-tooltip-content ul{margin:4px 0 0;padding-left:16px;font-size:12px;line-height:1.35}.odontogram-root .tooth-grid.arch-hidden{display:none!important}.odontogram-root .view-toggle-group{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;gap:0}.odontogram-root .btn-view-toggle{background:#0000000a;border:none;color:var(--text);padding:7px 11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.odontogram-root .btn-view-toggle:first-child{border-right:1px solid var(--line)}.odontogram-root .btn-view-toggle:hover{background:#00000014}.odontogram-root .btn-view-toggle.active{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.odontogram-root .tooth-label-cell{text-align:center;font-size:clamp(8px,1.1vw,11px);color:#1e2a3acc;padding:2px 0 4px;font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.odontogram-root .tooth-label-cell:hover{color:#1e2a3a}.odontogram-root .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:0;min-width:0}.odontogram-root .tooth-tile.occl-view{min-height:0}.odontogram-root .tooth-tile-skeleton{min-height:clamp(48px,6vw,72px);border-radius:10px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:odon-tooth-skeleton 1.2s ease-in-out infinite;pointer-events:none}@keyframes odon-tooth-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.odontogram-root .tooth-grid-loading{min-height:220px}.odontogram-root .tooth-tile.placeholder{cursor:default;background:#ffffff4d}.odontogram-root .tooth-tile.placeholder .tooth-svg svg{opacity:0}.odontogram-root .tooth-tile:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.odontogram-root .tooth-tile:active{transform:scale(.99)}.odontogram-root @keyframes odon-dash-pulse{0%,100%{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}50%{border-color:color-mix(in srgb,var(--accent) 90%,transparent)}}@keyframes odon-glow-pulse{0%,to{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent) 20%,transparent))}50%{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 45%,transparent))}}.odontogram-root .tooth-tile:after{content:"";position:absolute;inset:-2px;border-radius:15px;border:2px dashed transparent;pointer-events:none;transition:border-color .25s ease}.odontogram-root .tooth-tile .tooth-svg svg{transition:filter .25s ease}.odontogram-root .tooth-tile.active,.odontogram-root .tooth-tile.selected{border-color:color-mix(in srgb,var(--accent) 70%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent);transition:border-color .2s ease,background .2s ease}.odontogram-root .tooth-tile.active:after,.odontogram-root .tooth-tile.selected:after{border-color:color-mix(in srgb,var(--accent) 55%,transparent);animation:odon-dash-pulse 1.6s ease-in-out infinite}.odontogram-root .tooth-tile.active .tooth-svg svg,.odontogram-root .tooth-tile.selected .tooth-svg svg{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 30%,transparent));animation:odon-glow-pulse 2.5s ease-in-out infinite}.odontogram-root .tooth-label-cell.selected{color:var(--accent);font-weight:700}.odontogram-root .tooth-tile:focus{outline:none}.odontogram-root .tooth-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent);z-index:1}.odontogram-root .tooth-grid.read-only .tooth-tile{cursor:default;pointer-events:none}.odontogram-root .tooth-grid.read-only .tooth-tile:hover{background:inherit}.odontogram-root .tooth-grid.read-only .tooth-label-cell{cursor:default;pointer-events:none}.odontogram-root .panel.read-only{pointer-events:none;opacity:.5;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media(prefers-reduced-motion:reduce){.odontogram-root .tooth-tile.active:after,.odontogram-root .tooth-tile.selected:after{animation:none;border-color:color-mix(in srgb,var(--accent) 70%,transparent)}.odontogram-root .tooth-tile.active .tooth-svg svg,.odontogram-root .tooth-tile.selected .tooth-svg svg{animation:none;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 35%,transparent))}}.odontogram-root .tooth-svg{width:100%;height:clamp(48px,11vw,120px);display:flex;align-items:center;justify-content:center}.odontogram-root .tooth-svg.tooth-svg-loading{background:#0000000a;border-radius:8px}.odontogram-root .tooth-svg svg{width:min(72px,100%);height:auto;max-height:100%;aspect-ratio:72 / 122;pointer-events:none}.odontogram-root .tooth-tile.occl-view .tooth-svg{height:clamp(36px,7vw,80px)}.odontogram-root .tooth-tile.occl-view .tooth-svg svg{width:min(64px,100%);aspect-ratio:1}.odontogram-root .tooth-tile.tpl-14 .tooth-svg svg{width:min(68px,100%);aspect-ratio:68 / 116}.odontogram-root .tooth-tile.tpl-11 .tooth-svg svg,.odontogram-root .tooth-tile.tpl-13 .tooth-svg svg{width:min(60px,100%);aspect-ratio:60 / 102}.odontogram-root .tooth-tile.wisdom-hidden{opacity:.45;pointer-events:none}.odontogram-root .tooth-tile.wisdom-hidden .tooth-svg svg{opacity:0}.odontogram-root .tooth-tile.occl-hidden,.odontogram-root .tooth-svg [data-active="0"]{display:none!important}.odontogram-root .panel{background:#fffffff2;border:1px solid var(--line);border-radius:18px;overflow:hidden}.odontogram-root .panel-header{padding:12px 14px;border-bottom:1px solid var(--line)}.odontogram-root .select-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.odontogram-root .select-actions-row{display:flex;flex-wrap:wrap;gap:6px}.odontogram-root .status-actions{flex-wrap:wrap;gap:6px}.odontogram-root .status-extra-row{align-items:center;gap:8px;flex-wrap:wrap}.odontogram-root .status-extra-row select{min-width:220px}.odontogram-root .btn-icon{padding:9px 15px;font-size:12px}.odontogram-root .btn-icon .icon,.odontogram-root .btn-icon .icon-img,.odontogram-root .btn-icon svg{width:32px;height:32px;display:block}.odontogram-root .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}.odontogram-root .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)}.odontogram-root .panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.odontogram-root .panel-title-actions{display:flex;align-items:center;gap:8px}.odontogram-root .panel-title{font-weight:800}.odontogram-root .panel-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.odontogram-root .pill{display:inline-block;background:color-mix(in srgb,var(--accent2) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent2) 25%,transparent);padding:2px 8px;border-radius:999px;font-weight:700;color:var(--text)}.odontogram-root .warnings{margin-top:10px;display:flex;flex-direction:column;gap:8px}.odontogram-root .warning{font-size:12px;color:#8a5b1a;border:1px solid rgba(255,198,116,.45);background:#ffc67438;padding:8px 10px;border-radius:12px}.odontogram-root .panel-body{padding:14px;display:flex;flex-direction:column;gap:12px;max-height:min(70vh,720px);overflow:auto}.odontogram-root .card{background:#ffffffe6;border:1px solid var(--line);border-radius:16px;padding:12px}.odontogram-root .card-title{font-weight:800;margin-bottom:8px}.odontogram-root .card-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.odontogram-root .card.collapsed .card-title{margin-bottom:0}.odontogram-root .card.collapsed .card-body,.odontogram-root .card.collapsed #statusCardBody,.odontogram-root .card.collapsed .status-extra-row,.odontogram-root .card.collapsed .hint,.odontogram-root .card.collapsed .row,.odontogram-root .card.collapsed .check-grid,.odontogram-root .card.collapsed label{display:none}.odontogram-root .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}.odontogram-root .icon-btn .icon{width:16px;height:16px}.odontogram-root .icon-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.odontogram-root .panel-collapse-btn{flex-shrink:0;position:relative;z-index:1}.odontogram-root .icon-btn-danger{color:#d94545;border-color:#d9454566;background:#d9454514}.odontogram-root .icon-btn-danger:hover{background:#d9454526}.odontogram-root .card-subtitle{font-weight:700;margin:6px 0}.odontogram-root .hint{font-size:12px;color:var(--muted);margin:6px 0 10px}.odontogram-root .row{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 2px}.odontogram-root .contact-row{margin-bottom:6px}.odontogram-root .bruxism-row{margin-top:6px;gap:8px}.odontogram-root .fissure-row{margin-top:10px;justify-content:center;text-align:center}.odontogram-root #crownReplaceRow,.odontogram-root #crownNeededRow,.odontogram-root #missingClosedRow{margin-top:8px}.odontogram-root .bridge-pillar-row{margin-top:10px}.odontogram-root .inline-checks{padding:0}.odontogram-root .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}.odontogram-root .inline-checks label:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.odontogram-root .inline-checks input[type=checkbox]{display:none}.odontogram-root .inline-checks label:has(input[type=checkbox]:checked){background:color-mix(in srgb,var(--accent2) 18%,transparent);border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.odontogram-root .check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.odontogram-root .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}.odontogram-root .check-grid label:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.odontogram-root .check-grid input[type=checkbox]{display:none}.odontogram-root .check-grid label:has(input[type=checkbox]:checked){background:color-mix(in srgb,var(--accent2) 18%,transparent);border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.odontogram-root .surface-cross{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,auto);gap:8px;max-width:340px;margin:4px auto}.odontogram-root .surface-cross .surface-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;padding:10px 6px;border-radius:14px;border:1px solid var(--line);background:#00000005;cursor:pointer}.odontogram-root .surface-cross .surface-cell:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.odontogram-root .surface-cross .surface-cell input[type=checkbox]{display:none}.odontogram-root .surface-cross .surface-cell .surf-letter{font-weight:700;font-size:18px;line-height:1}.odontogram-root .surface-cross .surface-cell .surf-name{font-size:11px;color:var(--muted)}.odontogram-root .surface-cross .surface-cell:has(input[type=checkbox]:checked){background:color-mix(in srgb,var(--accent2) 18%,transparent);border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.odontogram-root .surface-cross .pos-buccal{grid-column:2;grid-row:1}.odontogram-root .surface-cross .pos-mesial{grid-column:1;grid-row:2}.odontogram-root .surface-cross .pos-occlusal{grid-column:2;grid-row:2}.odontogram-root .surface-cross .pos-distal{grid-column:3;grid-row:2}.odontogram-root .surface-cross .pos-lingual{grid-column:2;grid-row:3}.odontogram-root .caries-surface-picker{display:flex;flex-direction:column;gap:8px;overflow:visible;padding-bottom:2px}.odontogram-root .subcrown-row{margin-top:0;grid-template-columns:1fr}.odontogram-root .card:has(.caries-surface-picker){overflow:visible;padding-bottom:14px}.odontogram-root .surface-cross .surface-cell[data-material=amalgam]{box-shadow:inset 0 0 0 2px #7a7f87}.odontogram-root .surface-cross .surface-cell[data-material=composite]{box-shadow:inset 0 0 0 2px #d9a441}.odontogram-root .surface-cross .surface-cell[data-material=gic]{box-shadow:inset 0 0 0 2px #4aa3df}.odontogram-root .surface-cross .surface-cell[data-material=temporary]{box-shadow:inset 0 0 0 2px #b07ad9}.odontogram-root .row input[type=checkbox]{display:none}.odontogram-root .row:has(input[type=checkbox]){border-radius:12px;border:1px solid var(--line);padding:6px 10px;background:#00000005;cursor:pointer}.odontogram-root .inline-checks:has(input[type=checkbox]){border:0;background:none;padding:0}.odontogram-root .row:has(input[type=checkbox]:checked){background:color-mix(in srgb,var(--accent2) 18%,transparent);border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.odontogram-root .inline-checks:has(input[type=checkbox]:checked){background:none;border:0}.odontogram-root .radio-list{display:flex;flex-direction:column;gap:8px}.odontogram-root .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}.odontogram-root .radio-list label:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.odontogram-root .divider{height:1px;background:var(--line);margin:10px 0}.odontogram-root .hidden{display:none!important}@media(max-width:1100px){.odontogram-root .layout{grid-template-columns:1fr}.odontogram-root .panel{order:2}}.odontogram-root .dark .topbar{background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.odontogram-root .dark .btn{background:color-mix(in srgb,var(--accent) 15%,transparent)}.odontogram-root .dark .btn:hover{background:color-mix(in srgb,var(--accent) 25%,transparent)}.odontogram-root .dark .btn-ghost{background:#ffffff0f}.odontogram-root .dark .btn-ghost:hover{background:#ffffff1f}.odontogram-root .dark .btn-danger{background:#f871711f;border-color:#f871714d;color:#f87171}.odontogram-root .dark .btn-danger:hover{background:#f8717138}.odontogram-root .dark .btn-toggle[aria-pressed=false]{background:#ffffff0f}.odontogram-root .dark .dropdown-menu{background:var(--panel);box-shadow:0 12px 24px #00000073}.odontogram-root .dark .dropdown-item{background:#ffffff0f}.odontogram-root .dark .dropdown-item:hover{background:#ffffff1f}.odontogram-root .dark .dropdown-item[aria-checked=true]{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.odontogram-root .dark select{background:color-mix(in srgb,var(--accent) 15%,transparent);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}.odontogram-root .dark .chart{background:#1e293be6}.odontogram-root .dark .tooth-label-cell{color:#f1f5f999}.odontogram-root .dark .tooth-label-cell:hover{color:#f1f5f9}.odontogram-root .dark .tooth-tile{background:#1e293bb3}.odontogram-root .dark .tooth-tile.placeholder{background:#1e293b4d}.odontogram-root .dark .tooth-tile:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.odontogram-root @keyframes odon-dash-pulse-dark{0%,100%{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}50%{border-color:color-mix(in srgb,var(--accent) 85%,transparent)}}@keyframes odon-glow-pulse-dark{0%,to{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent) 20%,transparent))}50%{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 45%,transparent))}}.odontogram-root .dark .tooth-tile.active,.odontogram-root .dark .tooth-tile.selected{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.odontogram-root .dark .tooth-tile.active:after,.odontogram-root .dark .tooth-tile.selected:after{border-color:color-mix(in srgb,var(--accent) 45%,transparent);animation-name:odon-dash-pulse-dark}.odontogram-root .dark .tooth-tile.active .tooth-svg svg,.odontogram-root .dark .tooth-tile.selected .tooth-svg svg{animation-name:odon-glow-pulse-dark;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 30%,transparent))}.odontogram-root .dark .tooth-label-cell.selected{color:color-mix(in srgb,var(--accent) 90%,white)}.odontogram-root .dark .tooth-tile:focus-visible{outline-color:color-mix(in srgb,var(--accent) 80%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.odontogram-root .dark .odon-note-backdrop{background:#0000008c}.odontogram-root .dark .odon-note-popover{background:var(--panel);box-shadow:0 16px 48px #00000080}.odontogram-root .dark .odon-note-textarea{background:#ffffff0f;border-color:var(--line);color:var(--text)}.odontogram-root .dark .odon-note-textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.odontogram-root .dark .panel{background:#1e293bf2}.odontogram-root .dark .card{background:#1e293bcc;border-color:var(--line)}.odontogram-root .dark .icon-btn{background:#1e293bb3}.odontogram-root .dark .icon-btn:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.odontogram-root .dark .icon-btn-danger{color:#f87171;border-color:#f871714d;background:#f871711a}.odontogram-root .dark .icon-btn-danger:hover{background:#f8717133}.odontogram-root .dark .warning{color:#fbbf24;border-color:#fbbf244d;background:#fbbf241a}.odontogram-root .dark .inline-checks label,.odontogram-root .dark .check-grid label,.odontogram-root .dark .radio-list label{background:#ffffff0a}.odontogram-root .dark .inline-checks label:hover,.odontogram-root .dark .check-grid label:hover,.odontogram-root .dark .radio-list label:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.odontogram-root .dark .row:has(input[type=checkbox]){background:#ffffff0a}.odontogram-root .dark .pill{background:#34d39926;border-color:#34d3994d}.odontogram-root .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}.odontogram-root .btn-theme:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.odontogram-root .dark .btn-theme{background:#ffffff0f}.odontogram-root .dark .btn-theme:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.odontogram-root .tooth-note-icon{display:inline-block;font-size:9px;margin-left:2px;vertical-align:middle;opacity:.75}.odontogram-root .odon-note-backdrop{position:fixed;inset:0;z-index:120;background:#00000059;animation:odon-fade-in .12s ease}.odontogram-root .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}.odontogram-root .odon-note-header{display:flex;align-items:center;justify-content:space-between}.odontogram-root .odon-note-title{font-weight:700;font-size:14px;color:var(--text)}.odontogram-root .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}.odontogram-root .odon-note-textarea:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.odontogram-root .odon-note-textarea::-moz-placeholder{color:var(--muted)}.odontogram-root .odon-note-textarea::placeholder{color:var(--muted)}.odontogram-root .odon-note-actions{display:flex;gap:8px}.odontogram-root .odon-note-actions .odon-zoom-btn{flex:1}.odontogram-root .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}.odontogram-root .dark .warning-item{background:#facc151a;color:#fde047}.odontogram-root .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}}.odontogram-root .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}.odontogram-root .odon-zoom-header{width:100%;display:flex;align-items:center;justify-content:space-between}.odontogram-root .odon-zoom-title{font-weight:800;font-size:16px;color:var(--text)}.odontogram-root .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}.odontogram-root .odon-zoom-close:hover{background:#d945451f;color:#d94545}.odontogram-root .odon-zoom-svg{width:200px;height:200px;display:flex;align-items:center;justify-content:center}.odontogram-root .odon-zoom-svg svg{width:180px;height:180px;pointer-events:none}.odontogram-root .odon-zoom-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.odontogram-root .odon-zoom-btn{border:1px solid var(--line);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text);padding:10px 8px;border-radius:12px;font-weight:600;font-size:13px;cursor:pointer;text-align:center}.odontogram-root .odon-zoom-btn:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.odontogram-root .odon-zoom-btn.active{background:color-mix(in srgb,var(--accent2) 18%,transparent);border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.odontogram-root .odon-zoom-btn.danger{background:#d9454514;border-color:#d945454d;color:#b83a3a}.odontogram-root .odon-zoom-btn.danger:hover{background:#d945452e}.odontogram-root .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)}}.odontogram-root .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}.odontogram-root .odon-ctx-item:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.odontogram-root .odon-ctx-item.danger{color:#b83a3a}.odontogram-root .odon-ctx-item.danger:hover{background:#d945451f}.odontogram-root .odon-ctx-divider{height:1px;background:var(--line);margin:2px 0}.odontogram-root .dark .odon-zoom-overlay{background:#0009}.odontogram-root .dark .odon-zoom-popover{background:var(--panel);box-shadow:0 20px 60px #00000080}.odontogram-root .dark .odon-zoom-close{background:#ffffff0f}.odontogram-root .dark .odon-zoom-close:hover{background:#f8717126;color:#f87171}.odontogram-root .dark .odon-zoom-btn{background:color-mix(in srgb,var(--accent) 10%,transparent)}.odontogram-root .dark .odon-zoom-btn:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.odontogram-root .dark .odon-zoom-btn.active{background:#34d3992e;border-color:#34d39966}.odontogram-root .dark .odon-zoom-btn.danger{background:#f871711a;border-color:#f8717140;color:#f87171}.odontogram-root .dark .odon-ctx-menu{background:var(--panel);box-shadow:0 12px 40px #00000080}.odontogram-root .dark .odon-ctx-item{background:#ffffff0a}.odontogram-root .dark .odon-ctx-item:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.odontogram-root .dark .odon-ctx-item.danger{color:#f87171}.odontogram-root .tooth-grid.odon-pinch-active{touch-action:none;transform-origin:center center;transition:transform .05s ease}.odontogram-root @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}}.odontogram-root .odon-arch-toggle{display:none;justify-content:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.odontogram-root .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}.odontogram-root .odon-arch-toggle .odon-arch-btn.active{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.odontogram-root .dark .odon-arch-toggle .odon-arch-btn{background:#ffffff0f}.odontogram-root .dark .odon-arch-toggle .odon-arch-btn.active{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}@media(max-width:600px){.odontogram-root .odon-arch-toggle{display:flex}}.odontogram-root .odon-export-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;background:#141c288c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.odontogram-root .odon-export-card{background:var(--panel);border-radius:18px;box-shadow:0 20px 60px #1e2a3a40;padding:28px 40px;text-align:center;min-width:240px}.odontogram-root .odon-export-title{font-weight:600;font-size:14px;color:var(--muted);margin-bottom:8px}.odontogram-root .odon-export-pct{font-weight:800;font-size:40px;line-height:1;color:var(--text)}.odontogram-root .odon-export-phase{font-size:12px;color:var(--muted);margin-top:8px}.odontogram-root .odon-tour-backdrop{position:fixed;inset:0;z-index:140;background:#141c2873}.odontogram-root .odon-tour-highlight{position:fixed;z-index:141;border:3px solid var(--accent,#3b7bff);border-radius:12px;box-shadow:0 0 0 9999px #141c2873;pointer-events:none;transition:all .15s ease}.odontogram-root .odon-tour-card{position:fixed;z-index:142;background:var(--panel);border-radius:16px;box-shadow:0 16px 48px #1e2a3a40;padding:18px 20px;width:300px}.odontogram-root .odon-tour-card-center{top:50%;left:50%;transform:translate(-50%,-50%)}.odontogram-root .odon-tour-counter{font-size:11px;color:var(--muted);margin-bottom:6px}.odontogram-root .odon-tour-title{font-weight:700;font-size:16px;margin-bottom:6px;color:var(--text)}.odontogram-root .odon-tour-text{font-size:13px;color:var(--muted);margin-bottom:14px}.odontogram-root .odon-tour-actions{display:flex;gap:8px;justify-content:flex-end}.odontogram-root .odon-tour-btn{border:1px solid var(--line);background:#0000000a;color:var(--text);padding:6px 12px;border-radius:10px;font-weight:600;cursor:pointer}.odontogram-root .odon-tour-btn:disabled{opacity:.4;cursor:default}.odontogram-root .odon-tour-skip{margin-right:auto;background:transparent}.odontogram-root .odon-tour-next{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.odontogram-root .odon-assistant-fab{position:fixed;right:20px;bottom:20px;z-index:150;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 95%,transparent),color-mix(in srgb,var(--accent) 95%,transparent));color:#fff;font-weight:700;cursor:pointer;box-shadow:0 8px 28px color-mix(in srgb,var(--accent) 35%,transparent);transition:transform .15s ease,box-shadow .15s ease}.odontogram-root .odon-assistant-fab:hover{transform:translateY(-2px);box-shadow:0 12px 32px color-mix(in srgb,var(--accent) 40%,transparent)}.odontogram-root .odon-assistant-fab.is-open{background:#1e293beb;border-color:var(--line)}.odontogram-root .odon-assistant-fab-icon{font-size:18px}.odontogram-root .odon-assistant-panel{position:fixed;right:20px;bottom:84px;z-index:151;width:min(380px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 120px));display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px #141c2840;overflow:hidden;animation:arch-view-in .2s ease}.odontogram-root .odon-assistant-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 14px 10px;border-bottom:1px solid var(--line)}.odontogram-root .odon-assistant-title{font-size:16px;font-weight:800;margin:0}.odontogram-root .odon-assistant-subtitle{font-size:12px;color:var(--muted);margin:4px 0 0}.odontogram-root .odon-assistant-close{width:32px;height:32px;border-radius:999px;border:1px solid var(--line);background:#0000000a;cursor:pointer;font-size:16px;line-height:1}.odontogram-root .odon-assistant-body{flex:1;min-height:0;display:flex;flex-direction:column;min-height:320px}.odontogram-root .odon-assistant-chat{display:flex;flex-direction:column;flex:1;min-height:280px}.odontogram-root .odon-assistant-messages{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.odontogram-root .odon-assistant-msg{display:flex}.odontogram-root .odon-assistant-msg-user{justify-content:flex-end}.odontogram-root .odon-assistant-msg-assistant,.odontogram-root .odon-assistant-msg-system{justify-content:flex-start}.odontogram-root .odon-assistant-msg-bubble{max-width:85%;padding:10px 12px;border-radius:14px;font-size:13px;line-height:1.45;white-space:pre-wrap}.odontogram-root .odon-assistant-msg-user .odon-assistant-msg-bubble{background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.odontogram-root .odon-assistant-msg-assistant .odon-assistant-msg-bubble{background:#0000000a;border:1px solid var(--line)}.odontogram-root .odon-assistant-thinking{opacity:.7;font-style:italic}.odontogram-root .odon-assistant-input-row{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.odontogram-root .odon-assistant-input{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;background:#fffc;color:var(--text)}.odontogram-root .dark .odon-assistant-msg-assistant .odon-assistant-msg-bubble{background:#ffffff0f}.odontogram-root .dark .odon-assistant-input{background:#1e293bcc}.odontogram-root .dark .odon-assistant-close{background:#ffffff0f}@media(max-width:600px){.odontogram-root .odon-assistant-fab-label{display:none}.odontogram-root .odon-assistant-panel{right:12px;left:12px;width:auto;bottom:76px}}.odontogram-root .odon-treatment-fab{position:fixed;left:24px;bottom:24px;z-index:900;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:linear-gradient(135deg,#059669,#047857);color:#fff;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 24px #05966959;font-weight:700;font-size:13px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.odontogram-root .odon-treatment-fab:hover{transform:translateY(-2px);box-shadow:0 12px 32px #05966966}.odontogram-root .odon-treatment-fab.is-open{background:#1e293beb;border-color:var(--line)}.odontogram-root .odon-treatment-fab-icon{font-size:16px}.odontogram-root .odon-treatment-panel{position:fixed;left:24px;bottom:76px;z-index:900;width:min(420px,calc(100vw - 48px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px #0000002e;overflow:hidden}.odontogram-root .odon-treatment-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.odontogram-root .odon-treatment-title{font-size:16px;font-weight:800;margin:0}.odontogram-root .odon-treatment-subtitle{font-size:12px;color:var(--muted);margin:4px 0 0}.odontogram-root .odon-treatment-close{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#0000000a;font-size:20px;line-height:1;cursor:pointer}.odontogram-root .odon-treatment-body{flex:1;min-height:0;overflow:auto;padding:12px 16px 16px}.odontogram-root .odon-treatment-toolbar{display:flex;gap:8px;margin-bottom:12px}.odontogram-root .odon-treatment-empty{font-size:13px;color:var(--muted);margin:8px 0}.odontogram-root .odon-treatment-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.odontogram-root .odon-treatment-line{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.odontogram-root .odon-treatment-line-check{display:flex;align-items:center;gap:8px;min-width:0}.odontogram-root .odon-treatment-line-label{font-size:13px;overflow:hidden;text-overflow:ellipsis}.odontogram-root .odon-treatment-line-price{font-size:13px;font-weight:700;white-space:nowrap}.odontogram-root .odon-treatment-line-remove{width:28px;height:28px;font-size:18px}.odontogram-root .odon-treatment-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:14px}.odontogram-root .layout.layout-full{grid-template-columns:1fr;width:100%;max-width:100%;overflow-x:clip}.odontogram-root .layout.layout-full .chart,.odontogram-root .chart.arch-mode.split-view .tooth-grid.arch-split-grid{width:100%;max-width:100%}.odontogram-root .dropdown-divider{height:1px;background:var(--line);margin:4px 0}.odontogram-clinical-tab-root{max-height:min(52vh,560px);overflow:auto;pointer-events:auto;position:relative;z-index:1;-webkit-overflow-scrolling:touch}.tooth-condition-modal .odontogram-clinical-tab-root{max-height:none;overflow:visible}.odontogram-clinical-tab-embedded{max-height:none!important;overflow:visible!important}.odontogram-clinical-tab-embedded .tooth-editor-cards{grid-template-columns:1fr;align-items:start}.odontogram-clinical-tab-embedded .tooth-editor-cards>.card{overflow:visible;min-height:-moz-min-content;min-height:min-content}.odontogram-clinical-tab-embedded .tooth-editor-cards>.card:has(.surface-cross),.odontogram-clinical-tab-embedded .tooth-editor-cards>.card:has(.caries-surface-picker){grid-column:1 / -1}.tooth-condition-modal .odontogram-clinical-tab-root .tooth-surface-extras-section{margin-top:4px;padding-top:16px;border-top:1px solid var(--line, rgba(148, 163, 184, .35))}.tooth-surface-extras-engine-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;border:1px dashed var(--line, #cbd5e1);background:#ffffff80}.dark .tooth-surface-extras-engine-row{background:#0f172a59}.tooth-surface-extras-card{padding:12px;border-radius:10px;border:1px solid var(--line, #cbd5e1);background:#fff}.dark .tooth-surface-extras-card{background:#1e293bd9}.tooth-surface-extras-card.is-active{border-color:color-mix(in srgb,var(--accent, #3b82f6) 45%,var(--line, #cbd5e1));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent, #3b82f6) 20%,transparent)}.tooth-condition-modal-body{-webkit-overflow-scrolling:touch}.odontogram-clinical-tab-root .tooth-editor-content-modal .tooth-editor-modal-details{display:flex;flex-direction:column;gap:12px}.odontogram-clinical-tab-root .tooth-editor-modal-section{padding:12px 14px;border-radius:10px;background:#ffffffd9;border:1px solid var(--line, rgba(148, 163, 184, .45))}.dark .odontogram-clinical-tab-root .tooth-editor-modal-section{background:#0f172a8c}.odontogram-clinical-tab-root .tooth-editor-modal-section-title{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #64748b)}.odontogram-clinical-tab-root .tooth-editor-modal-planning-hint,.odontogram-clinical-tab-root .tooth-editor-modal-mobility-hint{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--muted, #64748b)}.odontogram-clinical-tab-root .tooth-editor-modal-tab-link{display:inline-flex;align-items:center;gap:4px;margin-top:10px;padding:0;border:none;background:none;color:var(--accent, #2563eb);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.odontogram-clinical-tab-root .tooth-editor-modal-tab-link:hover{opacity:.85}.odontogram-clinical-tab-root .tooth-editor-modal-toggle-grid{display:flex;flex-wrap:wrap;gap:8px}.odontogram-clinical-tab-root .tooth-editor-modal-toggle-stack{display:flex;flex-direction:column;gap:8px;margin-top:4px}.odontogram-clinical-tab-root .tooth-editor-modal-toggle{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:8px 12px;border:1px solid var(--line, #cbd5e1);border-radius:10px;background:#fff;color:inherit;font:inherit;font-size:13px;line-height:1.3;text-align:left;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.dark .odontogram-clinical-tab-root .tooth-editor-modal-toggle{background:#1e293be6;border-color:#94a3b859}.odontogram-clinical-tab-root .tooth-editor-modal-toggle--row{width:100%}.odontogram-clinical-tab-root .tooth-editor-modal-toggle:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent, #3b82f6) 45%,var(--line, #cbd5e1));background:color-mix(in srgb,var(--accent, #3b82f6) 6%,#fff)}.odontogram-clinical-tab-root .tooth-editor-modal-toggle.is-checked{border-color:color-mix(in srgb,var(--accent2, #059669) 55%,var(--line, #cbd5e1));background:color-mix(in srgb,var(--accent2, #059669) 12%,#fff);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent2, #059669) 25%,transparent)}.dark .odontogram-clinical-tab-root .tooth-editor-modal-toggle.is-checked{background:color-mix(in srgb,var(--accent2, #059669) 18%,rgba(30,41,59,.95))}.odontogram-clinical-tab-root .tooth-editor-modal-toggle:disabled{opacity:.45;cursor:not-allowed}.odontogram-clinical-tab-root .tooth-editor-modal-toggle-box{flex-shrink:0;width:20px;height:20px;border-radius:5px;border:2px solid var(--line, #94a3b8);display:inline-flex;align-items:center;justify-content:center;background:#fff}.odontogram-clinical-tab-root .tooth-editor-modal-toggle.is-checked .tooth-editor-modal-toggle-box{border-color:var(--accent2, #059669);background:var(--accent2, #059669);color:#fff}.odontogram-clinical-tab-root .tooth-editor-modal-toggle-check{font-size:12px;font-weight:800;line-height:1}.odontogram-clinical-tab-root .tooth-editor-modal-toggle-label{flex:1}.odontogram-clinical-tab-root .tooth-editor-content-modal .row{flex-wrap:wrap;padding:4px 0 8px}.odontogram-clinical-tab-root .tooth-editor-content-modal .row>span{min-width:140px;font-weight:500}.odontogram-clinical-tab-root .tooth-editor-content-modal select{flex:1;min-width:180px;min-height:40px;padding:8px 32px 8px 10px;pointer-events:auto;cursor:pointer}.odontogram-clinical-tab-root .tooth-editor-cards{grid-template-columns:1fr;align-items:start}@media(min-width:900px){.odontogram-clinical-tab-root:not(.odontogram-clinical-tab-embedded) .tooth-editor-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.odontogram-clinical-tab-root .tooth-editor-cards>.card:first-child{grid-column:1 / -1}.odontogram-clinical-tab-root:not(.odontogram-clinical-tab-embedded) .tooth-editor-cards>.card:has(.surface-cross),.odontogram-clinical-tab-root:not(.odontogram-clinical-tab-embedded) .tooth-editor-cards>.card:has(.caries-surface-picker){grid-column:1 / -1}}.odontogram-tooth-modal-backdrop{position:fixed;inset:0;z-index:100;border:none;padding:0;margin:0;background:#000000b8;cursor:pointer}.odontogram-tooth-modal{position:fixed;z-index:101;left:50%;top:50%;transform:translate(-50%,-50%);width:min(920px,calc(100vw - 32px));max-height:min(88vh,820px);display:flex;flex-direction:column;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:16px;box-shadow:0 24px 64px #0f172a59;overflow:hidden;animation:odon-tooth-modal-in .2s ease}@keyframes odon-tooth-modal-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px))}to{opacity:1;transform:translate(-50%,-50%)}}.odontogram-tooth-modal-root{display:flex;flex-direction:column;max-height:min(88vh,820px);width:100%;background:hsl(var(--background))!important;overflow:hidden}.odontogram-tooth-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background));flex-shrink:0}.odontogram-tooth-modal-title{margin:0;font-size:18px;font-weight:700;color:hsl(var(--foreground))}.odontogram-tooth-modal-subtitle{margin:4px 0 0;font-size:13px;color:hsl(var(--muted-foreground))}.odontogram-tooth-modal-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.odontogram-tooth-modal-billing-btn{display:inline-flex;align-items:center;gap:6px;background:hsl(var(--primary) / .1);border-color:hsl(var(--primary) / .35);color:hsl(var(--primary))}.odontogram-tooth-modal-billing-btn:hover{background:hsl(var(--primary) / .18)}.odontogram-tooth-modal-billing-icon{width:16px;height:16px;flex-shrink:0}.odontogram-tooth-modal-close{border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground));border-radius:999px;width:36px;height:36px;cursor:pointer;font-size:16px;line-height:1;flex-shrink:0}.odontogram-tooth-modal-close:hover{background:hsl(var(--destructive) / .1);color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .35)}.odontogram-tooth-modal-body{overflow:auto;padding:16px 20px 20px;flex:1;min-height:0}.odontogram-tooth-modal-root .card{background:hsl(var(--card));border-color:hsl(var(--border))}.odontogram-tooth-modal-root .btn-ghost{background:hsl(var(--muted) / .35)}.odontogram-tooth-modal-root .btn-ghost:hover{background:hsl(var(--muted) / .55)}.dark .odontogram-tooth-modal{box-shadow:0 24px 64px #0000008c}.dark .odontogram-tooth-modal-root .card{background:hsl(var(--card))}.odontogram-root .tooth-editor-select-actions{margin-bottom:12px}.odontogram-root .tooth-editor-cards{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:900px){.odontogram-tooth-modal-root .tooth-editor-cards,.odontogram-root .tooth-editor-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.odontogram-tooth-modal-root .tooth-editor-cards>.card:first-child,.odontogram-root .tooth-editor-cards>.card:first-child{grid-column:1 / -1}}@media(max-width:600px){.odontogram-root .odon-treatment-fab-label{display:none}.odontogram-root .odon-treatment-panel{left:12px;right:12px;width:auto}}.odontogram-root.treatment-plan-tooth-picker .layout.layout-full{min-height:0}.odontogram-root.treatment-plan-tooth-picker .chart{overflow:visible;border-radius:12px}.odontogram-root.treatment-plan-tooth-picker .chart.arch-mode{min-height:auto}.odontogram-root.treatment-plan-tooth-picker .chart-header{padding:6px 8px;gap:4px}.odontogram-root.treatment-plan-tooth-picker .chart-toolbar{gap:4px}.odontogram-root.treatment-plan-tooth-picker .chart-toolbar .btn,.odontogram-root.treatment-plan-tooth-picker .chart-toolbar .btn-icon{min-height:32px;padding:4px 8px;font-size:11px}.odontogram-root.treatment-plan-tooth-picker .tooth-grid{padding:2px 4px;gap:1px}.odontogram-root.treatment-plan-tooth-picker .tooth-label-row{min-height:0}.odontogram-root.treatment-plan-tooth-picker .tooth-label-cell{font-size:9px;line-height:1.1;padding:1px 0}.odontogram-root.treatment-plan-tooth-picker .tooth-tile{min-height:0;padding:1px}.odontogram-root.treatment-plan-tooth-picker .tooth-tile svg,.odontogram-root.treatment-plan-tooth-picker .tooth-tile .tooth-svg svg{max-height:clamp(36px,4.8vw,52px);width:auto;height:auto}.odontogram-root.treatment-plan-tooth-picker .chart.arch-mode.split-view .arch-chart-container{min-height:0}.odontogram-root.treatment-plan-tooth-picker .chart.arch-mode.split-view .arch-chart-container .Odontogram{transform:scale(.88);transform-origin:top center}
