.dental-viewer{width:100%;min-width:0;max-width:100%}.dental-view-tabs{display:flex!important;width:100%!important;height:auto!important;gap:6px;padding:5px!important;background:#e8f0ed!important;border-radius:12px!important;margin-bottom:12px}.dental-view-tabs button{flex:1;min-width:0;min-height:42px;border:0;border-radius:9px;padding:8px 14px;font-size:14px;font-weight:700;color:#506a63;cursor:pointer;background:transparent}.dental-view-tabs button[data-active],.dental-view-tabs button[aria-pressed=true]{background:#fff;color:#126b5b;box-shadow:0 2px 7px #153c3014}.dental-viewer [hidden]{display:none!important}.dental-3d-host{width:100%;max-width:100%;min-width:0;border:1px solid #dce9e5;border-radius:20px;overflow:hidden;background:#f3f8f7;min-height:420px}.dental-3d-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:12px;border-bottom:1px solid #dce9e5}.dental-3d-toolbar button{border:1px solid #cedfd9;background:#fff;color:#244c42;border-radius:8px;padding:8px 10px;min-height:38px;font-size:13px;cursor:pointer}.dental-3d-toolbar button:hover{background:#e5f2ed}.dental-3d-stage{width:100%;max-width:100%;min-width:0;height:440px}.dental-3d-stage canvas{display:block;width:100%;max-width:100%;height:100%;touch-action:none;cursor:grab}.dental-3d-stage canvas:active{cursor:grabbing}.dental-3d-stage canvas:focus-visible,.dental-viewer button:focus-visible{outline:3px solid #138773;outline-offset:-3px}.dental-3d-status{padding:12px 16px;margin:0!important;font-size:14px;color:#244c42;font-weight:650;background:#fff;border-top:1px solid #dce9e5;overflow-wrap:anywhere}.dental-3d-hint{padding:10px 16px;margin:0!important;font-size:12px;line-height:1.6;color:#61766f;overflow-wrap:anywhere}.dental-3d-host>p[role=status]{padding:24px}
@media(max-width:620px){.dental-view-tabs button{padding-inline:8px;font-size:13px}.dental-3d-stage{height:320px}.dental-3d-toolbar{gap:5px;padding:8px}.dental-3d-toolbar button{flex:1 1 calc(33.333% - 5px);min-width:0;font-size:12px;padding:7px 5px}.dental-3d-host{min-height:360px}}

.dental-selection{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dental-2d-stage,.dental-3d-stage{position:relative}
.dental-callout-layer{position:absolute;inset:0;z-index:3;pointer-events:none}
.dental-callout-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.dental-callout-line-halo,.dental-callout-line-core{fill:none;stroke-linecap:round;stroke-linejoin:round}
.dental-callout-line-halo{stroke:#fff;stroke-width:8;filter:drop-shadow(0 2px 3px rgba(18,53,89,.3))}
.dental-callout-line-core{stroke:#155b92;stroke-width:3.5}
.dental-callout-bubble{position:absolute;z-index:1;min-width:150px;max-width:min(230px,calc(100% - 16px));padding:11px 14px;border:2px solid #e976a1;border-radius:16px;background:#fff8fb;box-shadow:0 10px 28px rgba(95,43,84,.18);color:#31405a;text-align:left;overflow-wrap:anywhere}
.dental-callout-bubble strong,.dental-callout-bubble span{display:block}
.dental-callout-bubble strong{color:#a73e70;font-size:.78rem;margin-bottom:3px}
.dental-callout-bubble span{font-size:.84rem;font-weight:700;line-height:1.35}
.number-map button{appearance:none;aspect-ratio:1;min-width:0;border:0;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:.72rem;font-weight:800;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.number-map button.watch{background:#dc263e;color:#fff}
.number-map button:hover{transform:translateY(-2px)}
.number-map button.is-selected{box-shadow:0 0 0 3px #fff,0 0 0 6px #df729a;transform:translateY(-2px)}
.number-map button:focus-visible{outline:3px solid #2e709b;outline-offset:2px}
.dental-tooth-highlight[role="button"]{cursor:pointer}
.dental-tooth-highlight.is-selected{fill:#ec6093;fill-opacity:.86;stroke:#fff;stroke-width:8;filter:drop-shadow(0 0 6px #b63470)}
.dental-tooth-highlight:focus-visible{stroke:#2f6f9c;stroke-width:8;outline:none}
@media(max-width:620px){.number-map button{font-size:.65rem}.dental-callout-bubble{max-width:min(185px,calc(100% - 16px));padding:8px 10px}.dental-callout-bubble span{font-size:.73rem}}
