.envio-modal.svelte-k1qrbs{max-height:90vh;overflow-y:auto;max-width:480px}.envio-sub.svelte-k1qrbs,.envio-nota.svelte-k1qrbs{margin:0;font-size:12px;color:#475569}.envio-cargando.svelte-k1qrbs{margin:0;font-size:13px;color:#475569}.envio-motivo.svelte-k1qrbs{margin:0;padding:10px 12px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;font-size:13px;line-height:1.45}.envio-motivo.bloqueado.svelte-k1qrbs{background:#fef2f2;border-color:#fecaca;color:#991b1b}.envio-canales.svelte-k1qrbs{border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;margin:0;display:flex;flex-direction:column;gap:6px;font-size:13px;color:#0f172a}.envio-canales.svelte-k1qrbs legend:where(.svelte-k1qrbs){font-size:12px;color:#475569;padding:0 4px}.envio-canal.svelte-k1qrbs{display:flex;align-items:center;gap:6px;cursor:pointer}.envio-destino.svelte-k1qrbs,.envio-destino-unico.svelte-k1qrbs{color:#64748b;font-size:12px;margin:0}.envio-idioma.svelte-k1qrbs{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#334155}.envio-idioma.svelte-k1qrbs select:where(.svelte-k1qrbs){font-size:12px;padding:4px 6px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a}.envio-coste.svelte-k1qrbs{margin:0;font-size:12px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:6px 10px}.envio-enviar.svelte-k1qrbs{justify-content:center;border:none;cursor:pointer}.envio-enviar.svelte-k1qrbs:disabled{background:#94a3b8;cursor:not-allowed}.envio-ok.svelte-k1qrbs{margin:0;font-size:13px;color:#166534}.envio-error.svelte-k1qrbs{margin:0;font-size:13px;color:#b91c1c}.envio-consent.svelte-k1qrbs{font-size:12px;color:#334155;border-top:1px solid #e2e8f0;padding-top:8px}.envio-consent.svelte-k1qrbs summary:where(.svelte-k1qrbs){cursor:pointer;font-weight:600}.envio-consent.svelte-k1qrbs ul:where(.svelte-k1qrbs){list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.envio-consent.svelte-k1qrbs li:where(.svelte-k1qrbs){display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.envio-consent-botones.svelte-k1qrbs{display:inline-flex;gap:4px;margin-left:auto}.envio-consent-botones.svelte-k1qrbs button:where(.svelte-k1qrbs){font-size:11px;padding:2px 8px;border-radius:6px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;cursor:pointer}.envio-consent-botones.svelte-k1qrbs button:where(.svelte-k1qrbs):disabled{opacity:.6;cursor:wait}.compartir-modal.svelte-1d4u9r0{max-height:90vh;overflow-y:auto}.compartir-nota.svelte-1d4u9r0{margin:0;font-size:12px;color:#475569}.compartir-error.svelte-1d4u9r0{margin:0;font-size:13px;color:#b91c1c}.compartir-url.svelte-1d4u9r0{width:100%;font-size:11px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#f8fafc}.compartir-lista.svelte-1d4u9r0{font-size:12px;color:#334155;border-top:1px solid #e2e8f0;padding-top:8px}.compartir-lista.svelte-1d4u9r0 summary:where(.svelte-1d4u9r0){cursor:pointer;font-weight:600}.compartir-lista.svelte-1d4u9r0 ul:where(.svelte-1d4u9r0){list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.compartir-lista.svelte-1d4u9r0 li:where(.svelte-1d4u9r0){display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.compartir-estado.svelte-1d4u9r0{font-size:11px;padding:1px 6px;border-radius:999px;background:#f1f5f9;color:#475569}.compartir-estado.estado-vigente.svelte-1d4u9r0{background:#dcfce7;color:#166534}.compartir-lista.svelte-1d4u9r0 button:where(.svelte-1d4u9r0){margin-left:auto;font-size:11px;padding:2px 8px;border-radius:6px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;cursor:pointer}.odontogram2d{display:flex;flex-direction:column;gap:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:none}.o2d-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.o2d-toolbar-label{font-size:11px;font-weight:600;color:#475569;letter-spacing:.05em;text-transform:uppercase;margin-right:4px}.o2d-tool-btn{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;border:1.5px solid transparent;border-radius:6px;background:#fff;cursor:pointer;font-size:12px;font-weight:500;color:#374151;transition:border-color .12s,background .12s,box-shadow .12s;line-height:1}.o2d-tool-btn:hover{border-color:#cbd5e1;background:#f1f5f9}.o2d-tool-btn.active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 3px #3b82f626}.o2d-tool-swatch{width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.12);flex-shrink:0}.o2d-tool-shortcut{font-size:10px;color:#475569;font-weight:400;margin-left:2px}.o2d-tool-btn.active .o2d-tool-shortcut{color:#1d4ed8}.o2d-toolbar-sep{width:1px;height:20px;background:#e2e8f0;margin:0 2px}.o2d-undo-btn:first-of-type{margin-left:auto}.o2d-undo-btn{padding:5px 10px;border:1.5px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer;font-size:12px;color:#374151;transition:border-color .12s,background .12s}.o2d-undo-btn:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}.o2d-undo-btn:disabled{opacity:.38;cursor:default}.o2d-chart-wrap{background:#0f172a;border-radius:10px;border:1px solid #1e3a5f;padding:12px 14px;overflow-x:auto}.o2d-arch{display:flex;flex-direction:row;gap:3px;width:-moz-max-content;width:max-content;min-width:100%}.o2d-arch-upper{align-items:flex-end}.o2d-arch-lower{align-items:flex-start}.o2d-arch-primary{align-items:flex-end}.o2d-arch-lower+.o2d-arch-primary,.o2d-arch-primary+.o2d-arch-lower{align-items:flex-start}.o2d-primary-col{width:44px}.tooth-tile-primary{transform:scale(.82);transform-origin:center center;margin:-4px 0}.o2d-primary-lbl{font-size:9px;color:#f59e0b;font-weight:500}.o2d-faces-primary{transform:scale(.82);transform-origin:center center;margin:-4px 0}.o2d-tooth-col{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0;width:52px}.o2d-tooth-col.o2d-sel .tooth-tile{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f638 inset}.tooth-tile{position:relative;border:1px solid #2a3a5a;border-radius:8px;background:#ffffff08;padding:1px;min-height:66px;display:flex;align-items:center;justify-content:center;cursor:crosshair;transition:background .1s,border-color .1s}.tooth-tile:hover{background:#3b7bff1a}.tooth-tile.active{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633 inset}.tooth-tile.is-implant{background:#47556973;border:2px solid #94a3b8;box-shadow:inset 0 0 0 1px #94a3b866}.tooth-svg{width:100%;height:80px;display:flex;align-items:center;justify-content:center;transform-origin:center center}.tooth-svg svg,.tooth-tile svg:first-of-type{width:46px;height:78px;pointer-events:none;display:block}.tooth-tile svg.o2d-overlay{pointer-events:auto}.tooth-tile .tooth-svg svg,.tooth-tile svg.o2d-overlay{height:80px}.tooth-tile.tpl-11 .tooth-svg svg,.tooth-tile.tpl-11 svg.o2d-overlay,.tooth-tile.tpl-12 .tooth-svg svg,.tooth-tile.tpl-12 svg.o2d-overlay,.tooth-tile.tpl-31 .tooth-svg svg,.tooth-tile.tpl-31 svg.o2d-overlay{width:35.5px}.tooth-tile.tpl-14 .tooth-svg svg,.tooth-tile.tpl-14 svg.o2d-overlay,.tooth-tile.tpl-15 .tooth-svg svg,.tooth-tile.tpl-15 svg.o2d-overlay{width:35.6px}.tooth-tile.tpl-13 .tooth-svg svg,.tooth-tile.tpl-13 svg.o2d-overlay{width:36.1px}.tooth-tile.tpl-16 .tooth-svg svg,.tooth-tile.tpl-16 svg.o2d-overlay,.tooth-tile.tpl-17 .tooth-svg svg,.tooth-tile.tpl-17 svg.o2d-overlay,.tooth-tile.tpl-46 .tooth-svg svg,.tooth-tile.tpl-46 svg.o2d-overlay{width:38.4px}[data-active="0"]{display:none!important}.o2d-overlay{position:absolute;inset:0;margin:auto;width:100%;height:100%;cursor:crosshair;transform-origin:center center}.odontogram2d.o2d-editable .o2d-overlay,.odontogram2d.o2d-editable .o2d-zone,.odontogram2d.o2d-editable .o2d-faces-tile,.odontogram2d.o2d-editable .o2d-faces-tile svg{touch-action:none}@media(pointer:coarse){.o2d-toolbar button,.o2d-visibility button,.o2d-pulp-bar button,.o2d-timeline-bar button{min-height:40px;min-width:40px}}.o2d-zone{cursor:crosshair;transition:fill .08s}.o2d-zone:hover{fill:#3b82f62e!important}.o2d-loading{color:#64748b;font-size:13px;padding:32px;text-align:center}.o2d-fdi-lbl{font-size:9px;font-weight:700;color:#94a3b8;font-family:SF Mono,Fira Mono,monospace;text-align:center;line-height:1;display:flex;flex-direction:column;align-items:center;gap:1px;flex-shrink:0}.o2d-fdi-sel{color:#60a5fa}.o2d-uni-lbl{font-size:8px;color:#64748b;font-weight:400}.o2d-arch-mid{padding:4px 0;width:-moz-max-content;width:max-content;min-width:100%}.o2d-quad-row{display:flex;justify-content:space-around;padding:2px 0}.o2d-quad-lbl{font-size:9px;color:#475569;letter-spacing:.03em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.o2d-gum-line{height:1.5px;background:#e879a8;opacity:.6;margin:2px 0}.o2d-statusbar{display:flex;align-items:center;gap:16px;padding:6px 10px;font-size:11px;color:#64748b;border-top:1px solid #f1f5f9}.o2d-statusbar strong{color:#334155;font-weight:600}.o2d-hint{margin-left:auto;color:#475569}.o2d-hint-primary{color:#1d4ed8;font-style:italic}.o2d-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.o2d-legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:#374151;cursor:pointer;padding:2px 5px;border-radius:5px;border:1.5px solid transparent;transition:background .1s,border-color .1s}.o2d-legend-item:hover{background:#f1f5f9;border-color:#cbd5e1}.o2d-legend-item.o2d-legend-active{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}.o2d-legend-swatch{width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.14);flex-shrink:0}.o2d-attribution{font-size:10px;color:#475569;text-align:center;padding:4px 0 2px}.o2d-attribution a{color:#1d4ed8;text-decoration:none}.o2d-attribution a:hover{text-decoration:underline}.o2d-faces-tile{width:40px;height:40px;flex-shrink:0;border:1px solid #34486c;border-radius:4px;overflow:hidden;transform-origin:center center;background:#0a1525}.o2d-faces-tile svg{display:block;width:100%;height:100%}.o2d-pulp-overlay-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5}.o2d-pulp-overlay-wrap svg{width:28px;height:28px;pointer-events:none}.o2d-pulp-bar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:5px 10px;background:#0c1829;border:1px solid #1e3a5f;border-radius:8px}.o2d-pulp-btn{display:flex;align-items:center;gap:6px;padding:4px 9px;border:1.5px solid #334155;border-radius:6px;background:transparent;color:#94a3b8;font-size:11px;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s,color .12s;line-height:1}.o2d-pulp-btn:hover{border-color:var(--pulp-border, #60a5fa);color:#cbd5e1;background:#ffffff0d}.o2d-pulp-btn.active{border-color:var(--pulp-border, #60a5fa);background:#ffffff14;color:#e2e8f0;font-weight:600}.o2d-pulp-dot{width:10px;height:10px;border-radius:50%;background:var(--pulp-color, #60a5fa);border:1.5px solid var(--pulp-border, #3b82f6);flex-shrink:0}.o2d-pulp-clear{margin-left:auto;color:#f87171;border-color:#f87171}.o2d-pulp-clear:hover{background:#f871711a;border-color:#ef4444}.o2d-visibility{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:5px 10px;background:#0f172a;border:1px solid #1e3a5f;border-radius:8px}.o2d-vis-btn{display:flex;align-items:center;gap:5px;padding:4px 9px;border:1.5px solid #2a3a5a;border-radius:6px;background:#ffffff0a;cursor:pointer;font-size:11px;font-weight:500;color:#64748b;transition:border-color .12s,background .12s,color .12s;line-height:1}.o2d-vis-btn:hover{border-color:#3b82f6;color:#94a3b8;background:#3b82f614}.o2d-vis-btn.active{border-color:#3b82f6;background:#3b82f626;color:#60a5fa}.o2d-vis-icon{font-size:12px;line-height:1}.o2d-view-mode-group{display:flex;border:1.5px solid #334155;border-radius:6px;overflow:hidden}.o2d-view-mode-btn{padding:4px 9px;background:transparent;border:none;border-right:1px solid #334155;color:#94a3b8;font-size:11px;font-weight:500;cursor:pointer;transition:background .12s,color .12s;line-height:1;white-space:nowrap}.o2d-view-mode-btn:last-child{border-right:none}.o2d-view-mode-btn:hover{background:#3b82f61f;color:#60a5fa}.o2d-view-mode-btn.active{background:#3b82f638;color:#93c5fd;font-weight:600}.o2d-occl-tile{position:relative;width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid #2a3a5a;border-radius:6px;background:#ffffff05;overflow:hidden}.o2d-occl-tile svg{width:38px;height:32.5px;display:block;pointer-events:none}.tooth-svg #bone-base{fill-opacity:.14}.tooth-svg #gum-base{fill-opacity:.42}.o2d-occl-tile #bone-base{fill-opacity:.14}.o2d-occl-tile #gum-base{display:none!important}.o2d-occl-spacer{width:40px;height:40px;flex-shrink:0}.o2d-occl-tile.is-missing svg{opacity:.28}.o2d-chart-wrap:not(.o2d-map-mode) .o2d-faces-x{display:none}.hide-bone #bone-base,.hide-bone #gum-base,.hide-bone [id^=bone],.hide-bone [id^=gum],.hide-pulp #pulp,.hide-pulp [id^=pulp],.hide-pulp [id*=-pulp],.hide-pulp #dental-pulp{display:none!important}.o2d-faces-tile{cursor:crosshair}.o2d-face-sector{transition:filter .08s;cursor:crosshair}.o2d-face-sector:hover{filter:brightness(1.5)}.odontogram2d:not(.tool-active) .o2d-faces-tile,.odontogram2d:not(.tool-active) .o2d-face-sector{cursor:pointer}.o2d-tooth-col.o2d-sel .o2d-faces-tile{outline:2px solid rgba(59,130,246,.5);outline-offset:1px;border-radius:4px}.o2d-tooth-col.o2d-bridge-first .o2d-faces-tile{outline:2px solid rgba(168,85,247,.9);outline-offset:1px;border-radius:4px;animation:bridge-pulse 1s ease-in-out infinite}.o2d-tooth-col.o2d-bridge-first .tooth-tile{border-color:#a855f7;box-shadow:0 0 0 3px #a855f74d inset}@keyframes bridge-pulse{0%,to{outline-color:#a855f7e6}50%{outline-color:#a855f74d}}.o2d-bridge-pending{color:#c084fc;font-weight:600}.o2d-bridge-span-error{color:#f87171;font-weight:600;animation:fade-in-brief .15s ease}.o2d-bridge-role-badge{display:inline-block;padding:1px 5px;border-radius:9999px;font-size:9px;font-weight:700;background:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.35);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.o2d-bridge-role-badge--pontic{background:#a855f714;color:#a78bfa;font-style:italic}.o2d-smart-suggestions{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(99,102,241,.2)}.o2d-smart-suggestions-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#6366f1;margin-bottom:4px;font-weight:600}.o2d-smart-suggestions-chips{display:flex;flex-wrap:wrap;gap:4px}.o2d-smart-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:99px;font-size:10px;cursor:pointer;background:#6366f11a;border:1px solid rgba(99,102,241,.35);color:#818cf8;transition:background .12s,transform .08s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.o2d-smart-chip:hover{background:#6366f138;transform:scale(1.04);color:#a5b4fc}.o2d-smart-chip:active{transform:scale(.97)}.o2d-panel-finding-header{display:flex;align-items:center;gap:4px}.o2d-panel-finding-header .o2d-panel-finding{flex:1;min-width:0}.o2d-finding-delete-btn{flex-shrink:0;width:20px;height:20px;border:none;border-radius:4px;background:#ef44441f;color:#ef4444;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s}.o2d-panel-finding-row:hover .o2d-finding-delete-btn{opacity:1}.o2d-finding-delete-btn:hover{background:#ef444440}.o2d-finding-comment{width:100%;margin-top:3px;padding:2px 6px;font-size:10px;background:#1e293b99;border:1px solid #334155;border-radius:4px;color:#94a3b8;outline:none;box-sizing:border-box}.o2d-finding-comment::-moz-placeholder{color:#475569}.o2d-finding-comment::placeholder{color:#475569}.o2d-finding-comment:focus{border-color:#3b82f6;color:#e2e8f0}.o2d-finding-comment-ro{display:block;margin-top:2px;font-size:10px;color:#64748b;font-style:italic}.o2d-tooth-col.o2d-diff .o2d-faces-tile{outline:2px solid rgba(251,191,36,.8);outline-offset:1px;border-radius:4px}.o2d-tooth-col.o2d-diff .tooth-tile{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b40 inset}.o2d-tooth-col.o2d-diff .o2d-fdi-lbl{color:#f59e0b;font-weight:700}.o2d-tooth-col.o2d-planned-dim{opacity:.25;filter:grayscale(.8);pointer-events:none}.odontogram2d{position:relative}.o2d-tooltip{position:absolute;transform:translate(-50%,-100%);background:#1e293b;border:1px solid #334155;border-radius:6px;padding:4px 8px;font-size:11px;color:#cbd5e1;white-space:nowrap;pointer-events:none;z-index:20;box-shadow:0 2px 8px #0006;display:flex;align-items:center;gap:5px}.o2d-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#334155}.o2d-tooltip-fdi{font-family:SF Mono,Fira Mono,monospace;font-weight:700;font-size:10px;color:#60a5fa;background:#3b82f626;padding:1px 4px;border-radius:3px}.o2d-export-btn{padding:5px 10px;border:1.5px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer;font-size:12px;color:#374151;transition:border-color .12s,background .12s}.o2d-export-btn:hover{border-color:#6366f1;background:#eef2ff;color:#4338ca}.o2d-clear-all-btn{padding:5px 10px;border:1.5px solid #fca5a5;border-radius:6px;background:#fff1f2;font-size:12px;font-weight:500;color:#dc2626;cursor:pointer;transition:border-color .12s,background .12s}.o2d-clear-all-btn:hover{border-color:#dc2626;background:#fee2e2}.tooth-tile.is-multi-sel{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa59 inset}.o2d-face-sector:hover{filter:brightness(1.8) saturate(1.2)}.o2d-tooth-panel{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.o2d-tooth-panel-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.o2d-tooth-panel-header strong{color:#e2e8f0;font-size:13px}.o2d-panel-uni{display:inline-block;margin-left:.2em;font-size:11px;font-weight:500;color:#64748b;letter-spacing:.01em}.o2d-multi-badge{background:#a78bfa33;border:1px solid #a78bfa;color:#a78bfa;font-size:11px;padding:2px 6px;border-radius:99px}.o2d-clear-btn{margin-left:auto;padding:4px 10px;border:1.5px solid #475569;border-radius:6px;background:transparent;color:#94a3b8;font-size:12px;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.o2d-clear-btn:hover{border-color:#ef4444;color:#ef4444;background:#ef444414}.o2d-tooth-panel-findings{display:flex;flex-wrap:wrap;gap:6px}.o2d-panel-finding{display:flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid;border-radius:99px;font-size:11px;font-weight:500}.o2d-panel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.o2d-panel-empty{color:#64748b;font-size:12px;font-style:italic}.o2d-panel-note{display:flex;flex-direction:column;gap:4px}.o2d-panel-note-label{font-size:11px;font-weight:600;color:#64748b;letter-spacing:.04em;text-transform:uppercase}.o2d-panel-note-area{width:100%;box-sizing:border-box;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#cbd5e1;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;padding:6px 8px;resize:vertical;min-height:44px;transition:border-color .12s;-webkit-user-select:text;-moz-user-select:text;user-select:text}.o2d-panel-note-area::-moz-placeholder{color:#475569}.o2d-panel-note-area::placeholder{color:#475569}.o2d-panel-note-area:focus{outline:none;border-color:#3b82f6}.o2d-panel-history{display:flex;flex-direction:column;gap:4px}.o2d-panel-history-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#64748b;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:2px 0}.o2d-panel-history-header:hover{color:#94a3b8}.o2d-panel-history-toggle{font-size:10px;color:#475569}.o2d-panel-history-count{background:#3b82f633;color:#60a5fa;font-size:10px;font-weight:700;padding:1px 5px;border-radius:99px;margin-left:auto}.o2d-panel-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:120px;overflow-y:auto}.o2d-panel-history-item{display:flex;align-items:center;gap:6px;font-size:11px;padding:2px 0;border-bottom:1px solid #1e293b}.o2d-panel-history-time{color:#475569;font-family:SF Mono,Fira Mono,monospace;font-size:10px;flex-shrink:0}.o2d-panel-history-action{color:#94a3b8}.o2d-panel-history-detail{color:#60a5fa;font-weight:500;margin-left:auto}@media print{.o2d-toolbar,.o2d-visibility,.o2d-pulp-bar,.o2d-statusbar,.o2d-tooltip,.o2d-tooth-panel,.o2d-attribution,.o2d-panel-note,.o2d-panel-history,.o2d-clear-btn,.o2d-export-btn,.o2d-clear-all-btn,.o2d-undo-btn{display:none!important}.odontogram2d{background:#fff;color:#000}.o2d-chart-wrap{background:#fff!important;border:1px solid #ccc!important;border-radius:0!important;padding:8px!important}.o2d-legend{background:#fff!important;border:1px solid #ccc!important;-moz-column-break-inside:avoid;break-inside:avoid}.o2d-fdi-lbl{color:#000}.o2d-gum-line{background:#888!important;opacity:1!important}.tooth-tile,.o2d-faces-tile{border-color:#999!important;background:#fff!important}.o2d-zone{display:none!important}.o2d-legend-item{color:#000}.o2d-quad-lbl{color:#333}.o2d-help-backdrop,.o2d-help-modal{display:none!important}}.o2d-help-btn{width:26px;height:26px;border-radius:50%;border:1.5px solid #475569;background:transparent;color:#94a3b8;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .12s,color .12s,background .12s}.o2d-help-btn:hover,.o2d-help-btn[aria-expanded=true]{border-color:#6366f1;color:#a5b4fc;background:#6366f11a}.o2d-help-backdrop{position:fixed;inset:0;background:#00000080;z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .12s ease}.o2d-help-modal{background:var(--card, #1e293b);border:1px solid var(--border, #334155);border-radius:.75rem;width:100%;max-width:480px;max-height:80vh;overflow-y:auto;padding:1.25rem;box-shadow:0 20px 60px #00000080}.o2d-help-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.o2d-help-title{font-size:.95rem;font-weight:700;color:var(--foreground, #f1f5f9);margin:0}.o2d-help-close{background:none;border:none;color:var(--muted-foreground, #94a3b8);cursor:pointer;font-size:1rem;padding:.25rem;border-radius:.25rem;transition:color .1s}.o2d-help-close:hover{color:#f1f5f9}.o2d-help-sections{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:480px){.o2d-help-sections{grid-template-columns:1fr}}.o2d-help-section h4{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0 0 .5rem}.o2d-help-list{margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.o2d-help-row{display:flex;align-items:center;gap:.5rem}.o2d-help-row kbd{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.15rem .4rem;border:1px solid #475569;border-radius:.25rem;background:#1e293b;font-family:monospace;font-size:.65rem;color:#cbd5e1;white-space:nowrap;flex-shrink:0}.o2d-help-row dd{margin:0;font-size:.72rem;color:var(--muted-foreground, #94a3b8);display:flex;align-items:center;gap:.35rem}.o2d-help-swatch{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;flex-shrink:0}.o2d-perio-heat{height:4px;width:100%;border-radius:2px;background:var(--heat-color, #374151);flex-shrink:0;transition:background .2s}.o2d-panel-finding-row{display:flex;flex-direction:column;gap:3px;padding:4px 8px;border:1px solid;border-radius:8px;font-size:11px}.o2d-panel-finding-top{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.o2d-status-badge{display:inline-block;padding:1px 6px;border-radius:9999px;font-size:10px;font-weight:600;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.o2d-status-badge:hover{opacity:.8}.o2d-sev-row{display:flex;align-items:center;gap:3px}.o2d-sev-label{font-size:10px;color:#64748b;flex-shrink:0;min-width:2rem}.o2d-sev-btn{padding:1px 5px;border:1px solid #334155;border-radius:4px;background:transparent;color:#94a3b8;font-size:10px;cursor:pointer;transition:all .1s;line-height:1.3}.o2d-sev-btn:hover{border-color:#94a3b8;color:#e2e8f0}.o2d-sev-btn--active{background:#1e40af;border-color:#3b82f6;color:#bfdbfe}.o2d-furcation-grade{display:flex;align-items:center;gap:3px;margin-top:2px}.o2d-furc-label{font-size:10px;color:#64748b;flex-shrink:0}.o2d-furc-btn{padding:1px 6px;border:1px solid #334155;border-radius:4px;background:transparent;color:#94a3b8;font-size:10px;cursor:pointer;transition:all .1s;font-weight:600;line-height:1.3}.o2d-furc-btn:hover{border-color:#f97316;color:#fb923c}.o2d-furc-btn--active{background:#f9731626;border-color:#f97316;color:#fb923c}.o2d-crown-lock-hint{padding:4px 10px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);border-radius:6px;font-size:11px;color:#fbbf24;animation:fade-in-brief .2s ease}@keyframes fade-in-brief{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.o2d-panel-finding--planned{opacity:.85;border-style:dashed}.o2d-panel-finding--completed{opacity:.65}.o2d-panel-finding--rejected{opacity:.45;text-decoration:line-through}.o2d-score-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;flex-wrap:wrap}.o2d-score-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;border-width:1px;border-style:solid;font-weight:700;transition:all .3s}.o2d-score-num{font-size:18px;font-variant-numeric:tabular-nums;line-height:1}.o2d-score-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.o2d-score-urgency{font-size:12px;font-weight:700;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:9999px;padding:3px 8px}.o2d-score-cpod{font-size:11px;color:#475569;display:flex;flex-direction:column;line-height:1.3}.o2d-score-cpod-detail{font-size:10px;color:#94a3b8}.o2d-score-affected{font-size:11px;color:#64748b;margin-left:auto}.o2d-patient-explainer{border:1px solid #c7d2fe;border-radius:8px;overflow:hidden;background:#eef2ff}.o2d-explainer-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:transparent;border:none;cursor:pointer;text-align:left;font-size:12px;font-weight:600;color:#3730a3}.o2d-explainer-toggle:hover{background:#e0e7ff}.o2d-explainer-emoji{font-size:16px;flex-shrink:0}.o2d-explainer-headline{flex:1}.o2d-explainer-caret{font-size:10px;color:#6366f1}.o2d-explainer-body{padding:0 10px 10px;display:flex;flex-direction:column;gap:8px}.o2d-explainer-row{border-radius:6px;padding:7px 9px;background:#fff;border:1px solid #e0e7ff}.o2d-explainer-row p{margin:3px 0 0;font-size:11px;color:#374151;line-height:1.5}.o2d-explainer-label{font-size:10px;font-weight:700;color:#6366f1;text-transform:uppercase;letter-spacing:.05em}.o2d-explainer-warning{border-color:#fed7aa;background:#fff7ed}.o2d-explainer-warning .o2d-explainer-label{color:#c2410c}.o2d-explainer-action{border-color:#bbf7d0;background:#f0fdf4}.o2d-explainer-action .o2d-explainer-label{color:#166534}.o2d-explainer-count{font-size:10px;font-weight:700;padding:1px 6px;border-radius:9999px;background:#c7d2fe;color:#3730a3}.o2d-explainer-others ul{margin:3px 0 0;padding-left:16px;font-size:11px;color:#374151;line-height:1.5}:global(.dark) .o2d-explainer-count{background:#312e81;color:#c7d2fe}:global(.dark) .o2d-explainer-others ul{color:#cbd5e1}:global(.dark) .o2d-score-bar{background:#0f172a;border-color:#1e293b}:global(.dark) .o2d-score-cpod{color:#94a3b8}:global(.dark) .o2d-score-affected{color:#64748b}:global(.dark) .o2d-patient-explainer{background:#1e1b4b;border-color:#3730a3}:global(.dark) .o2d-explainer-toggle{color:#a5b4fc}:global(.dark) .o2d-explainer-toggle:hover{background:#1e1b4b}:global(.dark) .o2d-explainer-row{background:#0f0a2a;border-color:#312e81}:global(.dark) .o2d-explainer-row p{color:#cbd5e1}.o2d-voice-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:9999px;border:1.5px solid #e2e8f0;background:#fff;color:#374151;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.o2d-voice-btn:hover{border-color:#6366f1;color:#6366f1}.o2d-voice-btn--active{background:#ef4444;border-color:#dc2626;color:#fff;animation:voice-pulse 1.5s ease-in-out infinite}.o2d-voice-btn--sending{opacity:.7;cursor:wait}@keyframes voice-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}.o2d-voice-pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:#fff;animation:blink .8s step-start infinite}@keyframes blink{50%{opacity:0}}.o2d-voice-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(99,102,241,.3);border-top-color:#6366f1;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.o2d-voice-banner{padding:8px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px}.o2d-voice-transcript{font-size:12px;color:#0369a1;margin:0 0 4px;font-style:italic}.o2d-voice-result{font-size:12px;color:#065f46;margin:0;font-weight:500}.o2d-before-after-btn{padding:3px 10px;border-radius:9999px;border:1.5px solid #6366f1;background:transparent;color:#6366f1;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;margin-left:auto}.o2d-before-after-btn:hover,.o2d-before-after-btn.active{background:#6366f1;color:#fff}.o2d-score-delta{font-size:11px;color:#64748b;font-weight:500}.o2d-score-delta.positive{color:#059669}.o2d-score-after{opacity:.75}.odontogram2d.o2d-after-mode .o2d-score-badge{opacity:.5;font-style:italic}.o2d-explainer-send-btn{width:100%;margin-top:6px;padding:7px 12px;border-radius:8px;border:none;background:#4f46e5;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.o2d-explainer-send-btn:hover{background:#4338ca}.o2d-explainer-send-btn:disabled{opacity:.6;cursor:wait}.o2d-explainer-send-btn:disabled:not(:hover){cursor:not-allowed}.o2d-explainer-send-error{box-sizing:border-box;width:100%;margin:6px 0 0;padding:6px 8px;border-radius:6px;background:#fef2f2;color:#b91c1c;font-size:11px;line-height:1.4}.o2d-microscope-backdrop{position:fixed;inset:0;z-index:500;background:#0000008c;display:flex;align-items:center;justify-content:center;animation:fade-in-brief .15s ease}.o2d-microscope-modal{background:#fff;border-radius:16px;box-shadow:0 24px 64px #0000004d;width:min(90vw,480px);max-height:85vh;overflow-y:auto;animation:slide-in-up .2s ease}@keyframes slide-in-up{0%{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}.o2d-microscope-header{display:flex;align-items:center;gap:10px;padding:16px 20px 12px;border-bottom:1px solid #e2e8f0}.o2d-microscope-fdi{font-size:24px;font-weight:800;color:#0f172a}.o2d-microscope-name{font-size:14px;font-weight:600;color:#334155;flex:1}.o2d-microscope-absent{font-size:10px;font-weight:700;color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:9999px;padding:2px 8px}.o2d-microscope-close{width:28px;height:28px;border-radius:50%;border:1px solid #e2e8f0;background:transparent;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px}.o2d-microscope-close:hover{background:#f1f5f9;color:#0f172a}.o2d-microscope-body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px}.o2d-microscope-faces{display:flex;justify-content:center}.o2d-microscope-faces svg{width:80px;height:80px}.o2d-microscope-section{font-size:10px;font-weight:700;color:#6366f1;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}.o2d-microscope-findings{display:flex;flex-direction:column;gap:4px}.o2d-microscope-finding-row{display:flex;align-items:center;gap:6px;font-size:13px;color:#334155}.o2d-microscope-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.o2d-microscope-surf{font-size:11px;color:#94a3b8;margin-left:auto}.o2d-microscope-empty{font-size:12px;color:#94a3b8;font-style:italic}.o2d-microscope-explainer{display:flex;flex-direction:column;gap:6px}.o2d-microscope-exp-headline{font-size:14px;font-weight:700;color:#1e1b4b}.o2d-microscope-exp-text{font-size:12px;color:#374151;margin:0;line-height:1.5}.o2d-microscope-warning{font-size:11px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:6px 8px}.o2d-microscope-action{font-size:11px;color:#065f46;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:6px 8px}:global(.dark) .o2d-microscope-modal{background:#0f172a}:global(.dark) .o2d-microscope-header{border-color:#1e293b}:global(.dark) .o2d-microscope-fdi{color:#f1f5f9}:global(.dark) .o2d-microscope-name{color:#94a3b8}:global(.dark) .o2d-microscope-finding-row{color:#cbd5e1}:global(.dark) .o2d-microscope-exp-headline{color:#a5b4fc}:global(.dark) .o2d-microscope-exp-text{color:#94a3b8}:global(.dark) .o2d-voice-banner{background:#0c1a2e;border-color:#1e3a5f}:global(.dark) .o2d-voice-btn{background:#0f172a;border-color:#1e293b;color:#94a3b8}.o2d-collab-peers{display:flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px 3px 4px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px}.o2d-collab-avatar{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:2px solid #fff;font-size:11px;font-weight:700;color:#fff;cursor:default;box-shadow:0 1px 3px #00000026;flex-shrink:0}.o2d-collab-label{font-size:11px;font-weight:500;color:#166534;white-space:nowrap}.o2d-collab-highlight{outline:2.5px solid var(--collab-color, #7c3aed);outline-offset:2px;border-radius:4px;z-index:1}.tooth-svg svg[data-eruption] #tooth,.tooth-svg svg[data-eruption] #milktooth,.o2d-occl-tile svg[data-eruption]{opacity:.3}.tooth-svg svg[data-eruption=exfoliated] #tooth,.tooth-svg svg[data-eruption=exfoliated] #milktooth,.o2d-occl-tile svg[data-eruption=exfoliated]{opacity:.13}.o2d-super-badge{position:absolute;top:0;left:1px;box-sizing:border-box;min-width:14px;height:12px;padding:0 2px;border-radius:9999px;background:#0f766e;color:#fff;font-size:8px;font-weight:700;line-height:12px;text-align:center;white-space:nowrap;z-index:10;pointer-events:none}.o2d-arch-lower .o2d-super-badge{top:auto;bottom:0}.o2d-proposal-badge{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:9999px;background:#f59e0b;color:#fff;font-size:8px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:10;animation:o2d-proposal-pulse 1.8s ease-in-out infinite;pointer-events:none}@keyframes o2d-proposal-pulse{0%,to{box-shadow:0 0 #f59e0b99}50%{box-shadow:0 0 0 4px #f59e0b00}}:global(.dark) .o2d-collab-peers{background:#0f2e1a;border-color:#166534}:global(.dark) .o2d-collab-label{color:#86efac}.o2d-autopilot-btn{display:flex;align-items:center;gap:6px;padding:5px 10px;background:#fffbeb;border:1.5px solid #f59e0b;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;color:#92400e;transition:background .15s,border-color .15s}.o2d-autopilot-btn:hover:not(:disabled){background:#fef3c7;border-color:#d97706}.o2d-autopilot-btn--active{background:#fee2e2!important;border-color:#ef4444!important;color:#991b1b!important;animation:o2d-autopilot-pulse 1.8s ease-in-out infinite}.o2d-autopilot-btn--sending{background:#f0fdf4!important;border-color:#22c55e!important;color:#166534!important}.o2d-autopilot-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes o2d-autopilot-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 5px #ef444400}}.o2d-autopilot-panel{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#fff7ed;border:1.5px solid #f59e0b;border-radius:8px}.o2d-autopilot-header{display:flex;align-items:center;gap:8px;font-size:13px}.o2d-autopilot-hint{font-size:11px;color:#92400e;margin-left:auto}.o2d-autopilot-transcript{font-size:13px;color:#1c1917;background:#fff;border:1px solid #fed7aa;border-radius:6px;padding:8px 10px;max-height:80px;overflow-y:auto;line-height:1.5}.o2d-autopilot-preview{font-size:12px;color:#374151;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:8px 10px}.o2d-autopilot-preview ul{margin:4px 0 0 16px;padding:0}.o2d-autopilot-preview li{margin:2px 0}.o2d-autopilot-actions{display:flex;gap:8px;align-items:center}.o2d-autopilot-confirm{padding:5px 14px;background:#059669;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s}.o2d-autopilot-confirm:hover:not(:disabled){background:#047857}.o2d-autopilot-confirm:disabled{opacity:.4;cursor:not-allowed}.o2d-autopilot-cancel{padding:5px 12px;background:transparent;border:1.5px solid #d1d5db;border-radius:6px;color:#374151;font-size:12px;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s}.o2d-autopilot-cancel:hover{background:#f3f4f6;border-color:#9ca3af}:global(.dark) .o2d-autopilot-panel{background:#1c1400;border-color:#d97706}:global(.dark) .o2d-autopilot-transcript{background:#0f172a;border-color:#78350f;color:#e2e8f0}:global(.dark) .o2d-autopilot-preview{background:#0f2e1a;border-color:#166534;color:#d1fae5}:global(.dark) .o2d-autopilot-btn{background:#1c1400;border-color:#d97706;color:#fcd34d}:global(.dark) .o2d-autopilot-cancel{background:transparent;border-color:#374151;color:#94a3b8}.o2d-timeline-bar{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:4px 0}.o2d-timeline-banner{font-size:12px;font-weight:600;color:#92400e;display:flex;align-items:center;gap:6px}.o2d-timeline-banner-label{font-weight:400;color:#b45309}.o2d-timeline-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.o2d-timeline-nav{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;transition:background .15s}.o2d-timeline-nav:hover:not(:disabled){background:#fde68a}.o2d-timeline-nav:disabled{opacity:.4;cursor:not-allowed}.o2d-timeline-slider{flex:1;min-width:100px;accent-color:#f59e0b}.o2d-timeline-date{font-size:12px;font-weight:600;color:#92400e;min-width:90px}.o2d-timeline-session{font-size:11px;color:#b45309}.o2d-timeline-current-btn{background:#f59e0b;color:#fff;border:none;border-radius:5px;padding:3px 10px;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s}.o2d-timeline-current-btn:hover{background:#d97706}:global(.dark) .o2d-timeline-bar{background:#1c1400;border-color:#78350f}:global(.dark) .o2d-timeline-banner{color:#fbbf24}:global(.dark) .o2d-timeline-banner-label{color:#f59e0b}:global(.dark) .o2d-timeline-date{color:#fbbf24}:global(.dark) .o2d-timeline-session{color:#f59e0b}:global(.dark) .o2d-timeline-nav{background:#292000;border-color:#78350f;color:#fbbf24}.o2d-quadrant-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 0}.o2d-quadrant-toggle-btn{background:#f1f5f9;border:1px solid #cbd5e1;color:#475569;border-radius:5px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s,border-color .15s}.o2d-quadrant-toggle-btn:hover{background:#e2e8f0}.o2d-quadrant-toggle-btn.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.o2d-quadrant-cell{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:8px;border:1.5px solid transparent;font-size:11px}.o2d-quadrant-cell.level-low{background:#f0fdf4;border-color:#86efac}.o2d-quadrant-cell.level-medium{background:#fffbeb;border-color:#fcd34d}.o2d-quadrant-cell.level-high{background:#fff7ed;border-color:#fdba74}.o2d-quadrant-cell.level-critical{background:#fef2f2;border-color:#fca5a5}.o2d-quadrant-cell-header{display:flex;align-items:center;gap:6px}.o2d-quadrant-label{font-weight:700;font-size:13px;color:#1e293b}.o2d-quadrant-score{font-weight:700;font-size:15px;margin-left:auto}.o2d-quadrant-cell.level-low .o2d-quadrant-score{color:#15803d}.o2d-quadrant-cell.level-medium .o2d-quadrant-score{color:#d97706}.o2d-quadrant-cell.level-high .o2d-quadrant-score{color:#ea580c}.o2d-quadrant-cell.level-critical .o2d-quadrant-score{color:#dc2626}.o2d-quadrant-level-icon{font-size:14px}.o2d-quadrant-bar-wrap{height:4px;background:#e2e8f0;border-radius:2px;overflow:hidden}.o2d-quadrant-bar{height:100%;border-radius:2px;transition:width .3s ease}.o2d-quadrant-cell.level-low .o2d-quadrant-bar{background:#22c55e}.o2d-quadrant-cell.level-medium .o2d-quadrant-bar{background:#f59e0b}.o2d-quadrant-cell.level-high .o2d-quadrant-bar{background:#f97316}.o2d-quadrant-cell.level-critical .o2d-quadrant-bar{background:#ef4444}.o2d-quadrant-cell-detail{display:flex;flex-direction:column;gap:2px;font-size:10px;color:#64748b}.o2d-quadrant-cell-name{font-weight:600;color:#374151;font-size:10px}.o2d-quadrant-urgent{color:#dc2626;font-weight:600}.o2d-quadrant-findings{color:#94a3b8}.o2d-quadrant-sari-btn{font-size:10px;color:#6366f1;cursor:pointer;text-decoration:underline;text-underline-offset:2px;margin-top:2px;align-self:flex-start}.o2d-quadrant-sari-btn:hover{color:#4f46e5}:global(.dark) .o2d-quadrant-cell.level-low{background:#052e16;border-color:#166534}:global(.dark) .o2d-quadrant-cell.level-medium{background:#1c1400;border-color:#78350f}:global(.dark) .o2d-quadrant-cell.level-high{background:#1c0a00;border-color:#9a3412}:global(.dark) .o2d-quadrant-cell.level-critical{background:#1c0000;border-color:#991b1b}:global(.dark) .o2d-quadrant-label{color:#f1f5f9}:global(.dark) .o2d-quadrant-cell-name{color:#94a3b8}:global(.dark) .o2d-quadrant-toggle-btn{background:#1e293b;border-color:#334155;color:#94a3b8}:global(.dark) .o2d-quadrant-toggle-btn.active{background:#1e3a5f;border-color:#3b82f6;color:#93c5fd}.o2d-cost-estimate{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;font-size:12px;color:#166534;white-space:nowrap}.o2d-cost-urgent{color:#dc2626;font-weight:600}.o2d-tooth-cost{font-size:12px;color:#166534;background:#f0fdf4;border:1px solid #86efac;border-radius:5px;padding:4px 8px;margin:4px 0;display:inline-block}@keyframes o2d-cost-flash-anim{0%{background:#dcfce7;border-color:#4ade80}40%{background:#bbf7d0;border-color:#22c55e;transform:scale(1.02)}to{background:#f0fdf4;border-color:#86efac;transform:scale(1)}}.o2d-cost-flash{animation:o2d-cost-flash-anim .6s ease-out forwards}:global(.dark) .o2d-cost-estimate{background:#052e16;border-color:#166534;color:#4ade80}:global(.dark) .o2d-tooth-cost{background:#052e16;border-color:#166534;color:#4ade80}.o2d-photo-ia-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1.5px solid #7c3aed;border-radius:6px;background:#fff;color:#7c3aed;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.o2d-photo-ia-btn:hover,.o2d-photo-ia-btn.active{background:#7c3aed;color:#fff}.o2d-photo-panel{background:#f8f5ff;border:1.5px solid #c4b5fd;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.o2d-photo-panel-header{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#4c1d95}.o2d-photo-close-btn{background:none;border:none;cursor:pointer;font-size:16px;color:#6b7280;line-height:1;padding:2px 6px;border-radius:4px}.o2d-photo-close-btn:hover{background:#e5e7eb}.o2d-photo-upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.o2d-photo-file-label{display:inline-block;padding:6px 12px;background:#fff;border:1.5px dashed #a78bfa;border-radius:6px;cursor:pointer;font-size:12px;color:#4c1d95;transition:border-color .12s}.o2d-photo-file-label:hover{border-color:#7c3aed}.o2d-photo-file-input{display:none}.o2d-photo-camera-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#fff;border:1.5px solid #7c3aed;border-radius:6px;color:#6d28d9;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.o2d-photo-camera-btn:hover,.o2d-photo-camera-btn.active{background:#7c3aed;color:#fff}.o2d-photo-camera-btn:disabled{opacity:.55;cursor:not-allowed}.o2d-photo-camera-btn:focus-visible,.o2d-cam button:focus-visible,.o2d-cam select:focus-visible{outline:2px solid #4c1d95;outline-offset:2px}.o2d-cam{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:#fff;border:1.5px solid #a78bfa;border-radius:8px}.o2d-cam:focus{outline:none}.o2d-cam-title{font-size:13px;color:#4c1d95}.o2d-cam-hint,.o2d-cam-note{margin:0;max-width:none;font-size:11px;color:#6b7280;line-height:1.5}.o2d-cam-device{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#4c1d95}.o2d-cam-device select{flex:1 1 200px;min-width:0;max-width:100%;padding:5px 8px;border:1.5px solid #c4b5fd;border-radius:6px;background:#fff;font-size:12px}.o2d-cam-stage{position:relative;background:#1e1b4b;border-radius:6px;overflow:hidden;aspect-ratio:4 / 3;max-height:340px}.o2d-cam-video{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.o2d-cam-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:#ede9fe;font-size:13px}.o2d-cam-status{margin:0;min-height:16px;font-size:12px;color:#4c1d95}.o2d-cam-res{color:#6b7280;margin-left:4px}.o2d-cam-actions{display:flex;gap:8px;flex-wrap:wrap}.o2d-cam-actions button{min-height:32px}.o2d-cam-actions button:disabled{opacity:.55;cursor:not-allowed}.o2d-cam-cancel{padding:6px 14px;background:#fff;color:#4c1d95;border:1.5px solid #c4b5fd;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.o2d-cam-cancel:hover{background:#ede9fe}@media(pointer:coarse){.o2d-photo-camera-btn,.o2d-cam-actions button,.o2d-cam-device select{min-height:44px}}.o2d-photo-preview{max-height:200px;overflow:hidden;border-radius:6px;border:1px solid #c4b5fd}.o2d-photo-preview img{width:100%;max-height:200px;-o-object-fit:contain;object-fit:contain;background:#1e1b4b}.o2d-photo-analyze-btn{padding:6px 14px;background:#7c3aed;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s}.o2d-photo-analyze-btn:hover{background:#6d28d9}.o2d-photo-analyzing{display:flex;align-items:center;gap:8px;font-size:13px;color:#7c3aed;padding:8px 0}.o2d-photo-obs{font-size:12px;color:#374151;background:#ede9fe;padding:8px 10px;border-radius:6px;line-height:1.5}.o2d-photo-region{color:#6d28d9;font-size:11px}.o2d-photo-error{font-size:12px;color:#b91c1c;background:#fef2f2;padding:8px 10px;border-radius:6px;line-height:1.5}.o2d-photo-results{display:flex;flex-direction:column;gap:6px}.o2d-photo-results-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:#4c1d95}.o2d-photo-results-hint{font-size:11px;color:#6b7280;font-weight:400}.o2d-photo-result-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:#fff;border:1.5px solid #e2e8f0;border-radius:7px;cursor:pointer;transition:border-color .12s,background .12s}.o2d-photo-result-item:hover{border-color:#a78bfa}.o2d-photo-result-item.selected{border-color:#7c3aed;background:#f5f3ff}.o2d-photo-result-check{margin-top:2px;accent-color:#7c3aed;cursor:pointer}.o2d-photo-result-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.o2d-photo-result-tooth{background:#7c3aed;color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:4px}.o2d-photo-result-type{font-size:12px;font-weight:600;color:#1e293b}.o2d-photo-result-surfaces{font-size:11px;color:#64748b;background:#f1f5f9;padding:1px 5px;border-radius:4px}.o2d-photo-result-desc{font-size:11px;color:#6b7280;line-height:1.4;margin-top:4px;width:100%}.o2d-photo-confidence-badge{font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px}.o2d-photo-conf--high{background:#dcfce7;color:#166534}.o2d-photo-conf--medium{background:#fef9c3;color:#854d0e}.o2d-photo-conf--low{background:#fee2e2;color:#991b1b}.o2d-photo-apply-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:4px}.o2d-photo-selected-count{font-size:11px;color:#6b7280}.o2d-photo-apply-btn{padding:7px 16px;background:#16a34a;color:#fff;border:none;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s}.o2d-photo-apply-btn:hover{background:#15803d}.o2d-photo-apply-btn:disabled{background:#86efac;cursor:not-allowed}.o2d-photo-no-findings{font-size:12px;color:#6b7280;font-style:italic;padding:6px 0}.o2d-photo-privacy{margin:0;font-size:12px;color:#4b5563}.o2d-photo-result-item{flex-direction:column;cursor:default;border-style:dashed}.o2d-photo-result-item--accepted{border-style:solid;border-color:#16a34a;background:#f0fdf4}.o2d-photo-result-item--rejected{border-color:#d1d5db;background:#f9fafb;opacity:.75}.o2d-photo-result-item--rejected .o2d-photo-result-label{text-decoration:line-through}.o2d-photo-ia-badge{display:inline-block;padding:1px 6px;border-radius:999px;border:1px dashed #7c3aed;background:#ede9fe;color:#5b21b6;font-size:10px;font-weight:700;letter-spacing:.04em}.o2d-photo-result-label{font-size:13px;font-weight:600;color:#1f2937}.o2d-photo-state{font-size:11px;color:#6b7280;margin-left:auto}.o2d-photo-state--accepted{color:#166534;font-weight:600}.o2d-photo-state--rejected{color:#991b1b}.o2d-photo-warn{font-size:11px;color:#92400e}.o2d-photo-bulk-row{display:flex;gap:6px;flex-wrap:wrap}.o2d-photo-bulk-btn{padding:4px 10px;border:1px solid #c4b5fd;border-radius:6px;background:#fff;color:#4c1d95;font-size:12px;cursor:pointer}.o2d-photo-bulk-btn:hover{background:#ede9fe}.o2d-photo-result-actions{display:flex;gap:6px}.o2d-photo-decide{padding:4px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;color:#374151;font-size:12px;cursor:pointer}.o2d-photo-decide--accept[aria-pressed=true]{background:#16a34a;border-color:#16a34a;color:#fff}.o2d-photo-decide--reject[aria-pressed=true]{background:#6b7280;border-color:#6b7280;color:#fff}.o2d-photo-done{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #16a34a;border-radius:7px;background:#f0fdf4;font-size:12px;color:#14532d}.o2d-share-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border:1.5px solid #0284c7;border-radius:6px;background:#fff;color:#0284c7;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.o2d-share-btn:hover{background:#0284c7;color:#fff}.o2d-share-btn:disabled{opacity:.6;cursor:not-allowed}.o2d-share-modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:9000;display:flex;align-items:center;justify-content:center}.o2d-share-modal{background:#fff;border-radius:12px;padding:20px 24px;max-width:420px;width:92%;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;gap:14px}.o2d-share-modal-header{display:flex;align-items:center;justify-content:space-between;font-size:15px;color:#0f172a}.o2d-share-modal-close{background:none;border:none;cursor:pointer;font-size:17px;color:#6b7280;padding:2px 6px;border-radius:4px}.o2d-share-modal-close:hover{background:#f1f5f9}.o2d-share-modal-patient{font-size:13px;color:#374151}.o2d-share-modal-actions{display:flex;flex-direction:column;gap:8px}.o2d-share-btn-wa{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#25d366;color:#fff;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s}.o2d-share-btn-wa:hover{background:#1ebe57}.o2d-share-btn-copy{display:flex;align-items:center;gap:8px;padding:9px 16px;background:#f1f5f9;color:#0f172a;border:1.5px solid #cbd5e1;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.o2d-share-btn-copy:hover{background:#e2e8f0}.o2d-share-btn-pdf{display:flex;align-items:center;gap:8px;padding:9px 16px;background:#fff7ed;color:#c2410c;border:1.5px solid #fed7aa;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s}.o2d-share-btn-pdf:hover{background:#ffedd5}.o2d-share-qr{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.o2d-share-qr-label{font-size:11px;color:#64748b;margin:0}.o2d-share-qr img{border-radius:4px}.o2d-share-url-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.o2d-share-url-label{font-size:11px;color:#94a3b8;white-space:nowrap}.o2d-share-url{font-size:11px;color:#0284c7;word-break:break-all;font-family:monospace}.o2d-lingual-toggle{position:absolute;left:50%;transform:translate(-50%);z-index:6;display:block;width:36px;padding:2px 4px;margin:0;box-shadow:0 1px 4px #00000073;background:#1e293b;color:#94a3b8;border:1px solid #334155;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.05em;cursor:pointer;text-align:center;transition:background .12s,color .12s;line-height:1.4}.o2d-lingual-toggle:hover{background:#334155;color:#e2e8f0}.o2d-arch-upper .o2d-lingual-toggle{top:calc(100% + 3px)}.o2d-arch-lower .o2d-lingual-toggle{bottom:calc(100% + 3px)}@media(pointer:coarse){.o2d-lingual-toggle{width:auto;min-width:40px;min-height:40px}}.o2d-proactive-card{position:relative;padding:12px 14px 10px;background:linear-gradient(135deg,#0f2027,#0c1a2e);border:1.5px solid #0ea5e9;border-radius:10px;box-shadow:0 2px 16px #0ea5e926;animation:o2d-proactive-in .25s ease}@keyframes o2d-proactive-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.o2d-proactive-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.o2d-proactive-icon{font-size:16px;line-height:1}.o2d-proactive-title{flex:1;font-size:12px;font-weight:700;color:#38bdf8;letter-spacing:.02em}.o2d-proactive-dismiss{background:none;border:none;color:#64748b;font-size:16px;line-height:1;cursor:pointer;padding:0 2px;transition:color .12s}.o2d-proactive-dismiss:hover{color:#e2e8f0}.o2d-proactive-text{font-size:12px;color:#cbd5e1;margin:0 0 8px;line-height:1.5}.o2d-proactive-actions{display:flex;flex-wrap:wrap;gap:6px}.o2d-proactive-action-chip{padding:4px 10px;background:#0f3352;color:#7dd3fc;border:1px solid #0ea5e9;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.o2d-proactive-action-chip:hover{background:#0ea5e9;color:#fff}
