*{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-width:250px;--activity-bar-width:36px;--left-panel-width:220px;--right-panel-width:250px;--editor-tab-height:32px;--bg:#1a1a2e;--bg-surface:#16213e;--bg-hover:#0f3460;--bg-active:#533483;--text:#c8c8d0;--text-dim:#7a7a8a;--text-bright:#e8e8f0;--accent:#8b5cf6;--accent-dim:#8b5cf64d;--border:#2a2a4a;--error:#f44;--mono:ui-monospace, Consolas, monospace;--sans:system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{width:100%;height:100%;font-family:var(--sans);color:var(--text);background:var(--bg);font-size:14px;overflow:hidden}.app-shell{width:100%;height:100%;display:flex}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;height:100%;padding:12px;display:flex;overflow-y:auto}.sidebar h2{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:8px;font-size:13px}.sidebar h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:16px 0 6px;font-size:12px}.sidebar-status{color:var(--text-dim);padding:4px 0;font-size:12px}.sidebar-status.error{color:var(--error)}.subject-list,.series-list,.subject-tree{list-style:none}.subject-btn,.series-btn{width:100%;color:var(--text);cursor:pointer;font-family:var(--mono);text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.subject-btn:hover,.series-btn:hover{background:var(--bg-hover)}.subject-btn.active,.series-btn.active{background:var(--accent-dim);color:var(--text-bright)}.subject-node{margin:0}.expand-chevron{color:var(--text-dim);text-align:center;cursor:pointer;border-radius:3px;flex-shrink:0;width:14px;height:14px;font-size:8px;line-height:14px;transition:transform .15s;display:inline-block}.expand-chevron:hover{color:var(--text);background:var(--bg-hover)}.expand-chevron.expanded{transform:rotate(90deg)}.status-dot{flex-shrink:0;justify-content:center;align-items:center;width:10px;height:10px;font-size:10px;line-height:1;display:inline-flex}.status-dot.status-dirty{color:var(--warning,#f59e0b)}.status-dot.status-dirty:before{content:"";background:var(--warning,#f59e0b);border-radius:50%;width:6px;height:6px}.status-dot.status-exported{color:var(--success,#22c55e);font-weight:700}.status-dot-spacer{flex-shrink:0;width:10px}.subject-id{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.series-list-inline{margin:2px 0;padding-left:20px;list-style:none}.badge{color:var(--text-dim);background:var(--border);border-radius:8px;margin-left:auto;padding:1px 6px;font-size:11px}.view-tag{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.series-desc{text-overflow:ellipsis;white-space:nowrap;font-family:var(--sans);flex:1;font-size:12px;overflow:hidden}.main-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.toolbar-btn{border:1px solid var(--border);color:var(--text);font-family:var(--sans);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:background .1s,border-color .1s}.toolbar-btn:hover{background:var(--bg-hover)}.toolbar-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--text-bright)}.toolbar-btn:disabled{opacity:.4;cursor:default}.layer-offset-slider{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;width:80px;height:4px}.layer-offset-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:12px;height:12px}.layer-offset-value{font-size:11px;font-family:var(--mono,monospace);color:var(--text);-webkit-user-select:none;user-select:none;min-width:28px}.region-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.tab-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:0;padding:0 8px;display:flex}.tab-btn{color:var(--text-dim);font-family:var(--sans);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 14px;font-size:12px;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--text-bright);border-bottom-color:var(--accent)}.multi-view-container{flex-direction:column;width:100%;height:100%;display:flex}.multi-view-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:3px 8px;display:flex}.intersection-toggle{font-size:11px;font-family:var(--sans);border:1px solid var(--border);background:var(--bg);color:var(--text-dim);cursor:pointer;border-radius:3px;padding:2px 8px}.intersection-toggle.active{color:var(--text-bright);border-color:var(--accent);background:var(--bg-surface)}.multi-view-layout{background:var(--border);flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;width:100%;min-height:0;display:grid}.viewport-cell{background:var(--bg);flex-direction:column;display:flex;position:relative;overflow:hidden}.viewport-cell.active{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.viewport-cell-header{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:3px 8px;font-size:11px;display:flex}.viewport-cell-header .view-label{color:var(--text-bright);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.viewport-series-select{font-size:11px;font-family:var(--sans);background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:3px;max-width:180px;padding:1px 4px}.viewport-zoom-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:14px;line-height:1}.viewport-zoom-btn:hover{color:var(--text-bright)}.multi-view-layout.expanded{grid-template-rows:1fr;grid-template-columns:1fr}.viewport-cell-content{flex:1;min-height:0}.viewport-empty{color:var(--text-dim);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.content{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.single-view-layout{flex-direction:column;width:100%;height:100%;display:flex}.single-view-layout.empty{color:var(--text-dim);justify-content:center;align-items:center}.viewport-container{flex:1;min-height:0;position:relative}.screenshot-button-root{z-index:30;opacity:0;pointer-events:none;transition:opacity .12s ease-in-out;position:absolute;top:6px;right:6px}.viewport-container:hover .screenshot-button-root,.viewport-cell-content:hover .screenshot-button-root,.link-viewport-cell:hover .screenshot-button-root,.screenshot-button-root:focus-within,.screenshot-button-root.open{opacity:1;pointer-events:auto}@media (hover:none){.screenshot-button-root{opacity:1;pointer-events:auto}}.screenshot-button{color:#e8e8e8;cursor:pointer;background:#0000008c;border:1px solid #fff3;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:background-color .12s,border-color .12s;display:inline-flex}.screenshot-button:hover{background:#000c;border-color:#fff6}.screenshot-button:disabled{opacity:.5;cursor:wait}.screenshot-popover{background:var(--bg-surface,#1e1e1e);border:1px solid var(--border,#3a3a3a);min-width:180px;color:var(--text,#e8e8e8);border-radius:4px;padding:4px 0;font-size:12px;position:absolute;top:30px;right:0;box-shadow:0 4px 12px #00000080}.screenshot-popover-section{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim,#888);padding:4px 10px 2px;font-size:10px}.screenshot-popover-item{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:12px;display:block}.screenshot-popover-item:hover{background:#ffffff14}.screenshot-popover-item{justify-content:space-between;align-items:center;gap:10px;display:flex}.screenshot-popover-hint{color:var(--text-dim,#888);font-size:10px;font-family:var(--mono,monospace);white-space:nowrap}.screenshot-popover-footer{border-top:1px solid var(--border,#3a3a3a);color:var(--text-dim,#888);margin-top:2px;padding:6px 12px;font-size:10px}.slice-slider{background:var(--bg-surface);border-top:1px solid var(--border);font-size:12px;font-family:var(--mono);color:var(--text-dim);align-items:center;gap:12px;padding:8px 16px;display:flex}.slice-slider input[type=range]{accent-color:var(--accent);flex:1}.playback-controls{background:var(--bg-surface);border-top:1px solid var(--border);font-size:12px;font-family:var(--mono);color:var(--text-dim);align-items:center;gap:8px;padding:6px 12px;display:flex}.playback-controls .playback-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:26px;height:24px;padding:0;font-size:12px;line-height:1;display:flex}.playback-controls .playback-btn:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent)}.playback-controls .playback-btn:disabled{opacity:.4;cursor:not-allowed}.playback-controls .playback-btn-play.is-playing{background:var(--accent);border-color:var(--accent);color:#fff}.playback-controls .playback-slider{accent-color:var(--accent);flex:1;min-width:60px}.playback-controls .playback-counter{text-align:right;min-width:60px}.playback-controls .playback-select select{background:var(--bg);color:var(--text);border:1px solid var(--border);font-size:11px;font-family:var(--mono);cursor:pointer;border-radius:4px;padding:2px 4px}.playback-controls .playback-select select:disabled{opacity:.4;cursor:not-allowed}.floating-player{z-index:1100;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:320px;min-height:280px;display:flex;position:fixed;overflow:hidden;box-shadow:0 16px 40px #0009}.floating-player-titlebar{background:var(--bg);border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none;color:var(--text);justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.floating-player-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.floating-player-title-sub{color:var(--text-dim);margin-left:6px;font-weight:400}.floating-player-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.floating-player-close:hover{color:var(--text)}.floating-player-body{background:#000;flex-direction:column;flex:1;min-height:0;display:flex}.floating-player-body .single-view-layout{flex-direction:column;flex:1;min-height:0;display:flex}.floating-player-body .viewport-container{flex:1;min-height:0;position:relative}.floating-player-resize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0%, transparent 50%, var(--border) 50%, var(--border) 60%, transparent 60%, transparent 70%, var(--border) 70%, var(--border) 80%, transparent 80%);z-index:1;width:16px;height:16px;position:absolute;bottom:0;right:0}.link-row-label>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.link-row-label-actions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.link-row-popout-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;padding:1px 5px;font-size:11px;line-height:1.2}.link-row-popout-btn:hover{color:var(--text);border-color:var(--accent);background:var(--accent-dim)}.link-row-collapse-btn{padding:0 6px;font-size:13px}.link-row-collapse-btn:hover{color:#ff6b6b;background:#ff6b6b1f;border-color:#ff6b6b}.activity-bar{width:var(--activity-bar-width);min-width:var(--activity-bar-width);background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;height:100%;display:flex}.activity-bar-top{flex-direction:column;align-items:center;gap:2px;padding-top:4px;display:flex}.activity-bar-bottom{flex-direction:column;align-items:center;padding-bottom:4px;display:flex}.activity-bar-icon{width:36px;height:36px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;justify-content:center;align-items:center;transition:color .15s;display:flex}.activity-bar-icon:hover{color:var(--text)}.activity-bar-icon.active{color:var(--text-bright);border-left-color:var(--accent)}.left-panel{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100%;display:flex;position:relative;overflow:hidden}.right-panel{background:var(--bg-surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100%;display:flex;position:relative;overflow:hidden}.panel-header{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 12px;font-size:11px}.panel-content{flex:1;overflow-y:auto}.resize-handle{cursor:col-resize;z-index:10;width:4px;height:100%;position:absolute;top:0}.resize-handle-right{right:-2px}.resize-handle-left{left:-2px}.resize-handle:hover{background:var(--accent-dim)}.editor-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.menu-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:500;border-radius:4px;min-width:200px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0006}.menu-item{color:var(--text);cursor:pointer;white-space:nowrap;justify-content:space-between;align-items:center;padding:4px 16px 4px 12px;font-size:12px;display:flex}.menu-item:hover,.menu-item.focused{background:var(--accent-dim);color:var(--text-bright)}.menu-item.disabled{opacity:.4;cursor:default;pointer-events:none}.menu-item-label{flex:1}.menu-item-shortcut{color:var(--text-dim);font-size:11px;font-family:var(--mono);margin-left:24px}.menu-item-arrow{color:var(--text-dim);margin-left:12px;font-size:10px}.menu-separator{background:var(--border);height:1px;margin:4px 8px}.context-menu{background:var(--bg-surface);border:1px solid var(--border);z-index:600;border-radius:4px;min-width:160px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0006}.context-menu-item{color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;padding:4px 16px 4px 12px;font-size:12px;display:flex}.context-menu-item:hover,.context-menu-item.focused{background:var(--accent-dim);color:var(--text-bright)}.context-menu-item.disabled{opacity:.4;cursor:default;pointer-events:none}.context-menu-separator{background:var(--border);height:1px;margin:4px 8px}.view-selector{background:var(--bg-surface);border:1px solid var(--border);z-index:600;border-radius:6px;min-width:200px;max-width:300px;padding:8px;position:fixed;box-shadow:0 4px 16px #0006}.view-selector-capsules{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.view-capsule{cursor:pointer;white-space:nowrap;text-transform:uppercase;font-size:10px;font-weight:600;font-family:var(--sans);background:0 0;border:1px solid #0000;border-radius:3px;padding:2px 8px}.view-capsule:hover{filter:brightness(1.2)}.view-capsule.selected{border-color:currentColor}.view-capsule.focused{outline:1px solid var(--accent);outline-offset:1px}.view-selector-input{gap:4px;display:flex}.view-selector-input input{background:var(--bg);border:1px solid var(--border);color:var(--text);font-size:11px;font-family:var(--sans);border-radius:3px;outline:none;flex:1;padding:3px 6px}.view-selector-input input:focus{border-color:var(--accent)}.view-selector-input button{background:var(--accent-dim);color:var(--text);cursor:pointer;font-size:11px;font-family:var(--sans);border:none;border-radius:3px;padding:3px 8px}.view-selector-input button:hover{background:var(--accent);color:var(--text-bright)}.view-badge-editable{cursor:pointer;border:none;font-family:inherit}.view-badge-editable:hover{filter:brightness(1.3)}.grid-detail-desc-input{background:var(--bg);border:1px solid var(--accent);color:var(--text-bright);min-width:80px;max-width:300px;font-size:12px;font-weight:600;font-family:var(--sans);border-radius:3px;outline:none;padding:1px 4px}.grid-detail-title.editable{cursor:text}.grid-detail-title.editable:hover{text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.editor-area-inner{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.editor-tab-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);height:var(--editor-tab-height);min-height:var(--editor-tab-height);-webkit-user-select:none;user-select:none;align-items:center;display:flex}.editor-tabs-scroll{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.editor-tabs-scroll::-webkit-scrollbar{display:none}.editor-tab{height:var(--editor-tab-height);cursor:pointer;color:var(--text-dim);border-right:1px solid var(--border);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:12px;transition:background .1s;display:flex}.editor-tab:hover{background:var(--bg-hover);color:var(--text)}.editor-tab.active{color:var(--text-bright);border-bottom-color:var(--accent);background:var(--bg)}.editor-tab .tab-icon{color:var(--text-dim);align-items:center;display:flex}.editor-tab.active .tab-icon{color:var(--accent)}.editor-tab .tab-label{text-overflow:ellipsis;max-width:160px;overflow:hidden}.editor-tab .dirty-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.editor-tab .close-btn{color:var(--text-dim);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1;transition:opacity .1s}.editor-tab:hover .close-btn{opacity:.7}.editor-tab .close-btn:hover{opacity:1;color:var(--text-bright)}.editor-tab.active .close-btn{opacity:.5}.new-editor-wrapper{flex-shrink:0;position:relative}.new-editor-btn{color:var(--text-dim);cursor:pointer;height:var(--editor-tab-height);background:0 0;border:none;padding:4px 10px;font-size:16px}.new-editor-btn:hover{color:var(--text-bright);background:var(--bg-hover)}.new-editor-btn:disabled{opacity:.3;cursor:not-allowed}.new-editor-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:100;border-radius:4px;min-width:140px;position:absolute;top:100%;right:0;box-shadow:0 4px 16px #0006}.new-editor-dropdown .dropdown-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:12px;display:block}.new-editor-dropdown .dropdown-item:hover{background:var(--bg-hover)}.editor-content-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.editor-welcome-state{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:40px;display:flex}.welcome-header{text-align:center}.welcome-header h2{color:var(--text-bright);margin:0 0 4px;font-size:20px;font-weight:500}.welcome-subtitle{margin:0;font-size:13px}.welcome-actions{gap:12px;display:flex}.welcome-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 20px;font-size:13px}.welcome-btn:hover{filter:brightness(1.15)}.welcome-shortcuts{color:var(--text-dim);font-size:11px}.welcome-shortcuts span:not(.welcome-sep){font-family:var(--mono);background:var(--bg);border:1px solid var(--border);border-radius:3px;margin-right:4px;padding:1px 5px}.welcome-sep{margin:0 10px}.welcome-recent{width:100%;max-width:400px}.welcome-recent h3{text-transform:uppercase;color:var(--text-dim);margin:0 0 8px;font-size:12px;font-weight:500}.welcome-recent-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-direction:column;padding:6px 10px;font-size:13px;display:flex}.welcome-recent-item:hover{background:var(--bg-hover)}.welcome-recent-path{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.placeholder-hint{color:var(--text-dim);opacity:.7;font-size:12px}.series-editor,.quad-editor,.grid-editor{flex-direction:column;flex:1;display:flex;overflow:hidden}.editor-breadcrumb{color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:4px 12px;font-size:12px;display:flex}.breadcrumb-text{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;display:flex;overflow:hidden}.breadcrumb-text strong{color:var(--text)}.view-badge{border-radius:3px;margin-left:6px;padding:1px 5px;font-size:10px}.editor-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.editor-loading{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}.grid-toolbar{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:16px;padding:6px 12px;font-size:12px;display:flex}.grid-toolbar-group{align-items:center;gap:6px;display:flex}.grid-toolbar-group label{color:var(--text-dim);white-space:nowrap}.grid-toolbar-group select{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:12px}.sort-dir-btn{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:2px 6px;font-size:12px;line-height:1}.sort-dir-btn:hover{border-color:var(--accent)}.series-filter-input{background:var(--bg-surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:12px}.series-filter-input:focus{border-color:var(--accent);outline:none}.series-filter-clear{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:20px;height:22px;padding:0;font-size:14px;line-height:1}.series-filter-clear:hover{color:var(--text);border-color:var(--accent)}.series-filter-count{color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px}.grid-empty-filter{text-align:center;color:var(--text-dim);padding:24px;font-size:13px}.grid-toolbar-zoom{margin-left:auto}.grid-toolbar-zoom input[type=range]{width:80px;accent-color:var(--accent);cursor:pointer}.grid-scroll{flex:1;overflow-y:auto}.grid-group{padding:0 16px}.grid-group-header{background:var(--bg);z-index:1;align-items:center;gap:8px;padding:12px 0 6px;font-size:12px;transition:background .15s,outline-color .15s;display:flex;position:sticky;top:0}.grid-group-header.drag-over{background:color-mix(in srgb, var(--accent) 15%, var(--bg));outline:2px dashed var(--accent);outline-offset:-2px;border-radius:4px}.grid-group-label{color:var(--text);font-weight:600}.grid-group-count{background:var(--accent-dim);color:var(--accent);border-radius:8px;padding:0 5px;font-size:10px}.breadcrumb-count{color:var(--text-dim);margin-left:4px}.grid-view{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:12px;padding:8px 0 16px;display:grid}.grid-card{background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;transition:border-color .15s,box-shadow .15s}.grid-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.grid-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:var(--bg-hover)}.grid-card.dragging{opacity:.3;pointer-events:none}.grid-card.multi-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--bg-hover)}.grid-expanded-row.multi-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.grid-card.multi-selected .subject-select-checkbox{opacity:1}.grid-drag-overlay{opacity:.85;pointer-events:none;cursor:grabbing;position:relative;transform:rotate(2deg);box-shadow:0 8px 24px #0000004d}.drag-count-badge{background:var(--accent);color:var(--bg);z-index:10;pointer-events:none;border-radius:10px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:-8px;right:-8px}.grid-group-toggle{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1}.grid-group-toggle:hover{color:var(--text-bright)}.grid-group-expand-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:11px}.grid-group-expand-btn:hover{color:var(--accent)}.grid-card-expand-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;opacity:0;background:#0009;border-radius:3px;padding:1px 4px;font-size:11px;line-height:1;transition:opacity .15s;position:absolute;top:4px;right:4px}.grid-card:hover .grid-card-expand-btn{opacity:1}.grid-card-expand-btn:hover{color:var(--accent);border-color:var(--accent)}.grid-card-slice-count{color:var(--text-dim);font-size:10px}.grid-expanded-wrapper{grid-template-rows:1fr;display:grid}.grid-expanded-wrapper.animate{animation:.2s ease-out grid-expand-slide}.grid-expanded-wrapper>.grid-expanded-row{min-height:0}@keyframes grid-expand-slide{0%{opacity:0;grid-template-rows:0fr}}.grid-expanded-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;margin:6px 0;overflow:hidden}.grid-expanded-row.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.grid-expanded-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.grid-expanded-collapse-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px}.grid-expanded-collapse-btn:hover{color:var(--accent)}.grid-expanded-title{color:var(--text-bright);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.grid-expanded-count{color:var(--text-dim);margin-left:auto;font-size:10px}.grid-expanded-slices{gap:6px;padding:8px 10px;display:flex}.grid-expanded-slices.wrap{flex-wrap:wrap}.grid-expanded-slices.nowrap{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-wrap:nowrap;overflow-x:auto}.grid-slice-thumb{border:1px solid var(--border);cursor:pointer;background:#000;border-radius:3px;flex-shrink:0;transition:border-color .15s;position:relative;overflow:hidden}.grid-slice-thumb:hover{border-color:var(--accent)}.grid-slice-thumb.annotated{border-color:var(--accent-dim)}.grid-slice-thumb.annotated:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:2px;left:2px}.grid-slice-thumb img{object-fit:contain;width:100%;height:100%}.grid-slice-index{color:#fff9;text-shadow:0 0 3px #000c;font-size:9px;position:absolute;bottom:1px;right:3px}.grid-slice-thumb.slice-selected{outline:2px solid var(--accent);outline-offset:-2px}.grid-slice-thumb.slice-dragging{opacity:.3;pointer-events:none}.slice-drag-overlay{opacity:.85;pointer-events:none;cursor:grabbing;border:1px solid var(--accent);background:#222;border-radius:3px;position:relative;transform:rotate(1deg);box-shadow:0 4px 16px #0006}.slice-drag-overlay .drag-count-badge{top:-6px;right:-6px}.sort-dir-btn.active{border-color:var(--accent);color:var(--accent)}.grid-toolbar-sep{background:var(--border);width:1px;height:14px;margin:0 2px}.grid-toolbar-size-label{color:var(--text-dim);text-align:center;min-width:24px;font-size:11px}.grid-split-container{flex:1;display:flex;overflow:hidden}.grid-split-left{flex-direction:column;flex:1;display:flex;overflow-y:auto}.grid-split-container.split-active .grid-split-left{flex:1;min-width:300px}.grid-split-divider{cursor:col-resize;background:var(--border);flex-shrink:0;width:4px}.grid-split-divider:hover{background:var(--accent-dim)}.grid-detail-pane{flex-direction:column;flex:1;min-width:400px;display:flex}.grid-detail-header{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.grid-detail-title{color:var(--text-bright);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.grid-detail-spacer{flex:1}.grid-detail-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:14px}.grid-detail-close:hover{background:var(--bg-hover);color:var(--text-bright)}.grid-detail-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.grid-detail-mode-toggle{background:var(--border);border-radius:4px;gap:1px;display:flex;overflow:hidden}.mode-toggle-btn{background:var(--bg-surface);color:var(--text-dim);cursor:pointer;border:none;padding:2px 10px;font-size:11px}.mode-toggle-btn:hover{background:var(--bg-hover);color:var(--text)}.mode-toggle-btn.active{background:var(--accent-dim);color:var(--text-bright)}.grid-card-thumb{background:#000;border-radius:5px 5px 0 0;justify-content:center;align-items:center;height:180px;display:flex;position:relative;overflow:hidden}.grid-card-thumb img{object-fit:contain;width:100%;height:100%}.grid-card-empty{color:var(--text-dim);font-size:12px}.grid-card-info{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:6px;padding:8px 10px;display:flex}.grid-card-desc{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.subjects-editor{flex-direction:column;flex:1;display:flex;overflow:hidden}.subjects-thumb-strip{gap:2px;display:flex;position:relative}.subject-select-checkbox{z-index:2;cursor:pointer;opacity:0;width:16px;height:16px;accent-color:var(--accent);transition:opacity .15s;position:absolute;top:4px;left:4px}.grid-card:hover .subject-select-checkbox,.grid-card.selected .subject-select-checkbox,.subject-select-checkbox[data-visible]{opacity:1}.subjects-thumb-strip img{object-fit:cover;flex:1;min-width:0;height:100%}.subjects-empty-state{color:var(--text-dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.subjects-empty-state button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 20px;font-size:13px}.subjects-empty-state button:hover{filter:brightness(1.1)}.explorer-all-subjects-btn{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:4px 8px;font-size:12px;display:flex}.explorer-all-subjects-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.view-as-dropdown{flex-shrink:0;position:relative}.view-as-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px}.view-as-btn:hover{color:var(--text);border-color:var(--text-dim)}.view-as-menu{background:var(--bg-surface);border:1px solid var(--border);z-index:100;border-radius:4px;min-width:130px;margin-top:2px;position:absolute;top:100%;right:0;box-shadow:0 4px 16px #0006}.view-as-menu .dropdown-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:5px 10px;font-size:11px;display:block}.view-as-menu .dropdown-item:hover{background:var(--bg-hover)}.view-as-menu .dropdown-item.active{color:var(--accent)}.properties-section{border-bottom:1px solid var(--border)}.properties-section-header{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);cursor:pointer;padding:6px 12px;font-size:11px;list-style:none}.properties-section-header::-webkit-details-marker{display:none}.properties-section-header:before{content:"▶";margin-right:6px;font-size:8px;transition:transform .15s;display:inline-block}.properties-section[open]>.properties-section-header:before{transform:rotate(90deg)}.properties-section-body{padding:8px 12px}.placeholder-text{color:var(--text-dim);font-size:12px;font-style:italic}.prop-table{grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:11px;display:grid}.prop-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.prop-value{color:var(--text);word-break:break-all;font-family:Consolas,Monaco,monospace}.prop-value-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.comments-textarea{width:100%;min-height:60px;color:var(--text);background:var(--bg-input,#1e1e1e);border:1px solid var(--border);resize:vertical;box-sizing:border-box;border-radius:3px;padding:6px 8px;font-family:inherit;font-size:12px}.comments-textarea:focus{border-color:var(--accent);outline:none}.save-indicator{color:var(--text-dim);margin-left:6px;font-size:10px;font-weight:400}.annotation-list-body{padding:0}.annotation-list{padding:4px 0}.annotation-group{margin-bottom:4px}.annotation-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:4px 12px 2px;font-size:10px;font-weight:600}.annotation-row{cursor:pointer;align-items:center;gap:6px;min-height:24px;padding:3px 12px;font-size:11px;display:flex}.annotation-row:hover{background:#ffffff0a}.annotation-row.selected{background:var(--accent-dim)}.region-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.annotation-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.annotation-info{color:var(--text-dim);flex-shrink:0;font-family:Consolas,Monaco,monospace;font-size:10px}.annotation-vis-btn{cursor:pointer;color:var(--text-dim);opacity:.7;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0 2px;font-size:12px;line-height:1;display:flex}.annotation-vis-btn:hover{opacity:1}.annotation-vis-btn.hidden-state{opacity:.25}.annotation-del-btn{cursor:pointer;color:var(--text-dim);opacity:.4;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:13px;line-height:1}.annotation-row:hover .annotation-del-btn{opacity:.7}.annotation-del-btn:hover{opacity:1;color:#ff6b6b}.annotation-child-row{min-height:22px;padding-left:28px;font-size:10px}.annotation-child-row .region-dot{opacity:.6;width:6px;height:6px}.annotation-child-row .annotation-label{color:var(--text-dim)}.annotation-child-row.selected .annotation-label{color:var(--text)}.annotation-child-slider-row{align-items:center;gap:6px;padding:2px 28px 4px;font-size:10px;display:flex}.child-offset-slider{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;flex:1;height:3px}.child-offset-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:10px;height:10px}.child-offset-value{font-size:9px;font-family:var(--mono,monospace);color:var(--text-dim);text-align:right;-webkit-user-select:none;user-select:none;min-width:30px}.annotation-degree-stepper{align-items:center;gap:4px;padding:2px 8px 4px 28px;font-size:10px;display:flex}.degree-label{color:var(--text-dim);font-size:9px}.degree-btn{border:1px solid var(--border);background:var(--bg);width:18px;height:18px;color:var(--text);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex}.degree-btn:hover:not(:disabled){background:var(--accent);color:var(--bg)}.degree-btn:disabled{opacity:.3;cursor:default}.degree-value{font-size:11px;font-family:var(--mono,monospace);text-align:center;min-width:14px}.degree-name{color:var(--text-dim);margin-left:2px;font-size:9px}.explorer-section{flex-direction:column;height:100%;padding:8px;display:flex;overflow-y:auto}.explorer-section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:12px 0 6px;font-size:12px}.explorer-section .sidebar-status{color:var(--text-dim);padding:4px 0;font-size:12px}.explorer-section .sidebar-status.error{color:var(--error)}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.status-dirty{background:var(--warning,#f59e0b)}.status-dot.status-exported{background:var(--success,#22c55e)}.subject-export-check{cursor:pointer;width:14px;height:14px;accent-color:var(--accent);flex-shrink:0;margin:0}.export-toolbar{border-top:1px solid var(--border);background:var(--bg-surface);gap:4px;padding:6px 8px;display:flex;position:sticky;bottom:0}.export-toolbar button{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:4px;flex:1;padding:4px 8px;font-size:11px}.export-toolbar button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.export-toolbar button:hover{opacity:.9}.command-palette-overlay{z-index:1000;background:#0006;justify-content:center;padding-top:15vh;display:flex;position:fixed;inset:0}.command-palette{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-self:flex-start;width:520px;max-height:400px;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000080}.command-palette-input{background:var(--bg);border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-bright);font-size:14px;font-family:var(--sans);outline:none;padding:10px 14px}.command-palette-input::placeholder{color:var(--text-dim)}.command-palette-list{max-height:340px;overflow-y:auto}.command-item{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;padding:6px 14px;font-size:13px;display:flex}.command-item.selected{background:var(--accent-dim)}.command-item.empty{color:var(--text-dim);cursor:default;justify-content:center;padding:16px}.command-item:hover:not(.empty){background:var(--bg-hover)}.command-category{color:var(--text-dim)}.keyhint{color:var(--text-dim);font-size:11px;font-family:var(--mono);background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 6px}.shortcuts-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.shortcuts-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:500px;max-height:70vh;display:flex;box-shadow:0 8px 32px #00000080}.shortcuts-title{color:var(--text);border-bottom:1px solid var(--border);padding:14px 18px;font-size:15px;font-weight:600}.shortcuts-body{padding:8px 0;overflow-y:auto}.shortcuts-category{margin-bottom:4px}.shortcuts-category-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:8px 18px 4px;font-size:11px}.shortcuts-row{justify-content:space-between;align-items:center;padding:5px 18px;display:flex}.shortcuts-row:hover{background:var(--bg-hover)}.shortcuts-label{color:var(--text);font-size:13px}.file-browser-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.file-browser-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:620px;max-height:72vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000080}.file-browser-title-bar{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.file-browser-title-bar button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.file-browser-title-bar button:hover{color:var(--text)}.file-browser-nav{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:6px 12px;display:flex}.file-browser-nav-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 6px;font-size:14px;line-height:1}.file-browser-nav-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.file-browser-nav-btn:disabled{opacity:.3;cursor:default}.file-browser-path{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;outline:none;flex:1;padding:4px 8px;font-family:monospace;font-size:12px}.file-browser-list{flex:1;min-height:200px;overflow-y:auto}.file-browser-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:4px 14px;display:flex}.file-browser-row:hover{background:var(--bg-hover)}.file-browser-row.selected{background:#8b5cf62e}.file-browser-row-check{cursor:pointer;width:16px;height:16px;accent-color:var(--accent);flex-shrink:0;margin:0 4px 0 0}.file-browser-row-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px}.file-browser-row-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.file-browser-row.selected .file-browser-row-name{color:#fff}.file-browser-row-size{text-align:right;width:72px;color:var(--text-dim);flex-shrink:0;font-size:11px}.file-browser-row-date{text-align:right;width:86px;color:var(--text-dim);flex-shrink:0;font-size:11px}.file-browser-filter-bar{border-top:1px solid var(--border);align-items:center;gap:10px;padding:8px 14px;display:flex}.file-browser-filter-bar label{color:var(--text-dim);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.file-browser-filter-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;flex:1;padding:4px 8px;font-size:12px}.file-browser-filter-input:focus{border-color:var(--accent)}.file-browser-actions{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:10px 14px;display:flex}.file-browser-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:5px 16px;font-size:13px}.file-browser-btn:hover{background:var(--bg-hover)}.file-browser-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.file-browser-btn.primary:hover{filter:brightness(1.15)}.file-browser-btn.primary:disabled{opacity:.4;cursor:default;filter:none}.file-browser-loading{color:var(--text-dim);justify-content:center;align-items:center;padding:32px;font-size:13px;display:flex}.file-browser-error{color:#f44;padding:12px 14px;font-size:12px}.file-browser-save-row{border-top:1px solid var(--border);align-items:center;gap:8px;padding:8px 14px;display:flex}.file-browser-save-input{background:var(--bg);border:1px solid var(--border);color:var(--text-bright);border-radius:4px;flex:1;padding:6px 10px;font-size:13px}.file-browser-save-input:focus{border-color:var(--accent);outline:none}.toast-container{z-index:2000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:#fff;pointer-events:auto;cursor:pointer;border-radius:6px;padding:8px 20px;font-size:13px;animation:.2s ease-out toast-in;box-shadow:0 4px 12px #0006}.toast-info{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-bright)}.toast-success{background:#2a7a3f}.toast-error{background:#a63232}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.import-progress-panel{z-index:2000;background:var(--bg-surface);border:1px solid var(--border);min-width:260px;max-width:360px;color:var(--text-bright);border-radius:6px;padding:10px 14px;font-size:12px;animation:.2s ease-out toast-in;position:fixed;bottom:16px;right:16px;box-shadow:0 4px 12px #0006}.import-progress-label{text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;font-weight:500;overflow:hidden}.import-progress-bar{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.import-progress-bar-fill{background:var(--accent,#4a9eff);height:100%;transition:width .1s linear}.import-progress-count{color:var(--text-muted,#aaa);font-variant-numeric:tabular-nums;margin-top:4px}.import-progress-panel--multi{max-width:400px;padding:8px 10px 10px}.import-progress-header{color:var(--text-muted,#aaa);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;font-weight:500;display:flex}.import-progress-header-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.import-progress-collapse{color:var(--text-muted,#aaa);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:11px}.import-progress-collapse:hover{color:var(--text-bright);background:#ffffff14}.import-progress-rows{flex-direction:column;gap:8px;max-height:260px;display:flex;overflow-y:auto}.import-progress-row{background:#ffffff08;border-radius:4px;padding:6px 8px}.import-progress-row--error{background:#ff50501a}.import-progress-row--done{opacity:.7}.import-progress-row-top{align-items:center;gap:6px;margin-bottom:4px;display:flex}.import-progress-row .import-progress-label{flex:1;margin:0;font-size:12px}.import-progress-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.import-progress-dot--queued{background:var(--text-muted,#888)}.import-progress-dot--running{background:var(--accent,#4a9eff);animation:1.2s ease-in-out infinite import-progress-pulse}.import-progress-dot--done{background:#4caf50}.import-progress-dot--error,.import-progress-row--error .import-progress-bar-fill{background:#ef5350}.import-progress-row--done .import-progress-bar-fill{background:#4caf50}@keyframes import-progress-pulse{0%,to{opacity:1}50%{opacity:.4}}.export-dialog-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.export-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;width:480px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.export-dialog-title{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.export-dialog-title button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.export-dialog-body{flex-direction:column;gap:16px;padding:16px;display:flex}.export-section{flex-direction:column;gap:6px;display:flex}.export-label{text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;font-size:11px}.export-radios{flex-direction:column;gap:4px;font-size:13px;display:flex}.export-radios label{cursor:pointer;align-items:center;gap:6px;display:flex}.export-hint{color:var(--text-dim);font-size:12px}.export-dest-row{gap:8px;display:flex}.export-dest-input{background:var(--bg);border:1px solid var(--border);color:var(--text-bright);border-radius:4px;flex:1;padding:6px 10px;font-size:13px}.export-dest-input:focus{border-color:var(--accent);outline:none}.export-browse-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-bright);cursor:pointer;white-space:nowrap;border-radius:4px;padding:6px 12px;font-size:12px}.export-browse-btn:hover{background:var(--bg-surface)}.export-dialog-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.confirm-close-overlay{z-index:1200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-close-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;width:420px;box-shadow:0 8px 32px #00000080}.confirm-close-title{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.confirm-close-title button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px}.confirm-close-body{color:var(--text-bright);padding:16px;font-size:13px;line-height:1.5}.confirm-close-body p{margin:0}.confirm-close-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.settings-editor{background:var(--bg-surface);flex-direction:column;height:100%;display:flex;overflow:hidden}.settings-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.settings-search-wrapper{flex:1;position:relative}.settings-search-icon{color:var(--text-dim);pointer-events:none;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.settings-search{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:4px;outline:none;padding:6px 28px 6px 30px;font-size:13px}.settings-search:focus{border-color:var(--accent)}.settings-search-clear{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:16px;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.settings-search-clear:hover{color:var(--text)}.settings-reset-all{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:5px 12px;font-size:12px}.settings-reset-all:hover{color:var(--text);border-color:var(--text-dim)}.settings-body{flex:1;display:flex;overflow:hidden}.settings-sidebar{border-right:1px solid var(--border);flex-direction:column;width:180px;min-width:180px;padding:8px 0;display:flex;overflow-y:auto}.settings-category-btn{width:100%;color:var(--text-dim);text-align:left;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;padding:6px 16px;font-size:13px;transition:color .1s,background .1s;display:block}.settings-category-btn:hover{color:var(--text);background:#ffffff08}.settings-category-btn.active{color:var(--text-bright);border-left-color:var(--accent);background:#ffffff0a}.settings-content{flex:1;padding:12px 24px;overflow-y:auto}.settings-group{margin-bottom:16px}.settings-group-title{color:var(--accent);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);margin:0 0 8px;padding-bottom:4px;font-size:12px;font-weight:600}.settings-section{margin-bottom:18px}.settings-section+.settings-section{margin-top:6px}.settings-section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);margin:12px 0 6px;padding-bottom:3px;font-size:11px;font-weight:600}.settings-section:first-child .settings-section-title{margin-top:0}.settings-empty{color:var(--text-dim);text-align:center;padding:24px 0;font-size:13px}.setting-item{border-bottom:1px solid #ffffff0a;padding:10px 0}.setting-item.modified{border-left:2px solid var(--accent);margin-left:-12px;padding-left:10px}.setting-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.setting-info{flex-direction:column;gap:2px;display:flex}.setting-label{color:var(--text);font-size:13px;font-weight:500}.setting-description{color:var(--text-dim);font-size:12px;line-height:1.4}.setting-reset-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;align-items:center;padding:2px;display:flex}.setting-reset-btn:hover{color:var(--accent);background:#8b5cf61a}.setting-control{max-width:400px}.setting-toggle{cursor:pointer;width:36px;height:20px;display:inline-block;position:relative}.setting-toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background:var(--bg);border:1px solid var(--border);border-radius:10px;transition:background .2s,border-color .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--text-dim);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.setting-toggle input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.setting-toggle input:checked+.toggle-slider:before{background:#fff;transform:translate(16px)}.setting-number{align-items:center;gap:10px;display:flex}.setting-number input[type=range]{appearance:none;background:var(--border);border-radius:2px;outline:none;flex:1;height:4px}.setting-number input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:14px;height:14px}.setting-number input[type=number]{background:var(--bg);border:1px solid var(--border);width:64px;color:var(--text);text-align:right;border-radius:3px;padding:3px 6px;font-size:12px}.setting-number input[type=number]:focus{border-color:var(--accent);outline:none}.setting-select{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;min-width:160px;padding:5px 8px;font-size:13px}.setting-select:focus{border-color:var(--accent);outline:none}.setting-color{align-items:center;gap:8px;display:flex}.color-swatch{border:2px solid var(--border);cursor:pointer;border-radius:4px;width:28px;height:28px;transition:border-color .15s}.color-swatch:hover{border-color:var(--text-dim)}.color-input-hidden{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.color-hex{color:var(--text-dim);font-family:monospace;font-size:12px}.setting-text{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;min-width:200px;padding:5px 8px;font-size:13px}.setting-text:focus{border-color:var(--accent);outline:none}.region-config-editor{padding:4px 0}.region-config-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.region-config-table{border-collapse:collapse;width:100%;font-size:13px}.region-config-table th{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;padding:6px 8px;font-size:11px;font-weight:500}.region-config-table th.rc-col-name{text-align:left}.region-config-table th.rc-col-order,.region-config-table th.rc-col-color,.region-config-table th.rc-col-actions{width:32px}.region-config-table th.rc-col-type{width:60px}.region-row{cursor:pointer;transition:background-color .1s}.region-row:hover,.region-row.expanded{background:var(--hover)}.region-row td{border-bottom:1px solid var(--border-subtle,#ffffff0d);vertical-align:middle;padding:6px 8px}.rc-order-btns{flex-direction:column;align-items:center;gap:0;display:flex}.rc-order-btn{color:var(--text-dim);cursor:pointer;opacity:.4;background:0 0;border:none;padding:0 2px;font-size:8px;line-height:1;transition:opacity .15s}.region-row:hover .rc-order-btn:not(:disabled){opacity:1}.rc-order-btn:disabled{opacity:.15;cursor:default}.rc-color-swatch{cursor:pointer;border:1px solid #ffffff26;border-radius:4px;width:20px;height:20px;transition:transform .1s}.rc-color-swatch:hover{transform:scale(1.15)}.rc-color-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.rc-col-color{position:relative}.rc-region-name{font-weight:500}.rc-custom-badge{background:var(--accent-dim,#0078ff26);color:var(--accent,#48f);vertical-align:middle;border-radius:3px;margin-left:6px;padding:1px 5px;font-size:10px;display:inline-block}.rc-expand-indicator{color:var(--text-dim);opacity:.5;margin-left:4px;font-size:10px}.rc-checkbox-label{cursor:pointer;justify-content:center;align-items:center;display:flex}.rc-checkbox-label input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--accent,#48f)}.rc-delete-btn{color:var(--text-dim);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 4px;font-size:16px;transition:opacity .15s,color .15s}.region-row:hover .rc-delete-btn{opacity:.6}.rc-delete-btn:hover{color:#f44;opacity:1!important}.region-detail-row td{border-bottom:1px solid var(--border);padding:0}.region-detail-content{background:var(--panel-bg,#0000001a);border-top:1px solid var(--border-subtle,#ffffff0d);flex-wrap:wrap;gap:12px 24px;padding:10px 16px 14px 56px;display:flex}.region-detail-field{flex-direction:column;gap:3px;min-width:140px;display:flex}.region-detail-field label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.3px;font-size:11px;font-weight:500}.region-detail-field input[type=text],.region-detail-field select{background:var(--input-bg,var(--bg));border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 8px;font-size:13px}.region-detail-field input[type=text]:focus,.region-detail-field select:focus{border-color:var(--accent);outline:none}.region-detail-mono{color:var(--text-dim);padding:4px 0;font-family:monospace;font-size:12px}.region-detail-degree{align-items:center;gap:8px;display:flex}.region-detail-degree input[type=range]{max-width:120px;accent-color:var(--accent,#48f);flex:1}.region-detail-degree span{text-align:center;min-width:16px;font-size:13px;font-weight:500}.region-detail-tools{color:var(--text);padding:4px 0;font-size:13px}.region-config-footer{margin-top:10px;padding-top:8px}.region-add-btn{border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;width:100%;padding:6px 14px;font-size:13px;transition:color .15s,border-color .15s}.region-add-btn:hover{color:var(--accent,#48f);border-color:var(--accent,#48f)}.region-add-form{align-items:center;gap:8px;display:flex}.region-add-input{background:var(--input-bg,var(--bg));border:1px solid var(--border);color:var(--text);border-radius:4px;flex:1;padding:6px 10px;font-size:13px}.region-add-input:focus{border-color:var(--accent);outline:none}.region-add-confirm,.region-add-cancel{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:13px}.region-add-confirm{border-color:var(--accent,#48f);color:var(--accent,#48f)}.region-add-confirm:disabled{opacity:.4;cursor:default}.region-add-cancel:hover{background:var(--hover)}.classification-rules-editor{padding:4px 0}.cr-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 12px;display:flex}.cr-toolbar-spacer{flex:auto}.cr-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:background-color .1s,border-color .1s}.cr-btn:hover:not(:disabled){background:var(--hover);border-color:var(--accent,#48f)}.cr-btn:disabled{opacity:.4;cursor:default}.cr-btn-primary{border-color:var(--accent,#48f);color:var(--accent,#48f)}.cr-btn-primary:hover:not(:disabled){background:var(--accent,#48f);color:#fff}.cr-append-toggle{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12px;display:inline-flex}.cr-table{border-collapse:collapse;width:100%;font-size:13px}.cr-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;padding:6px 8px;font-size:11px;font-weight:500}.cr-table th.cr-col-order,.cr-table th.cr-col-enabled,.cr-table th.cr-col-actions{text-align:center;width:36px}.cr-table th.cr-col-match,.cr-table th.cr-col-view{width:120px}.cr-row td{border-bottom:1px solid var(--border-subtle,#ffffff0d);vertical-align:middle;padding:4px 8px}.cr-row.disabled td{opacity:.5}.cr-row.highlight{box-shadow:inset 3px 0 0 var(--accent,#48f);background:#4488ff1f}.cr-col-order,.cr-col-enabled,.cr-col-actions{text-align:center;width:36px}.cr-col-enabled input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--accent,#48f)}.cr-input{background:var(--input-bg,#0003);border:1px solid var(--border);width:100%;color:var(--text);box-sizing:border-box;border-radius:3px;outline:none;padding:3px 6px;font-size:12px}.cr-input:focus{border-color:var(--accent,#48f)}.cr-input.invalid{border-color:#f44}.cr-field-error{color:#f66;margin-top:2px;font-size:11px}.cr-empty{text-align:center;color:var(--text-dim);padding:16px 8px;font-size:12px;font-style:italic}.cr-test{background:var(--panel-bg,#0000001a);border:1px solid var(--border-subtle,#ffffff0d);border-radius:4px;align-items:center;gap:10px;margin-top:14px;padding:10px 12px;display:flex}.cr-test-label{color:var(--text-dim);white-space:nowrap;font-size:12px}.cr-test-input{background:var(--input-bg,#0003);border:1px solid var(--border);color:var(--text);border-radius:3px;outline:none;flex:auto;padding:4px 8px;font-size:12px}.cr-test-input:focus{border-color:var(--accent,#48f)}.cr-test-result{color:var(--accent,#48f);white-space:nowrap;font-size:12px}.cr-test-result.none{color:var(--text-dim)}.drop-zone-wrapper{width:100%;height:100%;position:relative}.drop-zone-overlay{z-index:3000;pointer-events:none;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.drop-zone-content{border:2px dashed var(--accent);background:#8b5cf614;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:48px 64px;display:flex}.drop-zone-icon{color:var(--accent);font-size:48px;line-height:1}.drop-zone-text{color:var(--text-bright);font-size:18px;font-weight:500}.drop-zone-hint{color:var(--text-dim);font-size:12px}.pixel-value-overlay{color:var(--text);font-size:11px;font-family:var(--mono);pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;background:#000000b3;border-radius:3px;gap:12px;padding:2px 8px;display:flex;position:absolute;bottom:4px;left:4px}.pixel-coord{color:var(--text-dim)}.pixel-value{color:var(--text-bright);font-weight:500}.link-badge{color:var(--accent);font-size:11px;font-family:var(--mono);pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;background:#000000b3;border-radius:3px;padding:2px 8px;position:absolute;top:4px;left:4px}.histogram-section-body{padding:8px 12px}.histogram-canvas-wrap{border-radius:3px;overflow:hidden}.histogram-canvas-wrap canvas{width:100%;display:block}.histogram-controls{flex-direction:column;gap:6px;margin-top:8px;display:flex}.histogram-wl-inputs{font-size:11px;font-family:var(--mono);gap:8px;display:flex}.histogram-wl-inputs label{color:var(--text-dim);align-items:center;gap:4px;display:flex}.histogram-wl-inputs input[type=number]{background:var(--bg);border:1px solid var(--border);width:64px;color:var(--text);font-size:11px;font-family:var(--mono);border-radius:2px;padding:2px 4px}.histogram-wl-inputs input[type=number]:focus{outline:1px solid var(--accent);border-color:var(--accent)}.histogram-scope{color:var(--text-dim);gap:12px;font-size:11px;display:flex}.histogram-scope label{cursor:pointer;align-items:center;gap:3px;display:flex}.histogram-presets{gap:6px;display:flex}.histogram-presets button{font-size:10px;font-family:var(--mono);background:var(--bg);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:3px;padding:2px 8px}.histogram-presets button:hover{background:var(--bg-hover);color:var(--text)}.note-popover{z-index:60;pointer-events:auto;background:var(--bg-input,#1e1e1e);border:1px solid;border-radius:4px;max-width:200px;padding:4px;position:absolute;box-shadow:0 2px 8px #0006}.note-popover-textarea{width:100%;min-width:150px;color:var(--text);resize:vertical;box-sizing:border-box;background:0 0;border:none;outline:none;padding:4px 6px;font-family:inherit;font-size:12px}.comment-list-header-actions{float:right;align-items:center;gap:4px;display:inline-flex}.comment-type-glyph{text-align:center;width:14px;color:var(--text-dim);flex-shrink:0;font-size:12px}.comment-note-preview{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:10px;overflow:hidden}.comment-label-input{width:60px;color:var(--text);background:var(--bg-input,#1e1e1e);border:1px solid var(--accent);border-radius:2px;outline:none;padding:0 2px;font-family:inherit;font-size:12px}.comment-color-dot-wrapper{flex-shrink:0;position:relative}.comment-color-dot{cursor:pointer;vertical-align:middle;border:none;border-radius:50%;flex-shrink:0;width:8px;height:8px;padding:0;display:inline-block}.comment-color-dot:hover{transform:scale(1.3);box-shadow:0 0 0 2px #ffffff40}.comment-color-picker-popover{z-index:100;background:var(--bg-surface,#1e1e1e);border:1px solid var(--border,#444);white-space:nowrap;border-radius:6px;gap:3px;margin-top:4px;padding:4px 6px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0006}.comment-color-row{align-items:center;gap:4px;display:flex}.comment-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:14px;height:14px;padding:0}.comment-color-swatch.active{border-color:#fff;box-shadow:0 0 0 1px #ffffff4d}.comment-color-swatch:hover{transform:scale(1.15)}.comment-stroke-row{align-items:center;gap:3px;display:flex}.comment-stroke-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-dim);background:0 0;border-radius:3px;align-items:center;padding:2px 4px;display:flex}.comment-stroke-btn.active{border-color:var(--accent);color:var(--text);background:var(--accent-dim)}.comment-stroke-btn:hover{color:var(--text)}.link-editor{background:var(--bg);width:100%;height:100%;min-height:0;color:var(--text);flex-direction:column;display:flex}.link-editor--empty{opacity:.7;justify-content:center;align-items:center;padding:32px}.link-editor-toolbar{border-bottom:1px solid var(--border);background:var(--bg-surface);flex:none;align-items:center;gap:12px;padding:8px 12px;display:flex}.link-toolbar-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px}.link-toolbar-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.link-toolbar-btn:disabled,.link-toolbar-btn:disabled:hover{background:var(--bg-surface);border-color:var(--border);color:var(--text-dim);cursor:not-allowed}.link-toolbar-btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.link-toolbar-btn--primary:hover{background:var(--accent);filter:brightness(1.1)}.link-toolbar-btn--primary:disabled,.link-toolbar-btn--primary:disabled:hover{background:var(--bg-surface);border-color:var(--border);color:var(--text-dim);filter:none}.link-toolbar-size{color:var(--text-dim);align-items:center;gap:6px;font-size:12px;display:inline-flex}.link-toolbar-size input[type=range]{width:100px}.link-toolbar-size-value{font-variant-numeric:tabular-nums;min-width:3.5em}.link-toolbar-spacer{flex:auto}.link-toolbar-breadcrumb{color:var(--text-dim);font-size:12px;font-family:var(--mono)}.link-editor-split{flex:auto;min-height:0;display:flex;overflow:hidden}.link-editor-left{background:var(--bg-surface);min-width:200px;overflow:hidden auto}.link-editor-divider{cursor:col-resize;background:var(--border);flex-shrink:0;width:4px}.link-editor-divider:hover{background:var(--accent-dim)}.link-editor-right{flex:auto;min-width:0;overflow:auto}.link-series-list-container{flex-direction:column;min-height:100%;display:flex}.link-series-header{border-bottom:1px solid var(--border);background:var(--bg-surface);z-index:2;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 8px;display:flex;position:sticky;top:0}.link-series-header-group{align-items:center;gap:4px;font-size:11px;display:flex}.link-series-header-group label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.link-series-header-group select{padding:2px 4px;font-size:11px}.link-series-header-size{flex:auto;min-width:100px}.link-series-header-size input[type=range]{flex:auto;min-width:60px}.link-series-list{flex-direction:column;gap:12px;padding:8px;display:flex}.link-series-group{flex-direction:column;gap:6px;display:flex}.link-series-grid{gap:8px;display:grid}.link-series-empty{color:var(--text-dim);text-align:center;padding:16px;font-size:12px}.link-series-tile{display:flex;position:relative}.link-series-tile>.grid-card{width:100%}.link-series-tile.expanded>.grid-card{outline:2px solid var(--accent);outline-offset:-2px}.link-series-tile.multi-selected>.grid-card{box-shadow:0 0 0 2px var(--accent) inset}.link-series-row{background:0 0;border:1px solid #0000;border-radius:4px;align-items:flex-start;gap:8px;padding:6px;display:flex;position:relative}.link-series-row.selected{border-color:var(--accent);background:var(--accent-dim)}.link-series-row.multi-selected{border-color:var(--accent)}.link-series-row.expanded{background:var(--bg-hover)}.link-series-expand-checkbox{cursor:pointer;flex:none;margin-top:6px}.link-series-card-wrapper{flex:auto;min-width:0}.link-match-badge{text-align:center;background:var(--accent);min-width:20px;color:var(--bg);pointer-events:none;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600;line-height:16px;position:absolute;top:4px;right:4px}.link-rows-pane{flex-direction:column;gap:12px;min-height:100%;padding:16px;display:flex;position:relative}.link-rows-pane--empty{opacity:.6;justify-content:center;align-items:center;font-size:13px}.link-row{border:1px solid var(--border);background:var(--bg-surface);border-radius:4px;align-items:stretch;gap:8px;min-width:0;padding:8px;display:flex}.link-row-label{width:140px;color:var(--text);border-right:1px solid var(--border);flex:none;justify-content:space-between;align-self:flex-start;align-items:center;gap:4px;padding:4px 6px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.link-row-cells{flex:auto;gap:8px;min-width:0;display:flex}.link-rows-nowrap .link-row-cells{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-wrap:nowrap;overflow:auto hidden}.link-rows-nowrap .link-row-cells::-webkit-scrollbar{height:8px}.link-rows-nowrap .link-row-cells::-webkit-scrollbar-track{background:0 0}.link-rows-nowrap .link-row-cells::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.link-rows-nowrap .link-row-cells::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.link-rows-wrap .link-row-cells{flex-wrap:wrap}.link-col{flex-direction:column;flex:none;display:flex}.link-col-cells{align-items:flex-start;gap:4px;display:flex}.link-cell{border-radius:3px;flex:none;position:relative;overflow:hidden}.link-cell--active{outline:2px solid var(--accent);outline-offset:1px;z-index:1}.link-cell--empty{border:1px dashed var(--border);opacity:.3;background:0 0}.link-viewport-cell{background:#000;width:100%;height:100%;position:relative}.link-rows-fallback-note{color:var(--text-dim);background:var(--bg-hover);border-left:3px solid var(--accent-dim);border-radius:3px;padding:8px 12px;font-size:12px}.link-rows-discover{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:3px;align-self:flex-start;padding:6px 12px;font-family:inherit;font-size:12px}.link-rows-discover:hover:not(:disabled){background:var(--accent-dim)}.link-rows-discover:disabled{opacity:.5;cursor:wait}.link-viewport-cell--linked:after{content:"";border:2px solid var(--accent);pointer-events:none;z-index:3;position:absolute;inset:0}.link-viewport-cell--selected:before{content:"";border:2px dashed var(--accent);pointer-events:none;z-index:2;position:absolute;inset:3px}.link-viewport-cell--match-highlight:before{content:"";pointer-events:none;z-index:2;border:2px solid #facc15;position:absolute;inset:3px}.link-cell-label{color:#e5e7eb;font-size:10px;font-family:var(--mono);pointer-events:none;z-index:4;white-space:nowrap;background:#000000a6;border-radius:2px;padding:1px 5px;line-height:1.3;position:absolute;bottom:4px;left:4px}.link-cell-checkbox{cursor:pointer;z-index:11;width:16px;height:16px;accent-color:var(--accent);background:#0000008c;border-radius:2px;margin:0;position:absolute;top:4px;left:4px;box-shadow:0 0 0 2px #0000008c}.link-toolbar-status{color:var(--text-muted);white-space:nowrap;margin-right:12px;font-size:12px}.link-conflict-dialog{min-width:440px;max-width:560px}.link-conflict-body{flex-direction:column;gap:12px;display:flex}.link-conflict-banner{background:var(--bg-hover);border-left:3px solid var(--accent);color:var(--text);border-radius:3px;padding:8px 12px;font-size:12px}.link-conflict-preview-row{justify-content:center;align-items:center;gap:16px;display:flex}.link-conflict-preview{flex-direction:column;align-items:center;gap:6px;min-width:100px;display:flex}.link-conflict-preview-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:11px;font-weight:600}.link-conflict-preview-meta{flex-direction:column;align-items:center;gap:2px;display:flex}.link-conflict-series{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:12px;overflow:hidden}.link-conflict-slice{color:var(--text-dim);font-size:11px;font-family:var(--mono)}.link-conflict-arrow{color:var(--text-dim);font-size:22px}.link-conflict-choice{background:var(--bg-hover);border-radius:3px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.link-conflict-choice-label{color:var(--text);margin-bottom:2px;font-size:12px;font-weight:600}.link-conflict-choice label{color:var(--text);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.link-conflict-dialog--batch{flex-direction:column;min-width:640px;max-width:900px;max-height:85vh;display:flex}.link-conflict-preview-cell{pointer-events:none;background:#000;border-radius:4px;position:relative;overflow:hidden}.link-conflict-dialog--batch .confirm-close-body{overflow-y:auto}.link-conflict-intro{color:var(--text-dim);font-size:12px;line-height:1.5}.link-conflict-rows{flex-direction:column;gap:12px;display:flex}.link-conflict-row{background:var(--bg-hover);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:8px;padding:12px;display:flex}.link-conflict-row-main{justify-content:center;align-items:center;gap:16px;display:flex}.link-conflict-row-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.link-conflict-badges{flex-wrap:wrap;gap:6px;display:flex}.link-conflict-badge{border:1px solid var(--border);background:var(--bg-surface);color:var(--text);border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.link-conflict-badge--annotation{color:#f59e0b;border-color:#f59e0b}.link-conflict-badge--mask{color:#14b8a6;border-color:#14b8a6}.link-conflict-row .link-conflict-choice{flex-direction:row;padding:6px 10px}.ribbon :focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-radius:3px}.ribbon{background:var(--bg-surface);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;display:flex}.ribbon__content-wrapper{transition:height .2s;overflow:hidden}.ribbon--collapsed .ribbon__content-wrapper{height:0!important}.ribbon--transient{position:relative}.ribbon--transient .ribbon__content-wrapper{z-index:100;background:var(--bg-surface);border-bottom:1px solid var(--border);position:absolute;top:100%;left:0;right:0;box-shadow:0 4px 12px #0000004d}.ribbon__tab-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);align-items:center;gap:0;height:28px;min-height:28px;padding:0 4px;display:flex}.ribbon__tabs{align-items:center;gap:0;margin-left:4px;display:flex}.ribbon__tab{height:28px;color:var(--text-dim);line-height:28px;font-family:var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 12px;font-size:12px;font-weight:500;transition:color .15s,border-color .15s,background-color .15s;position:relative}.ribbon__tab:hover{color:var(--text);background:var(--bg-hover)}.ribbon__tab--active{color:var(--text-bright);border-bottom-color:var(--accent);font-weight:600}.ribbon__tab-bar-spacer{flex:1}.ribbon__pin-btn{width:28px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.ribbon__pin-btn:hover{background:var(--bg-hover);color:var(--text-bright)}.ribbon__app-menu{position:relative}.ribbon__app-menu-btn{width:32px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;display:flex}.ribbon__app-menu-btn:hover,.ribbon__app-menu-btn--open{background:var(--bg-hover);color:var(--text)}.ribbon__app-menu-panel{background:var(--bg-surface);border:1px solid var(--border);z-index:500;border-radius:4px;min-width:160px;padding:4px 0;position:fixed;top:28px;left:0;box-shadow:0 4px 16px #0006}.ribbon__app-menu-item{width:100%;color:var(--text);font-family:var(--sans);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;display:flex}.ribbon__app-menu-item:hover,.ribbon__app-menu-item--active,.ribbon__app-menu-item--focused{background:var(--accent-dim);color:var(--text-bright)}.ribbon__app-menu-arrow{color:var(--text-dim);margin-left:12px;font-size:10px}.ribbon__quick-access{border-right:1px solid var(--border);align-items:center;gap:1px;margin-left:2px;padding-right:8px;display:flex}.ribbon__quick-btn{width:26px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.ribbon__quick-btn:hover{background:var(--bg-hover);color:var(--text-bright)}.ribbon__content{align-items:stretch;gap:0;min-height:28px;padding:0 8px;display:flex}.ribbon__content--placeholder{justify-content:center;align-items:center;height:28px}.ribbon__content--multirow{align-items:stretch}.ribbon__content-row{align-items:stretch;gap:0;height:28px;min-height:28px;display:flex}.ribbon__content:not(.ribbon__content--multirow)>.ribbon__content-row{flex:1}.ribbon__content--multirow>.ribbon__content-row{flex:1;height:auto;min-height:auto}.ribbon__block-wrapper{flex-shrink:0;align-items:stretch;display:flex}.ribbon__separator{background:var(--border);opacity:.6;width:1px;margin:4px 6px}.ribbon__block{flex-direction:column;justify-content:center;min-width:0;padding:0 2px;display:flex}.ribbon__block-items{flex:1;align-items:center;gap:0;display:flex}.ribbon__block-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);text-align:center;margin-top:2px;padding-bottom:1px;font-size:9px;line-height:1}.ribbon__content--multirow .ribbon__block{justify-content:space-between}.ribbon__content--multirow .ribbon__separator{margin:2px 6px}.ribbon__content--rows-2 .ribbon__toggle-group,.ribbon__content--rows-2 .ribbon__region-list{grid-template-rows:repeat(2,auto);grid-auto-flow:column;align-items:center;display:grid}.ribbon__content--rows-3 .ribbon__toggle-group,.ribbon__content--rows-3 .ribbon__region-list{grid-template-rows:repeat(3,auto);grid-auto-flow:column;align-items:center;display:grid}.ribbon__content--multirow .ribbon__toggle-group{gap:1px}.ribbon__content--multirow .ribbon__region-list{gap:2px}.ribbon__content--multirow .ribbon__options-row{flex-direction:column;align-items:flex-start;gap:4px}.ribbon__toggle-group{align-items:center;gap:1px;display:flex}.ribbon__item-btn{height:22px;color:var(--text);font-family:var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-size:11px;transition:background .15s,border-color .15s,color .15s;display:flex}.ribbon__item-btn:hover{background:var(--bg-hover);color:var(--text-bright)}.ribbon__item-btn--active{background:var(--accent-dim);border-color:var(--accent);color:var(--text-bright)}.ribbon__item-btn--active:hover{background:var(--accent-dim);filter:brightness(1.1)}.ribbon__item-btn--small{padding:2px 4px;font-size:10px}.ribbon__item-label{line-height:1}.ribbon__region-list{flex-wrap:nowrap;align-items:center;gap:2px;display:flex}.ribbon__region-item{align-items:center;gap:0;display:flex}.ribbon__region-btn{gap:3px}.ribbon__region-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.ribbon__region-hotkey{color:var(--text-dim);opacity:.7;font-variant-numeric:tabular-nums;margin-left:4px;font-size:9px}.ribbon__visibility-btn{width:18px;height:18px;color:var(--text-dim);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:2px;justify-content:center;align-items:center;display:flex}.ribbon__visibility-btn:hover{opacity:1;background:var(--bg-hover)}.ribbon__visibility-btn--hidden{opacity:.3}.ribbon__options-row{align-items:center;gap:8px;display:flex}.ribbon__option-label{color:var(--text);align-items:center;gap:4px;font-size:11px;display:flex}.ribbon__option-text{color:var(--text-dim);white-space:nowrap;font-size:10px}.ribbon__option-slider{width:60px;height:4px;accent-color:var(--accent);cursor:pointer}.ribbon__option-value{font-size:10px;font-family:var(--mono);color:var(--text-dim);text-align:center;min-width:16px}.ribbon__option-btn{border:1px solid var(--border);width:16px;height:16px;color:var(--text-dim);cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;display:flex}.ribbon__option-btn:hover{background:var(--bg-hover);color:var(--text)}.ribbon__placeholder{color:var(--text-dim);align-items:center;gap:8px;font-size:12px;font-style:italic;display:flex}.ribbon__overflow{align-items:center;margin-left:auto;display:flex;position:relative}.ribbon__overflow-btn{width:28px;height:24px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;transition:background .1s,border-color .1s;display:flex}.ribbon__overflow-btn:hover,.ribbon__overflow-btn--open{background:var(--bg-hover);border-color:var(--border);color:var(--text)}.ribbon__overflow-panel{z-index:500;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:4px;min-width:180px;max-width:400px;padding:8px 12px;display:flex;box-shadow:0 4px 16px #0006}.ribbon__overflow-block{flex-direction:column;display:flex}.ribbon__overflow-divider{background:var(--border);height:1px;margin:4px 0}.ribbon__ctx-menu{z-index:600;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;min-width:180px;padding:4px 0;box-shadow:0 4px 16px #0006}.ribbon__ctx-menu-item{width:100%;color:var(--text);font-family:var(--sans);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.ribbon__ctx-menu-item:hover{background:var(--accent-dim);color:var(--text-bright)}.ribbon-favorites-editor{padding:8px 0}.ribbon-favorites-editor__header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ribbon-favorites-editor__title{color:var(--text);font-size:13px;font-weight:600}.ribbon-favorites-editor__clear{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:11px}.ribbon-favorites-editor__clear:hover{background:var(--bg-hover);color:var(--text)}.ribbon-favorites-editor__list{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.ribbon-favorites-editor__item{background:var(--bg-surface);border:1px solid var(--border);cursor:grab;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.ribbon-favorites-editor__item:active{cursor:grabbing}.ribbon-favorites-editor__item--dragging{opacity:.5}.ribbon-favorites-editor__item--dragover{border-color:var(--accent);background:var(--accent-dim)}.ribbon-favorites-editor__drag-handle{color:var(--text-dim);cursor:grab;flex-shrink:0}.ribbon-favorites-editor__item-label{color:var(--text);flex:1;font-size:12px}.ribbon-favorites-editor__item-source{color:var(--text-dim);font-size:10px}.ribbon-favorites-editor__remove-btn{width:20px;height:20px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ribbon-favorites-editor__remove-btn:hover{background:var(--bg-hover);color:var(--text-bright)}.ribbon-favorites-editor__available{margin-top:8px}.ribbon-favorites-editor__available-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:11px;font-weight:600}.ribbon-favorites-editor__available-list{flex-wrap:wrap;gap:4px;display:flex}.ribbon-favorites-editor__add-btn{border:1px solid var(--border);color:var(--text);font-family:var(--sans);cursor:pointer;background:0 0;border-radius:3px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:flex}.ribbon-favorites-editor__add-btn:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-bright)}.ribbon-favorites-editor__empty{color:var(--text-dim);padding:8px 0;font-size:12px;font-style:italic}
