:root{--tp-purple:#b76ce5;--tp-green:#4dba83;--tp-red:#df697d;--tp-orange:#e6ab5e;--tp-teal:#49b6c3;--tp-blue:#609bef}
.tp-mini-row{display:flex;align-items:center;gap:16px}.tp-mini{width:90px;height:110px;flex-shrink:0;padding:8px;background:var(--bg);border-radius:12px}.tp-mini svg{width:100%;height:100%}.tp-mini-row p{margin:7px 0;overflow-wrap:anywhere;max-height:110px;overflow:auto}.tp-mini-row>div{min-width:0}.tp-dialog{width:720px;max-width:calc(100vw - 32px);padding:22px;max-height:90vh;overflow:auto}.tp-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.tp-header h2{margin:0 0 5px;font-size:21px}.tp-header>button{border:0;background:none}.tp-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:28px}.tp-map{min-width:0}.tp-chart{height:420px;position:relative;max-width:310px;margin:auto}.tp-jaw-label{text-align:center;color:var(--muted);font-size:11px;margin:5px}.tp-tooth{position:absolute;transform:translate(-50%,-50%);width:34px;height:43px;border:0;padding:0;background:none;isolation:isolate}.tp-tooth svg{width:100%;height:100%;display:block;overflow:visible}.tp-enamel{fill:var(--subtle);stroke:var(--line);stroke-width:1.5}.tp-detail{fill:none;stroke:var(--muted);stroke-width:.8;opacity:.5}.tp-tooth.assigned .tp-enamel{fill:color-mix(in srgb,var(--tp-color) 30%,var(--surface));stroke:var(--tp-color)}.tp-tooth.selected .tp-enamel{stroke:var(--accent);stroke-width:3}.tp-tooth span{position:absolute;left:0;right:0;top:12px;font-size:11px;font-weight:600;color:var(--text)}.tp-center{position:absolute;top:36%;left:26%;right:26%;text-align:center;pointer-events:none}.tp-center b{display:block;font-size:13px;overflow-wrap:anywhere}.tp-center small{display:block;font-size:10px;color:var(--muted);margin-top:12px}.tp-parameters{display:grid;align-content:start;gap:12px}.tp-existing{font-size:12px;color:var(--muted);overflow-wrap:anywhere;padding:8px 0;border-bottom:1px solid var(--line)}.tp-types{display:grid;grid-template-columns:1fr 1fr;gap:7px}.tp-types button{font-size:12px;padding:10px 8px;text-align:left;background:color-mix(in srgb,var(--tp-color) 12%,var(--surface));border-color:var(--line);min-height:47px}.tp-types button:before{content:'';display:block;height:3px;width:20px;background:var(--tp-color);border-radius:2px;margin-bottom:5px}.tp-types button.active{outline:2px solid var(--accent);outline-offset:1px}.tp-parameters input,.tp-parameters select{font-size:12px;padding:8px}.tp-parameters label{font-size:11px}.tp-parameters #tp-fields{display:grid;gap:10px}.tp-multi{display:flex;gap:8px;align-items:center}.tp-multi input{width:auto}.tp-buttons{display:flex;gap:8px}.tp-result{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;line-height:1.7;max-height:90px;overflow:auto;overflow-wrap:anywhere}.tp-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.tp-footer small{max-width:300px;font-size:11px}.tp-footer>div{display:flex;gap:8px}.tp-dialog [hidden]{display:none!important}@media(max-width:650px){.tp-dialog{padding:16px}.tp-layout{grid-template-columns:1fr;gap:18px}.tp-chart{height:390px}.tp-parameters{border-top:1px solid var(--line);padding-top:10px}.tp-footer{align-items:flex-start;flex-direction:column}.tp-footer>div{align-self:flex-end}}
.tp-chart{height:auto;aspect-ratio:432 / 760;max-width:290px;background:#303030;overflow:hidden;border-radius:12px}.tp-reference{position:absolute;width:175.925926%;max-width:none;height:auto;left:-38.888889%;top:-3.684211%;pointer-events:none}.tp-image-hit{border-radius:42%;background:transparent;z-index:1}.tp-image-hit:hover{background:#ffffff22}.tp-image-hit.assigned{background:color-mix(in srgb,var(--tp-color) 32%,transparent);box-shadow:inset 0 0 0 2px var(--tp-color)}.tp-image-hit.selected{box-shadow:inset 0 0 0 3px #59a1ff;background:#529cff30}.tp-image-hit.assigned.selected{background:color-mix(in srgb,var(--tp-color) 38%,transparent)}.tp-center{color:#eee}.tp-center small{color:#c7c7c7}.tp-mini{height:142px;width:88px}.tp-mini svg{background:#303030;border-radius:7px}
