:where(.ts2-chart,.t2-wrap){--t2-enamel-hi:oklch(0.99 0.008 95);--t2-enamel-body:oklch(0.955 0.014 95);--t2-enamel-shadow:oklch(0.875 0.02 92);--t2-enamel-incisal:oklch(0.915 0.01 235);--t2-dentin-hi:oklch(0.93 0.014 88);--t2-dentin-body:oklch(0.875 0.018 84);--t2-dentin-shadow:oklch(0.79 0.02 80);--t2-gum-fill:oklch(0.9 0.032 22);--t2-gum-scallop:oklch(0.84 0.045 20);--t2-gum-papilla:oklch(0.93 0.026 24);--t2-socket:oklch(0.5 0.05 25);--t2-rim:oklch(0.995 0.005 95);--t2-fissure:oklch(0.6 0.024 75);--t2-outline:oklch(0.66 0.016 80);--t2-eval:color-mix(in oklab,#22d3ee 72%,var(--primary) 28%);--t2-extract:var(--destructive);--t2-root:#f59e0b;--t2-restore:oklch(0.56 0.095 180);--t2-replace:oklch(0.58 0.21 312);--t2-gum:oklch(0.77 0.17 140);--t2-ortho:oklch(0.64 0.19 355);--t2-mark-casing:oklch(0.35 0.02 78);--t2-implant-metal:oklch(0.93 0.01 260);--t2-midline-ink:color-mix(in oklab,var(--muted-foreground),var(--border) 30%)}.dark :where(.ts2-chart,.t2-wrap){--t2-enamel-hi:oklch(0.94 0.008 95);--t2-enamel-body:oklch(0.89 0.012 95);--t2-enamel-shadow:oklch(0.8 0.016 92);--t2-enamel-incisal:oklch(0.85 0.009 235);--t2-dentin-hi:oklch(0.84 0.012 86);--t2-dentin-body:oklch(0.77 0.016 82);--t2-dentin-shadow:oklch(0.67 0.018 78);--t2-gum-fill:oklch(0.41 0.05 356);--t2-gum-scallop:oklch(0.34 0.055 352);--t2-gum-papilla:oklch(0.46 0.045 358);--t2-socket:oklch(0.24 0.05 350);--t2-rim:oklch(0.98 0.004 95);--t2-fissure:oklch(0.56 0.022 72);--t2-outline:oklch(0.66 0.014 80);--t2-eval:#22d3ee;--t2-root:#fbbf24;--t2-restore:oklch(0.68 0.11 180);--t2-replace:oklch(0.7 0.17 312);--t2-gum:oklch(0.83 0.17 140);--t2-ortho:oklch(0.73 0.16 355);--t2-mark-casing:oklch(0.27 0.02 78);--t2-midline-ink:color-mix(in oklab,var(--muted-foreground),var(--border) 40%)}.ts2-chart{position:relative;border:1px solid color-mix(in oklab,var(--border),var(--foreground) 6%);border-radius:14px;background:radial-gradient(ellipse 60% 45% at 50% 42%,color-mix(in oklab,var(--card),var(--primary) 3%),color-mix(in oklab,var(--card),var(--primary) 1.8%) 45%,color-mix(in oklab,var(--card),var(--primary) .8%) 80%,var(--card));padding:4px;max-width:var(--chart-max,560px);margin:0 auto;box-shadow:inset 0 1px 3px color-mix(in oklab,var(--foreground) 3%,transparent),inset 0 0 40px color-mix(in oklab,var(--primary) 1%,transparent)}.dark .ts2-chart{border-color:color-mix(in oklab,var(--border),var(--foreground) 10%);background:radial-gradient(ellipse 60% 45% at 50% 42%,color-mix(in oklab,var(--card),var(--primary) 5%),color-mix(in oklab,var(--card),var(--primary) 3%) 45%,color-mix(in oklab,var(--card),var(--primary) 1.2%) 80%,var(--card));box-shadow:inset 0 1px 4px color-mix(in oklab,black 8%,transparent),inset 0 0 50px color-mix(in oklab,var(--primary) 2%,transparent)}.t2-wrap{position:relative}.t2-svg{display:block;width:100%;height:auto}.t2-tooth{cursor:pointer}.ts-panel-readonly .t2-tooth{cursor:default}.t2-hit{fill:transparent;pointer-events:all}.t2-crown{pointer-events:none}.t2-crown *{vector-effect:non-scaling-stroke}.t2-gum{fill:url(#t2-gum-grad);stroke:var(--t2-gum-scallop);stroke-width:1.2;stroke-linejoin:round;pointer-events:none}.t2-gum-primary{fill:url(#t2-gum-grad-primary);stroke-width:1;opacity:.92}.t2-silhouette{fill:url(#t2-enamel);stroke:var(--t2-outline);stroke-width:1;stroke-linejoin:round;transition:stroke .18s ease-out}.t2-anterior{fill:url(#t2-enamel-anterior)}.t2-cusp{fill:url(#t2-cusp-grad);pointer-events:none}.t2-incisal{fill:var(--t2-enamel-incisal);opacity:.32;pointer-events:none}.t2-fissure{fill:none;stroke:var(--t2-fissure);stroke-width:.8;stroke-linecap:round;opacity:.8}.t2-specular{fill:var(--t2-enamel-hi);opacity:.65;pointer-events:none}.t2-rimlight{fill:none;stroke:var(--t2-rim);stroke-width:1.4;stroke-linecap:round;opacity:.35}.dark .t2-rimlight{opacity:.65}.t2-socket{pointer-events:none;transition:opacity .2s cubic-bezier(.22,1,.36,1)}.t2-label{font-size:16px;font-weight:600;fill:var(--muted-foreground);letter-spacing:.02em;paint-order:stroke fill;stroke:var(--card);stroke-width:3px;stroke-linejoin:round;font-variant-numeric:tabular-nums}.t2-label,.t2-midline-marks{pointer-events:none}.t2-midline-dot{fill:var(--t2-midline-ink)}.t2-midline,.t2-midline-cross{opacity:.55}.t2-quad-ghost{font-size:15px;font-weight:600;letter-spacing:.08em;fill:var(--muted-foreground);opacity:.8}.dark .t2-quad-ghost{opacity:.85}.t2-tooth.selected:not(.marked) .t2-silhouette{stroke:var(--primary-strong)}.t2-statewash{opacity:0;pointer-events:none;transition:opacity .2s cubic-bezier(.22,1,.36,1)}.t2-tooth.selected:not(.marked) .t2-statewash{fill:var(--primary);opacity:.1}.t2-lift{transform-box:fill-box;transform-origin:center;transition:transform .18s cubic-bezier(.22,1,.36,1)}.ts-panel:not(.ts-panel-readonly) .t2-tooth:hover .t2-lift{transform:scale(1.04)}.ts-panel:not(.ts-panel-readonly) .t2-tooth:is(:not(.selected),.marked):hover .t2-silhouette{stroke:color-mix(in oklab,var(--t2-outline),var(--foreground) 35%)}@keyframes t2-select-pop{45%{transform:scale(1.06)}}.ts-panel:not(.ts-panel-readonly) .t2-tooth[data-just-selected=true] .t2-lift{animation:t2-select-pop .25s cubic-bezier(.34,1.3,.64,1) both}.t2-tooth:focus{outline:none}.t2-tooth:focus-visible .t2-hit{stroke:var(--ring);stroke-width:2;fill:color-mix(in oklab,var(--ring),transparent 92%)}.t2-marks-over,.t2-marks-under{pointer-events:none}:is(.t2-marks-under,.t2-marks-over) *{vector-effect:non-scaling-stroke}.t2-marks-over .t2-r-glow,.t2-marks-under .t2-r-glow{vector-effect:none}.t2-fam-look{--t2-h:var(--t2-eval)}.t2-fam-remove{--t2-h:var(--t2-extract)}.t2-fam-pulp{--t2-h:var(--t2-root)}.t2-fam-restore{--t2-h:var(--t2-restore)}.t2-fam-replace{--t2-h:var(--t2-replace)}.t2-fam-gum{--t2-h:var(--t2-gum)}.t2-fam-ortho{--t2-h:var(--t2-ortho)}.t2-r-casing{fill:none}.t2-r-casing,.t2-r-casing-fill{stroke:var(--t2-mark-casing);stroke-linecap:round;stroke-linejoin:round}.t2-r-casing-fill{fill:var(--t2-mark-casing)}.t2-r-ink{fill:none;stroke:var(--t2-h);stroke-linecap:round;stroke-linejoin:round}.t2-r-fill{fill:var(--t2-h)}.t2-r-soft{fill:color-mix(in oklab,var(--t2-h) 38%,var(--t2-enamel-hi))}.t2-r-knock{fill:color-mix(in oklab,var(--t2-h) 16%,var(--t2-enamel-hi))}.t2-r-metal{fill:color-mix(in oklab,var(--t2-h) 14%,var(--t2-implant-metal))}.t2-r-tint{fill:color-mix(in oklab,var(--t2-h) 26%,transparent)}.t2-r-base{fill:color-mix(in oklab,var(--t2-h) 24%,transparent)}.t2-r-band{fill:color-mix(in oklab,var(--t2-h) 22%,transparent)}.t2-r-glow{fill:none;stroke:color-mix(in oklab,var(--t2-h) 34%,transparent);stroke-linecap:round}.t2-r-orifice{fill:var(--t2-mark-casing)}.t2-tooth.missing .t2-art-dim{opacity:.35}.dark .t2-tooth.missing .t2-art-dim{opacity:.25}.t2-missing-backing,.t2-missing-backing path{fill:var(--muted-foreground);stroke:none}.dark .t2-missing-backing{display:none}.t2-d-1{--t2-d:40ms}.t2-d-2{--t2-d:80ms}.t2-d-3{--t2-d:120ms}.t2-d-4{--t2-d:160ms}.t2-d-5{--t2-d:200ms}.t2-d-6{--t2-d:240ms}.t2-d-7{--t2-d:280ms}.t2-d-8{--t2-d:320ms}.t2-d-9{--t2-d:360ms}.t2-d-10{--t2-d:400ms}.t2-d-11{--t2-d:440ms}.t2-d-12{--t2-d:480ms}.t2-d-13{--t2-d:520ms}.t2-d-14{--t2-d:560ms}.t2-d-15{--t2-d:600ms}.t2-d-16{--t2-d:640ms}.t2-d-17{--t2-d:680ms}.t2-d-18{--t2-d:720ms}.t2-d-19{--t2-d:760ms}.t2-d-20{--t2-d:800ms}.t2-d-21{--t2-d:840ms}.t2-d-22{--t2-d:880ms}.t2-d-23{--t2-d:920ms}.t2-d-24{--t2-d:960ms}.t2-d-25{--t2-d:1000ms}.t2-d-26{--t2-d:1040ms}.t2-d-27{--t2-d:1080ms}.t2-d-28{--t2-d:1120ms}.t2-d-29{--t2-d:1160ms}.t2-d-30{--t2-d:1200ms}.t2-d-31{--t2-d:1240ms}.t2-d-32{--t2-d:1280ms}@keyframes t2-mark-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes t2-mark-fade{0%{opacity:0}to{opacity:1}}@keyframes t2-mark-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes t2-mark-focus{0%{opacity:0;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}@keyframes t2-mark-slash{0%{opacity:0;transform:scale(.2)}60%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes t2-mark-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes t2-mark-screw{0%{opacity:0;transform:rotate(-120deg) scale(.7)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes t2-mark-screw-in-up{0%{opacity:0;transform:translateY(30%)}to{opacity:1;transform:translateY(0)}}@keyframes t2-mark-screw-in-down{0%{opacity:0;transform:translateY(-30%)}to{opacity:1;transform:translateY(0)}}@keyframes t2-mark-flow-up{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes t2-mark-flow-down{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}[data-arriving=true] :is(.t2-m-pop,.t2-m-focus,.t2-m-slash,.t2-m-grow,.t2-m-screw,.t2-m-screw-in-up,.t2-m-screw-in-down){transform-box:fill-box;transform-origin:center}[data-arriving=true] .t2-v-draw{stroke-dasharray:1;animation:t2-mark-draw .52s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-v-fade{animation:t2-mark-fade .36s ease-out var(--t2-d,0s) both}[data-arriving=true] .t2-v-rise{animation:t2-mark-fade .6s ease-out var(--t2-d,0s) both}[data-arriving=true] .t2-m-pop{animation:t2-mark-pop .38s cubic-bezier(.34,1.56,.64,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-focus{animation:t2-mark-focus .46s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-slash{animation:t2-mark-slash .3s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-grow{animation:t2-mark-grow .42s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-screw{animation:t2-mark-screw .7s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-screw-in-up{animation:t2-mark-screw-in-up .7s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-screw-in-down{animation:t2-mark-screw-in-down .7s cubic-bezier(.23,1,.32,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-flow-up{animation:t2-mark-flow-up .7s cubic-bezier(.45,0,.2,1) var(--t2-d,0s) both}[data-arriving=true] .t2-m-flow-down{animation:t2-mark-flow-down .7s cubic-bezier(.45,0,.2,1) var(--t2-d,0s) both}@media (prefers-reduced-motion:reduce){.t2-lift,.t2-silhouette,.t2-socket,.t2-statewash{transition:none}.ts-panel:not(.ts-panel-readonly) .t2-tooth:hover .t2-lift{transform:none}.ts-panel:not(.ts-panel-readonly) .t2-tooth[data-just-selected=true] .t2-lift{animation:none}[data-arriving=true] :is(.t2-v-draw,.t2-v-fade,.t2-v-rise,.t2-m-pop,.t2-m-focus,.t2-m-slash,.t2-m-grow,.t2-m-screw,.t2-m-screw-in-up,.t2-m-screw-in-down,.t2-m-flow-up,.t2-m-flow-down){animation:none;stroke-dasharray:none}}.t2-rows .tr-crown,.t2-rows .tr-root{stroke:var(--t2-outline);stroke-width:1;stroke-linejoin:round;transition:stroke .18s ease-out}.t2-rows .tr-root{stroke-opacity:.6}.t2-rows .t2-tooth.selected:not(.marked) :is(.tr-crown,.tr-root){stroke:var(--primary-strong);stroke-opacity:1}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth:is(:not(.selected),.marked):hover :is(.tr-crown,.tr-root){stroke:color-mix(in oklab,var(--t2-outline),var(--foreground) 35%)}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth:hover .t2-lift{transform:scale(1.025)}@keyframes tr-select-pop{45%{transform:scale(1.04)}}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth[data-just-selected=true] .t2-lift{animation-name:tr-select-pop}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth:focus-visible .t2-hit{stroke:none;fill:transparent}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth:focus-visible :is(.tr-crown,.tr-root){stroke:var(--ring);stroke-opacity:1;stroke-width:2}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth:focus-visible .t2-label{fill:var(--primary-strong)}.t2-rows .tr-focus-outline{pointer-events:none}.t2-rows .tr-focus-outline path{fill:none;stroke:none}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth.missing:focus-visible .tr-focus-outline path{stroke:var(--ring);stroke-opacity:1;stroke-width:2;vector-effect:non-scaling-stroke}@media (prefers-reduced-motion:reduce){.t2-rows :is(.tr-crown,.tr-root){transition:none}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth:hover .t2-lift{transform:none}.ts-panel:not(.ts-panel-readonly) .t2-rows .t2-tooth[data-just-selected=true] .t2-lift{animation:none}}.ts-panel{max-width:var(--panel-max,650px);margin:0 auto;padding:6px;border:1px solid color-mix(in oklab,var(--border),var(--primary) 6%);border-radius:16px;background:var(--card);overflow-x:clip;box-shadow:0 1px 2px color-mix(in oklab,var(--foreground) 4%,transparent),0 4px 12px color-mix(in oklab,var(--foreground) 3%,transparent),0 0 0 1px color-mix(in oklab,var(--border),transparent 40%)}.dark .ts-panel{border-color:color-mix(in oklab,var(--border),var(--primary) 10%);box-shadow:0 1px 2px color-mix(in oklab,black 20%,transparent),0 4px 16px color-mix(in oklab,black 15%,transparent),0 0 0 1px color-mix(in oklab,var(--border),transparent 60%),inset 0 1px 0 color-mix(in oklab,white 3%,transparent)}.ts-panel-readonly .ts-dentition-toggles{display:none}.legend{display:flex;flex-direction:column;gap:12px;width:min(100%,var(--chart-max,560px));margin:8px auto 0}.legend-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);margin-bottom:4px;font-weight:600}.chips-wrap{display:flex;flex-wrap:wrap}