.trainer *{box-sizing:border-box}.trainer{font:12px/1.5 var(--font-ui);color:var(--ink);background-color:var(--bg)}.trainer button,.trainer input,.trainer select{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:5px;background-color:var(--t-input)}.trainer button{min-height:32px;padding:5px 10px;cursor:pointer;white-space:nowrap}.trainer button:hover{background-color:var(--t-chip-bg)}.trainer button:disabled{opacity:.48;cursor:not-allowed}.trainer :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.trainer input,.trainer select{min-height:32px;padding:5px 8px;min-width:0}.trainer ::selection{background-color:var(--accent);color:var(--accent-ink)}.trainer ::placeholder{color:var(--muted)}.trainer ::-webkit-scrollbar{width:7px;height:7px}.trainer ::-webkit-scrollbar-thumb{background-color:var(--line);border-radius:4px}.trainer [hidden]{display:none!important}.trainer .tr-primary{background-color:var(--accent);color:var(--accent-ink)}#trainerApp{height:100dvh;display:flex;flex-direction:column}.tr-top{height:58px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px 16px;background-color:var(--panel);border-bottom:1px solid var(--line)}.tr-brand{font-size:18px;font-weight:850;letter-spacing:-.03em;text-decoration:none;color:var(--ink)}.tr-divider{height:22px;width:1px;background-color:var(--line);margin:0 5px}.tr-top #projectName{border-color:transparent;background-color:transparent;width:170px;font-weight:650}.tr-role{margin-left:auto;color:var(--muted);white-space:nowrap}.tr-workspace{flex:1;min-height:0;display:grid;grid-template-columns:252px minmax(240px,1fr) 280px;gap:0}.tr-dock{display:flex;flex-direction:column;min-height:0;background-color:var(--panel)}.tr-left{border-right:1px solid var(--line)}.tr-right{border-left:1px solid var(--line)}.tr-tabs{display:flex;border-bottom:1px solid var(--line);flex-shrink:0;padding:5px;gap:2px}.tr-tabs button{flex:1;border-color:transparent;border-radius:4px;color:var(--muted);padding:5px 6px}.tr-tabs [aria-selected=true]{color:var(--ink);background-color:var(--t-chip-bg);font-weight:750}.tr-scroll{overflow:auto;min-height:0;flex:1;padding:12px}.tr-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.tr-section-head b{overflow:hidden;text-overflow:ellipsis}.tr-section-head span,.tr-help{color:var(--muted);font-size:11px}.tr-empty{padding:20px 8px;color:var(--muted);line-height:1.7;text-align:center}.tr-actions{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.tr-end{justify-content:flex-end;margin-top:20px}.tr-search{display:block;color:var(--muted);margin-bottom:10px;font-size:11px}.tr-search input,.tr-search select{display:block;width:100%;margin-top:4px}.tr-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tr-asset{border:1px solid var(--line);border-radius:5px;overflow:hidden;min-width:0;background-color:var(--t-surface2)}.tr-asset .tr-thumb{height:80px;display:flex;align-items:center;justify-content:center;background-color:var(--bg);color:var(--muted);font-size:10px;overflow:hidden}.tr-thumb img{width:100%;height:100%;object-fit:contain}.tr-asset b{display:block;padding:7px 7px 0;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tr-asset small{display:block;padding:0 7px;color:var(--muted);font-size:10px}.tr-asset button{width:calc(100% - 12px);margin:7px 6px;min-height:28px;font-size:11px}.tr-tree-row{display:flex;align-items:center;gap:4px;padding:3px 0}.tr-tree-row>button:first-child{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;min-width:0;border-color:transparent;background-color:transparent}.tr-tree-row.selected{background-color:var(--t-chip-bg);border-radius:5px}.tr-stage{position:relative;min-height:0;overflow:hidden;background-color:var(--bg)}#viewport,#viewport canvas{width:100%;height:100%;display:block}.tr-viewtools{position:absolute;top:12px;left:12px;display:flex;gap:4px}.tr-viewtools button{background-color:var(--panel);font-size:11px;min-height:30px}.tr-viewtools [aria-pressed=true]{background-color:var(--accent);color:var(--accent-ink)}.tr-stage-empty{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:min(340px,85%);display:flex;flex-direction:column;text-align:center;gap:10px;pointer-events:none}.tr-stage-empty b{font-size:20px;letter-spacing:-.03em}.tr-stage-empty span{color:var(--muted)}.tr-stage-empty button{align-self:center;pointer-events:auto}.tr-stage-label{position:absolute;bottom:12px;left:12px;color:var(--muted);font-size:10px}.tr-stage-label span{margin-left:10px}.tr-properties label{display:block;margin:10px 0;color:var(--muted);font-size:11px}.tr-properties label input:not([type=checkbox]),.tr-properties label select{display:block;width:100%;margin-top:4px;color:var(--ink)}.tr-properties h3{font-size:12px;margin:4px 0 12px}.tr-properties hr{border:0;border-top:1px solid var(--line);margin:18px 0}.tr-tuple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.tr-tuple label{margin:3px 0}.tr-properties .tr-check{display:flex;gap:8px;align-items:center;color:var(--ink)}.tr-check input{min-height:0;accent-color:var(--accent)}.tr-bottom{display:flex;gap:12px;align-items:center;flex-shrink:0;padding:10px 14px;background-color:var(--panel);border-top:1px solid var(--line);min-height:56px}.tr-playback{display:flex;gap:5px;align-items:center}.tr-playback span{padding:0 8px;font-variant-numeric:tabular-nums;white-space:nowrap}.tr-bottom>.tr-help{flex:1;line-height:1.4}#animationButton{font-size:11px}.tr-notice{position:fixed;bottom:74px;left:50%;transform:translateX(-50%);z-index:100;max-width:min(580px,90vw);padding:10px 16px;border:1px solid var(--line);border-radius:5px;background-color:var(--panel);box-shadow:0 8px 24px rgba(16,20,18,.15);overflow-wrap:anywhere}.tr-notice[data-error=true]{border-color:var(--bad);color:var(--bad-ink)}.tr-notice:empty{display:none}.tr-dialog{width:min(590px,calc(100vw - 28px));max-height:85dvh;padding:22px;border:1px solid var(--line);border-radius:8px;background-color:var(--panel);color:var(--ink);box-shadow:0 18px 55px rgba(16,20,18,.2)}.tr-dialog::backdrop{background-color:rgba(16,20,18,.35)}.tr-dialog h2{font-size:18px;margin:0}.tr-dialog label{display:block;margin:12px 0;color:var(--muted)}.tr-dialog label>input,.tr-dialog label>select{display:block;width:100%;margin-top:4px}.tr-steps{display:flex;gap:15px;padding:12px 0;list-style:none;color:var(--muted);border-bottom:1px solid var(--line)}.tr-steps .active{color:var(--ink);font-weight:800}.tr-project{display:flex;width:100%;justify-content:space-between;text-align:left;margin-top:8px;gap:10px}.tr-project small{color:var(--muted)}.tr-mobile{display:none}.tr-metrics{max-height:180px;overflow:auto;flex-shrink:0;padding:14px;background-color:var(--panel);border-top:1px solid var(--line)}.tr-metrics label{display:inline-flex;align-items:center;gap:4px;margin:6px}.tr-sensor-tray{position:absolute;inset:0;pointer-events:none;overflow:hidden;isolation:isolate}.tr-sensor-preview{position:absolute;display:flex;flex-direction:column;pointer-events:auto;overflow:hidden;padding:5px;background-color:var(--panel);border:1px solid var(--line);border-radius:5px}.tr-sensor-content{flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.tr-sensor-preview canvas{width:100%;height:100%;object-fit:contain;display:block}.tr-sensor-preview small{display:block;flex-shrink:0;max-height:3em;overflow:auto;padding-right:14px;color:var(--muted)}.tr-sensor-titlebar{flex-shrink:0;min-height:24px;cursor:move;touch-action:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tr-sensor-resize{position:absolute;bottom:2px;right:2px;width:18px;height:18px;cursor:nwse-resize;touch-action:none}.tr-sensor-resize:after{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid var(--line);border-bottom:2px solid var(--line)}
.tr-placement-hint{position:absolute;top:52px;left:12px;right:12px;padding:8px 10px;border:1px solid var(--line);border-radius:5px;background-color:var(--panel);color:var(--ink);font-size:11px;pointer-events:none}.tr-properties textarea{display:block;width:100%;padding:7px;margin-top:4px;font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:5px;background-color:var(--t-input);resize:vertical}.tr-stage-empty{padding:18px;background-color:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px}.tr-stage-label{padding:4px 7px;background-color:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px}
.tr-asset-advanced{display:flex;align-items:center;gap:5px;margin:10px 0;color:var(--muted);font-size:11px}.tr-asset-advanced input{min-height:0;accent-color:var(--accent)}#officialAssetHint{margin:8px 0;line-height:1.6}.tr-asset-reason{padding:4px 7px;margin:0;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.tr-asset-details{padding:5px 7px;font-size:10px;color:var(--muted)}.tr-asset-details summary{cursor:pointer}.tr-asset-details span,.tr-asset-details a{display:block;overflow-wrap:anywhere}.tr-asset-details a,.tr-source-metadata a{color:var(--ink);text-underline-offset:3px}.tr-source-metadata{margin:10px 0;padding:8px;border:1px solid var(--line);border-radius:5px;font-size:11px;overflow-wrap:anywhere}.tr-source-metadata p{margin:4px 0;color:var(--muted)}.tr-source-metadata small,.tr-source-metadata a{display:block}
.trainer .tr-primary:hover,.trainer .tr-primary:focus-visible,.trainer .tr-viewtools [aria-pressed=true]:hover,.trainer .tr-viewtools [aria-pressed=true]:focus-visible{background-color:var(--accent);color:var(--accent-ink);filter:brightness(.9)}.tr-stage-label{font-size:11px}
.tr-manual,.tr-replay{display:flex;gap:10px;align-items:center;flex-shrink:0;padding:6px 14px;background-color:var(--panel);border-top:1px solid var(--line);flex-wrap:wrap}.tr-manual label{display:flex;align-items:center;gap:4px}.tr-manual input{width:110px;min-height:24px;padding:0;accent-color:var(--accent)}.tr-replay input{flex:1;min-width:80px;accent-color:var(--accent)}.tr-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:250px;overflow:auto;font:11px/1.6 var(--font-ui)}.tr-metric{display:inline-flex;flex-direction:column;width:min(480px,100%);margin-right:12px;text-align:left}.tr-metric svg{height:80px;width:100%}.tr-properties pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto}.tr-dialog a{color:var(--ink);padding:5px;text-underline-offset:3px}
@media(min-width:1500px){.tr-workspace{grid-template-columns:280px minmax(240px,1fr) 300px}}
@media(max-width:1100px){.tr-workspace{grid-template-columns:210px minmax(240px,1fr) 236px}.tr-top{padding:8px 10px;gap:5px}.tr-top #projectName{width:120px}.tr-brand{font-size:16px}.tr-bottom{flex-wrap:wrap;gap:5px;padding:7px 10px}.tr-bottom>.tr-help{min-width:180px}.tr-playback button{font-size:11px;padding:4px 7px}}
@media(max-width:760px){.tr-top{height:auto;min-height:54px;flex-wrap:wrap}.tr-top #projectName{width:calc(100% - 190px)}.tr-top .tr-role{font-size:10px}.tr-top>.tr-divider{display:none}.tr-top button{flex:1;min-height:38px}.tr-mobile{display:flex;gap:6px;padding:6px 10px;background-color:var(--panel);border-bottom:1px solid var(--line)}.tr-mobile button{flex:1;min-height:36px}.tr-workspace{display:flex;position:relative}.tr-stage{width:100%;min-height:240px}.tr-dock{display:none;position:absolute;top:0;bottom:0;width:min(300px,88vw);z-index:20;box-shadow:0 8px 24px rgba(16,20,18,.15)}.tr-left{left:0}.tr-right{right:0}.tr-dock.open{display:flex}.tr-bottom{min-height:95px}.tr-playback{flex-wrap:wrap}.tr-playback button{min-height:36px}.tr-bottom>.tr-help{font-size:10px}.tr-stage-empty b{font-size:18px}.tr-viewtools{top:8px;left:8px;gap:3px}.tr-viewtools button{padding:5px 7px}.tr-notice{bottom:120px}.tr-metrics{max-height:130px}}
.tr-viewtools{max-width:calc(100% - 24px);flex-wrap:wrap}.tr-viewtools select{max-width:145px;min-height:30px;font-size:11px}
.tr-steps{gap:6px}.tr-steps li{min-width:0;flex:1}.tr-steps button{width:100%;padding:5px 4px;font-size:11px}
.tr-save-error{display:flex;align-items:center;gap:10px;padding:8px 16px;flex-shrink:0;color:var(--bad-ink);background-color:var(--panel);border-bottom:1px solid var(--line);overflow-wrap:anywhere}.tr-save-error span{flex:1;min-width:0}.tr-validation-error{color:var(--bad-ink);padding:8px;border:1px solid var(--line);border-radius:5px}
.tr-lidar-status{display:block;max-width:380px;font-size:11px;white-space:normal}

.tr-sensor-pages{position:absolute;top:8px;right:8px;z-index:34;pointer-events:auto;display:flex;align-items:center;gap:6px;padding:3px 5px;border:1px solid var(--line);border-radius:5px;background-color:var(--panel);color:var(--ink);font-size:11px}.tr-sensor-pages button{min-height:26px;padding:2px 6px}

.tr-route-list{display:flex;flex-direction:column;gap:7px}.tr-route-row{padding:8px;border:1px solid var(--line);border-radius:5px}.tr-route-row:has([aria-expanded=true]){border-color:var(--accent)}.tr-route-head{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.tr-route-head [data-route-summary]{flex:1;min-width:110px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tr-route-grip{cursor:grab;padding:5px;user-select:none}.tr-route-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tr-route-fields label{min-width:0;margin:8px 0}.tr-route-fields input{width:100%;min-width:0}.tr-route-fields small{display:block;grid-column:1/-1;overflow-wrap:anywhere}

.tr-milestone-status{flex-basis:100%;max-height:140px;overflow:auto;font-size:11px;color:var(--muted)}.tr-milestone-status summary{cursor:pointer;color:var(--ink)}.tr-milestone-status [aria-current=step]{font-weight:700;color:var(--ink)}

.tr-b2-set{grid-column:1 / -1}.tr-b2-set b{white-space:normal}.tr-b2-set .tr-asset-details{line-height:1.6}

.tr-runtime-engine{padding:8px 14px;border-top:1px solid var(--line);background-color:var(--panel)}.tr-engine-selector label{display:flex;align-items:center;gap:8px}.tr-engine-selector label>input[type=checkbox]{width:auto;min-height:0;margin:0;flex:0 0 auto}.tr-engine-selector .tr-help{margin:4px 0}.tr-criteria-warning{margin:0;padding:8px 14px;border-top:1px solid var(--line);color:var(--warn);background-color:var(--panel)}
