.tprl-panel{--tprl-r:max(12px,var(--r-lg,3px));--tprl-r-s:max(9px,var(--r,2px));--tprl-panel:color-mix(in srgb,var(--surface) 90%,var(--accent));--tprl-panel-2:color-mix(in srgb,var(--surface-2) 92%,var(--accent));--tprl-sink:color-mix(in srgb,var(--surface-sink) 94%,var(--accent));--tprl-line:color-mix(in srgb,var(--accent) 22%,var(--border));--tprl-line-soft:color-mix(in srgb,var(--accent) 10%,var(--border));--tprl-line-hot:color-mix(in srgb,var(--accent) 62%,var(--border));--tprl-wash:color-mix(in srgb,var(--accent) 10%,transparent);--tprl-wash-2:color-mix(in srgb,var(--accent) 18%,transparent);--tprl-carn:var(--bad);--tprl-herb:var(--ok);--tprl-omni:var(--accent-hi,var(--accent));display:grid;gap:1rem;min-width:0}.tprl-panel [hidden]{display:none!important}.tprl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:.9rem;box-shadow:inset 0 -1px 0 var(--tprl-line-soft)}.tprl-titles{display:grid;gap:.35rem;min-width:0}.tprl-title{margin:0;letter-spacing:.16em;text-transform:uppercase}.tprl-status{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase}.tprl-acts{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.tprl-note,.tprl-gone{margin:0}.tprl-problems{margin:0}.tprl-problems-head{margin:0 0 0.3rem;font-weight:600}.tprl-problems-list{margin:0;padding-left:1.1rem;display:grid;gap:0.15rem}.tprl-mark-dirty{font-weight:700;color:var(--warn)}.tprl-mark-saved{color:var(--ok)}.tprl-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tprl-tab{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;min-height:38px;padding:0 18px;border-radius:var(--tprl-r-s);cursor:pointer;font-family:var(--font-display);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);background:var(--tprl-sink);box-shadow:inset 0 0 0 1px var(--tprl-line-soft);transition:color .15s ease,box-shadow .15s ease,background-color .15s ease}.tprl-tab:hover{color:var(--fg);box-shadow:inset 0 0 0 1px var(--tprl-line-hot)}.tprl-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tprl-tab-active{color:var(--fg);background:var(--tprl-wash-2);box-shadow:inset 0 0 0 1px var(--accent),inset 0 -2px 0 var(--accent)}.tprl-tab[aria-selected="true"]::before{margin-inline-end:.45em}.tprl-body{display:grid;gap:1rem;min-width:0}.tprl-section{display:grid;gap:.9rem;min-width:0;padding:18px 20px;border-radius:var(--tprl-r);background:linear-gradient(180deg,var(--tprl-panel) 0%,color-mix(in srgb,var(--tprl-sink) 70%,var(--tprl-panel)) 100%);box-shadow:inset 0 0 0 1px var(--tprl-line)}.tprl-h3{margin:0;font-family:var(--font-display);font-size:var(--tm-h-panel,12.5px);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--fg)}.tprl-h4{margin:.3rem 0 .1rem;font-family:var(--font-mono);font-size:var(--tm-h-micro,10.5px);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute)}.tprl-lede{margin:0;color:var(--fg-dim);max-width:70ch}.tprl-hint{margin:0;color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em}.tprl-group{display:grid;gap:.35rem;min-width:0}.tprl-grid2{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));column-gap:1.6rem}.tprl-grid2>.tprl-h4{grid-column:1 / -1}.tprl-field{display:flex;align-items:center;gap:0.6rem;min-height:2.2rem;flex-wrap:wrap;min-width:0}.tprl-field-label{min-width:12rem;flex:1 1 12rem;color:var(--fg-dim);font-size:var(--fs-2,14px)}.tprl-master{padding-bottom:.6rem;box-shadow:inset 0 -1px 0 var(--tprl-line-soft)}.tprl-master .tprl-field-label{color:var(--fg);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.tprl-input{min-width:5rem;max-width:100%;border-radius:var(--tprl-r-s)}.tprl-num{width:8rem;font-variant-numeric:tabular-nums}.tprl-row{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;margin:0.15rem 0;min-width:0}.tprl-warn{color:var(--warn);font-size:0.85rem}.tprl-dim{color:var(--fg-mute);font-size:0.9rem}.tprl-mono{font-family:var(--font-mono);font-size:0.8rem}.tprl-seg{flex:none}.tprl-chips{display:flex;align-items:center;gap:0.35rem;flex-wrap:wrap;min-width:0}.tprl-kept{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.2rem;padding:.55rem .8rem;border-radius:var(--tprl-r-s);background:color-mix(in srgb,var(--warn) 7%,transparent);box-shadow:inset 3px 0 0 var(--warn)}.tprl-sets{gap:.6rem}.tprl-set{display:grid;gap:.4rem;min-width:0;padding:.7rem .9rem;border-radius:var(--tprl-r-s);background:var(--tprl-sink);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}.tprl-set-open{box-shadow:inset 0 0 0 1px var(--tprl-line-hot)}.tprl-set-head{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;flex-wrap:wrap}.tprl-set-foot{display:flex;justify-content:flex-end;padding:0.3rem 0}.tprl-offserver .tprl-mono{color:var(--fg-mute)}.tprl-log{display:grid;gap:0.3rem;min-width:0}.tprl-log-row{align-items:center}.tprl-link-head{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.tprl-link-head .tprl-seg{max-width:100%;box-sizing:border-box;flex-wrap:wrap}.tprl-link-head .tprl-seg-btn{max-width:100%;overflow-wrap:anywhere}@media (max-width:560px){.tprl-link-head .tprl-seg{border-radius:var(--tprl-r-s)}.tprl-link-head .tprl-seg-btn{padding-inline:10px;letter-spacing:.04em;border-radius:var(--tprl-r-s)}}.tprl-board-wrap{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);align-items:start}@media (min-width:1100px){.tprl-board-wrap{grid-template-columns:minmax(0,1fr) 300px}}.tprl-board{position:relative;min-width:0;padding:6px}.tprl-board-grid{position:relative;z-index:1;display:grid;gap:18px 16px;grid-template-columns:repeat(auto-fill,minmax(124px,1fr))}.tprl-lines{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:visible}.tprl-link-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;opacity:.72;transition:opacity .15s ease,stroke-width .15s ease;filter:drop-shadow(0 0 3px var(--accent-glow,var(--accent)))}.tprl-link-dot{fill:var(--accent);opacity:.9}.tprl-link-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:pointer}.tprl-link:hover .tprl-link-line{stroke:var(--bad);stroke-width:3;opacity:1;filter:none}.tprl-link:hover .tprl-link-dot{fill:var(--bad)}.tprl-link.is-hot .tprl-link-line{stroke-width:3;opacity:1}.tprl-link.is-dim .tprl-link-line{opacity:.14;filter:none}.tprl-link.is-dim .tprl-link-dot{opacity:.2}.tprl-board.is-dragging .tprl-link-hit{pointer-events:none}.tprl-live{fill:none;stroke:var(--accent-hi,var(--accent));stroke-width:2.5;stroke-dasharray:6 6;stroke-linecap:round;animation:tprl-march .6s linear infinite}.tprl-live.is-locked{stroke-dasharray:none;stroke-width:3}@keyframes tprl-march{to{stroke-dashoffset:-12}}.tprl-dino{position:relative;min-width:0}.tprl-dino-hit{all:unset;box-sizing:border-box;position:relative;display:grid;grid-template-rows:auto auto;width:100%;min-width:0;overflow:hidden;border-radius:var(--tprl-r);background:linear-gradient(180deg,var(--tprl-panel) 0%,var(--tprl-sink) 100%);box-shadow:inset 0 0 0 1px var(--tprl-line);cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;transition:box-shadow .16s ease,transform .16s ease,opacity .16s ease}.tprl-dino-hit:hover{box-shadow:inset 0 0 0 1px var(--tprl-line-hot),0 8px 22px -14px var(--accent-glow,var(--accent));transform:translateY(-2px)}.tprl-dino-hit:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.tprl-dino-hit:active{cursor:grabbing}.tprl-dino-hit:disabled{cursor:default}.tprl-dino.is-selected .tprl-dino-hit{box-shadow:inset 0 0 0 2px var(--accent),0 0 0 4px var(--tprl-wash-2),0 10px 30px -12px var(--accent-glow,var(--accent))}.tprl-dino.is-partner .tprl-dino-hit{box-shadow:inset 0 0 0 1px var(--accent),0 0 18px -8px var(--accent-glow,var(--accent))}.tprl-dino.is-other .tprl-dino-hit{opacity:.6}.tprl-dino.is-other .tprl-dino-hit:hover,.tprl-dino.is-other .tprl-dino-hit:focus-visible{opacity:1}.tprl-dino.is-target .tprl-dino-hit{box-shadow:inset 0 0 0 2px var(--accent-hi,var(--accent)),0 0 0 6px var(--tprl-wash-2);transform:scale(1.04)}.tprl-dino.is-source .tprl-dino-hit{opacity:.55;transform:scale(.97)}.tprl-board.is-dragging .tprl-dino-hit{cursor:grabbing}.tprl-art{position:relative;display:grid;place-items:center;overflow:hidden}.tprl-art-mono{font-family:var(--font-display);font-weight:800;letter-spacing:.12em;color:var(--fg-mute)}.tprl-art-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tprl-art.has-img .tprl-art-mono{visibility:hidden}.tprl-dino-art{height:84px;background:radial-gradient(120% 140% at 70% 45%,var(--tprl-panel-2),var(--tprl-sink))}.tprl-dino-art .tprl-art-img{object-position:30% 40%;transform:scale(1.25);transform-origin:32% 42%}.tprl-dino-info{display:grid;gap:.35rem;padding:.55rem .65rem .6rem;min-width:0}.tprl-dino-name{font-family:var(--font-display);font-weight:700;letter-spacing:.06em;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tprl-dino-meta{display:flex;align-items:center;justify-content:space-between;gap:.4rem;min-width:0}.tprl-dino-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-pill,999px);font-family:var(--font-mono);font-size:var(--tm-h-micro,10.5px);color:var(--fg-mute);background:var(--tprl-sink);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}.tprl-dino-count.has-links{color:var(--accent);background:var(--tprl-wash);box-shadow:inset 0 0 0 1px var(--tprl-line-hot)}.tprl-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:var(--r-xs,4px);font-family:var(--font-mono);font-size:var(--tm-h-micro,10.5px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:var(--fg-dim);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}.tprl-badge[data-tone="carnivore"]{color:var(--tprl-carn);background:color-mix(in srgb,var(--tprl-carn) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tprl-carn) 65%,transparent)}.tprl-badge[data-tone="herbivore"]{color:var(--tprl-herb);background:color-mix(in srgb,var(--tprl-herb) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tprl-herb) 60%,transparent)}.tprl-badge[data-tone="omnivore"]{color:var(--tprl-omni);background:color-mix(in srgb,var(--tprl-omni) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tprl-omni) 60%,transparent)}.tprl-ghost{position:fixed;left:0;top:0;z-index:2147483000;pointer-events:none;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:var(--r-pill,999px);background:var(--tprl-panel,var(--surface));box-shadow:inset 0 0 0 1px var(--accent),0 14px 32px -12px var(--accent-glow,var(--accent));color:var(--fg);font-family:var(--font-display);font-weight:700;letter-spacing:.06em}.tprl-ghost-art{width:34px;height:34px;border-radius:50%;background:var(--surface-2)}.tprl-ghost-art .tprl-art-img{object-position:30% 40%;transform:scale(1.4)}.tprl-partner{display:grid;gap:.6rem;align-content:start;min-width:0;padding:14px;border-radius:var(--tprl-r);background:var(--tprl-sink);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}@media (min-width:1100px){.tprl-partner{position:sticky;top:12px}}.tprl-partner-head{display:flex;align-items:center;gap:.8rem;min-width:0}.tprl-partner-art{width:96px;height:60px;flex:none;border-radius:var(--tprl-r-s);background:radial-gradient(120% 140% at 70% 45%,var(--tprl-panel-2),var(--tprl-sink))}.tprl-partner-art .tprl-art-img{object-position:30% 40%;transform:scale(1.3)}.tprl-partner-who{display:grid;gap:.35rem;justify-items:start;min-width:0}.tprl-partner-name{font-family:var(--font-display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg)}.tprl-dropzone{display:grid;gap:.5rem;min-height:110px;padding:.7rem;border-radius:var(--tprl-r-s);background:color-mix(in srgb,var(--accent) 3%,transparent);box-shadow:inset 0 0 0 1px var(--tprl-line-soft);transition:box-shadow .15s ease,background-color .15s ease}.tprl-dropzone.is-hot{background:var(--tprl-wash-2);box-shadow:inset 0 0 0 2px var(--accent)}.tprl-drop-hint{margin:0;padding:.55rem;text-align:center;border-radius:var(--tprl-r-s);color:var(--fg-mute);font-family:var(--font-mono);font-size:var(--tm-h-micro,10.5px);letter-spacing:.14em;text-transform:uppercase;outline:1px dashed var(--tprl-line);outline-offset:-1px}.tprl-mates,.tprl-pairs{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.tprl-pairs,.tprl-mates.is-long{max-height:min(560px,62vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.tprl-pairs.is-long,.tprl-mates.is-long{padding-right:4px}.tprl-mate,.tprl-pair{display:flex;align-items:center;gap:.5rem;min-width:0;padding:4px 6px 4px 4px;border-radius:var(--tprl-r-s);background:var(--tprl-panel);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}.tprl-pair{padding:6px 6px 6px 8px}.tprl-pair-two{display:grid;gap:4px;min-width:0;flex:1 1 auto}.tprl-pair-line{display:flex;align-items:center;gap:.45rem;min-width:0}.tprl-mini-art{width:34px;height:26px;flex:none;border-radius:var(--r-xs,4px);background:var(--surface-2)}.tprl-mini-art .tprl-art-img{object-position:30% 40%;transform:scale(1.35)}.tprl-mini-art .tprl-art-mono{font-size:var(--tm-h-micro,10.5px)}.tprl-pair-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg)}.tprl-pair-sep{color:var(--accent);flex:none}.tprl-x,.tprl-plus{margin-left:auto;flex:none}.tprl-partner-foot{display:flex;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.tprl-missing{display:grid;gap:.5rem;min-width:0}.tprl-missing-head{margin:0}.tprl-pair.is-missing{background:transparent;box-shadow:none;outline:1px dashed var(--tprl-line);outline-offset:-1px}.tprl-pair.is-missing .tprl-pair-sep{color:var(--fg-mute)}.tprl-dense-hint{color:var(--fg-dim)}.tprl-allow-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.tprl-allow-words{display:grid;gap:.25rem;min-width:0;flex:1 1 18rem}.tprl-allow-title{font-family:var(--font-display);font-weight:700;letter-spacing:.06em;color:var(--fg)}.tprl-allow-empty,.tprl-allow-later{margin:0}.tprl-allow-cols{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}.tprl-allow-col{display:grid;gap:.55rem;align-content:start;min-width:0;padding:14px;border-radius:var(--tprl-r-s);background:var(--tprl-sink);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}.tprl-people{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.tprl-person{display:flex;align-items:center;gap:.6rem;min-width:0;padding:6px 8px;border-radius:var(--tprl-r-s);background:var(--tprl-panel);box-shadow:inset 0 0 0 1px var(--tprl-line-soft)}.tprl-person-who{display:grid;gap:2px;min-width:0;flex:1 1 auto}.tprl-person-name{color:var(--fg);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tprl-person-id{color:var(--fg-mute);font-family:var(--font-mono);font-size:var(--tm-h-micro,10.5px);overflow-wrap:anywhere}.tprl-role-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow,var(--accent))}.tprl-avatar{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:var(--tprl-wash-2);color:var(--accent);font-family:var(--font-display);font-weight:700}.tprl-add{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.tprl-add .tprl-input{flex:1 1 12rem}.tprl-add-err{margin:0}.tprl-matches{display:grid;gap:.35rem}.tprl-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex:none}.tprl-switch-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tprl-switch-track{position:relative;display:inline-flex;align-items:center;justify-content:flex-end;width:76px;height:34px;padding:0 12px;box-sizing:border-box;border-radius:var(--r-pill,999px);background:var(--tprl-sink);box-shadow:inset 0 0 0 1px var(--border-2);color:var(--fg-mute);font-family:var(--font-mono);font-size:var(--tm-h-micro,10.5px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;transition:background-color .18s ease,box-shadow .18s ease,color .18s ease}.tprl-switch-knob{position:absolute;left:5px;top:50%;width:24px;height:24px;border-radius:50%;background:var(--fg-mute);transform:translateY(-50%);transition:left .18s ease,background-color .18s ease}.tprl-switch-input:checked + .tprl-switch-track{justify-content:flex-start;color:var(--accent);background:var(--tprl-wash-2);box-shadow:inset 0 0 0 1px var(--tprl-line-hot)}.tprl-switch-input:checked + .tprl-switch-track .tprl-switch-knob{left:calc(100% - 29px);background:var(--accent);box-shadow:0 0 12px var(--accent-glow,var(--accent))}.tprl-switch-input:focus-visible + .tprl-switch-track{outline:2px solid var(--accent);outline-offset:2px}.tprl-switch-input:disabled + .tprl-switch-track{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.tprl-dino-hit,.tprl-link-line,.tprl-switch-track,.tprl-switch-knob{transition:none}.tprl-live{animation:none}.tprl-dino-hit:hover,.tprl-dino.is-target .tprl-dino-hit{transform:none}}.tprl-help{margin:.2rem 0 0;font-size:var(--tm-h-micro,10.5px)}.tprl-waits{opacity:.75}.tprl-species-off .tprl-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.2rem 0 .4rem}