:root{--bg: #1e2738;--bg-alt: #263045;--bg-panel: #2c3954;--fg: #e6e6e6;--fg-muted: #9d9d9d;--accent: #0e7490;--accent-hover: #0891b2;--border: #3e4a66;--error: #f87171;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark;background-color:var(--bg);color:var(--fg)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;width:100%}body{background:var(--bg);color:var(--fg)}button{background:var(--accent);color:#fff;border:none;padding:.45rem .9rem;border-radius:4px;cursor:pointer;font-size:.85rem}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.4;cursor:not-allowed}button.btn-secondary{background:transparent;color:var(--fg);border:1px solid var(--border)}button.btn-secondary:hover:not(:disabled){background:#ffffff0d}input[type=text]{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:.4rem .6rem;font-size:.85rem;outline:none}input[type=text]:focus{border-color:var(--accent)}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.workspace{flex:1;display:flex;overflow:hidden;min-height:0}.menu-bar{display:flex;align-items:center;background:var(--bg-alt);border-bottom:1px solid var(--border);height:36px;flex-shrink:0;-webkit-user-select:none;user-select:none}.menu-app-name{display:flex;align-items:center;gap:.5rem;padding:0 .9rem;font-size:.78rem;font-weight:600;letter-spacing:.05em;color:var(--fg-muted);border-right:1px solid var(--border);height:100%}.menu-icon{color:var(--accent-hover)}.menu-list{display:flex;height:100%}.menu-item{position:relative;display:flex;align-items:center;padding:0 .9rem;cursor:pointer;font-size:.85rem;height:100%}.menu-item:hover,.menu-item.open{background:var(--bg-panel)}.menu-dropdown{position:absolute;top:100%;left:0;list-style:none;margin:0;padding:.25rem 0;background:var(--bg-panel);border:1px solid var(--border);border-top:none;min-width:220px;z-index:100;box-shadow:0 4px 12px #0000004d}.menu-dropdown-item{padding:.45rem .9rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.85rem;white-space:nowrap}.menu-dropdown-item:hover:not(.disabled){background:var(--accent);color:#fff}.menu-dropdown-item.disabled{opacity:.4;cursor:not-allowed}.menu-check{display:inline-block;width:12px;text-align:center;font-size:.75rem}.menu-separator{height:1px;background:var(--border);margin:.25rem 0}.toolbar-left{width:44px;background:var(--bg-alt);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:4px 2px;flex-shrink:0;overflow-y:auto}.toolbar-btn{width:40px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--fg-muted);border:none;border-radius:4px;margin-bottom:2px;padding:0;cursor:pointer;transition:background .1s,color .1s}.toolbar-btn:hover:not(:disabled){background:#7f7f7f26;color:var(--fg)}.toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.toolbar-btn.active{background:var(--accent);color:#fff}.toolbar-btn-text{font-size:.7rem;font-weight:600;letter-spacing:.04em}.toolbar-btn-badge{position:absolute;top:2px;right:2px;background:var(--accent);color:#000;font-size:.62rem;font-weight:700;line-height:1;padding:2px 4px;border-radius:8px;min-width:12px;text-align:center;pointer-events:none}.toolbar-btn{position:relative}.toolbar-btn-chevron{position:absolute;bottom:1px;right:3px;font-size:9px;line-height:1;opacity:.85;pointer-events:none}.split-popover{z-index:100;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:.55rem .6rem;box-shadow:0 8px 22px #00000080;display:flex;flex-direction:column;gap:.55rem;font-size:.78rem;color:var(--fg)}.split-popover-section{display:flex;flex-direction:column;gap:.3rem}.split-popover-section+.split-popover-section{padding-top:.5rem;border-top:1px solid var(--border)}.split-popover-label{font-size:.7rem;color:var(--fg-muted);letter-spacing:.02em}.split-popover-spinner{display:flex;align-items:center;gap:.3rem}.split-popover-spinner input[type=number]{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;font-size:.85rem;text-align:center;font-variant-numeric:tabular-nums}.split-popover-spinner-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:3px;cursor:pointer;padding:0;flex-shrink:0}.split-popover-spinner-btn>svg{display:block;flex-shrink:0}.split-popover-spinner-btn:hover:not(:disabled){color:var(--fg);background:#7f7f7f1f;border-color:var(--accent)}.split-popover-spinner-btn:disabled{opacity:.4;cursor:not-allowed}.split-popover-spinner input[type=number]::-webkit-inner-spin-button,.split-popover-spinner input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.split-popover-spinner input[type=number]{-moz-appearance:textfield}.split-popover-pair{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.split-popover-pill{background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.35rem .4rem;font-size:.78rem;cursor:pointer}.split-popover-pill:hover{background:#7f7f7f1f;border-color:var(--accent)}.split-popover-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.split-popover-hint{font-size:.68rem;color:var(--fg-muted);font-style:italic}.split-popover-row{display:flex;align-items:center;gap:.4rem;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.3rem .5rem;font-size:.78rem;cursor:pointer;text-align:left}.split-popover-row:hover{background:#7f7f7f1f;border-color:var(--accent)}.split-popover-row.active{border-color:var(--accent);color:var(--accent)}.toolbar-spacer{height:1px;background:var(--border);margin:6px 4px}.chart-pane{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.tab-strip{display:flex;align-items:stretch;background:var(--bg-alt);border-bottom:1px solid var(--border);flex-shrink:0;height:32px}.tab-list{display:flex}.tab{padding:0 1.2rem;background:transparent;color:var(--fg-muted);border:none;border-radius:0;font-size:.85rem;cursor:pointer;border-bottom:2px solid transparent}.tab:hover{color:var(--fg);background:#7f7f7f14}.tab.active{color:var(--fg);border-bottom-color:var(--accent-hover);background:var(--bg)}.tab-filename{margin-left:auto;padding:0 1rem;font-size:.8rem;color:var(--fg-muted);display:flex;align-items:center;font-style:italic}.chart-area{flex:1;position:relative;overflow:hidden;min-height:0}.popover-clamped{max-height:calc(100vh - 16px);overflow-y:auto}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);z-index:50;pointer-events:none}.loading-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 28px;min-width:180px;background:#141820eb;color:#e6edf3;border:1px solid rgba(255,255,255,.08);border-radius:8px;box-shadow:0 8px 24px #0006;font-size:13px;text-align:center}.loading-spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.15);border-top-color:#56a8ff;border-radius:50%;animation:loading-spin .8s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.loading-message{font-weight:500;letter-spacing:.2px;white-space:nowrap}.chart-with-legend{position:absolute;inset:0;display:flex;overflow:hidden}.xy-chart-pane{flex:1 1 0;display:flex;flex-direction:column;min-width:0;min-height:0}.xy-chart-fill{flex:1 1 0;min-width:0;min-height:0;position:relative}.bode-chart-pane{flex:1 1 0;display:flex;flex-direction:column;min-width:0;min-height:0}.bode-chart-fill{flex:1 1 0;min-width:0;min-height:0;position:relative}.spectrum-chart-pane{flex:1 1 0;display:flex;flex-direction:column;min-width:0;min-height:0}.spectrum-chart-fill{flex:1 1 0;min-width:0;min-height:0;position:relative}.three-d-chart-pane{flex:1 1 0;display:flex;flex-direction:column;min-width:0;min-height:0}.three-d-header-bar{display:flex;align-items:center;flex:0 0 auto;border-bottom:1px solid var(--border);background:var(--bg-panel)}.three-d-reset-camera{display:flex;align-items:center;gap:.4rem;padding:6px 12px;font-size:.78rem;background:transparent;color:var(--fg-muted);border:0;cursor:pointer;font-family:inherit}.three-d-reset-camera:hover:not(:disabled){background:#7f7f7f1a;color:var(--fg)}.three-d-reset-camera:disabled{opacity:.4;cursor:not-allowed}.three-d-chart-fill{flex:1 1 0;min-width:0;min-height:0;position:relative}.xy-trendlines-overlay{position:absolute;top:10px;left:10px;z-index:5;display:flex;flex-direction:column;gap:2px;padding:6px 10px;background:#141820c7;border:1px solid rgba(255,255,255,.08);border-radius:4px;pointer-events:none;max-width:80%;font-size:.72rem;font-variant-numeric:tabular-nums;letter-spacing:.15px}.xy-trendline-row{display:flex;align-items:baseline;gap:.5rem;white-space:nowrap;overflow:hidden}.xy-trendline-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;align-self:center}.xy-trendline-name{font-weight:600;max-width:8rem;overflow:hidden;text-overflow:ellipsis}.xy-trendline-eq{color:#e6edf3;font-family:Consolas,SF Mono,Menlo,monospace;overflow:hidden;text-overflow:ellipsis}.xy-trendline-r2{color:#ffffffa6;flex-shrink:0;font-family:Consolas,SF Mono,Menlo,monospace}.xy-placeholder{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;color:var(--fg-muted)}.xy-placeholder h3{margin:0 0 .6rem;font-size:1rem;font-weight:500;color:var(--fg);letter-spacing:.2px}.xy-placeholder p{margin:0;font-size:.85rem;max-width:420px;line-height:1.5}.xy-header-bar{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:#7f7f7f0d;flex-shrink:0}.xy-header{display:flex;align-items:center;gap:.5rem;padding:6px 12px;font-size:.82rem;background:transparent;flex:1 1 0;min-width:0;font-family:inherit;color:inherit;cursor:pointer;text-align:left;outline:none;border:0}.xy-header:hover{background:#7f7f7f1a}.xy-header:focus-visible{background:#7f7f7f1a;box-shadow:inset 0 0 0 2px var(--accent)}.xy-header.drop-target{background:#56a8ff1f;outline:2px dashed rgba(86,168,255,.55);outline-offset:-2px}.xy-header.drop-target:hover{background:#56a8ff33}.xy-header-label{color:var(--fg-muted);font-weight:500;text-transform:uppercase;letter-spacing:.3px;font-size:.72rem}.xy-header-value{color:var(--fg);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xy-header-pencil{flex-shrink:0;color:var(--fg-muted);opacity:.7}.xy-header:hover .xy-header-pencil{color:var(--accent);opacity:1}.xy-time-filter-toggle{display:flex;align-items:center;gap:.4rem;padding:6px 12px;font-size:.78rem;background:transparent;color:var(--fg-muted);border:0;border-left:1px solid var(--border);cursor:pointer;font-family:inherit;flex-shrink:0;max-width:50%;overflow:hidden}.xy-time-filter-toggle:hover{background:#7f7f7f1a;color:var(--fg)}.xy-time-filter-toggle.active{color:var(--accent)}.xy-time-filter-toggle.active:hover{color:var(--accent-hover)}.xy-time-filter-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.bode-header-bar{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:#7f7f7f0d;flex-shrink:0}.bode-time-filter-toggle{display:flex;align-items:center;gap:.4rem;padding:6px 12px;font-size:.78rem;background:transparent;color:var(--fg-muted);border:0;cursor:pointer;font-family:inherit;flex-shrink:0;overflow:hidden}.bode-time-filter-toggle:hover{background:#7f7f7f1a;color:var(--fg)}.bode-time-filter-toggle.active{color:var(--accent)}.bode-time-filter-toggle.active:hover{color:var(--accent-hover)}.bode-time-filter-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.spectrum-header-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem;padding:4px 8px;border-bottom:1px solid var(--border);background:#7f7f7f0d;flex-shrink:0}.spectrum-header-controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.spectrum-header-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--fg-muted)}.spectrum-header-label>span{white-space:nowrap}.spectrum-header-label select{font-family:inherit;font-size:.78rem;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:2px 4px}.spectrum-header-label-timestamp select{min-width:11rem}.spectrum-header-toggle-group{display:inline-flex;border:1px solid var(--border);border-radius:3px;overflow:hidden}.spectrum-header-toggle{font-family:inherit;font-size:.78rem;background:transparent;color:var(--fg-muted);border:0;cursor:pointer;padding:4px 10px;border-right:1px solid var(--border)}.spectrum-header-toggle:last-child{border-right:0}.spectrum-header-toggle:hover:not(:disabled){background:#7f7f7f1a;color:var(--fg)}.spectrum-header-toggle.active{background:var(--accent);color:#fff}.spectrum-header-toggle:disabled{opacity:.4;cursor:not-allowed}.spectrum-header-note{flex:0 0 100%;font-size:.74rem;color:var(--warn, #b45309);padding-top:2px}.xy-trendline-toggle{display:flex;align-items:center;gap:.4rem;padding:6px 12px;font-size:.78rem;background:transparent;color:var(--fg-muted);border:0;border-left:1px solid var(--border);cursor:pointer;font-family:inherit;flex-shrink:0}.xy-trendline-toggle:hover{background:#7f7f7f1a;color:var(--fg)}.xy-trendline-toggle.active{color:var(--accent)}.xy-trendline-toggle.active:hover{color:var(--accent-hover)}.xy-trendline-toggle-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xy-selection-toggle{display:flex;align-items:center;gap:.4rem;padding:6px 12px;font-size:.78rem;background:transparent;color:var(--fg-muted);border:0;border-left:1px solid var(--border);cursor:pointer;font-family:inherit;flex-shrink:0}.xy-selection-toggle:hover{background:#7f7f7f1a;color:var(--fg)}.xy-selection-toggle.active{color:var(--accent)}.xy-selection-toggle.active:hover{color:var(--accent-hover)}.xy-selection-toggle-label,.xy-delete-selection-label,.xy-restore-hidden-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.xy-delete-selection,.xy-restore-hidden{display:flex;align-items:center;gap:.4rem;padding:6px 12px;font-size:.78rem;background:transparent;border:0;border-left:1px solid var(--border);cursor:pointer;font-family:inherit;flex-shrink:0}.xy-delete-selection{color:#d75858}.xy-delete-selection:hover{background:#d758581f;color:#e87070}.xy-restore-hidden{color:var(--fg-muted)}.xy-restore-hidden:hover{background:#7f7f7f1a;color:var(--fg)}.chart-with-legend.row{flex-direction:row}.chart-with-legend.col{flex-direction:column}.chart-with-legend>div:not(.legend-panel){flex:1;min-width:0;min-height:0}.chart-with-legend>.legend-panel{flex-shrink:0}.split-chart-view{display:flex;flex-direction:column;width:100%;height:100%;gap:1px;background:var(--border)}.split-chart-row{flex:1 1 0;min-height:0;background:var(--bg);position:relative}.legend-chart-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 5px;border-radius:3px;background:var(--accent);color:#fff;font-size:.7rem;font-weight:600;cursor:pointer;border:none;flex-shrink:0}.legend-chart-badge:hover{background:var(--accent-hover)}.legend-assign-menu{position:absolute;top:calc(100% + 2px);right:.4rem;z-index:50;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;padding:.25rem;min-width:140px;box-shadow:0 6px 16px #00000059;display:flex;flex-direction:column}.legend-assign-menu button{background:transparent;border:none;text-align:left;padding:.4rem .6rem;cursor:pointer;color:var(--fg);font-size:.78rem;border-radius:3px;display:flex;justify-content:space-between;white-space:nowrap}.legend-assign-menu button:hover:not(:disabled){background:#7f7f7f1f}.legend-assign-menu button:disabled{opacity:.4;cursor:not-allowed}.legend-assign-menu button.current{font-weight:600;color:var(--accent-hover);background:#7f7f7f14}.placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--fg-muted);text-align:center;padding:2rem;gap:.6rem}.placeholder h2{margin:0;font-size:1.1rem;font-weight:500;color:var(--fg)}.placeholder p{margin:0;font-size:.9rem;max-width:480px}.placeholder .hint{font-size:.85rem;color:var(--fg-muted);font-style:italic}.placeholder button{margin-top:.5rem}.status-bar{display:flex;align-items:center;gap:.6rem;padding:.35rem .9rem;background:var(--bg-alt);border-top:1px solid var(--border);font-size:.75rem;color:var(--fg-muted);flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-bar .sep{color:var(--border)}.status-bar .ok{color:#10b981}.status-bar .warn{color:#f59e0b}.status-msg{margin-left:auto;overflow:hidden;text-overflow:ellipsis}.status-msg.error{color:var(--error)}.toast-container{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:min(720px,calc(100vw - 24px));width:max-content}.toast{background:var(--bg-panel);color:var(--fg);padding:12px 18px;border-radius:6px;box-shadow:0 6px 20px #00000059;cursor:pointer;pointer-events:auto;font-size:.88rem;line-height:1.4;border-left:4px solid var(--accent);animation:toast-in .22s ease-out;white-space:pre-wrap;word-wrap:break-word}.toast:hover{filter:brightness(1.1)}.toast-success{border-left-color:#4ade80}.toast-info{border-left-color:#60a5fa}.toast-warning{border-left-color:#fbbf24}.toast-error{border-left-color:#f87171}@keyframes toast-in{0%{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{width:720px;max-width:92vw;max-height:80vh;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1rem;font-weight:500}.modal-close{background:transparent;border:none;color:var(--fg-muted);padding:.3rem;cursor:pointer;border-radius:4px}.modal-close:hover{background:#7f7f7f26;color:var(--fg)}.modal-search{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-bottom:1px solid var(--border);color:var(--fg-muted)}.modal-header-extras{padding:.55rem 1rem;border-bottom:1px solid var(--border);background:#7f7f7f0a}.import-range-choice{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;font-size:.82rem}.import-range-choice-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;margin-right:.15rem}.import-range-choice label{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;-webkit-user-select:none;user-select:none}.import-range-choice input[type=radio]{margin:0}.modal-search input{flex:1;background:transparent;border:none;padding:.2rem 0;font-size:.85rem}.modal-search input:focus{outline:none}.modal-locked-x{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.78rem;color:var(--fg-muted);background:#7f7f7f0d;border-bottom:1px solid var(--border)}.modal-locked-x svg{color:var(--accent);flex-shrink:0}.modal-body{flex:1;display:flex;overflow:hidden;min-height:0}.modal-col{flex:1;display:flex;flex-direction:column;padding:.6rem 1rem;overflow:hidden;min-height:0}.modal-col+.modal-col{border-left:1px solid var(--border)}.modal-col h3{margin:0 0 .4rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-weight:500;display:flex;justify-content:space-between;align-items:baseline}.modal-col .hint{font-size:.7rem;color:var(--fg-muted);font-weight:400;text-transform:none;letter-spacing:0}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;border-top:1px solid var(--border)}.modal-status{font-size:.8rem;color:var(--fg-muted)}.modal-actions{display:flex;gap:.5rem}.column-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.column-list li{padding:.4rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:.4rem}.column-list li:hover{background:#7f7f7f14}.column-list li.selected{background:var(--accent);color:#fff}.column-list li.y-selected{background:#7f7f7f26;font-weight:500}.column-list-empty{padding:.6rem;font-size:.8rem;color:var(--fg-muted);font-style:italic;cursor:default;pointer-events:none;list-style:none}.modal-bulk-actions{display:flex;gap:.4rem;padding:0 0 .4rem;flex-shrink:0}.modal-bulk-btn{background:transparent;color:var(--fg-muted);border:1px solid var(--border);border-radius:3px;padding:.25rem .55rem;font-size:.75rem;cursor:pointer}.modal-bulk-btn:hover:not(:disabled){background:#7f7f7f1a;color:var(--fg);border-color:var(--accent)}.modal-bulk-btn:disabled{opacity:.45;cursor:not-allowed}.col-name-block{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.col-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-desc{font-size:.72rem;color:var(--fg-muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-type{font-size:.7rem;color:var(--fg-muted);text-transform:uppercase}.column-list li.selected .col-type{color:#ffffffb3}.color-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;border:1px solid transparent;flex-shrink:0}.legend-panel{position:relative;background:var(--bg-panel);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.legend-panel.position-right{border-left:1px solid var(--border)}.legend-panel.position-left{border-right:1px solid var(--border)}.legend-panel.position-top{border-bottom:1px solid var(--border);width:100%}.legend-panel.position-bottom{border-top:1px solid var(--border);width:100%}.legend-resize-handle{position:absolute;z-index:20;background:transparent;transition:background .15s}.legend-panel.position-right>.legend-resize-handle{left:-2px;top:0;bottom:0;width:5px;cursor:ew-resize}.legend-panel.position-left>.legend-resize-handle{right:-2px;top:0;bottom:0;width:5px;cursor:ew-resize}.legend-panel.position-top>.legend-resize-handle{bottom:-2px;left:0;right:0;height:5px;cursor:ns-resize}.legend-panel.position-bottom>.legend-resize-handle{top:-2px;left:0;right:0;height:5px;cursor:ns-resize}.legend-resize-handle:hover,.legend-resize-handle.dragging{background:var(--accent-hover)}.legend-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .6rem .45rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.legend-action-btn.active{color:var(--accent-hover);background:#7f7f7f2e}.legend-redist-menu{position:absolute;top:100%;right:.6rem;z-index:60;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;padding:.25rem;display:flex;flex-direction:column;min-width:200px;box-shadow:0 6px 16px #00000059}.legend-redist-menu button{background:transparent;border:none;text-align:left;padding:.4rem .6rem;cursor:pointer;color:var(--fg);font-size:.8rem;border-radius:3px}.legend-redist-menu button:hover{background:#7f7f7f1f}.legend-title{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-weight:500}.legend-panel.legend-exporting .legend-actions,.legend-panel.legend-exporting .legend-resize-handle,.legend-panel.legend-exporting .legend-popover,.legend-panel.legend-exporting .legend-pos-menu,.legend-panel.legend-exporting .legend-more-menu,.legend-panel.legend-exporting .legend-redist-menu,.legend-panel.legend-exporting .legend-measure-header{display:none!important}.legend-actions{display:flex;align-items:center;justify-content:flex-end;gap:1px;flex:1 1 0;min-width:0}.legend-action-btn{background:transparent;border:none;color:var(--fg-muted);cursor:pointer;padding:4px;border-radius:3px;display:flex;align-items:center;justify-content:center}.legend-action-btn:hover{color:var(--fg);background:#7f7f7f26}.legend-action-sep{width:1px;height:14px;background:var(--border);margin:0 4px}.legend-count{font-weight:400;text-transform:none;letter-spacing:0;font-size:.85em}.legend-list{list-style:none;margin:0;padding:.25rem;overflow-y:auto;flex:1}.legend-row{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem;border-radius:4px;position:relative;font-size:.82rem}.legend-row[draggable=true]{cursor:grab}.legend-row.dragging{opacity:.4;cursor:grabbing}.split-drop-overlay{position:absolute;inset:0;pointer-events:none;z-index:50}.split-drop-sub{position:absolute;left:0;right:0}.split-drop-zone{position:absolute;top:4%;bottom:4%;border:1.5px dashed transparent;border-radius:4px;transition:background .08s,border-color .08s}.split-drop-zone.hover{background:#38bdf82e;border-color:var(--accent)}.split-drop-zone.hover.swap{background:#a855f72e;border-color:#a855f7}.split-drop-zone-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg-panel);color:var(--fg);font-size:.75rem;padding:.2rem .5rem;border-radius:4px;border:1px solid var(--accent);white-space:nowrap;box-shadow:0 4px 12px #0006;pointer-events:none}.split-drop-zone-suffix{opacity:.75;font-style:italic}.split-drop-new{position:absolute;left:0;right:0;bottom:0;border:1.5px dashed var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;background:#7f7f7f0a;margin:4px 8px;transition:background .08s,border-color .08s}.split-drop-new.hover{background:#38bdf82e;border-color:var(--accent);border-style:solid}.split-drop-new-label{font-size:.85rem;color:var(--fg);display:inline-flex;align-items:center;gap:.4rem}.split-drop-new-plus{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:1rem;line-height:1}.split-edit-overlay{position:absolute;inset:0;pointer-events:none;z-index:45}.split-edit-frame{position:absolute;left:0;right:0;border:2px dashed var(--accent);border-radius:4px;box-sizing:border-box;margin:2px 4px}.split-edit-frame.dragging{opacity:.4}.split-edit-header{position:absolute;top:-1px;left:24%;right:24%;height:20px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;gap:4px;cursor:grab;border-radius:0 0 6px 6px;pointer-events:auto;-webkit-user-select:none;user-select:none;box-shadow:0 2px 6px #0000004d}.split-edit-header:active{cursor:grabbing}.split-edit-insertion-top{position:absolute;top:-3px;left:8px;right:8px;height:4px;background:var(--accent);border-radius:2px;box-shadow:0 0 8px var(--accent)}.split-edit-insertion-bottom{position:absolute;bottom:-3px;left:8px;right:8px;height:4px;background:var(--accent);border-radius:2px;box-shadow:0 0 8px var(--accent)}.legend-row.drop-before:before,.legend-row.drop-after:after{content:"";position:absolute;background:var(--accent);pointer-events:none;z-index:5}.legend-panel.vertical .legend-row.drop-before:before{left:4px;right:4px;top:-1px;height:2px}.legend-panel.vertical .legend-row.drop-after:after{left:4px;right:4px;bottom:-1px;height:2px}.legend-panel.horizontal .legend-row.drop-before:before{top:4px;bottom:4px;left:-2px;width:2px}.legend-panel.horizontal .legend-row.drop-after:after{top:4px;bottom:4px;right:-2px;width:2px}.legend-row:hover{background:#7f7f7f14}.legend-row.hidden .legend-name{opacity:.45;text-decoration:line-through}.legend-standalone-btn{background:transparent;border:1px solid transparent;color:var(--fg-muted);cursor:pointer;padding:1px;border-radius:3px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.legend-standalone-btn:hover{color:var(--fg);background:#7f7f7f1f;border-color:var(--border)}.legend-standalone-btn.active{color:var(--accent);border-color:var(--accent)}.legend-vis-btn,.legend-more-btn{background:transparent;border:none;color:var(--fg-muted);cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center}.legend-vis-btn:hover,.legend-more-btn:hover{color:var(--fg);background:#7f7f7f1f}.legend-swatch-wrap{position:relative;width:14px;height:14px;cursor:pointer;flex-shrink:0}.legend-color-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.legend-swatch{display:block;width:14px;height:14px;border-radius:3px;border:1px solid var(--border);pointer-events:none}.legend-name-block{flex:1;display:flex;flex-direction:column;min-width:0;gap:1px;overflow:hidden}.legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-desc{font-size:.7rem;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.legend-popover{position:absolute;top:calc(100% + 2px);right:.4rem;z-index:50;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;padding:.6rem;min-width:180px;box-shadow:0 6px 16px #00000059;display:flex;flex-direction:column;gap:.5rem}.legend-popover-row{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--fg-muted)}.legend-popover-row input[type=number]{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;font-size:.8rem;width:100%}.legend-popover-check{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--fg);cursor:pointer;-webkit-user-select:none;user-select:none}.legend-popover-check input[type=checkbox]{cursor:pointer;margin:0}.legend-swatch-static{cursor:default}.legend-panel.compact .legend-row{padding:.3rem .5rem}.legend-panel.compact .legend-name-block{margin-left:.1rem}.legend-value{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem;font-weight:600;text-align:right;flex-shrink:0;min-width:4.5rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.legend-panel{--legend-anno-col-w: 52px}.legend-anno-headers{display:flex;gap:4px;padding:4px 8px 6px;border-bottom:1px solid var(--border);background:var(--bg-alt);overflow-x:auto;flex-shrink:0}.legend-anno-header{position:relative;display:flex;font-size:.7rem;color:var(--fg-muted);border-left:2px solid var(--accent);background:#7f7f7f0d}.legend-anno-label{font-weight:700;font-size:.72rem;color:var(--fg);letter-spacing:.02em}.legend-anno-x{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.65rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap}.legend-anno-x-date,.legend-anno-x-time,.legend-anno-x-single{font:inherit}.legend-anno-remove{background:transparent;color:var(--fg-muted);border:0;cursor:pointer;font-size:.95rem;line-height:1;padding:0 4px;transition:opacity .12s ease,color .12s ease}.legend-anno-remove:hover{color:#d75858;opacity:1!important}.legend-anno-row{display:flex;gap:4px;flex-shrink:0;margin-left:auto}.legend-anno-value{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;border-left:2px solid transparent;transition:background-color .12s ease}.legend-panel.vertical .legend-anno-headers{justify-content:flex-end;padding-right:var(--legend-vertical-headers-right, 32px)}.legend-panel.vertical .legend-anno-header{flex-direction:column;align-items:center;justify-content:flex-start;min-width:var(--legend-anno-col-w);max-width:var(--legend-anno-col-w);padding:2px 2px 4px;gap:3px;border-right:1px solid rgba(127,127,127,.12)}.legend-panel.vertical .legend-anno-headers>.legend-anno-header:last-child{border-right:0}.legend-panel.vertical .legend-anno-label{writing-mode:vertical-rl;transform:rotate(180deg);text-align:left;max-height:8rem;overflow:hidden;text-overflow:ellipsis;margin-top:auto}.legend-panel.vertical .legend-anno-x{display:flex;flex-direction:row;align-items:flex-start;justify-content:center;gap:3px;width:100%;margin-top:10px}.legend-panel.vertical .legend-anno-x-date,.legend-panel.vertical .legend-anno-x-time,.legend-panel.vertical .legend-anno-x-single{writing-mode:vertical-rl;transform:rotate(180deg);text-align:left;max-height:8rem;overflow:hidden;text-overflow:ellipsis}.legend-panel.vertical .legend-anno-remove{order:-1;opacity:.45;font-size:.85rem;padding:0 2px;margin-bottom:1px}.legend-panel.vertical .legend-anno-header:hover .legend-anno-remove{opacity:1}.legend-panel.vertical .legend-anno-value{min-width:var(--legend-anno-col-w);max-width:var(--legend-anno-col-w);text-align:center;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:1px solid rgba(127,127,127,.12)}.legend-panel.vertical .legend-anno-row>.legend-anno-value:last-child{border-right:0}.legend-panel.vertical .legend-anno-input{position:absolute;inset:2px;writing-mode:horizontal-tb;transform:none;width:auto;min-width:140px;max-width:240px;z-index:5}.legend-panel.horizontal:has(.legend-anno-headers) .legend-list{grid-template-columns:1fr}.legend-panel.horizontal .legend-anno-headers{flex-wrap:nowrap;justify-content:flex-start;padding:4px 8px 6px var(--legend-anno-h-headers-offset, 200px);gap:0;background:#7f7f7f0d;border-bottom:1px solid var(--border)}.legend-panel.horizontal .legend-anno-header{flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:center;gap:1px;padding:3px 6px 4px;border:0;border-radius:0;border-right:1px solid var(--border);background:transparent;width:var(--legend-anno-h-chip-w, 100px);min-width:var(--legend-anno-h-chip-w, 100px);max-width:var(--legend-anno-h-chip-w, 100px);flex-shrink:0;box-sizing:border-box;overflow:hidden;position:relative}.legend-panel.horizontal .legend-anno-headers>.legend-anno-header:last-child{border-right:0}.legend-panel.horizontal .legend-anno-label{text-align:center;font-weight:700;font-size:.72rem;color:var(--fg);padding-right:12px;white-space:normal;word-break:break-word;line-height:1.15}.legend-panel.horizontal .legend-anno-x{display:flex;flex-direction:column;align-items:stretch;line-height:1.18}.legend-panel.horizontal .legend-anno-x-date,.legend-panel.horizontal .legend-anno-x-time,.legend-panel.horizontal .legend-anno-x-single{display:block;text-align:center}.legend-panel.horizontal .legend-anno-x-date{color:var(--fg-muted);font-size:.65rem}.legend-panel.horizontal .legend-anno-x-time{font-size:.7rem}.legend-panel.horizontal .legend-anno-remove{position:absolute;top:0;right:2px;background:transparent;border:0;cursor:pointer;color:var(--fg-muted);font-size:.85rem;line-height:1;padding:1px 4px;opacity:.4;transition:opacity .12s ease,color .12s ease}.legend-panel.horizontal .legend-anno-header:hover .legend-anno-remove{opacity:1}.legend-panel.horizontal .legend-anno-row{flex-wrap:nowrap;margin-left:0;padding-left:0;gap:0}.legend-panel.horizontal .legend-name-block{flex:0 0 auto;width:var(--legend-name-block-w, auto);min-width:var(--legend-name-block-w, 0);max-width:var(--legend-name-block-w, none);overflow:hidden}.legend-panel.horizontal .legend-row>.legend-anno-row+*{margin-left:auto}.legend-panel.horizontal .legend-anno-value{padding:2px 6px;border-radius:0;background:transparent;border:0;border-right:1px solid rgba(127,127,127,.12);font-size:.78rem;width:var(--legend-anno-h-chip-w, 100px);min-width:var(--legend-anno-h-chip-w, 100px);max-width:var(--legend-anno-h-chip-w, 100px);box-sizing:border-box;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0}.legend-panel.horizontal .legend-anno-row>.legend-anno-value:last-child{border-right:0}.legend-panel.horizontal .legend-anno-value:before{content:none}.legend-panel.horizontal .legend-anno-input{writing-mode:horizontal-tb;min-width:100px}.legend-panel .legend-anno-header.highlighted,.legend-panel .legend-anno-value.highlighted{background:#ffd00047!important}.legend-anno-label.editable,.legend-anno-x.editable{cursor:text}.legend-anno-label.editable:hover,.legend-anno-x.editable:hover{color:var(--accent);text-decoration:underline dotted;text-underline-offset:2px}.legend-anno-input{background:var(--bg);color:var(--fg);border:1px solid var(--accent);border-radius:3px;padding:1px 4px;font:inherit;font-size:.7rem;width:100%;box-sizing:border-box}.legend-anno-input-x{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.65rem}.legend-measure-header{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.74rem;color:var(--fg);background:#7f7f7f1f;border:1px solid var(--border);border-radius:3px;padding:.3rem .5rem;text-align:center;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-panel.measure-mode .legend-row{padding:.25rem .5rem}.legend-panel.horizontal .legend-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--legend-min-col-width, 220px),1fr));gap:0 .4rem;align-content:start;padding:.25rem .4rem;overflow-x:auto}.legend-panel.horizontal .legend-row{padding:.2rem .4rem;min-width:0}.legend-panel.horizontal .legend-name-block{flex-direction:row;align-items:baseline;gap:.4rem;overflow:hidden}.legend-panel.horizontal .legend-desc:before{content:"· ";margin-right:.15rem;color:var(--fg-muted)}.legend-panel.horizontal .legend-desc{font-size:.7rem;flex-shrink:1;min-width:0}.legend-more-menu{z-index:100;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:.35rem;display:flex;flex-direction:column;gap:.15rem;min-width:200px;box-shadow:0 8px 20px #00000073}.legend-more-item{display:flex;align-items:center;gap:.55rem;background:transparent;border:0;color:var(--fg);cursor:pointer;padding:.4rem .55rem;border-radius:3px;font-size:.78rem;text-align:left;white-space:nowrap}.legend-more-item:hover{background:#7f7f7f1f}.legend-more-item.active{color:var(--accent)}.legend-more-item>svg{flex-shrink:0;opacity:.85}.legend-edit-auto-menu{z-index:100;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:.35rem;display:flex;flex-direction:column;gap:.15rem;min-width:200px;box-shadow:0 8px 20px #00000073}.legend-edit-auto-title{font-size:.72rem;color:var(--fg-muted);padding:.25rem .55rem .35rem;text-transform:uppercase;letter-spacing:.04em}.legend-edit-auto-item{display:flex;align-items:center;gap:.55rem;background:transparent;border:0;color:var(--fg);cursor:pointer;padding:.4rem .55rem;border-radius:3px;font-size:.78rem;text-align:left;white-space:nowrap}.legend-edit-auto-item:hover{background:#7f7f7f1f}.legend-edit-auto-item.active{color:var(--accent)}.legend-edit-auto-item.active:before{content:"✓ ";margin-right:-.3rem}.legend-edit-auto-item>svg{flex-shrink:0;opacity:.85}.legend-pos-menu{z-index:100;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:.4rem;display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,44px);gap:.3rem;box-shadow:0 8px 20px #00000073}.legend-pos-menu .pos-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--fg);cursor:pointer;padding:0;font-size:.7rem}.legend-pos-menu .pos-cell span{line-height:1}.legend-pos-menu .pos-cell:hover{background:#7f7f7f1f;border-color:var(--accent)}.legend-pos-menu .pos-cell.current{color:var(--accent);border-color:var(--accent);background:#7f7f7f14}.legend-pos-menu .pos-top{grid-column:2;grid-row:1}.legend-pos-menu .pos-left{grid-column:1;grid-row:2}.legend-pos-menu .pos-right{grid-column:3;grid-row:2}.legend-pos-menu .pos-bottom{grid-column:2;grid-row:3}.legend-remove-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;background:transparent;color:var(--error);border:1px solid var(--error);padding:.35rem .5rem;border-radius:3px;cursor:pointer;font-size:.75rem}.legend-remove-btn:hover:not(:disabled){background:var(--error);color:#fff}.drag-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--accent) 12%,transparent);border:3px dashed var(--accent-hover);z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drag-overlay-content{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:1.8rem 2.5rem;text-align:center;color:var(--fg);box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;align-items:center;gap:.5rem}.drag-overlay-content svg{color:var(--accent-hover)}.drag-overlay-title{margin:0;font-size:1rem;font-weight:500}.drag-overlay-formats{margin:0;font-size:.8rem;color:var(--fg-muted)}.sset-panel{position:fixed;top:0;left:0;bottom:0;width:min(960px,70vw);max-width:95vw;background:var(--bg-panel);border-right:1px solid var(--border);box-shadow:8px 0 24px #00000073;z-index:200;display:flex;flex-direction:column;animation:sset-slide-in .18s ease-out;color:var(--fg)}@keyframes sset-slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.sset-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;border-bottom:1px solid var(--border)}.sset-header h2{font-size:1rem;font-weight:600;margin:0}.sset-header-actions{display:flex;align-items:center;gap:.4rem}.sset-toolbar{display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;border-bottom:1px solid var(--border);background:#7f7f7f0d;position:relative;flex-wrap:wrap}.sset-search{display:flex;align-items:center;gap:.35rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.25rem .5rem;flex:0 0 260px;color:var(--fg-muted)}.sset-search input{border:none;background:transparent;color:var(--fg);outline:none;font-size:.82rem;flex:1}.sset-dictionary{display:flex;gap:.3rem;align-items:center;opacity:.55}.sset-dictionary select,.sset-dictionary button{height:28px;font-size:.78rem;background:var(--bg);border:1px solid var(--border);color:var(--fg);border-radius:3px;padding:0 .5rem;cursor:not-allowed}.sset-bulk{margin-left:auto;position:relative}.sset-btn,.sset-btn-primary,.sset-btn-ghost,.sset-btn-icon{display:inline-flex;align-items:center;gap:.35rem;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer;transition:background .1s,border-color .1s,color .1s}.sset-btn:hover:not(:disabled),.sset-btn-ghost:hover:not(:disabled){background:#7f7f7f1f;border-color:var(--accent)}.sset-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.sset-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.sset-btn-primary:disabled,.sset-btn:disabled,.sset-btn-ghost:disabled{opacity:.4;cursor:not-allowed}.sset-btn-icon{padding:.25rem;border:1px solid transparent;color:var(--fg-muted)}.sset-btn-icon:hover{color:var(--fg);background:#7f7f7f1f}.sset-btn-ghost{border-color:transparent;color:var(--fg-muted);padding:.25rem .5rem}.sset-btn-ghost:hover{color:var(--fg);border-color:var(--border)}.sset-table-wrap{flex:1;overflow:auto;position:relative}.sset-table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:fixed}.sset-table thead{position:sticky;top:0;z-index:2;background:var(--bg-panel)}.sset-table th{text-align:left;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);padding:.5rem;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis}.sset-resize-handle{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;transition:background-color .1s}.sset-resize-handle:hover{background:var(--accent);opacity:.5}.sset-th-check,.sset-th-actions{width:32px}.sset-th-sortable{cursor:pointer}.sset-th-sortable:hover{color:var(--fg)}.sset-th-sortable span{margin-right:4px}.sset-table tbody tr{border-bottom:1px solid rgba(127,127,127,.1)}.sset-table tbody tr:hover{background:#7f7f7f0d}.sset-table tbody tr.selected{background:#38bdf814}.sset-table td{padding:.25rem .35rem;vertical-align:middle}.sset-td-check{text-align:center}.sset-td-actions{position:relative;width:32px}.sset-td-invalid{background:#f871711f}.sset-cell{font-size:.78rem;padding:.25rem .4rem;border-radius:3px;width:100%;box-sizing:border-box}.sset-cell-readonly{color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sset-cell-input{background:transparent;color:var(--fg);border:1px solid transparent}.sset-cell-input:hover{border-color:#7f7f7f33;background:#7f7f7f0d}.sset-cell-input:focus{outline:none;border-color:var(--accent);background:var(--bg)}.sset-cell.mono{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-variant-numeric:tabular-nums}.sset-empty{text-align:center;padding:2rem;color:var(--fg-muted);font-style:italic}.sset-row-menu{position:absolute;right:8px;top:100%;z-index:10;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;box-shadow:0 6px 18px #0006;display:flex;flex-direction:column;min-width:220px}.sset-row-menu button{background:transparent;border:none;color:var(--fg);text-align:left;padding:.5rem .75rem;font-size:.8rem;cursor:pointer}.sset-row-menu button:hover{background:#7f7f7f1f}.sset-footer{display:flex;align-items:center;justify-content:space-between;padding:.55rem 1rem;border-top:1px solid var(--border);background:#7f7f7f0d}.sset-footer-status{font-size:.78rem;color:var(--fg-muted)}.sset-footer-actions{display:flex;gap:.4rem}.sset-bulk-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:50;width:320px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:.7rem;box-shadow:0 8px 24px #00000073}.sset-bulk-popover h3{margin:0 0 .3rem;font-size:.85rem}.sset-bulk-hint{font-size:.72rem;color:var(--fg-muted);margin:0 0 .6rem;font-style:italic}.sset-bulk-row{display:grid;grid-template-columns:auto 90px 1fr;align-items:center;gap:.4rem;margin-bottom:.35rem}.sset-bulk-label{font-size:.78rem;color:var(--fg-muted)}.sset-bulk-row input[type=text]{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;font-size:.8rem}.sset-bulk-row input[type=text]:disabled{opacity:.45;cursor:not-allowed}.sset-bulk-actions{display:flex;gap:.4rem;justify-content:flex-end;margin-top:.6rem}.conversion-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.conversion-modal-panel{background:var(--bg-panel);color:var(--fg);border:1px solid var(--border);border-radius:8px;box-shadow:0 16px 40px #00000080;min-width:420px;max-width:560px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.conversion-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.conversion-modal-header h2{margin:0;font-size:.95rem;font-weight:600}.conversion-modal-close{background:transparent;border:0;color:var(--fg-muted);cursor:pointer;padding:.25rem;border-radius:3px;display:flex;align-items:center}.conversion-modal-close:hover{background:#7f7f7f26;color:var(--fg)}.conversion-modal-body{padding:1rem;display:flex;flex-direction:column;gap:.55rem}.conversion-modal-desc{margin:0 0 .5rem;padding:0;font-size:.9rem;color:var(--fg);line-height:1.45}.conversion-modal-error{margin:.5rem 0 0;padding:.55rem .7rem;background:#dc3c3c1f;border:1px solid rgba(220,60,60,.45);border-radius:4px;color:var(--fg);font-size:.82rem;line-height:1.4}.conversion-modal-row{display:flex;align-items:baseline;gap:1rem}.conversion-modal-label{flex:0 0 130px;color:var(--fg-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.conversion-modal-value{flex:1;font-size:.92rem;word-break:break-all}.conversion-modal-format-name{display:block}.conversion-modal-format-desc{display:block;margin-top:.25rem;font-size:.78rem;color:var(--fg-muted);line-height:1.4;word-break:normal}.conversion-modal-value.mono{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.82rem}.conversion-modal-badge{display:inline-block;margin-left:.6rem;padding:1px 6px;border-radius:3px;background:#5a99ff2e;color:var(--accent);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.conversion-modal-warnings{margin-top:.4rem;background:#ffa50014;border:1px solid rgba(255,165,0,.3);border-radius:4px;padding:.4rem .6rem}.conversion-modal-warnings summary{cursor:pointer;font-size:.85rem;color:#c98800}.conversion-modal-warnings ul{margin:.4rem 0 0;padding-left:1.4rem;font-size:.82rem;color:var(--fg-muted)}.conversion-modal-footer{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);justify-content:flex-end;flex-wrap:wrap}.conversion-modal-btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--bg-alt);color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:.45rem .85rem;font-size:.85rem;cursor:pointer;transition:background .12s ease,border-color .12s ease}.conversion-modal-btn:hover{background:#7f7f7f26;border-color:var(--accent)}.conversion-modal-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.conversion-modal-btn.primary:hover{background:var(--accent-hover, var(--accent));filter:brightness(1.08)}.conversion-modal-btn.small{padding:.3rem .55rem;font-size:.75rem;gap:.3rem}.conversion-modal-btn.ghost{background:transparent;border-color:transparent;color:var(--fg-muted)}.conversion-modal-btn.ghost:hover{background:#7f7f7f26;color:var(--fg);border-color:transparent}.conversion-modal-hint{margin:0;padding:0 1rem .85rem;font-size:.78rem;color:var(--fg-muted);line-height:1.4}.tag-conflict-panel{min-width:640px;max-width:90vw;width:860px}.tag-conflict-bulk{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;margin:.25rem 0 .5rem;background:#7f7f7f0f;border-radius:4px;flex-wrap:wrap}.tag-conflict-bulk-label{font-size:.78rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.tag-conflict-list{max-height:50vh;overflow-y:auto;border:1px solid var(--border);border-radius:4px}.tag-conflict-table{width:100%;border-collapse:collapse;font-size:.82rem}.tag-conflict-table thead{position:sticky;top:0;background:var(--bg-panel);z-index:1}.tag-conflict-table th{text-align:left;padding:.5rem .6rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-weight:600;border-bottom:1px solid var(--border)}.tag-conflict-table td{padding:.4rem .6rem;border-bottom:1px solid rgba(127,127,127,.1);vertical-align:middle}.tag-conflict-name,.tag-conflict-preview{font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.78rem;word-break:break-all}.tag-conflict-preview{color:var(--accent)}.tag-conflict-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.tag-conflict-actions label{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.78rem}.tag-conflict-actions input[type=radio]{margin:0}.tag-conflict-prefix-input{margin-left:.15rem;padding:.15rem .4rem;border:1px solid var(--border);border-radius:3px;background:var(--bg);color:var(--fg);font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:.72rem;width:9ch}.tag-conflict-prefix-input:focus{outline:none;border-color:var(--accent)}.annotation-panel{position:relative;background:var(--bg-panel);color:var(--fg);flex-shrink:0;font-size:.82rem;overflow:auto}.annotation-panel.vertical{display:flex;flex-direction:column;border-left:1px solid var(--border);width:280px}.annotation-panel.horizontal{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr auto;border-top:1px solid var(--border);width:100%;max-height:200px}.annotation-panel.horizontal .annotation-panel-header{grid-row:1;grid-column:1 / -1}.annotation-panel.horizontal .annotation-panel-body{grid-row:2;grid-column:1;flex-direction:row;flex-wrap:wrap;align-items:center;gap:.75rem}.annotation-panel.horizontal .annotation-panel-row{flex:0 0 auto;gap:.4rem}.annotation-panel.horizontal .annotation-panel-row>span{flex:0 0 auto}.annotation-panel.horizontal .annotation-panel-row input[type=text]{width:9rem}.annotation-panel.horizontal .annotation-panel-row input[type=color]{width:3rem;flex:0 0 auto}.annotation-panel.horizontal .annotation-panel-row input[type=range]{width:8rem;flex:0 0 auto}.annotation-panel.horizontal .annotation-panel-toggle{margin-top:0;align-self:center}.annotation-panel.horizontal .annotation-panel-footer{grid-row:2;grid-column:2;border-top:0;border-left:1px solid var(--border);align-items:center;background:transparent}.annotation-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .7rem;border-bottom:1px solid var(--border);background:#7f7f7f0a}.annotation-panel-header h3{margin:0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted)}.annotation-panel-close{background:transparent;border:0;color:var(--fg-muted);cursor:pointer;padding:.2rem;border-radius:3px;display:flex;align-items:center}.annotation-panel-close:hover{background:#7f7f7f26;color:var(--fg)}.annotation-panel-body{padding:.7rem;display:flex;flex-direction:column;gap:.55rem;flex:1}.annotation-panel-row{display:flex;align-items:center;gap:.5rem}.annotation-panel-row>span{flex:0 0 70px;color:var(--fg-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em}.annotation-panel-row input[type=text]{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;font-size:.82rem}.annotation-panel-row input[type=text]:focus{outline:none;border-color:var(--accent)}.annotation-panel-row input[type=number]{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;font-size:.82rem;font-variant-numeric:tabular-nums}.annotation-panel-row input[type=number]:focus{outline:none;border-color:var(--accent)}.annotation-panel-row textarea{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.3rem .45rem;font-size:.82rem;font-family:inherit;resize:none;min-height:2.4em;line-height:1.3;overflow:hidden;box-sizing:border-box}.annotation-panel-row textarea:focus{outline:none;border-color:var(--accent)}.annotation-panel-row.annotation-panel-row-wide{flex-direction:column;align-items:stretch;gap:.25rem}.annotation-panel-row.annotation-panel-row-wide>span{flex:0 0 auto}.annotation-panel-row-aux{background:transparent;border:1px solid var(--border);color:var(--fg-muted);padding:.2rem .35rem;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;flex:0 0 auto}.annotation-panel-row-aux:hover{border-color:var(--accent);color:var(--fg)}.annotation-panel-row input[type=color]{flex:1;height:28px;border:1px solid var(--border);border-radius:3px;background:transparent;cursor:pointer}.annotation-panel-row input[type=range]{flex:1;accent-color:var(--accent)}.annotation-panel-row select{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.25rem .4rem;font-size:.82rem}.annotation-panel-row select:focus{outline:none;border-color:var(--accent)}.annotation-panel-radios{flex:1;display:flex;gap:.6rem;flex-wrap:wrap}.annotation-panel-checks{flex:1;display:flex;gap:.4rem .7rem;flex-wrap:wrap}.anno-pos-grid{display:grid;grid-template-rows:repeat(5,16px);grid-template-columns:repeat(5,16px);gap:2px}.anno-pos-box{grid-area:2 / 2 / 5 / 5;background:#3aa3d8;border-radius:3px;margin:-2px}.anno-pos-cell{border:1px solid rgba(0,0,0,.35);border-radius:2px;padding:0;cursor:pointer;position:relative;z-index:1}.anno-pos-cell.inside{background:#f5a623}.anno-pos-cell.outside{background:#ffe81a}.anno-pos-cell:hover{filter:brightness(1.18)}.anno-pos-cell.selected{outline:2px solid var(--accent, #38bdf8);outline-offset:1px}.annotation-panel-radio{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--fg);cursor:pointer}.annotation-panel-radio input[type=radio]{accent-color:var(--accent);margin:0}.annotation-panel-toggle{display:inline-flex;align-items:center;gap:.35rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:.35rem .6rem;font-size:.78rem;cursor:pointer;align-self:flex-start;margin-top:.25rem}.annotation-panel-toggle:hover{border-color:var(--accent)}.annotation-panel-footer{padding:.55rem .7rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;background:#7f7f7f0a}.annotation-panel-delete{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:1px solid rgba(220,60,60,.45);color:#f87171;border-radius:3px;padding:.35rem .65rem;font-size:.78rem;cursor:pointer}.annotation-panel-delete:hover{background:#dc3c3c1f}.annotation-panel-reset{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:1px solid var(--border);color:var(--fg-muted);border-radius:3px;padding:.35rem .65rem;font-size:.78rem;cursor:pointer}.annotation-panel-reset:hover{border-color:var(--accent);color:var(--fg)}
