*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:14px;line-height:1.5;background-color:var(--bg-canvas);color:var(--text-primary);transition:background-color .2s ease,color .2s ease}#app{position:relative;height:100vh;width:100vw;overflow:hidden}.loading-overlay{position:fixed;inset:0;background-color:var(--bg-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:var(--z-loading);pointer-events:auto;cursor:wait}.loading-overlay.hidden{display:none}.loading-spinner{width:48px;height:48px;border:3px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s cubic-bezier(.5,.15,.5,.85) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-in{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.loading-text{margin-top:16px;color:var(--text-secondary)}.empty-message{color:var(--text-muted);font-size:13px;text-align:center;padding:24px 16px}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}input,select{font-family:inherit}a{color:var(--accent-color);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent-color)}.text-sm{font-size:12px}.text-xs{font-size:11px}.font-medium{font-weight:500}.font-semibold{font-weight:600}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}button,.icon-btn,.category-btn{user-select:none}svg{display:inline-block;vertical-align:middle}img{max-width:100%;height:auto}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-error{color:var(--error-color)}.bg-success{background-color:var(--success-color)}.bg-warning{background-color:var(--warning-color)}.bg-error{background-color:var(--error-color)}.hover-name-line{position:absolute;top:calc(100% + 3px);left:0;right:0;display:flex;align-items:baseline;gap:6px;padding:0 8px;font-size:11px;font-weight:400;line-height:1.4;color:var(--text-secondary);text-shadow:0 0 3px var(--bg-canvas, var(--bg-primary)),0 0 6px var(--bg-canvas, var(--bg-primary));pointer-events:none;user-select:none;white-space:nowrap;z-index:1}.hover-name-line[hidden]{display:none}.hover-name-line-cat{color:var(--text-muted);flex-shrink:0}.hover-name-line-cat:after{content:" ·"}.hover-name-line-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.hover-name-line-cycle{flex-shrink:0;font-size:10px;color:var(--text-muted)}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e8e8e8;--bg-canvas: #e0e0e0;--bg-overlay: rgba(255, 255, 255, .9);--bg-hover: rgba(0, 0, 0, .05);--bg-active: rgba(0, 0, 0, .08);--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-muted: #8a8a8a;--border-color: #d0d0d0;--border-light: #e5e5e5;--accent: #f89335;--accent2: #fb9e4c;--accent3: #ffb679;--accent-color: #f89335;--accent-hover: #e07e20;--accent-light: rgba(248, 147, 53, .15);--accent-text-color: #ffffff;--success-color: #16a34a;--warning-color: #ca8a04;--error-color: #dc2626;--status-ok: #16a34a;--status-warn: #d97706;--status-bad: #dc2626;--status-muted: #bdbdbd;--selection-color: #f89335;--selection-bg: rgba(248, 147, 53, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--z-panel: 10;--z-toolbar: 20;--z-floating: 50;--z-overlay: 100;--z-loading: 200;--z-toast: 250;--z-modal: 300;--panel-gap: 12px;--property-panel-width: 400px;--panel-padding: 8px}[data-theme=dark]{--status-ok: #44bb66;--status-warn: #f59e0b;--status-bad: #ef5350;--status-muted: #6f6b80;--background: #242136;--canvas-background: #0e0721;--panel-color: #3c384c;--tablerow-color: #545163;--divider-color: #545163;--bg-primary: #3c384c;--bg-secondary: #2d2a3c;--bg-tertiary: #242136;--bg-canvas: #0e0721;--bg-overlay: rgba(36, 33, 54, .95);--bg-hover: rgba(255, 255, 255, .08);--bg-active: rgba(255, 255, 255, .12);--text-color: #ffffff;--text-primary: #ffffff;--text-secondary: #b8b5c4;--text-muted: #7a7789;--border-color: #545163;--border-light: #3c384c;--accent: #f89335;--accent2: #fb9e4c;--accent3: #ffb679;--accent-color: #f89335;--accent-hover: #fb9e4c;--accent-light: rgba(248, 147, 53, .15);--accent-text-color: #ffffff;--selection-color: #f89335;--selection-bg: rgba(248, 147, 53, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .5);--shadow-panel: 0 4px 16px rgba(0, 0, 0, .3)}[data-theme=dark] .icon-btn img,[data-theme=dark] .logo-image,[data-theme=dark] .category-btn img,[data-theme=dark] .se-item img,[data-theme=dark] .auth-gate-logo-img,[data-theme=dark] .obp-picker-logo{filter:brightness(0) invert(1)}[data-theme=light] .icon-moon,:root:not([data-theme]) .icon-moon{display:none}[data-theme=light] .icon-sun,:root:not([data-theme]) .icon-sun{display:block}[data-theme=dark] .icon-sun{display:none}[data-theme=dark] .icon-moon{display:block}html{color-scheme:dark}.viewer-container-fullscreen{position:fixed;inset:0;background-color:var(--bg-canvas);z-index:0}.viewer-container-fullscreen #viewer-canvas{display:block;width:100%;height:100%}#ui-overlays{position:fixed;inset:0;pointer-events:none;z-index:var(--z-floating)}#ui-overlays>*{pointer-events:auto}#ui-overlays>.ui-top-row{position:absolute;top:var(--panel-gap);left:var(--panel-gap);right:var(--panel-gap);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--panel-gap);pointer-events:none}.ui-top-row>*{pointer-events:none}.ui-top-row .floating-panel{min-height:46px;box-sizing:border-box;pointer-events:auto}.ui-top-left{display:flex;flex-direction:column;gap:var(--spacing-sm)}#project-panel.clash-expanded,#project-panel.compliance-expanded{position:fixed;top:var(--panel-gap);left:var(--panel-gap);bottom:var(--panel-gap);z-index:var(--z-floating)}body.data-manager-open #project-panel.clash-expanded,body.data-manager-open #project-panel.compliance-expanded{bottom:calc(var(--dm-height, 45vh) + 2 * var(--panel-gap))}#project-panel.files-expanded{max-height:calc(100vh - 2 * var(--panel-gap))}body.data-manager-open #project-panel.files-expanded{max-height:calc(100vh - var(--dm-height, 45vh) - 2 * var(--panel-gap))}.ui-top-center{position:absolute;left:50%;transform:translate(-50%);display:flex;gap:var(--spacing-sm);align-items:flex-start}.ui-top-center>.floating-panel{display:flex;align-items:center}.ui-top-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-sm)}#property-panel{position:fixed;top:var(--panel-gap);right:var(--panel-gap);bottom:var(--panel-gap);width:var(--property-panel-width);max-width:calc(100vw - 2 * var(--panel-gap));transform:translate(calc(100% + var(--panel-gap)));transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:var(--z-floating);opacity:0}#property-panel.open{transform:translate(0);opacity:1}#property-panel.open~.viewcube-container,.property-panel-open .viewcube-container,.property-panel-open .viewcube-controls{right:calc(var(--property-panel-width) + 2 * var(--panel-gap))}.toast-container{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-toast);pointer-events:none}.toast-container>*{pointer-events:auto}@media (max-width: 1200px){:root{--property-panel-width: 360px}#project-panel.files-expanded,#project-panel.clash-expanded,#project-panel.compliance-expanded{width:360px;max-width:360px}#category-panel .search-input,#category-panel .panel-divider{display:none}}@media (max-width: 1000px){.ui-top-center{position:static;transform:none;flex:1 1 auto;justify-content:center;min-width:0}.ui-top-left,.ui-top-right{flex-shrink:1;min-width:0}#project-panel{min-width:200px}.category-btn{width:24px;height:24px}.category-btn img,.category-btn svg{width:16px;height:16px}}@media (max-width: 768px){#ui-overlays{--panel-gap: 8px}.ui-top-center{position:static;transform:none;flex-direction:column;align-items:center}#property-panel{width:calc(100vw - 2 * var(--panel-gap))}#project-panel.files-expanded,#project-panel.clash-expanded,#project-panel.compliance-expanded{width:calc(100vw - 2 * var(--panel-gap));max-width:calc(100vw - 2 * var(--panel-gap))}body.data-manager-open #project-panel.clash-expanded,body.data-manager-open #project-panel.compliance-expanded{bottom:calc(var(--dm-height, 50vh) + 2 * var(--panel-gap))}body.data-manager-open #project-panel.files-expanded{max-height:calc(100vh - var(--dm-height, 50vh) - 2 * var(--panel-gap))}.up-welcome{display:none}}.viewer-container-fullscreen.drag-over:after{content:"";position:absolute;inset:0;background-color:#f893351a;border:3px dashed var(--accent-color);pointer-events:none;z-index:var(--z-overlay)}.floating-panel{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);overflow:hidden;animation:panelFadeIn .3s ease-out;user-select:none}@keyframes panelFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.floating-panel-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--panel-padding);background-color:var(--bg-primary);border-bottom:1px solid var(--border-light)}.floating-panel-content{padding:var(--panel-padding)}.icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);background-color:transparent;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border:none;padding:0}.icon-btn:hover{background-color:var(--bg-hover);color:var(--accent-color)}.icon-btn:active{background-color:var(--bg-active);transform:scale(.95)}.icon-btn.active,.icon-btn.btn-reset-active{background-color:var(--accent-light);color:var(--accent-color)}.icon-btn-sm{width:28px;height:28px}.icon-btn-sm svg{width:16px;height:16px}.icon-btn-accent{background-color:var(--accent-color);color:var(--accent-text-color)}.icon-btn-accent:hover{background-color:var(--accent-hover);color:var(--accent-text-color)}.icon-btn-row{display:flex;gap:var(--spacing-xs);align-items:center}.panel-divider{width:1px;height:20px;background-color:var(--divider-color);margin:0 var(--spacing-xs)}.expandable-section{overflow:hidden;max-height:0;opacity:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .25s ease-out}.expandable-section.expanded{max-height:500px;opacity:1}.icon-btn:after,.category-btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background-color:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s,height .3s}.icon-btn:active:after,.category-btn:active:after{width:100%;height:100%}.icon-btn,.category-btn{position:relative;overflow:hidden}.dropdown-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.dropdown-btn:hover{background-color:var(--bg-hover);border-color:var(--accent-color)}.dropdown-btn svg{width:16px;height:16px;color:var(--text-muted);transition:transform var(--transition-fast)}.dropdown-btn.open .dropdown-chevron{transform:rotate(180deg)}#levels-panel{position:relative;overflow:visible;flex-direction:column;align-items:stretch}#levels-panel .dropdown-btn{min-width:120px}.levels-dropdown{position:absolute;top:calc(100% + 4px);left:var(--panel-padding);min-width:160px;max-height:300px;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);z-index:var(--z-dropdown, 100);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--transition-fast)}.levels-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.levels-dropdown-item{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;transition:all var(--transition-fast)}.levels-dropdown-item:hover{background-color:var(--bg-hover);color:var(--accent-color)}.levels-dropdown-item.active{background-color:var(--accent-light);color:var(--accent-color);font-weight:500}.levels-dropdown-separator{height:1px;background-color:var(--border-color);margin:var(--spacing-xs) 0}#category-panel{position:relative;overflow:visible;flex-direction:column;align-items:stretch}#btn-category-filter{justify-content:flex-start;min-width:150px}.category-dropdown{position:absolute;top:calc(100% + 4px);left:var(--panel-padding);min-width:200px;max-height:70vh;overflow-y:auto;padding:var(--spacing-xs) 0;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);z-index:var(--z-dropdown, 100);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--transition-fast)}.category-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.category-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;transition:all var(--transition-fast)}.category-dropdown-item:hover{background-color:var(--bg-hover)}.category-dropdown-item .cat-eye{display:inline-flex;flex-shrink:0;color:var(--text-muted)}.category-dropdown-item .cat-eye svg{width:16px;height:16px}.category-dropdown-item.cat-off .cat-label{color:var(--text-muted);opacity:.55}.category-dropdown-item .eye-off,.category-dropdown-item.cat-off .eye-open{display:none}.category-dropdown-item.cat-off .eye-off{display:inline-flex}.category-dropdown-all .cat-label{font-weight:600}.category-dropdown-sep{height:1px;background-color:var(--border-color);margin:var(--spacing-xs) 0}.category-dropdown-item .cat-label{flex:1;min-width:0}.category-dropdown-item .cat-fill,.category-dropdown-head .cat-fill,.category-dropdown-head .cat-eye{display:inline-flex;justify-content:center;width:28px;flex-shrink:0}.category-dropdown-item .cat-fill{color:var(--text-muted);border-radius:var(--radius-sm)}.category-dropdown-item .cat-fill[data-toggle]:hover{color:var(--accent-color);background:var(--bg-active)}.category-dropdown-item .cat-fill svg{width:14px;height:14px}.category-dropdown-item .cat-eye{width:28px;justify-content:center}.category-dropdown-item .fill-off,.category-dropdown-item.fill-none .fill-on{display:none}.category-dropdown-item.fill-none .fill-off{display:inline-flex}.category-dropdown-item .cat-fill .fill-on{color:var(--accent-color)}.category-dropdown-head{display:flex;align-items:center;gap:var(--spacing-md);padding:2px var(--spacing-md) 0;font-size:10px;color:var(--text-muted)}.category-dropdown-head .cat-label{flex:1}.category-dropdown.types-open{min-width:260px}.category-dropdown{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.category-dropdown::-webkit-scrollbar{width:6px}.category-dropdown::-webkit-scrollbar-track{background:transparent}.category-dropdown::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.category-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.type-look-popover{position:fixed;z-index:calc(var(--z-dropdown, 100) + 1);width:210px;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);font-size:12px;color:var(--text-primary)}.type-look-popover .tlp-title{margin-bottom:var(--spacing-xs);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.type-look-popover .tlp-row{display:flex;align-items:center;gap:var(--spacing-sm);min-height:26px}.type-look-popover .tlp-label{width:48px;flex-shrink:0;color:var(--text-muted)}.type-look-popover .tlp-color{width:28px;height:18px;padding:0;border:1px solid var(--border-color);border-radius:3px;background:none;cursor:pointer}.type-look-popover .tlp-color.unset{opacity:.4}.type-look-popover .tlp-reset{margin-left:auto;padding:2px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:none;color:var(--text-muted);font-size:11px;cursor:pointer}.type-look-popover .tlp-reset:hover:not(:disabled){color:var(--accent-color);border-color:var(--accent-color)}.type-look-popover .tlp-reset:disabled{opacity:.4;cursor:default}.type-look-popover .tlp-value{width:34px;text-align:right;color:var(--text-muted)}.type-look-popover .tlp-opacity{flex:1;min-width:0;height:14px;margin:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none}.type-look-popover .tlp-opacity::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--border-color)}.type-look-popover .tlp-opacity::-moz-range-track{height:3px;border-radius:2px;background:var(--border-color)}.type-look-popover .tlp-opacity::-moz-range-progress{height:3px;border-radius:2px;background:var(--accent-color)}.type-look-popover .tlp-opacity::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;margin-top:-3.5px;border:none;border-radius:50%;background:var(--accent-color)}.type-look-popover .tlp-opacity::-moz-range-thumb{width:10px;height:10px;border:none;border-radius:50%;background:var(--accent-color)}.category-dropdown-item .cat-chevron{width:12px;height:12px;margin-right:4px;vertical-align:-1px;color:var(--text-muted);transition:transform var(--transition-fast)}.category-dropdown-item.cat-expanded .cat-chevron{transform:rotate(90deg)}.category-dropdown-item.cat-expandable .cat-label:hover{color:var(--accent-color)}.category-type-list{padding:2px 0 var(--spacing-xs);background-color:var(--bg-secondary);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.category-type-list.types-row-off{opacity:.55}.category-type-item{display:flex;align-items:center;gap:var(--spacing-md);padding:3px var(--spacing-md) 3px calc(var(--spacing-md) + 16px);font-size:12px;color:var(--text-primary);cursor:pointer}.category-type-item:hover{background-color:var(--bg-hover)}.category-type-item .cat-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-type-item .cat-type-count{margin-left:6px;color:var(--text-muted);font-size:11px}.category-type-item.type-empty .cat-label{color:var(--text-muted)}.category-type-item.cat-off .cat-label{color:var(--text-muted);opacity:.55}.category-type-item .cat-type-swatch{display:inline-flex;justify-content:center;align-items:center;width:28px;height:20px;flex-shrink:0;border-radius:var(--radius-sm)}.category-type-item .cat-type-swatch:hover{background:var(--bg-active)}.category-type-item .cat-type-swatch-fill{position:relative;width:14px;height:14px;border:1px solid var(--border-color);border-radius:3px;background-clip:padding-box;overflow:hidden}.category-type-item .cat-type-swatch:not(.unset) .cat-type-swatch-fill{background-image:conic-gradient(#bbb 25%,#fff 0 50%,#bbb 0 75%,#fff 0);background-size:6px 6px;background-blend-mode:normal;box-shadow:inset 0 0 0 20px var(--swatch, transparent)}.category-type-item .cat-type-swatch.unset .cat-type-swatch-fill{border-color:var(--text-muted)}.category-type-item .cat-type-swatch.unset .cat-type-swatch-fill:after{content:"";position:absolute;left:-2px;right:-2px;top:50%;border-top:1px solid var(--text-muted);transform:rotate(-45deg)}.category-type-item .cat-fill,.category-type-item .cat-eye{display:inline-flex;justify-content:center;width:28px;flex-shrink:0;color:var(--text-muted)}.category-type-item .cat-fill{border-radius:var(--radius-sm)}.category-type-item .cat-fill[data-toggle]:hover{color:var(--accent-color);background:var(--bg-active)}.category-type-item .cat-fill svg{width:12px;height:12px}.category-type-item .cat-eye svg{width:14px;height:14px}.category-type-item .fill-off,.category-type-item .eye-off{display:none}.category-type-item .cat-fill .fill-on{color:var(--accent-color)}.category-type-item.fill-none .fill-on,.category-type-item.cat-off .eye-open{display:none}.category-type-item.fill-none .fill-off,.category-type-item.cat-off .eye-off{display:inline-flex}.category-type-reset{margin:2px 0 0 calc(var(--spacing-md) + 16px);padding:2px 0;border:none;background:none;color:var(--text-muted);font-size:11px;cursor:pointer}.category-type-reset:hover{color:var(--accent-color);text-decoration:underline}.element-filter{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast);width:150px;box-sizing:border-box}.element-filter:focus-within{border-color:var(--accent-color)}.element-filter .ef-icon{flex-shrink:0;color:var(--text-muted)}#element-filter-input{flex:1 1 auto;min-width:0;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:13px;padding:0}#element-filter-input::placeholder{color:var(--text-muted)}.element-filter .ef-count{flex-shrink:0;font-size:11px;color:var(--text-muted);white-space:nowrap}.category-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);background-color:transparent;border:none;cursor:pointer;transition:all var(--transition-fast);padding:0}.category-btn:hover{background-color:#ffffff1a}.category-btn img,.category-btn svg{width:20px;height:20px;object-fit:contain;filter:brightness(0);opacity:.35;transition:all var(--transition-fast)}.category-btn.active img,.category-btn.active svg{filter:brightness(0);opacity:1}[data-theme=dark] .category-btn.active img,[data-theme=dark] .category-btn.active svg{filter:brightness(0) invert(1);opacity:1}[data-theme=dark] .category-btn img,[data-theme=dark] .category-btn svg{filter:brightness(0) invert(1);opacity:.35}.category-btn:hover img,.category-btn:hover svg{opacity:.8}.category-btn.active:hover img,.category-btn.active:hover svg{opacity:1}.toggle-switch{position:relative;width:44px;height:24px;background-color:var(--bg-tertiary);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--transition-fast)}.toggle-switch.active{background-color:var(--accent-color)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:var(--text-primary);border-radius:50%;transition:transform var(--transition-fast)}.toggle-switch.active:after{transform:translate(20px)}.search-input{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.search-input:focus-within{border-color:var(--accent-color)}.search-input input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:12px;outline:none}.search-input input::placeholder{color:var(--text-muted)}.search-input svg{width:16px;height:16px;color:var(--text-muted)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--spacing-xs);background-color:var(--accent-color);color:var(--accent-text-color);font-size:11px;font-weight:600;border-radius:var(--radius-full)}.up-row{display:flex;align-items:center;gap:10px;padding:var(--panel-padding)}.up-clash-section{display:flex;flex-direction:column;gap:2px;min-width:120px}.up-clash-bar{height:6px;border-radius:3px;background:var(--bg-secondary, #2d2a3c);overflow:hidden}.up-clash-bar-fill{height:100%;border-radius:3px;background:var(--accent-color, #f89335);transition:width .4s ease;min-width:2px}.up-clash-label{font-size:10px;color:var(--text-muted, #7a7789);white-space:nowrap}.up-account-btn{display:flex;flex-direction:column;align-items:flex-end;gap:0;padding:1px 6px;background:transparent;border:none;border-radius:var(--radius-md, 8px);cursor:pointer;transition:background var(--transition-fast, .1s ease)}.up-account-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .08))}.up-welcome{font-size:9px;color:var(--accent-color, #f89335);font-weight:500;line-height:1}.up-name{font-size:12px;font-weight:600;color:var(--text-primary, #fff);line-height:1.15;white-space:nowrap}.up-avatar-btn{padding:0;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:opacity var(--transition-fast, .1s ease)}.up-avatar-btn:hover{opacity:.85}.avatar{width:26px;height:26px;border-radius:50%;background-color:var(--accent-color);display:flex;align-items:center;justify-content:center;color:var(--accent-text-color);font-size:14px;font-weight:600;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.logo-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-icon .logo-image{width:26px;height:26px;object-fit:contain}.editable-text{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);color:var(--text-primary);font-size:14px;font-weight:500;transition:all var(--transition-fast);cursor:text;max-width:150px}.editable-text:hover{background-color:var(--bg-hover)}.editable-text:focus{outline:none;background-color:var(--bg-secondary);border-color:var(--accent-color)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-tertiary);color:var(--text-primary);font-size:12px;white-space:nowrap;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:var(--z-tooltip, 1000)}[data-tooltip]:hover:after{opacity:1}.render-stats-panel{position:fixed;left:var(--spacing-md);bottom:var(--spacing-md);z-index:1000;max-width:calc(100vw - 2 * var(--spacing-md));padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-overlay);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel, var(--shadow-md));font-size:11px;line-height:1.5}.render-stats-lines{white-space:pre-wrap;font-variant-numeric:tabular-nums}.render-stats-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.render-stats-actions button{background:none;border:none;padding:0;font-size:11px;color:var(--accent-color);cursor:pointer;text-decoration:underline}#project-panel{min-width:280px;max-width:400px;transition:width .35s cubic-bezier(.4,0,.2,1),max-width .35s cubic-bezier(.4,0,.2,1)}#project-panel.files-expanded,#project-panel.clash-expanded,#project-panel.compliance-expanded{width:400px;max-width:400px}#project-panel.clash-expanded,#project-panel.compliance-expanded{display:flex;flex-direction:column}.compliance-stats-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:2px var(--spacing-sm) 6px}.compliance-stat{font-size:12px;color:var(--text-secondary, #b8b5c4);background:var(--bg-secondary, #2d2a3c);border-radius:4px;padding:2px 8px}.compliance-stat--ok{color:#4caf50}.compliance-stat--bad{color:#f44336}.compliance-stat--warn{color:#ff9800}.compliance-stat--review{color:#e0a030}.compliance-wall-row{display:flex;align-items:center;gap:8px;padding:7px 6px;border-bottom:1px solid var(--border-color, #3a3747)}.compliance-wall-info{min-width:0}.compliance-wall-name{font-size:12px;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compliance-wall-sub{font-size:11px;color:var(--text-muted, #7a7789)}.compliance-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.compliance-dot--ok{background:#4caf50}.compliance-dot--bad{background:#f44336}.compliance-categories{padding:4px var(--spacing-sm) 8px}.compliance-cats-label{font-size:11px;color:var(--text-muted, #7a7789);margin-bottom:5px}.compliance-cats-chips{display:flex;flex-wrap:wrap;gap:6px}.compliance-restored-note{font-size:11px;color:var(--text-muted, #7a7789);padding:2px var(--spacing-sm) 6px}.compliance-cat-chip{font-size:11px;color:var(--text-primary, #fff);background:var(--bg-secondary, #2d2a3c);border:1px solid var(--border-color, #545163);border-radius:12px;padding:3px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:opacity .1s,background .1s}.compliance-cat-chip:hover{background:var(--bg-hover, #3a3747)}.compliance-cat-chip--off{opacity:.45;text-decoration:line-through}.compliance-cat-count{font-size:10px;color:var(--text-muted, #7a7789);background:#ffffff14;border-radius:8px;padding:0 5px}.compliance-source-toggle{display:flex;gap:0;margin-bottom:8px;border:1px solid var(--border-color, #545163);border-radius:6px;overflow:hidden;width:fit-content}.compliance-src-btn{font-size:11px;color:var(--text-muted, #9a97a9);background:transparent;border:none;padding:4px 10px;cursor:pointer;transition:background .1s,color .1s}.compliance-src-btn+.compliance-src-btn{border-left:1px solid var(--border-color, #545163)}.compliance-src-btn:hover{background:var(--bg-hover, #3a3747)}.compliance-src-btn.active{background:var(--accent-color, #f89335);color:#fff}.compliance-src-btn.active .compliance-cat-count{color:#fff;background:#ffffff40}.compliance-group{margin-bottom:0}.compliance-flag{color:#ff9800}.compliance-filter-bar .clash-filter-selects{grid-template-columns:repeat(2,minmax(0,1fr))}.compliance-item-tag{display:inline-block;margin-right:4px;padding:0 5px;border-radius:var(--radius-sm);background:#5b8def2e;color:var(--text-primary);font-size:10px;font-weight:600}.compliance-group.selected{box-shadow:inset 3px 0 0 var(--accent-color, #f89335)}.compliance-group.selected .project-clash-group-header{background-color:var(--bg-hover, #3a3747)}.compliance-violations{display:none;padding:2px 0 6px 22px}.compliance-group.expanded .compliance-violations{display:block}.compliance-violation-row{display:flex;flex-direction:column;gap:2px;padding:4px 8px;font-size:11px;border-radius:4px;cursor:pointer;overflow:hidden}.compliance-violation-row:hover{background:var(--bg-hover, #3a3747)}.compliance-violation-row.selected{background:#f893352e}.compliance-violation-top{display:flex;align-items:center;gap:8px}.compliance-violation-label{font-weight:600;color:#e0594f;min-width:20px}.compliance-violation-dist{color:#e57373;min-width:46px}.compliance-violation-names{color:var(--text-muted, #9a97a9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.compliance-msp-btn{flex-shrink:0;margin-left:auto;font-size:10px;font-weight:600;color:#fff;background:var(--accent-color, #f89335);border:none;border-radius:4px;padding:2px 8px;cursor:pointer}.compliance-msp-btn:hover{filter:brightness(1.1)}.compliance-resolved-note{font-size:11px;color:#4caf50;padding:4px 8px 2px}.compliance-install-header{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #9a97a9);padding:6px 8px 2px}.compliance-install-row{display:flex;align-items:center;gap:8px;padding:3px 8px;font-size:11px;border-radius:4px;cursor:pointer;overflow:hidden}.compliance-install-row:hover{background:var(--bg-hover, #3a3747)}.compliance-install-row.selected{background:#f893352e}.compliance-install-cat{flex-shrink:0;width:9px;height:9px;border-radius:2px}.compliance-install-name{color:var(--text-muted, #9a97a9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.compliance-msp-chip{display:flex;align-items:center;gap:8px;margin:3px 8px 0;padding:3px 6px 3px 9px;font-size:11px;border-radius:4px;border:1px solid rgba(248,147,53,.5);background:#f893351a;cursor:pointer}.compliance-msp-chip:hover{background:#f893352e}.compliance-msp-chip.selected{background:#f8933547}.compliance-msp-chip-label{font-weight:600;color:var(--accent-color, #f89335)}.compliance-msp-chip-meta{color:var(--text-muted, #9a97a9);flex:1}.compliance-msp-chip-check{width:15px;height:15px}.compliance-msp-chip--approved{border-color:#4b69}.compliance-msp-options{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm);border-bottom:1px solid var(--border-light)}.compliance-msp-option{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer}.compliance-msp-options .project-clash-btn{flex:0 0 auto}.compliance-msp-remove{border:none;background:transparent;color:var(--text-muted, #9a97a9);font-size:14px;line-height:1;cursor:pointer;padding:0 4px}.compliance-msp-remove:hover{color:#f44336}#project-panel.files-expanded{display:flex;flex-direction:column;overflow:hidden}.project-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--panel-padding)}.project-name{flex:1;min-width:0}.project-name input{width:100%;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px var(--spacing-xs);color:var(--text-primary);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.project-name input:hover{background-color:var(--bg-hover)}.project-name input:focus{outline:none;background-color:var(--bg-secondary);border-color:var(--accent-color)}.project-name input.project-name--locked{color:var(--text-secondary);border-color:transparent;background:transparent;cursor:default}.project-name input.project-name--locked:hover,.project-name input.project-name--locked:focus{background:transparent;border-color:transparent}.project-header-toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);border-radius:var(--radius-sm)}.project-header-toggle:hover{color:var(--text-primary);background-color:var(--bg-hover)}.project-header-toggle .toggle-chevron{transition:transform .25s ease}.project-header-toggle.expanded .toggle-chevron{transform:rotate(90deg)}.project-logo{flex-shrink:0;cursor:pointer;transition:opacity var(--transition-fast)}.project-logo:hover{opacity:.8}.project-buttons-wrapper{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s ease}.project-buttons-wrapper.expanded{max-height:50px;opacity:1}.project-buttons{display:flex;gap:var(--spacing-xs);padding:0 var(--panel-padding) var(--panel-padding);align-items:center}.project-buttons-divider{width:1px;height:20px;background:var(--border-light);margin:0 2px}.project-subpanel{border-top:1px solid var(--border-light);max-height:0;opacity:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .25s ease-out,border-color .2s ease}.project-subpanel.expanded{max-height:400px;opacity:1}#clash-subpanel.expanded,#compliance-subpanel.expanded{flex:1;min-height:0;max-height:none;display:flex;flex-direction:column;overflow:hidden}#files-subpanel.expanded{flex:0 1 auto;min-height:0;max-height:none;display:flex;flex-direction:column;overflow:hidden}.subpanel-content{max-height:300px;overflow-y:auto;padding:var(--spacing-sm);scroll-behavior:smooth}#clash-subpanel .subpanel-content,#compliance-subpanel .subpanel-content,#files-subpanel .subpanel-content{flex:1;max-height:none;min-height:0;overflow-y:auto}.subpanel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--panel-padding);background-color:var(--bg-secondary)}.subpanel-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;flex:1}.subpanel-header-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:none;border:none;transition:all var(--transition-fast)}.subpanel-header-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.subpanel-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.subpanel-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.subpanel-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.subpanel-content{max-height:300px;overflow-y:auto;padding:var(--spacing-sm)}.project-file-list{display:flex;flex-direction:column;gap:2px}.project-file-item{display:grid;grid-template-columns:1fr 90px 24px 24px;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background-color .15s ease}.project-file-item:hover{background-color:var(--bg-hover)}.project-file-item:active{background-color:var(--bg-active)}.project-file-item.selected{background-color:var(--selection-bg);box-shadow:inset 3px 0 0 var(--accent-color)}.project-file-name{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.project-file-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--text-muted);background:transparent;border:none;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.project-file-btn:hover{background-color:var(--bg-active);color:var(--text-primary)}.project-file-btn.visibility-off{opacity:.5}.project-file-item.coordinate-outlier{background-color:#dc32321f}.project-file-item.coordinate-outlier:hover{background-color:#dc32322e}.project-file-item.coordinate-outlier .project-file-name{color:#d63333}.project-file-warning{margin-right:4px;font-size:13px}.project-file-item.invalid-geometry{background-color:#dc32321f}.project-file-item.invalid-geometry:hover{background-color:#dc32322e}.project-file-item.invalid-geometry .project-file-name,.project-file-warning.invalid-geometry{color:#d63333}.project-file-item.displaced{background-color:#dca0281f}.project-file-item.displaced:hover{background-color:#dca0282e}.project-file-warning.displacement{color:#d4a020}.displacement-warning{margin-top:8px;padding:6px 8px;background-color:#dca0281f;border:1px solid rgba(220,160,40,.3);border-radius:var(--radius-sm)}.displacement-warning-text{font-size:10px;color:#d4a020;margin-bottom:4px}.displacement-warning.applied{background-color:#64a0501a;border-color:#64a0504d}.displacement-warning.applied .displacement-warning-text{color:#7aaa60;margin-bottom:0}.project-file-warning.displacement.applied{color:#7aaa60}.displacement-correction{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text-primary)}.displacement-correction strong{font-family:monospace}.displacement-apply-btn{margin-left:auto;padding:2px 10px;font-size:10px;background-color:#dca02840;border:1px solid rgba(220,160,40,.5);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.displacement-apply-btn:hover{background-color:#dca02866}.displacement-dismiss-btn{padding:2px 10px;font-size:10px;background:none;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.displacement-dismiss-btn:hover{background-color:#ffffff14;border-color:#ffffff40}.displacement-undo-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;padding:0;font-size:14px;line-height:1;background:none;border:1px solid rgba(100,160,80,.4);border-radius:50%;color:#7aaa60;cursor:pointer;transition:all var(--transition-fast);vertical-align:middle}.displacement-undo-btn:hover{background-color:#64a05033;border-color:#64a05099}.project-file-item.manually-moved{background-color:#64a0dc1a}.project-file-item.manually-moved:hover{background-color:#64a0dc29}.project-file-warning.moved{color:#6098d0}.moved-notice{margin-top:8px;display:flex;align-items:center;justify-content:space-between;padding:5px 8px;background-color:#64a0dc1a;border:1px solid rgba(100,160,220,.25);border-radius:var(--radius-sm)}.moved-notice-text{font-size:10px;color:#6098d0}.moved-reset-btn{padding:2px 10px;font-size:10px;background-color:#64a0dc33;border:1px solid rgba(100,160,220,.4);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.moved-reset-btn:hover{background-color:#64a0dc59}.reset-confirm-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.reset-confirm-dialog{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:20px;max-width:340px;width:90%;box-shadow:0 8px 32px #0000004d}.reset-confirm-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:10px}.reset-confirm-message{font-size:12px;color:var(--text-secondary);line-height:1.5;margin-bottom:16px}.reset-confirm-message strong{color:var(--text-primary)}.reset-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.reset-confirm-cancel{padding:5px 14px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.reset-confirm-cancel:hover{background:var(--bg-hover)}.reset-confirm-ok{padding:5px 14px;font-size:12px;background-color:#dc503c33;border:1px solid rgba(220,80,60,.5);border-radius:var(--radius-sm);color:#e06050;cursor:pointer;transition:all var(--transition-fast)}.reset-confirm-ok:hover{background-color:#dc503c59}.project-file-item.expanded{background-color:var(--bg-hover);border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin-bottom:0}.project-file-details{padding:8px 10px 10px;background-color:var(--bg-secondary);border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-bottom:4px}.project-file-fullname{font-size:11px;color:var(--text-muted);white-space:normal;overflow-wrap:anywhere;word-break:break-word;margin-bottom:8px;user-select:text}.project-file-detail-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:11px}.project-file-detail-row:last-child{margin-bottom:0}.project-file-detail-label{color:var(--text-muted);font-size:10px;min-width:28px;flex-shrink:0}.project-file-detail-value{color:var(--text-secondary);font-size:11px}.project-file-detail-input{width:60px;padding:3px 5px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:11px;text-align:right}.project-file-detail-input:focus{outline:none;border-color:var(--accent-color)}.project-file-detail-unit{color:var(--text-muted);font-size:10px}.project-discipline-select{font-size:10px;padding:2px 4px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;width:100%;min-width:0}.project-discipline-select:hover{border-color:var(--accent-color)}.project-discipline-select:focus{outline:none;border-color:var(--accent-color)}.project-clash-controls{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm);border-bottom:1px solid var(--border-light)}.project-clash-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);flex:1;padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.project-clash-btn-primary{background-color:var(--accent-color);color:var(--accent-text-color)}.project-clash-btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.project-clash-btn-primary:disabled{opacity:.5;cursor:not-allowed}.project-clash-btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.project-clash-btn-secondary:hover{background-color:var(--bg-hover)}.project-clash-progress{padding:var(--spacing-sm)}.project-clash-progress-bar{height:4px;background-color:var(--bg-tertiary);border-radius:2px;overflow:hidden}.project-clash-progress-fill{height:100%;background-color:var(--accent-color);border-radius:2px;transition:width .3s ease}.project-clash-progress-text{margin-top:var(--spacing-xs);font-size:11px;color:var(--text-muted);text-align:center}.project-clash-stats{display:flex;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-sm)}.project-clash-stat{display:flex;flex-direction:column;align-items:center}.project-clash-stat-value{font-size:20px;font-weight:600;color:var(--accent-color)}.project-clash-stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase}#clash-stats,#compliance-stats{flex-shrink:0;display:flex;flex-direction:column;padding:0}.clash-approval-bar{display:flex;align-items:center;gap:8px;padding:6px var(--spacing-sm) 2px}.clash-approval-label{font-size:11px;font-weight:500;color:var(--text-secondary);width:60px;flex-shrink:0}.clash-approval-removed{font-size:11px;color:var(--text-secondary);padding-top:0;padding-bottom:4px}.clash-approval-removed b{font-weight:600;color:var(--text-primary)}.clash-approval-fill{background-color:#4b6}.clash-filter-bar{display:flex;flex-direction:column;gap:6px;padding:6px var(--spacing-sm) 8px}.clash-place-manual-btn{align-self:flex-start}.clash-filter-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.clash-filter-field{display:flex;flex-direction:column;gap:2px;min-width:0}.clash-filter-field>span{font-size:10px;color:var(--text-muted)}.clash-filter-search{min-width:0;font-size:11px;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary)}.clash-filter-search::placeholder{color:var(--text-muted)}.clash-filter-groupby,.clash-filter-construction,.clash-filter-mep,.compliance-filter-level,.compliance-filter-kind{width:100%;min-width:0;font-size:11px;padding:3px 4px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary)}.project-clash-list{display:flex;flex-direction:column;gap:2px}.project-clash-group{border-radius:var(--radius-sm);overflow:hidden}.project-clash-group-header{display:flex;flex-direction:row;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.project-clash-group-header:hover{background-color:var(--bg-hover)}.project-clash-group.expanded>.project-clash-group-header{background-color:var(--bg-hover);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.clash-group-check-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--text-muted);background:transparent;color:transparent;cursor:pointer;padding:0;transition:all var(--transition-fast)}.clash-group-check-btn:hover{border-color:var(--text-secondary);color:var(--text-muted)}.clash-group-check-btn.checked{border-color:#4b6;background-color:#4b6;color:#fff}.clash-group-check-btn.checked:hover{border-color:#3aa558;background-color:#3aa558}.clash-group-check-btn .cg-check,.clash-group-check-btn .cg-dash{display:none}.clash-group-check-btn.checked .cg-check,.clash-group-check-btn.indeterminate .cg-dash{display:block}.clash-group-check-btn.indeterminate{border-color:#e0a030;color:#e0a030;background:transparent}.clash-group-check-btn.indeterminate:hover{border-color:#c98e22;color:#c98e22}.clash-group-checked .project-clash-group-header{background-color:#44bb661a}.clash-group-checked .project-clash-group-header:hover{background-color:#44bb6626}.compliance-group-approved .project-clash-group-header{background-color:#44bb661a}.compliance-group-approved .project-clash-group-header:hover{background-color:#44bb6626}.compliance-group-review .project-clash-group-header{background-color:#e0a0301a}.compliance-group-review .project-clash-group-header:hover{background-color:#e0a03029}.clash-group-check-btn.compliance-auto{opacity:.5;cursor:default}.clash-group-check-btn.compliance-auto:hover{border-color:#4b6}.clash-group-indeterminate .project-clash-group-header,.clash-level-indeterminate .clash-level-header{background-color:#e0a03014}.clash-group-indeterminate .project-clash-group-header:hover,.clash-level-indeterminate .clash-level-header:hover{background-color:#e0a0301f}.project-clash-group-icon{flex-shrink:0;width:18px;height:18px;margin-right:var(--spacing-sm);color:var(--warning-color)}.project-clash-group-label{flex:1;min-width:0;font-size:12px;font-weight:400;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.project-clash-group-meta{flex-shrink:0;font-size:10px;color:var(--text-muted);white-space:nowrap}.clash-group-check-btn.clash-row-check{width:14px;height:14px}.clash-row-check-spacer{display:inline-block;width:14px;flex-shrink:0}.clash-group-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:0 2px 6px;margin-bottom:4px;border-bottom:1px solid var(--border-light)}.clash-group-tool-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all var(--transition-fast)}.clash-group-tool-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.clash-group-tool-btn.active{border-color:var(--accent-color);background:var(--accent-color);color:#fff}.project-clash-group-expand{width:20px;height:20px;color:var(--text-muted);transition:transform var(--transition-fast)}.project-clash-group.expanded .project-clash-group-expand{transform:rotate(180deg)}.project-clash-group-details{display:none;padding:6px 6px 8px;background:var(--bg-secondary);border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-bottom:4px}.project-clash-group.expanded .project-clash-group-details{display:block}.clash-render-mode-toggle{display:inline-flex;gap:2px;padding:2px;background:var(--bg-primary);border-radius:var(--radius-sm);box-sizing:border-box}.clash-render-mode-tab{padding:2px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:400;transition:all var(--transition-fast)}.clash-render-mode-tab:hover{background:var(--bg-hover)}.clash-render-mode-tab.active{background:var(--bg-hover);color:var(--text-primary);font-weight:500}.clash-level-header{cursor:pointer;transition:background-color var(--transition-fast)}.clash-level-header:hover{background-color:var(--bg-hover)}.clash-level-checked .clash-level-header{background-color:#44bb661a}.clash-level-checked .clash-level-header:hover{background-color:#44bb6626}.clash-level-sectioned .clash-level-header{background-color:#4488ff1f;border-left:3px solid var(--accent-blue, #4488ff)}.clash-level-sectioned .clash-level-header:hover{background-color:#4488ff2e}.clash-level-group.expanded .clash-level-details{display:block}.clash-level-group.expanded .clash-group-expand{transform:rotate(180deg)}.clash-level-item{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);font-size:12px}.clash-level-item:hover{background-color:var(--bg-hover)}.clash-level-item.selected{background-color:var(--selection-bg);box-shadow:inset 3px 0 0 var(--accent-color)}.clash-level-item.clash-dismissed-inline{opacity:.4}.clash-level-item-info{display:flex;align-items:center;gap:4px;flex:1;min-width:0;overflow:hidden}.clash-level-item-construction,.clash-level-item-mep{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary);max-width:40%}.clash-level-item-separator{color:var(--text-muted);flex-shrink:0;font-size:10px}.clash-number-badge{display:inline-block;padding:1px 5px;border-radius:var(--radius-sm);background:var(--accent-bg);color:var(--accent-color);font-size:10px;font-weight:600;flex-shrink:0;margin-right:4px}.clash-not-marked-prompt{padding:20px 16px;text-align:center;color:var(--text-muted);font-size:12px}.clash-not-marked-prompt p{margin:0}.clash-mark-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:6px 14px;border:none;border-radius:var(--radius-md);background:var(--accent-color);color:#fff;font-size:12px;cursor:pointer;transition:opacity var(--transition-fast)}.clash-mark-btn:hover{opacity:.85}.clash-add-marker-btn.active{border-color:var(--accent-color);background:var(--accent-bg);color:var(--accent-color)}.clash-marker-confirm-bar{display:flex;align-items:center;justify-content:space-between;padding:8px;margin-bottom:var(--spacing-xs);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:11px;color:var(--text-secondary)}.clash-marker-confirm-actions{display:flex;gap:4px}.clash-marker-confirm-btn{padding:3px 10px;border:none;border-radius:var(--radius-sm);background:var(--accent-color);color:#fff;font-size:11px;cursor:pointer}.clash-marker-cancel-btn{padding:3px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer}.clash-marker-confirm-floating{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:10000;background:var(--bg-primary, #1e1e2e);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 4px 16px #00000080;padding:8px 14px;white-space:nowrap}.clash-fp-penetration{border-radius:var(--radius-sm);margin-bottom:2px;overflow:hidden}.clash-fp-penetration-header{display:flex;align-items:center;gap:6px;padding:4px 6px;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.clash-fp-penetration-header:hover{background-color:var(--bg-hover)}.clash-fp-penetration-label{font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.clash-fp-penetration-meta{font-size:10px;color:var(--text-muted);flex-shrink:0}.clash-fp-penetration-expand{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:0;transition:transform var(--transition-fast)}.clash-fp-penetration-details{display:none;padding-left:12px}.clash-fp-penetration.expanded .clash-fp-penetration-details{display:block}.clash-fp-penetration.expanded .clash-fp-penetration-expand{transform:rotate(180deg)}.project-empty-state{padding:var(--spacing-lg);text-align:center;color:var(--text-muted);font-size:13px}.project-drop-zone{padding:var(--spacing-lg);border:2px dashed var(--border-color);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.project-drop-zone:hover{border-color:var(--accent-color);background-color:var(--bg-hover)}.project-drop-zone.drag-over{border-color:var(--accent-color);background-color:var(--accent-light)}.project-drop-zone svg{width:32px;height:32px;margin-bottom:var(--spacing-sm);color:var(--text-muted)}.project-drop-zone span{display:block}.clash-penetration-item{margin-left:8px;border-left:2px solid var(--accent-color);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background-color:#ffffff05}.clash-penetration-item.selected{background-color:var(--selection-bg)}.clash-penetration-header{display:flex;align-items:center;padding:4px 8px;cursor:pointer;gap:8px;transition:background-color var(--transition-fast)}.clash-penetration-header:hover{background-color:var(--bg-hover)}.clash-penetration-icon{flex-shrink:0;width:14px;height:14px;color:var(--accent-color)}.clash-penetration-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.clash-penetration-label{font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clash-penetration-meta{font-size:10px;color:var(--text-muted)}.clash-penetration-expand{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:transform var(--transition-fast),background-color var(--transition-fast)}.clash-penetration-expand:hover{background-color:var(--bg-active);color:var(--text-primary)}.clash-penetration-item.expanded .clash-penetration-expand{transform:rotate(180deg)}.clash-penetration-details{display:none;padding-left:16px;padding-bottom:2px}.clash-penetration-item.expanded .clash-penetration-details{display:block}.clash-penetration-clash{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.clash-penetration-clash:hover{background-color:var(--bg-hover)}.clash-penetration-clash.selected{background-color:var(--selection-bg);box-shadow:inset 2px 0 0 var(--accent-color)}.clash-penetration-clash-label{color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.clash-penetration-clash-volume{color:var(--text-muted);font-size:10px;flex-shrink:0;margin-left:8px}.clash-ungrouped-item.clash-mep-item{margin-left:0}.clash-mep-item{display:flex;align-items:center;padding:4px 8px;gap:8px;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.clash-mep-item:hover{background-color:var(--bg-hover)}.clash-mep-item.selected{background-color:var(--selection-bg);box-shadow:inset 3px 0 0 var(--accent-color)}.clash-mep-icon{flex-shrink:0;width:14px;height:14px;color:var(--warning-color)}.clash-mep-label{flex:1;min-width:0;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clash-mep-volume{flex-shrink:0;font-size:10px;color:var(--text-muted)}.clash-ungroup-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s ease,background-color .15s ease}.clash-ungroup-btn:hover{color:#fa4;background-color:#ffaa441a}.clash-dismiss-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s ease,background-color .15s ease}.clash-dismiss-btn:hover{color:#f44;background-color:#ff44441a}.clash-dismissed-inline{opacity:.4}.clash-dismissed-inline .clash-mep-label,.clash-dismissed-inline .clash-penetration-clash-label{text-decoration:line-through}.clash-restore-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s ease,background-color .15s ease}.clash-restore-btn:hover{color:#4b6;background-color:#44bb661a}.clash-copy-btn{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;padding:2px;border-radius:var(--radius-md)}.clash-copy-btn:hover{color:var(--accent-color);background:var(--bg-hover)}.clash-copy-badge.clash-manual-badge{background-color:#d9822b}.clash-copy-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.5px;padding:1px 4px;border-radius:3px;background-color:#2f7bd4;color:#fff;margin-right:4px;vertical-align:middle;line-height:1.2}.clash-frp-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.5px;padding:1px 4px;border-radius:3px;background-color:#d45030;color:#fff;margin-right:4px;vertical-align:middle;line-height:1.2}.clash-rules-section{padding:0 var(--spacing-sm) var(--spacing-xs)!important}.clash-rules-header{display:flex;align-items:center;gap:6px;padding:var(--spacing-xs) 0;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-secondary);user-select:none}.clash-rules-chevron{transition:transform .2s ease;transform:rotate(-90deg);flex-shrink:0}.clash-rules-header.expanded .clash-rules-chevron{transform:rotate(0)}.clash-rules-content{max-height:0;opacity:0;overflow:hidden;transition:max-height .25s ease,opacity .2s ease}.clash-rules-content.expanded{max-height:200px;opacity:1}.clash-rules-label{font-size:11px;color:var(--text-tertiary);padding:2px 0 4px}.clash-rules-row{display:flex;align-items:center;gap:8px;padding:3px 0}.clash-rules-row-label{font-size:12px;color:var(--text-primary)}.clash-rules-toggle-label{position:relative;display:inline-block;width:32px;height:18px;cursor:pointer;flex-shrink:0}.clash-rules-toggle-label input{opacity:0;width:0;height:0;position:absolute}.clash-rules-toggle-slider{position:absolute;inset:0;background-color:var(--bg-tertiary);border-radius:9px;transition:background-color .2s ease}.clash-rules-toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .2s ease}.clash-rules-toggle-label input:checked+.clash-rules-toggle-slider{background-color:var(--accent-color)}.clash-rules-toggle-label input:checked+.clash-rules-toggle-slider:after{transform:translate(14px)}.overview-section{padding:0 var(--spacing-sm) var(--spacing-sm)}.overview-section+.overview-section{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light)}.overview-section-header{font-size:12px;font-weight:600;color:var(--text-secondary);padding:var(--spacing-sm) 0 var(--spacing-xs)}.overview-row{display:flex;align-items:center;gap:6px;padding:3px 0}.overview-row-label{width:100px;flex-shrink:0;font-size:12px;color:var(--text-primary)}.overview-progress-track{position:relative;flex:1;height:18px;background-color:var(--bg-tertiary);border-radius:3px;overflow:hidden}.overview-progress-fill{height:100%;background-color:var(--accent-color);border-radius:3px;transition:width .3s ease}.overview-bar-count{position:absolute;left:6px;top:0;bottom:0;display:flex;align-items:center;font-size:11px;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums;z-index:1;pointer-events:none}.rating-fire .overview-progress-fill{background-color:#e74c3c}.rating-smoke .overview-progress-fill{background-color:#95a5a6}#save-export-subpanel.expanded{flex:0 1 auto;min-height:0;max-height:none;display:flex;flex-direction:column;overflow:hidden}#project-panel.save-export-expanded{display:flex;flex-direction:column;overflow:hidden}.se-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:none;border-radius:var(--radius-sm, 4px);color:var(--text-primary, #fff);font-size:13px;text-align:left;cursor:pointer;transition:background-color var(--transition-fast, .15s ease)}.se-item img,.se-item svg{flex-shrink:0}.se-item .se-label{flex:1;white-space:nowrap}.se-item .se-shortcut{color:var(--text-muted, rgba(255, 255, 255, .45));font-size:11px}.se-item:hover:not(:disabled){background-color:var(--bg-hover, rgba(255, 255, 255, .08))}.se-item:disabled{opacity:.45;cursor:default}.se-divider{height:1px;margin:4px 6px;background:var(--border-color, rgba(255, 255, 255, .12))}.rating-acoustic .overview-progress-fill{background-color:#3498db}.rating-none .overview-progress-fill{background-color:var(--text-muted);opacity:.4}.overview-edit-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:opacity .15s ease,color .15s ease,background-color .15s ease}.overview-row:hover .overview-edit-btn{opacity:1}.overview-edit-btn:hover{color:var(--accent-color);background-color:var(--bg-hover)}.overview-edit-popup{max-height:300px;overflow-y:auto;margin:2px 0 6px;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.overview-popup-group{margin-bottom:var(--spacing-xs)}.overview-popup-group:last-child{margin-bottom:0}.overview-popup-group-header{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:var(--text-secondary);padding:4px 0 2px;border-bottom:1px solid var(--border-light);margin-bottom:2px}.overview-popup-subgroup{display:flex;align-items:center;gap:8px;padding:3px 0}.overview-popup-subgroup-label{flex:1;min-width:0;font-size:11px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-popup-subgroup-count{flex-shrink:0;font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums}.overview-popup-toggle{position:relative;display:inline-block;width:28px;height:16px;flex-shrink:0}.overview-popup-toggle input{opacity:0;width:0;height:0}.overview-popup-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-tertiary);border-radius:8px;transition:background-color .2s ease}.overview-popup-toggle-slider:before{content:"";position:absolute;height:12px;width:12px;left:2px;bottom:2px;background-color:var(--text-muted);border-radius:50%;transition:transform .2s ease,background-color .2s ease}.overview-popup-toggle input:checked+.overview-popup-toggle-slider{background-color:var(--accent-color)}.overview-popup-toggle input:checked+.overview-popup-toggle-slider:before{transform:translate(12px);background-color:#fff}.overview-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:var(--spacing-sm) 0;font-size:11px;color:var(--text-muted)}.overview-loading-spinner{width:14px;height:14px;border:2px solid var(--bg-tertiary);border-top-color:var(--accent-color);border-radius:50%;animation:overview-spin .8s linear infinite}@keyframes overview-spin{to{transform:rotate(360deg)}}.overview-processing-banner{display:flex;flex-direction:column;gap:4px;padding:6px 8px;margin-bottom:var(--spacing-xs);background:var(--bg-secondary);border-radius:4px;border:1px solid var(--border-light)}.overview-processing-banner span{font-size:11px;color:var(--text-muted)}.overview-processing-bar{width:100%;height:3px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.overview-processing-bar-fill{width:30%;height:100%;background:var(--accent-color);border-radius:2px;animation:overview-processing-slide 1.2s ease-in-out infinite}@keyframes overview-processing-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.norm-editor-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal, 300)}.norm-editor-modal{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(980px,92vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.norm-editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.norm-editor-title{font-size:16px;font-weight:600;color:var(--text-primary)}.norm-editor-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px}.norm-editor-close:hover{color:var(--text-primary)}.norm-editor-toolbar{display:flex;gap:var(--spacing-lg);align-items:flex-end;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color)}.norm-editor-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary)}.norm-ct-select,.norm-default-input{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:4px 8px;font-size:13px}.norm-default-input{width:80px}.norm-grid-wrap{flex:1;overflow:auto;padding:var(--spacing-sm)}.norm-grid{border-collapse:separate;border-spacing:0;font-size:11px}.norm-grid th{background:var(--bg-secondary);color:var(--text-secondary);font-weight:600;text-align:center;padding:2px 4px;position:sticky;z-index:1}.norm-grid thead th{top:0}.norm-grid .norm-rowhead{left:0;z-index:2;text-align:right}.norm-grid .norm-corner{top:0;left:0;z-index:3}.norm-grid td{padding:1px}.norm-grid .norm-empty{background:var(--bg-secondary);opacity:.35}input.norm-cell{width:44px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:3px;padding:2px 3px;font-size:11px;text-align:center;-moz-appearance:textfield}input.norm-cell::-webkit-outer-spin-button,input.norm-cell::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.norm-cell:focus{outline:1px solid var(--accent-color);border-color:var(--accent-color)}input.norm-cell::placeholder{color:var(--text-muted);opacity:.6}input.norm-cell.has-value{border-color:var(--accent-color);color:var(--text-primary);font-weight:600;background:color-mix(in srgb,var(--accent-color) 14%,var(--bg-primary))}.norm-editor-footer{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-top:1px solid var(--border-color)}.norm-editor-note{font-size:11px;color:var(--text-muted);margin-right:auto}.norm-editor-btn{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:13px;cursor:pointer;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary)}.norm-editor-btn:hover{background:var(--bg-tertiary, var(--bg-secondary))}.norm-editor-btn-primary{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.dist-settings-modal{width:min(900px,94vw)}.dist-tabs{display:flex;gap:2px;padding:0 var(--spacing-md);border-bottom:1px solid var(--border-color)}.dist-tab{background:none;border:none;cursor:pointer;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);border-bottom:2px solid transparent}.dist-tab:hover{color:var(--text-primary)}.dist-tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color)}.dist-toolbar{display:flex;align-items:flex-end;gap:var(--spacing-lg);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.dist-size-row{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.dist-size-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-primary)}.dist-size-input{width:80px;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:3px;padding:2px 6px;font-size:12px;text-align:right}.comp-grid td{padding:1px}.comp-cell{width:26px;height:24px;cursor:pointer;border:1px solid var(--border-color);border-radius:3px;font-size:13px;line-height:1;padding:0}.comp-cell.allow{background:var(--bg-primary);color:var(--accent-color)}.comp-cell.forbid{background:#f4433624;color:#f44336;border-color:#f4433680}.compliance-msp-chip--warn{outline:1px solid #e0a030}.compliance-msp-warn{color:#e0a030;margin:0 2px;cursor:help}.compliance-msp-btn[disabled]{opacity:.5;cursor:not-allowed}.wall2d-overlay{position:absolute;inset:0;z-index:40;background:var(--bg-canvas);display:none;flex-direction:column}.wall2d-toolbar{position:fixed;left:50%;top:calc(var(--panel-gap, 12px) + 46px + var(--panel-gap, 12px));transform:translate(-50%);z-index:150;display:none;flex-direction:column;gap:6px;padding:var(--panel-padding, 8px);border-radius:var(--radius-lg);border:1px solid var(--border-light);background:var(--bg-primary);box-shadow:var(--shadow-panel)}.wall2d-toolbar-main{display:flex;align-items:center;gap:10px}.wall2d-tools{display:flex;gap:6px}.wall2d-btn{padding:4px 10px;font-size:12px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.wall2d-btn:hover{background:var(--bg-tertiary, var(--bg-secondary))}.wall2d-btn:disabled{opacity:.45;cursor:not-allowed}.wall2d-btn.active{background:#5e35b1;color:#fff;border-color:#5e35b1}.wall2d-type,.wall2d-fit{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.wall2d-type-select,.wall2d-fit-select{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:3px 6px;font-size:12px;max-width:160px}.wall2d-canvas{position:relative;flex:1;overflow:hidden}.wall2d-svg{width:100%;height:100%;display:block;touch-action:none;background:var(--bg-canvas)}.wall2d-info{position:absolute;font-size:12px;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px 9px;pointer-events:none;box-shadow:var(--shadow-md);max-width:240px}.wall2d-info-hint{color:var(--text-secondary);font-style:italic}.wall2d-diminput{position:absolute;width:72px;font-size:12px;padding:3px 6px;border:1px solid #5e35b1;border-radius:var(--radius-sm, 4px);background:var(--bg-primary);color:var(--text-primary);box-shadow:var(--shadow-md);z-index:5}.overview-roles-header{display:flex;align-items:center;gap:6px}.overview-roles-title{flex:1}.overview-role-col{width:40px;flex-shrink:0;display:flex;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary)}.overview-role-col input{cursor:pointer;margin:0;accent-color:var(--accent-color)}.overview-role-col{position:relative}.overview-role-partial{position:absolute;right:4px;top:-3px;font-size:13px;font-weight:700;color:var(--accent-color);cursor:help}.overview-popup-partial{color:var(--accent-color);font-weight:700;margin-left:2px}.overview-role-row .overview-row-label,.overview-roles-header .overview-roles-title{flex:1;width:auto;min-width:0}.overview-role-row .overview-row-count{flex:0 0 auto;text-align:right}.overview-role-row .overview-edit-btn{opacity:1}.overview-edit-spacer{width:24px;flex-shrink:0}.overview-role-na{color:var(--text-muted);font-weight:400}.overview-row-count{flex:1;font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.overview-row-excluded{color:var(--text-muted);font-size:11px}.overview-role-row.is-off .overview-row-label,.overview-role-row.is-off .overview-row-count{color:var(--text-muted);text-decoration:line-through}.overview-roles-note{font-size:11px;color:var(--text-muted);padding-top:var(--spacing-xs);line-height:1.4}.overview-rules-toggle{display:flex;align-items:center;gap:8px;padding:var(--spacing-sm) 0 var(--spacing-xs);cursor:pointer;user-select:none}.overview-rules-title{font-size:12px;font-weight:600;color:var(--text-secondary)}.overview-rules-summary{flex:1;font-size:11px;color:var(--text-muted);text-align:right}.overview-rules-chevron{flex-shrink:0;color:var(--text-muted);transform:rotate(-90deg);transition:transform .2s ease}.overview-rules-toggle.expanded .overview-rules-chevron{transform:rotate(0)}.overview-rules-toggle:hover .overview-rules-title{color:var(--text-primary)}.overview-rule-group{margin-top:8px;font-size:11px;font-weight:600;color:var(--text-secondary)}.overview-rule{display:flex;align-items:flex-start;gap:8px;padding:5px 0;cursor:pointer}.overview-rule .clash-rules-toggle-label{margin-top:1px}.overview-rule-text{display:flex;flex-direction:column;gap:2px;min-width:0}.overview-rule-label{font-size:12px;color:var(--text-primary)}.overview-rule.is-off .overview-rule-label{color:var(--text-muted)}.overview-rule.is-changed .overview-rule-label:after{content:" •";color:var(--warning-color)}.overview-rule-help{font-size:11px;color:var(--text-muted);line-height:1.4}.overview-rules-reset{background:none;border:none;padding:0;font-size:11px;color:var(--accent-color);cursor:pointer;text-decoration:underline}.clash-rules-line{gap:8px}.clash-rules-line-summary{flex:1;min-width:0;font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clash-rules-line.is-changed .clash-rules-line-summary{color:var(--warning-color)}.project-crop-row{margin-top:2px}.project-crop-row[hidden]{display:none}.project-crop-item{grid-template-columns:1fr 24px}.project-crop-item.with-remove{grid-template-columns:1fr 24px 24px}.project-crop-item .project-file-name{color:var(--text-secondary)}.project-crop-row .project-file-detail-row{gap:6px}#property-panel{display:flex;flex-direction:column;background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);overflow:hidden;backdrop-filter:blur(10px);border:1px solid var(--border-light)}.property-header{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:8px 8px 6px 12px;flex-shrink:0}.property-header-info{flex:1;min-width:0}.property-header-type{font-size:13px;font-weight:600;line-height:24px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-header-subtitle,.property-info-row{font-size:11px;line-height:1.4;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-info-row:empty,.property-header-subtitle:empty{display:none}.property-type-line{color:var(--text-secondary)}.property-type-line>span:empty{display:none}#property-type-row:not(:empty)+.property-subtype-row:not(:empty):before{content:" · ";color:var(--text-muted)}.property-subtype-row{color:var(--text-muted)}.property-header-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.property-header-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.property-header-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.property-header-btn.active{background-color:var(--accent-light);color:var(--accent-color)}.property-tabs{display:flex;gap:2px;padding:0 8px;border-bottom:1px solid var(--border-light);overflow-x:auto;flex-shrink:0;scrollbar-width:thin}.property-tab{padding:5px 8px 6px;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.property-tab:hover{color:var(--text-primary)}.property-tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color)}.property-search{padding:6px 8px 4px;flex-shrink:0}.property-search-input{width:100%;min-width:0;font-size:11px;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);outline:none}.property-search-input:focus{border-color:var(--accent-color)}.property-search-input::placeholder{color:var(--text-muted)}.property-content{flex:1;overflow-y:auto;padding:2px 8px 8px}.property-section-label{display:flex;align-items:center;gap:8px;padding:10px 8px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);user-select:none}.property-section-label:first-child{padding-top:4px}.property-section-label:after{content:"";flex:1;height:1px;background:var(--border-light)}.property-section-label.property-section-ob{color:var(--accent-color)}.property-group{border-radius:var(--radius-sm);margin-bottom:2px}.property-group-header{display:flex;align-items:center;gap:6px;padding:4px 6px 4px 8px;border-radius:var(--radius-sm);cursor:pointer;user-select:none;transition:background-color var(--transition-fast)}.property-group-header:hover{background-color:var(--bg-hover)}.property-group:not(.collapsed)>.property-group-header{background-color:var(--bg-hover);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.property-group-toggle{flex-shrink:0;width:14px;height:14px;color:var(--text-muted);transform:rotate(180deg);transition:transform var(--transition-fast)}.property-group.collapsed .property-group-toggle{transform:none}.property-group-title{flex:1;min-width:0;font-size:12px;font-weight:400;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-group-count{flex-shrink:0;font-size:10px;color:var(--text-muted);font-variant-numeric:tabular-nums}.property-group-content{padding:4px 2px;background-color:var(--bg-secondary);border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-bottom:4px}.property-group.collapsed .property-group-content{display:none}.property-content.pp-searching .property-group.collapsed .property-group-content{display:block}.property-content.pp-searching .property-group.collapsed>.property-group-header{background-color:var(--bg-hover);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.property-row{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);column-gap:8px;align-items:start;padding:2px 6px;border-radius:var(--radius-sm);font-size:12px;line-height:1.35;transition:background-color var(--transition-fast)}.property-row:hover{background-color:var(--bg-hover)}.property-row.pp-row-selected{background-color:var(--bg-active)}.property-row.pp-row-selected .property-name{color:var(--accent-color)}.property-name{color:var(--text-secondary);word-break:break-word}.property-value{color:var(--text-primary);word-break:break-word;font-variant-numeric:tabular-nums}.property-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-lg);text-align:center;color:var(--text-muted)}.property-empty svg{width:32px;height:32px;margin-bottom:var(--spacing-sm);opacity:.5}.property-empty-text{font-size:12px}.property-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-lg)}.property-loading-spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.property-loading-text{margin-top:var(--spacing-sm);font-size:12px;color:var(--text-muted)}.property-multi-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-lg);text-align:center}.property-multi-count{font-size:20px;font-weight:600;color:var(--accent-color)}.property-multi-text{font-size:12px;color:var(--text-secondary)}.property-content::-webkit-scrollbar{width:6px}.property-content::-webkit-scrollbar-track{background:transparent}.property-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.property-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.ob-param-editable{cursor:pointer}.ob-param-field{display:flex;align-items:center;gap:4px;min-width:0;margin:-1px -5px;padding:0 4px;border:1px solid transparent;border-radius:var(--radius-sm)}.ob-param-value{flex:1;min-width:0;word-break:break-word}.ob-param-empty{color:var(--text-muted)}.ob-param-icon{flex-shrink:0;color:var(--text-muted);visibility:hidden}.ob-param-editable:hover .ob-param-field{border-color:var(--border-color);background-color:var(--bg-primary)}.ob-param-editable:hover .ob-param-icon{visibility:visible}.ob-param-field:has(.ob-param-input,.ob-param-select) .ob-param-icon{display:none}.ob-param-input,.ob-param-select{width:100%;min-width:0;margin:-1px 0;padding:0 3px;font-size:12px;line-height:1.35;font-family:inherit;color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--accent-color);border-radius:var(--radius-sm);outline:none}.ob-param-input:focus,.ob-param-select:focus{box-shadow:0 0 0 2px var(--accent-light)}.ob-param-select{cursor:pointer}.ob-param-field:has(.ob-param-input,.ob-param-select){border-color:transparent;padding:0;margin:0}.ob-params-section>.property-group-header,.ob-clash-params-section>.property-group-header,.grouping-param-section>.property-group-header{box-shadow:inset 2px 0 0 var(--accent-color)}.property-context-menu{position:fixed;min-width:200px;max-height:360px;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, var(--shadow-panel));z-index:1000;padding:4px 0}.property-context-menu-title{padding:4px 10px 2px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);cursor:default}.property-context-menu-item{display:block;width:100%;padding:4px 10px;background:transparent;border:none;color:var(--text-primary);font-size:12px;text-align:left;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.property-context-menu-item:hover{background-color:var(--bg-hover);color:var(--accent-color)}.property-context-menu-item.is-danger{color:var(--error-color)}.property-context-menu-item.is-disabled,.property-context-menu-item.is-disabled:hover{color:var(--text-muted);background:transparent;cursor:default}.property-context-menu-divider{height:1px;margin:4px 0;background:var(--border-color)}.grouping-param-value{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.grouping-param-clear{flex:0 0 auto;padding:0 6px;font-size:11px;line-height:18px;cursor:pointer;color:var(--text-muted);background:transparent;border:none;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.grouping-param-clear:hover{color:var(--text-primary);background:var(--bg-active)}.property-footer-action{padding:8px}.property-footer-action .obp-btn{width:100%}.modal.ob-bulk-modal .modal-header,.modal.ob-bulk-modal .modal-footer{border:none!important}.modal.ob-bulk-modal .modal-header{padding-bottom:var(--spacing-xs)!important}.modal.ob-bulk-modal .modal-footer{padding-top:var(--spacing-xs)!important}.modal.ob-bulk-modal .modal-content{padding-top:var(--spacing-sm)!important;padding-bottom:var(--spacing-sm)!important}.ob-bulk-preview p{margin:0 0 var(--spacing-md);line-height:1.5;color:var(--text-secondary)}.ob-bulk-stats{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xs) var(--spacing-md);margin:0 0 var(--spacing-md)}.ob-bulk-stat{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-md);padding:5px 0;font-size:13px}.ob-bulk-stat-label{color:var(--text-secondary)}.ob-bulk-stat-value{flex:0 0 auto;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.ob-bulk-stats-note{color:var(--text-muted);font-weight:400}.ob-bulk-samples{margin-top:var(--spacing-md)}.ob-bulk-samples-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.ob-bulk-sample-list{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xs) var(--spacing-sm);max-height:240px;overflow-y:auto}.ob-bulk-sample{font-size:12px;padding:3px var(--spacing-xs);border-radius:var(--radius-sm);display:flex;align-items:center;gap:var(--spacing-sm)}.ob-bulk-sample code{background:var(--bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm);color:var(--text-primary)}.ob-bulk-sample em{color:var(--text-muted);font-style:italic}.ob-bulk-sample-count{flex:0 0 auto;min-width:34px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-muted)}.ob-bulk-sample-change{flex:1 1 auto}.ob-bulk-sample-noop{opacity:.55}.ob-bulk-more{color:var(--text-muted);font-style:italic;padding-top:var(--spacing-xs)}.property-value:has(.ob-measured-hint){display:flex;align-items:center;gap:6px}.property-value:has(.ob-measured-hint) .ob-param-field{flex:0 0 auto}.ob-measured-hint{display:inline-flex;align-items:center;gap:6px;min-width:0;margin:-1px 0;padding:0 5px;font:inherit;font-size:11px;line-height:16px;color:var(--text-muted);background:transparent;border:1px dashed var(--border-color);border-radius:var(--radius-sm);cursor:pointer}.ob-measured-hint:hover{color:var(--text-primary);border-color:var(--accent-color);background-color:var(--accent-light)}.ob-measured-use{font-weight:600;color:var(--accent-color)}.ob-measured-pill{flex-shrink:0;padding:0 4px;font-size:9px;font-weight:600;letter-spacing:.04em;line-height:13px;text-transform:uppercase;color:var(--text-muted);border:1px dashed var(--border-color);border-radius:var(--radius-sm)}.property-measured-note{padding:4px 10px 2px;font-size:11px;color:var(--text-muted)}.panel{display:flex;flex-direction:column;width:350px;min-width:250px;max-width:500px;background-color:var(--bg-primary);border-color:var(--border-color);z-index:var(--z-panel);transition:width var(--transition-normal),min-width var(--transition-normal)}.panel-left{border-right:1px solid var(--border-color)}.panel-right{border-left:1px solid var(--border-color)}.panel.collapsed{width:0;min-width:0;overflow:hidden}.panel.collapsed .panel-content,.panel.collapsed .panel-header h2,.panel.collapsed .panel-header span{opacity:0}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-light);flex-shrink:0}.panel-title{font-size:14px;font-weight:600;color:var(--text-primary)}.panel-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast)}.panel-toggle:hover{background-color:var(--bg-hover);color:var(--text-primary)}.panel-left .panel-toggle svg{transform:rotate(0)}.panel-left.collapsed .panel-toggle svg{transform:rotate(180deg)}.panel-right .panel-toggle svg{transform:rotate(0)}.panel-right.collapsed .panel-toggle svg{transform:rotate(180deg)}.panel-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow-x:hidden}.file-list{padding:var(--spacing-sm)}.file-item{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast)}.file-item:hover{background-color:var(--bg-hover)}.file-item.selected{background-color:var(--selection-bg)}.file-item-icon{flex-shrink:0;width:20px;height:20px;margin-right:var(--spacing-sm);color:var(--text-muted)}.file-item-name{flex:1;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.discipline-select{font-size:11px;padding:2px 4px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;max-width:90px;margin-right:var(--spacing-xs)}.discipline-select:hover{border-color:var(--accent-color)}.discipline-select:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px rgba(var(--accent-color-rgb),.2)}.file-item-actions{display:flex;gap:var(--spacing-xs);opacity:0;transition:opacity var(--transition-fast)}.file-item:hover .file-item-actions{opacity:1}.file-item-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast)}.file-item-btn:hover{background-color:var(--bg-active);color:var(--text-primary)}.file-item-btn.visibility-off{color:var(--text-muted);opacity:.5}.toast-container{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-toast)}.toast{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-icon{flex-shrink:0}.toast-message{flex:1;font-size:13px;color:var(--text-primary)}.toast-close{flex-shrink:0;color:var(--text-muted)}.toast-close:hover{color:var(--text-primary)}.toast.success .toast-icon{color:var(--success-color)}.toast.warning .toast-icon{color:var(--warning-color)}.toast.error .toast-icon{color:var(--error-color)}.panel-section{display:flex;flex-direction:column;border-bottom:1px solid var(--border-light)}.panel-section:last-of-type{border-bottom:none;flex:1;min-height:0}.panel-section.collapsed .panel-section-content{display:none}.panel-section-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast)}.panel-section-toggle:hover{background-color:var(--bg-hover);color:var(--text-primary)}.panel-section.collapsed .panel-section-toggle svg{transform:rotate(-90deg)}.panel-section-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.clash-controls{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.clash-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);flex:1;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:all var(--transition-fast)}.clash-btn-primary{background-color:var(--accent-color);color:#fff}.clash-btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.clash-btn-primary:disabled{opacity:.5;cursor:not-allowed}.clash-btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.clash-btn-secondary:hover{background-color:var(--bg-tertiary)}.clash-progress{padding:var(--spacing-sm) var(--spacing-md)}.clash-progress-track{height:4px;background-color:var(--bg-tertiary);border-radius:2px;overflow:hidden}.clash-progress-bar{height:100%;background-color:var(--accent-color);border-radius:2px;transition:width .3s ease}.clash-progress-text{margin-top:var(--spacing-xs);font-size:12px;color:var(--text-muted);text-align:center}.clash-stats{display:flex;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md)}.clash-stat{display:flex;flex-direction:column;align-items:center}.clash-stat-value{font-size:24px;font-weight:600;color:var(--accent-color)}.clash-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.clash-results{flex:1;min-height:0;padding:var(--spacing-sm);overflow-y:auto}.clash-item{margin-bottom:var(--spacing-xs);border-radius:var(--radius-md);background-color:var(--bg-secondary);overflow:hidden}.clash-item.selected{background-color:var(--selection-bg);border:1px solid var(--accent-color)}.clash-item-header{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background-color var(--transition-fast)}.clash-item-header:hover{background-color:var(--bg-hover)}.clash-item-icon{flex-shrink:0;width:20px;height:20px;margin-right:var(--spacing-sm);color:var(--error-color)}.clash-item-info{flex:1;min-width:0}.clash-item-label{display:block;font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clash-item-meta{display:block;font-size:11px;color:var(--text-muted)}.clash-item-expand{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-muted);transition:transform var(--transition-fast)}.clash-item.expanded .clash-item-expand{transform:rotate(180deg)}.clash-item-details{display:none;padding:var(--spacing-xs) var(--spacing-md) var(--spacing-sm);border-top:1px solid var(--border-light)}.clash-item.expanded .clash-item-details{display:block}.clash-detail-item{display:flex;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);font-size:12px;border-radius:var(--radius-sm);cursor:pointer}.clash-detail-item:hover{background-color:var(--bg-hover)}.clash-detail-category{color:var(--text-secondary)}.clash-detail-volume{color:var(--text-muted);font-family:monospace}.detecting-message,.error-message{padding:var(--spacing-md);text-align:center;font-size:13px}.detecting-message{color:var(--text-muted)}.error-message{color:var(--error-color)}.clash-merge-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:16px;padding:0 4px;margin-right:4px;font-size:10px;font-weight:600;color:var(--accent-color);background:color-mix(in srgb,var(--accent-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--accent-color) 30%,transparent);border-radius:8px;cursor:pointer;flex-shrink:0}.clash-merge-badge:hover{background:color-mix(in srgb,var(--accent-color) 25%,transparent)}.clash-merge-badge.active{color:var(--bg-primary, #fff);background:var(--accent-color)}.clash-item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}.clash-split-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center}.clash-split-btn:hover{color:var(--accent-color);background:var(--bg-hover)}.clash-consolidated{border-left:2px solid color-mix(in srgb,var(--accent-color) 40%,transparent)}.clash-composition{margin-left:calc(var(--spacing-md) + 8px);padding:2px 0 6px;border-left:1px dashed var(--border-color);cursor:default}.clash-composition-empty{padding:4px var(--spacing-sm);font-size:11px;color:var(--text-muted)}.clash-composition-side+.clash-composition-side{margin-top:4px}.clash-composition-side-header{display:flex;align-items:center;gap:6px;padding:4px var(--spacing-sm) 2px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.clash-composition-side-title{font-weight:600}.clash-composition-side-sum{text-transform:none;letter-spacing:0;color:var(--text-secondary)}.clash-composition-side-header .clash-render-mode-toggle{margin-left:auto;text-transform:none;letter-spacing:0}.clash-composition-line{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;padding:3px var(--spacing-sm);font-size:11px;color:var(--text-primary);border-radius:3px}.clash-composition-line[data-action=composition-outline]{cursor:pointer}.clash-composition-line[data-action=composition-outline]:hover{background:var(--bg-hover)}.clash-composition-line.selected{background:color-mix(in srgb,#ffd400 18%,transparent);box-shadow:inset 2px 0 #ffd400}.clash-composition-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clash-composition-via{font-size:10px;color:var(--text-muted);white-space:nowrap}.clash-composition-facts{grid-column:1 / -1;font-size:10px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clash-composition-actions{position:absolute;top:2px;right:var(--spacing-sm);display:none;gap:2px}.clash-composition-line:hover .clash-composition-actions{display:flex}.clash-composition-line:hover .clash-composition-via{visibility:hidden}.clash-composition-action{padding:1px 6px;font-size:10px;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer}.clash-composition-action:hover{color:var(--accent-color);border-color:var(--accent-color)}.clash-composition-data .clash-composition-name{color:var(--text-secondary);font-style:italic}.clash-merge-badge{cursor:pointer}@media (max-width: 1024px){.panel{width:300px}}@media (max-width: 768px){.panel{position:absolute;top:0;bottom:0;width:350px;box-shadow:var(--shadow-lg)}.panel-left{left:0}.panel-right{right:0}.panel.collapsed{transform:translate(-100%)}.panel-right.collapsed{transform:translate(100%)}}.viewcube-container{position:absolute;top:calc(var(--panel-gap) + 46px + var(--panel-gap));right:var(--panel-gap);width:120px;height:120px;z-index:100;pointer-events:auto;background:transparent;cursor:pointer;transition:right .35s cubic-bezier(.4,0,.2,1)}.viewcube-controls{position:absolute;top:calc(var(--panel-gap) + 46px + var(--panel-gap));right:var(--panel-gap);width:120px;height:120px;z-index:101;pointer-events:none;transition:right .35s cubic-bezier(.4,0,.2,1)}.viewcube-buttons{position:absolute;top:6px;right:calc(100% + 2px);display:flex;flex-direction:column;gap:4px;pointer-events:auto}.viewcube-btn{width:28px;height:28px;background-color:var(--bg-primary);box-shadow:var(--shadow-panel);color:var(--text-secondary)}.viewcube-projection{position:absolute;top:100%;left:50%;transform:translate(-50%);pointer-events:auto;background:none;border:none;padding:2px 6px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.viewcube-btn.active{background-color:var(--accent-light);color:var(--accent-color)}.viewcube-projection:hover{color:var(--accent-color);background:var(--bg-hover)}#viewer-container:has(.wall2d-overlay) .viewcube-controls{display:none}#data-manager-panel{position:fixed;left:var(--panel-gap);right:var(--panel-gap);bottom:var(--panel-gap);height:var(--dm-height, 45vh);min-height:200px;max-height:calc(100vh - 2 * var(--panel-gap));background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;z-index:var(--z-floating);overflow:hidden;transform:translateY(calc(100% + var(--panel-gap)));opacity:0;visibility:hidden;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1),visibility .35s,height .25s cubic-bezier(.4,0,.2,1)}#data-manager-panel.open{transform:translateY(0);opacity:1;visibility:visible}body.data-manager-open #property-panel{bottom:calc(var(--dm-height, 45vh) + 2 * var(--panel-gap))}.dm-panel-drag-handle{position:absolute;top:0;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:60px;height:14px;cursor:row-resize;user-select:none;-webkit-user-select:none;z-index:1;border-radius:0 0 6px 6px}.dm-panel-drag-handle:hover,.dm-panel-drag-handle:active{background:var(--bg-secondary)}.dm-panel-drag-handle-line{width:32px;height:2px;border-radius:1px;background:var(--border-color);transition:background .15s}.dm-panel-drag-handle:hover .dm-panel-drag-handle-line,.dm-panel-drag-handle:active .dm-panel-drag-handle-line{background:var(--text-muted)}@media (max-width: 768px){#data-manager-panel{height:var(--dm-height, 50vh)}body.data-manager-open #property-panel{bottom:calc(var(--dm-height, 50vh) + 2 * var(--panel-gap))}}.auth-gate-overlay{position:fixed;inset:0;z-index:var(--z-modal, 300);display:flex;align-items:center;justify-content:center;background:var(--bg-canvas, #0e0721);opacity:0;transition:opacity .3s ease}.auth-gate-overlay--visible{opacity:1}.auth-gate-card{width:100%;max-width:420px;padding:40px 32px;background:var(--bg-primary, #3c384c);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 20px rgba(0, 0, 0, .5));transform:translateY(20px);transition:transform .3s ease}.auth-gate-overlay--visible .auth-gate-card{transform:translateY(0)}.auth-gate-logo{text-align:center;margin-bottom:24px}.auth-gate-logo-img{width:56px;height:56px;margin-bottom:12px;opacity:.9}.auth-gate-title{font-size:22px;font-weight:600;color:var(--text-primary, #fff);margin:0}.auth-gate-message{font-size:14px;line-height:1.55;color:var(--text-secondary, #b8b5c4);text-align:center;margin:0}.obp-picker-overlay,.obp-error-overlay{position:fixed;inset:0;z-index:var(--z-modal, 300);display:flex;align-items:center;justify-content:center;background:var(--bg-canvas, #0e0721);opacity:0;transition:opacity .3s ease}.obp-picker-overlay--visible,.obp-error-overlay--visible{opacity:1}.obp-picker-overlay--hidden,.obp-error-overlay--hidden{opacity:0;pointer-events:none}.obp-picker-card{width:100%;max-width:480px;padding:36px 32px 28px;background:var(--bg-primary, #3c384c);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 20px rgba(0, 0, 0, .5));transform:translateY(20px);transition:transform .3s ease}.obp-picker-overlay--visible .obp-picker-card{transform:translateY(0)}.obp-picker-header{text-align:center;margin-bottom:24px}.obp-picker-logo{width:48px;height:48px;margin-bottom:10px;opacity:.9}.obp-picker-title{font-size:20px;font-weight:600;color:var(--text-primary, #fff);margin:0 0 4px}.obp-picker-subtitle{font-size:13px;color:var(--text-muted, #7a7789);margin:0}.obp-project-details{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:6px;flex-wrap:wrap}.obp-project-detail{font-size:12px;color:var(--text-secondary, #b8b5c4)}.obp-project-detail-sep{font-size:12px;color:var(--text-muted, #7a7789)}.obp-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;margin-bottom:20px}.obp-empty-state-icon{color:var(--text-muted, #7a7789);opacity:.5;margin-bottom:16px}.obp-empty-state-text{font-size:13px;color:var(--text-muted, #7a7789);text-align:center;line-height:1.6;margin:0}.obp-file-list{max-height:300px;overflow-y:auto;margin-bottom:20px;border:1px solid var(--border-color, #545163);border-radius:var(--radius-md, 8px)}.obp-file-row{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border-color, #545163);transition:background var(--transition-fast, .1s ease)}.obp-file-row:last-child{border-bottom:none}.obp-file-row:hover{background:var(--bg-secondary, #2d2a3c)}.obp-file-row--selected{background:var(--bg-tertiary, #3c384c);outline:2px solid var(--accent-color, #f89335);outline-offset:-2px;border-radius:2px}.obp-file-icon{flex-shrink:0;color:var(--text-muted, #7a7789)}.obp-file-row--selected .obp-file-icon{color:var(--accent-color, #f89335)}.obp-file-info{flex:1;min-width:0}.obp-file-name{display:block;font-size:14px;font-weight:500;color:var(--text-primary, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.obp-file-meta{display:flex;align-items:center;gap:8px;margin-top:3px}.obp-file-date{font-size:11px;color:var(--text-muted, #7a7789)}.obp-badge{display:inline-block;padding:1px 8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:10px}.obp-badge--published{color:#fff;background:var(--success-color, #22c55e)}.obp-badge--draft{color:var(--text-secondary, #b8b5c4);background:var(--bg-secondary, #2d2a3c);border:1px solid var(--border-color, #545163)}.obp-picker-actions{display:flex;flex-direction:column;gap:10px}.obp-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 0;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md, 8px);cursor:pointer;transition:background var(--transition-fast, .1s ease),opacity var(--transition-fast, .1s ease)}.obp-btn--primary{color:var(--accent-text-color, #fff);background:var(--accent-color, #f89335)}.obp-btn--primary:hover:not(:disabled){background:var(--accent-hover, #fb9e4c)}.obp-btn--primary:disabled{opacity:.5;cursor:not-allowed}.obp-btn--secondary{color:var(--text-secondary, #b8b5c4);background:transparent;border:1px solid var(--border-color, #545163)}.obp-btn--secondary:hover:not(:disabled){background:var(--bg-secondary, #2d2a3c);color:var(--text-primary, #fff)}.obp-btn--secondary:disabled{opacity:.5;cursor:not-allowed}.obp-btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:obp-spin .6s linear infinite}@keyframes obp-spin{to{transform:rotate(360deg)}}.obp-error-card{width:100%;max-width:400px;padding:40px 32px;background:var(--bg-primary, #3c384c);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg, 0 10px 20px rgba(0, 0, 0, .5));text-align:center;transform:translateY(20px);transition:transform .3s ease}.obp-error-overlay--visible .obp-error-card{transform:translateY(0)}.obp-error-icon{color:var(--error-color, #dc2626);margin-bottom:16px}.obp-error-title{font-size:18px;font-weight:600;color:var(--text-primary, #fff);margin:0 0 8px}.obp-error-message{font-size:13px;color:var(--text-muted, #7a7789);margin:0;line-height:1.6}.fp-button-row{display:flex;align-items:center;gap:6px;padding:6px var(--panel-padding, 10px);border-top:1px solid var(--border-color, rgba(255,255,255,.1))}.fp-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-color, rgba(255,255,255,.15));border-radius:var(--radius-md, 6px);background:transparent;color:var(--text-secondary, rgba(255,255,255,.5));cursor:pointer;transition:all .15s ease;padding:0}.fp-icon-btn:hover{background:var(--bg-hover, rgba(255,255,255,.06));color:var(--text-primary, #fff)}.fp-icon-btn.active{background:var(--accent-light, rgba(255,145,0,.15));border-color:var(--accent-color, #ff9100);color:var(--accent-color, #ff9100)}.fp-icon-btn svg{flex-shrink:0}.fp-text-btn{padding:4px 10px;border:1px solid var(--border-color, rgba(255,255,255,.15));border-radius:var(--radius-md, 6px);background:transparent;color:var(--text-secondary, rgba(255,255,255,.5));font-size:11px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.fp-text-btn:hover{background:var(--bg-hover, rgba(255,255,255,.06));color:var(--text-primary, #fff)}.fp-brush-label{position:fixed;pointer-events:none;padding:4px 8px;background:#000000c7;color:#fff;font-size:12px;font-weight:600;line-height:1;border-radius:var(--radius-md, 6px);z-index:10000;user-select:none;white-space:nowrap;display:flex;flex-direction:column;gap:3px}.fp-brush-label-name{font-weight:500;font-size:11px;color:#ffffffd9;line-height:1.3}.fp-brush-label.erase{background:#962828d9}.fp-indicator{position:fixed;bottom:12px;left:12px;padding:4px 12px;background:var(--accent-color, #ff9100);color:#fff;font-size:12px;font-weight:600;border-radius:var(--radius-md, 6px);pointer-events:none;z-index:var(--z-toolbar, 20)}.fp-clash-markers{position:absolute;inset:0;pointer-events:none;z-index:10;overflow:hidden}.fp-clash-marker{position:absolute;pointer-events:auto;cursor:pointer;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;transition:transform .1s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.fp-clash-marker:hover{transform:translate(-50%,-100%) scale(1.2);z-index:2}.fp-clash-marker.selected{transform:translate(-50%,-100%) scale(1.25);z-index:3;filter:drop-shadow(0 2px 8px rgba(255,102,0,.6))}.fp-clash-marker.selected .fp-clash-marker-arrow path{fill:#f30}.fp-clash-marker.multi-selected{filter:drop-shadow(0 0 6px rgba(47,123,212,.9));z-index:3}.fp-clash-marker.multi-selected .fp-clash-marker-arrow path{fill:#2f7bd4}.fp-marquee{position:absolute;pointer-events:none;border:1px dashed #2f7bd4;background:#2f7bd41f;z-index:11}.fp-clash-ghosts{position:absolute;inset:0;pointer-events:none;z-index:12;overflow:hidden}.fp-clash-ghost{position:absolute;pointer-events:none;transform:translate(-50%,-100%);opacity:.55;display:flex;flex-direction:column;align-items:center}.fp-clash-marker-arrow{display:block}.fp-clash-marker-label{position:absolute;top:5px;font-size:9px;font-weight:700;color:#000;white-space:nowrap;line-height:1;text-align:center}.clipboard-panel{width:250px;font-size:12px}.property-panel-open .clipboard-panel{margin-right:calc(var(--property-panel-width) + var(--panel-gap))}.clip-header{justify-content:space-between}.clip-title{font-weight:600}.clip-header{cursor:grab;user-select:none;touch-action:none}.clip-header:active{cursor:grabbing}.clipboard-panel.clip-moved{position:fixed;z-index:var(--z-floating, 50);margin-right:0!important}.clip-chevron{color:var(--text-muted);transition:transform .2s ease}.clipboard-panel.clip-folded .clip-chevron{transform:rotate(-90deg)}.clipboard-panel.clip-folded .clip-body{display:none}.clip-entries{display:flex;flex-direction:column;gap:2px}.clip-entry{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary)}.clip-entry:hover{background:var(--bg-hover)}.clip-entry-active{background:var(--selection-bg);color:var(--text-primary)}.clip-entry-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;border:1px solid var(--text-muted)}.clip-entry-active .clip-entry-dot{background:var(--accent-color);border-color:var(--accent-color)}.clip-entry-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clip-entry-remove{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;visibility:hidden}.clip-entry:hover .clip-entry-remove{visibility:visible}.clip-entry-remove:hover{color:var(--text-primary)}.clip-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.clip-status{color:var(--text-primary)}.clip-status-empty{color:var(--text-secondary)}.clip-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.clip-selection span{flex:1;color:var(--text-secondary)}.clip-btn{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary, transparent);color:var(--text-primary);padding:3px 8px;font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.clip-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--accent-color)}.clip-btn:disabled{opacity:.45;cursor:default}.clip-btn-primary{border-color:var(--accent-color);color:var(--accent-color)}.clip-btn.active{background:var(--accent-color);color:#fff}.clip-transform .clip-btn{min-width:30px;font-size:14px;padding:2px 6px}.clip-chip{margin-left:auto;padding:1px 6px;border-radius:8px;background:var(--bg-hover);color:var(--text-secondary);font-size:11px}.clip-hint{color:var(--text-secondary);font-size:11px;line-height:1.35}.paste-levels{display:flex;flex-direction:column;gap:8px;font-size:13px}.paste-levels-intro{margin:0;color:var(--text-secondary);line-height:1.4}.paste-levels-tools{display:flex;gap:6px}.paste-levels-list{display:flex;flex-direction:column;max-height:50vh;overflow-y:auto;border:1px solid var(--border-light);border-radius:var(--radius-md)}.paste-levels-row{display:flex;align-items:center;gap:8px;padding:5px 10px;cursor:pointer;color:var(--text-primary)}.paste-levels-row:hover{background:var(--bg-hover)}.paste-levels-row.is-source{cursor:default;color:var(--text-secondary)}.paste-levels-note{margin-left:auto;font-size:11px;color:var(--text-secondary)}.diag-dev-btn{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:9999;width:32px;height:40px;background:var(--bg-primary);border:1px solid var(--border-color);border-right:none;border-radius:var(--radius-md) 0 0 var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:16px;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.diag-dev-btn:hover{background:var(--bg-hover);color:var(--accent-color);width:38px}.diag-dev-btn.active{color:var(--accent-color);background:var(--accent-light)}.diag-panel{position:fixed;right:16px;top:60px;width:560px;max-height:calc(100vh - 80px);z-index:9998;display:flex;flex-direction:column}.diag-panel .diag-tab-content{user-select:text;-webkit-user-select:text}.diag-panel .floating-panel-header{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm);flex-shrink:0}.diag-panel .floating-panel-header .diag-title{font-weight:600;font-size:13px;color:var(--text-primary);flex:1}.diag-panel .diag-status{font-size:11px;color:var(--text-muted);margin-left:var(--spacing-xs)}.diag-panel .diag-status.enabled{color:var(--success-color)}.diag-toggle{position:relative;width:36px;height:20px;background:var(--bg-tertiary);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);border:none;padding:0;flex-shrink:0}.diag-toggle.on{background:var(--success-color)}.diag-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform var(--transition-fast)}.diag-toggle.on:after{transform:translate(16px)}.diag-tabs{display:flex;border-bottom:1px solid var(--border-light);padding:0 var(--spacing-sm);flex-shrink:0;background:var(--bg-primary)}.diag-tab{padding:var(--spacing-sm) var(--spacing-md);font-size:12px;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.diag-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.diag-tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color)}.diag-tab-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.diag-view{display:none;flex:1;flex-direction:column;overflow:hidden}.diag-view.active{display:flex}.diag-search-bar{padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);flex-shrink:0}.diag-search-bar input{width:100%;padding:6px 10px;font-size:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);outline:none;box-sizing:border-box}.diag-search-bar input:focus{border-color:var(--accent-color)}.diag-filters{display:flex;gap:var(--spacing-xs);padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);flex-wrap:wrap;flex-shrink:0}.diag-filter-btn{padding:2px 8px;font-size:11px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.diag-filter-btn:hover{background:var(--bg-hover)}.diag-filter-btn.active{background:var(--accent-light);color:var(--accent-color);border-color:var(--accent-color)}.diag-phase-select{width:100%;padding:6px 10px;font-size:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);outline:none;box-sizing:border-box}.diag-phase-select:focus{border-color:var(--accent-color)}.diag-phase-summary{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm);font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border-light);flex-wrap:wrap;flex-shrink:0}.diag-phase-summary .count{font-weight:600}.diag-list{flex:1;overflow-y:auto;min-height:200px;max-height:500px}.diag-entry{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:4px var(--spacing-sm);border-bottom:1px solid var(--border-light);font-size:11px;cursor:pointer;transition:background var(--transition-fast)}.diag-entry:hover{background:var(--bg-hover)}.diag-entry.expanded{flex-direction:column}.diag-badge{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-size:10px;font-weight:600;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.diag-badge.included{background:#16a34a26;color:var(--success-color)}.diag-badge.excluded{background:#dc262626;color:var(--error-color)}.diag-badge.skipped{background:#ca8a0426;color:var(--warning-color)}.diag-badge.deferred{background:var(--accent-light);color:var(--accent-color)}.diag-badge.created{background:#16a34a26;color:var(--success-color)}.diag-badge.suppressed{background:#8a8a8a26;color:var(--text-muted)}.diag-badge.merged{background:#3b82f626;color:#3b82f6}.diag-phase-badge{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-size:10px;background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.diag-entry-main{display:flex;align-items:center;gap:var(--spacing-sm);width:100%}.diag-entry-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.diag-entry-text .express-id{font-weight:600;color:var(--accent-color);cursor:pointer}.diag-entry-text .category{color:var(--text-secondary)}.diag-entry-text .reason{color:var(--text-muted)}.diag-entry-details{display:none;padding:var(--spacing-xs) var(--spacing-sm);margin-top:2px;background:var(--bg-secondary);border-radius:var(--radius-sm);font-family:monospace;font-size:10px;white-space:pre-wrap;word-break:break-all;color:var(--text-secondary)}.diag-entry.expanded .diag-entry-details{display:block}.diag-phase-group{border-bottom:1px solid var(--border-light)}.diag-phase-group-header{padding:4px var(--spacing-sm);font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);position:sticky;top:0;z-index:1}.diag-timing-bar-container{padding:var(--spacing-sm);overflow-y:auto;max-height:500px}.diag-timing-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:4px;font-size:11px}.diag-timing-label{width:120px;text-align:right;color:var(--text-secondary);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diag-timing-bar-bg{flex:1;height:18px;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden;position:relative}.diag-timing-bar-fill{height:100%;background:var(--accent-color);border-radius:var(--radius-sm);min-width:2px;transition:width .3s ease}.diag-timing-value{width:60px;font-size:10px;color:var(--text-muted);flex-shrink:0}.diag-summary-table{width:100%;border-collapse:collapse;font-size:11px}.diag-summary-table th{padding:4px 8px;text-align:left;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:sticky;top:0}.diag-summary-table td{padding:3px 8px;border-bottom:1px solid var(--border-light);color:var(--text-primary)}.diag-summary-table tr.has-excluded td{background:#dc26260d}.diag-summary-table .count-zero{color:var(--text-muted)}.diag-quick{padding:var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-md);margin:var(--spacing-sm);font-size:11px}.diag-quick-title{font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.diag-quick-item{padding:2px 0;color:var(--text-secondary)}.diag-quick-item .highlight{color:var(--error-color);font-weight:600}.diag-empty{padding:var(--spacing-lg);text-align:center;color:var(--text-muted);font-size:12px}.diag-toolbar-btns{display:flex;gap:var(--spacing-xs);align-items:center}.diag-chain-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-light);border-bottom:2px solid var(--accent-color);font-size:12px;color:var(--text-primary)}.diag-chain-header.diag-chain-start .diag-chain-icon{color:var(--accent-color);font-size:14px}.diag-chain-model{font-size:10px;color:var(--text-muted);margin-left:auto}.diag-chain-connector{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--accent-light) 100%);border-top:1px dashed var(--border-color);border-bottom:2px solid var(--accent-color);font-size:12px;color:var(--text-secondary)}.diag-chain-arrow{color:var(--accent-color);font-size:14px;flex-shrink:0}.diag-chain-reason{color:var(--text-secondary)}.diag-chain-reason strong{color:var(--accent-color)}.diag-chain-connector.diag-chain-end{background:linear-gradient(180deg,var(--bg-secondary) 0%,rgba(138,138,138,.1) 100%);border-bottom:2px solid var(--text-muted)}.diag-chain-end-label{font-size:10px;color:var(--text-muted);font-style:italic}.diag-chain-segment{border-left:3px solid var(--accent-color);margin-left:8px}.diag-chain-segment.diag-chain-final{border-left-color:var(--success-color)}.diag-chain-final-status{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-top:1px solid var(--border-color);font-size:12px;color:var(--text-secondary);border-left:3px solid var(--success-color);margin-left:8px}.diag-chain-final-status .diag-chain-icon{color:var(--success-color)}.diag-chain-final-status .reason{color:var(--text-muted)}.diag-devtools{display:flex;flex-direction:column;gap:10px;padding:12px}.diag-devtools-row{display:flex;align-items:center;gap:10px}.diag-devtools-label{width:140px;flex-shrink:0;font-weight:600;font-size:12px;color:var(--text-primary)}.diag-devtools-value{flex:1;min-width:0;font-size:12px;color:var(--text-secondary)}.help-video-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm, 4px);color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;background:none;border:none;flex-shrink:0;transition:all var(--transition-fast, .15s ease)}.help-video-btn:hover{background-color:var(--bg-hover, rgba(255, 255, 255, .08));color:var(--accent-color, #ff9100)}.help-video-btn svg{flex-shrink:0}.help-video-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:24px;z-index:var(--z-modal, 300)}.help-video-modal{background:var(--bg-primary, #1e1e1e);border-radius:var(--radius-lg, 10px);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .5));width:min(900px,92vw);max-height:88vh;overflow:hidden;display:flex;flex-direction:column}.help-video-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.help-video-title{font-size:15px;font-weight:600;color:var(--text-primary, #fff);margin:0}.help-video-close{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-muted, rgba(255, 255, 255, .5));padding:4px;border-radius:var(--radius-sm, 4px);transition:all var(--transition-fast, .15s ease)}.help-video-close:hover{background-color:var(--bg-hover, rgba(255, 255, 255, .08));color:var(--text-primary, #fff)}.help-video-stage{position:relative;width:100%;aspect-ratio:16 / 9;background:#000}.help-video-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.help-video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted, rgba(255, 255, 255, .5));background:var(--bg-secondary, #2a2a2a)}.help-video-placeholder p{margin:0;font-size:14px}.help-video-open-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--border-color, rgba(255, 255, 255, .2));border-radius:6px;background:var(--bg-tertiary, #333);color:var(--text-primary, #fff);font-size:13px;cursor:pointer;transition:background .15s ease}.help-video-open-btn:hover{background:var(--bg-hover, #3d3d3d)}
