.tooth16{--t16-outline:#c5ac7c;--t16-outline-strong:#a98d55;--t16-crown-fill:#fffbf6;--t16-root-fill:#f0e6d3d4;--t16-canal-fill:#fcf6ef;--t16-surface-fill:#fffbf6;--t16-fossa-fill:#f8f1e6;--t16-hover-fill:#f3e3c4;--t16-selected-fill:var(--dc-selected-fill,#ef4444);--t16-selected-line:var(--dc-selected-line,#b91c1c);--t16-stroke:.7px;--t16-stroke-fine:.45px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:block;overflow:visible}.tooth16--md{--t16-stroke:1px;--t16-stroke-fine:.7px}.tooth16--lg{--t16-stroke:1.6px;--t16-stroke-fine:1.1px}.tooth16 path{stroke:var(--t16-outline);vector-effect:non-scaling-stroke;stroke-width:var(--t16-stroke);stroke-linejoin:round;transition:fill .12s,stroke .12s}.tooth16 .t16-root{fill:var(--part-color,var(--t16-root-fill))}.tooth16 .t16-canal{fill:var(--part-color,var(--t16-canal-fill))}.tooth16 .t16-crown{fill:var(--part-color,var(--t16-crown-fill))}.tooth16 .t16-crown-occlusal{fill:none;stroke:none}.tooth16 .t16-region-path{fill:var(--part-color,var(--t16-surface-fill));stroke-width:var(--t16-stroke-fine);stroke-linejoin:miter;stroke-miterlimit:4}.tooth16 .t16-region-path[data-region=o]{fill:var(--part-color,var(--t16-fossa-fill))}.tooth16 .t16-line-angle{fill:var(--part-color,transparent);stroke:none;pointer-events:none}.tooth16 .t16-occlusal-outline{fill:none;stroke-width:var(--t16-stroke);pointer-events:none}.tooth16 .t16-hit{cursor:pointer;outline:none}.dental-chart:not(.dental-chart--procedure-mode) .tooth16:not(.is-readonly) .t16-hit:hover>path,.dental-chart:not(.dental-chart--procedure-mode) .tooth16:not(.is-readonly) .t16-hit:focus-visible>path{stroke:#38bdf8;stroke-width:calc(var(--t16-stroke) * 2.5)}.tooth16 .t16-hit.is-selected>path,.tooth16 .t16-hit.is-selected:hover>path,.tooth16 .t16-region-path.is-selected,.tooth16 .is-selected>.t16-crown,.tooth16 .t16-crown.is-selected{fill:var(--t16-selected-fill);stroke:var(--t16-selected-line)}.tooth16 .t16-hit.is-preview>path,.tooth16 .t16-hit.is-preview:hover>path,.tooth16 .t16-region-path.is-preview,.tooth16 .is-preview>.t16-crown,.tooth16 .t16-crown.is-preview{stroke:var(--t16-selected-line)}.tooth16 .tooth-overlay,.tooth16 .tooth-overlay *{pointer-events:none}.tooth16 .tooth-overlay path,.tooth16 .tooth-overlay polyline,.tooth16 .tooth-overlay line,.tooth16 .tooth-overlay circle,.tooth16 .tooth-overlay rect,.tooth16 .tooth-overlay polygon,.tooth16 .tooth-overlay ellipse{vector-effect:non-scaling-stroke;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.tooth16 .tooth-overlay .pfm-fill rect,.tooth16 .tooth-overlay .pfm-fill polygon,.tooth16 .tooth-overlay .pfm-fill circle{stroke:none}.odontogram .tooth .tooth16 .tooth-overlay[data-name=Moved] line,.odontogram .tooth .tooth16 .tooth-overlay[data-name=Rotation] path{fill:none!important}.odontogram .tooth[class*=brokenCoronal_] [data-name=Broken\ Files],.odontogram .tooth[class*=brokenMiddle_] [data-name=Broken\ Files],.odontogram .tooth[class*=brokenApical_] [data-name=Broken\ Files]{display:block!important}.odontogram .tooth[class*=brokenCoronal_] [data-name=Broken\ Files]>[data-name],.odontogram .tooth[class*=brokenMiddle_] [data-name=Broken\ Files]>[data-name],.odontogram .tooth[class*=brokenApical_] [data-name=Broken\ Files]>[data-name]{display:none!important}.odontogram .tooth[class*=brokenCoronal_] [data-name=Broken\ Files]>[data-name$=t],.odontogram .tooth[class*=brokenMiddle_] [data-name=Broken\ Files]>[data-name$=m],.odontogram .tooth[class*=brokenApical_] [data-name=Broken\ Files]>[data-name$=b]{display:block!important}.odontogram .tooth[class*=brokenCoronal_] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenMiddle_] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenApical_] [data-name=Broken\ Files] line{fill:none!important}.odontogram .tooth[class*=brokenCoronal_planned] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenMiddle_planned] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenApical_planned] [data-name=Broken\ Files] line{stroke:#ff4838!important}.odontogram .tooth[class*=brokenCoronal_existing] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenMiddle_existing] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenApical_existing] [data-name=Broken\ Files] line{stroke:#50575e!important}.odontogram .tooth[class*=brokenCoronal_completed] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenMiddle_completed] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenApical_completed] [data-name=Broken\ Files] line{stroke:#00b050!important}.odontogram .tooth[class*=brokenCoronal_in_progress] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenMiddle_in_progress] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenApical_in_progress] [data-name=Broken\ Files] line{stroke:#3786cd!important}.odontogram .tooth[class*=brokenCoronal_rejected] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenMiddle_rejected] [data-name=Broken\ Files] line,.odontogram .tooth[class*=brokenApical_rejected] [data-name=Broken\ Files] line{stroke:#9b37cd!important}.odontogram .tooth[class*=brokenCoronal_] [data-name=root] [data-name=r1],.odontogram .tooth[class*=brokenCoronal_] [data-name=root] [data-name=r1] path,.odontogram .tooth[class*=brokenCoronal_] [data-name=root] [data-name=r2],.odontogram .tooth[class*=brokenCoronal_] [data-name=root] [data-name=r2] path,.odontogram .tooth[class*=brokenCoronal_] [data-name=root] [data-name=r3],.odontogram .tooth[class*=brokenCoronal_] [data-name=root] [data-name=r3] path,.odontogram .tooth[class*=brokenMiddle_] [data-name=root] [data-name=r1],.odontogram .tooth[class*=brokenMiddle_] [data-name=root] [data-name=r1] path,.odontogram .tooth[class*=brokenMiddle_] [data-name=root] [data-name=r2],.odontogram .tooth[class*=brokenMiddle_] [data-name=root] [data-name=r2] path,.odontogram .tooth[class*=brokenMiddle_] [data-name=root] [data-name=r3],.odontogram .tooth[class*=brokenMiddle_] [data-name=root] [data-name=r3] path,.odontogram .tooth[class*=brokenApical_] [data-name=root] [data-name=r1],.odontogram .tooth[class*=brokenApical_] [data-name=root] [data-name=r1] path,.odontogram .tooth[class*=brokenApical_] [data-name=root] [data-name=r2],.odontogram .tooth[class*=brokenApical_] [data-name=root] [data-name=r2] path,.odontogram .tooth[class*=brokenApical_] [data-name=root] [data-name=r3],.odontogram .tooth[class*=brokenApical_] [data-name=root] [data-name=r3] path{opacity:1!important}.tooth16 .tooth-overlay[data-name=veneer]>g{display:none}.odontogram .tooth .tooth16 .tooth-overlay[data-name=bridge]>path{fill-opacity:.5;stroke-opacity:0}.odontogram .tooth [data-optional="1"]{display:none}.odontogram .tooth[class*=porcelain_] [data-name=crown],.odontogram .tooth[class*=porcelain_] [data-name=crown] :where(path,polygon,rect,circle,ellipse,polyline,line),.odontogram .tooth[class*=porcelain_] [data-name=surface] [data-name=shape],.odontogram .tooth[class*=porcelain_] [data-name=surface] [data-name=shape] path,.odontogram .tooth[class*=porcelainBridge_] [data-name=crown],.odontogram .tooth[class*=porcelainBridge_] [data-name=crown] :where(path,polygon,rect,circle,ellipse,polyline,line),.odontogram .tooth[class*=porcelainBridge_] [data-name=surface] [data-name=shape],.odontogram .tooth[class*=porcelainBridge_] [data-name=surface] [data-name=shape] path,.odontogram .tooth[class*=porcelainBridge_] [data-name=bridge],.odontogram .tooth[class*=porcelainBridge_] [data-name=bridge] :where(path,polygon,rect,circle,ellipse,polyline,line){fill:none!important;opacity:1!important}.odontogram .tooth[class*=core_] [data-view=side] [data-name=crown] path.t16-crown,.odontogram .tooth[class*=PostCore_] [data-view=side] [data-name=crown] path.t16-crown{fill:var(--t16-crown-fill)!important;stroke:var(--t16-outline)!important}.odontogram .tooth[class*=core_] [data-name=rctpc] path,.odontogram .tooth[class*=PostCore_] [data-name=rctpc] path{stroke:none}.tooth16.is-readonly .t16-hit{cursor:default}.dental-chart{--dc-tooth-width:58px;--dc-divider:#e6ddcd;--dc-selected-fill:#ef4444;--dc-selected-line:#b91c1c;--dc-rail-width:3rem;flex-direction:row;align-items:stretch;gap:.5rem;width:100%;min-width:0;max-width:100%;margin-top:.5rem;display:flex;position:relative;overflow:hidden}.dental-chart--no-rail{gap:0}.dental-chart__rail{flex:0 0 var(--dc-rail-width);width:var(--dc-rail-width);z-index:1;background:#fff;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:relative}.dental-chart__rail-scopes{border:1px solid var(--color-border,#e5e7eb);background:#fff;border-radius:.375rem;flex-direction:column;align-items:center;gap:.375rem;width:100%;padding:.25rem;display:flex;box-shadow:0 1px 2px #0f172a0f}.dental-chart__rail-add{width:2rem;min-width:2rem;height:2rem;padding:0}.dental-chart--primary{--dc-tooth-width:50px}.dental-chart__arch{justify-content:center;align-items:flex-start;width:100%;display:flex}.dental-chart__tooth{flex-direction:column;flex:0 0 var(--dc-tooth-width);width:var(--dc-tooth-width);border-radius:0;align-items:center;padding:10px 1px 2px;transition:background-color .12s;display:flex;position:relative}.dental-chart .tooth-badge{pointer-events:none;opacity:0;color:#334155;z-index:2;justify-content:center;align-items:center;font-size:1.35rem;font-weight:700;line-height:1;display:flex;position:absolute;inset:18px 0 22px}.dental-chart__arch--lower .dental-chart__tooth{flex-direction:column-reverse;padding:2px 1px 10px}.dental-chart__arch--lower .tooth-badge{inset:22px 0 18px}.dental-chart__tooth.is-pickable{cursor:pointer}.dental-chart__tooth.is-pickable:focus-visible{outline-offset:1px;outline:2px solid #38bdf8}.dental-chart__tooth.is-picked,.dental-chart__tooth.is-assigned{background:#e8f0fe}.dental-chart__tooth.is-column-hovered:not(.is-picked):not(.is-assigned){background:#f1f5f9}.dental-chart--procedure-mode .dental-chart__tooth.is-pickable{cursor:crosshair}.dental-chart__note-slot{z-index:3;pointer-events:none;justify-content:space-between;width:44px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.dental-chart__arch--lower .dental-chart__note-slot{top:auto;bottom:0}.dental-chart__action-cell{pointer-events:auto;flex:0 0 20px;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.dental-chart__action-cell--note{justify-content:flex-start}.dental-chart__action-cell--measurement{justify-content:flex-end}.dental-chart__note-btn{color:#fff;cursor:pointer;background:#38bdf8;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex;box-shadow:0 1px 2px #0f172a1f}.dental-chart__note-btn:hover,.dental-chart__note-btn[data-popup-open]{background:#0ea5e9}.dental-chart__note-btn:focus-visible{outline-offset:1px;outline:2px solid #7dd3fc}.dental-chart__note-popover{color:#334155;ring-color:#fde68a;background:#fffbeb;box-shadow:0 8px 24px #0f172a1f}.dental-chart__measurement-popover{color:#334155;ring-color:#e2e8f0;background:#fff;box-shadow:0 8px 24px #0f172a1f}.dental-chart__number-row{background:0 0;justify-content:center;align-items:stretch;width:100%;display:flex}.dental-chart__number-cell{flex:0 0 var(--dc-tooth-width);width:var(--dc-tooth-width);justify-content:center;align-items:center;min-height:1.375rem;transition:background-color .12s,color .12s;display:flex}.dental-chart__center-line{border-top:1px solid var(--dc-divider);flex:none;width:100%;height:0;margin:2px 0}.dental-chart__number{color:#6b6357;text-align:center;font-variant-numeric:tabular-nums;margin:0;padding:0;font-size:11px;line-height:1}.dental-chart__number-label{justify-content:center;align-items:center;width:100%;min-width:1ch;padding:0;display:flex}.dental-chart__number-cell.is-pickable{cursor:pointer}.dental-chart__number-cell.is-pickable:focus-visible{outline-offset:1px;outline:2px solid #38bdf8}.dental-chart__number-cell.is-column-hovered:not(.is-picked):not(.is-assigned){color:#fff;background:#60a5fa}.dental-chart__number-cell.is-column-hovered:not(.is-picked):not(.is-assigned) .dental-chart__number-label{color:inherit;background:0 0}.dental-chart__number-cell.is-picked,.dental-chart__number-cell.is-assigned{color:#fff;background:#3b82f6}.dental-chart__number-cell.is-picked .dental-chart__number-label,.dental-chart__number-cell.is-assigned .dental-chart__number-label{color:inherit;background:0 0}.dental-chart__midline{width:2px;box-shadow:none;background:#e74c3c;flex:0 0 2px;align-self:stretch;margin:0 4px}.dental-chart__toggle{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;width:2rem;min-width:2rem;height:2rem;padding:0;display:flex;position:static}.dental-chart__toggle:hover{color:#4b5563;background:#f3f4f6}.dental-chart__toggle.is-active{color:#3b82f6;background:#eff6ff}.dental-chart__toggle:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.dental-chart__chart-area{overscroll-behavior-x:contain;flex:auto;align-items:stretch;min-width:0;display:flex;overflow-x:auto}.dental-chart__arch-teeth-picks{flex-direction:column;flex-shrink:0;align-items:center;gap:.25rem;width:100%;display:flex}.dental-chart__arch-teeth-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex;box-shadow:0 1px 2px #0f172a14}.dental-chart__arch-teeth-btn:hover{background:#f8fafc;border-color:#94a3b8}.dental-chart__arch-teeth-btn.is-selected{color:#fff;background:#0ea5e9;border-color:#0284c7}.dental-chart__arch-teeth-btn:focus-visible{outline-offset:1px;outline:2px solid #38bdf8}.dental-chart__arches{flex-direction:column;flex:none;gap:0;width:max-content;min-width:100%;display:flex}@media (width<=639px){.dental-chart--compact{--dc-rail-width:2.5rem;gap:.25rem;margin-top:.25rem}.dental-chart--compact .dental-chart__tooth{padding:10px 1px 1px}.dental-chart--compact .dental-chart__arch--lower .dental-chart__tooth{padding:1px 1px 10px}.dental-chart--compact .tooth-badge{font-size:1.1rem;inset:10px 0 16px}.dental-chart--compact .dental-chart__arch--lower .tooth-badge{inset:16px 0 10px}.dental-chart--compact .dental-chart__number{font-size:10px}.dental-chart--compact .dental-chart__midline{margin:0 3px}}
