:root{color-scheme:dark;--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a2a;--bg-card: #1e1e2e;--border: #2a2a3a;--border-light: #3a3a4a;--text: #ffffff;--text-muted: #888;--text-dim: #555;--primary: #10b981;--primary-hover: #059669;--success: #22c55e;--success-hover: #1eb854;--warning: #f59e0b;--error: #ef4444;--error-muted: #f87171;--info: #3b82f6;--toggle-bg: #4b5563;--toggle-knob: #e5e7eb;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .4);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--transition: .3s ease;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Fira Code", monospace;--z-base: 0;--z-dropdown: 100;--z-statusbar: 500;--z-overlay: 9000;--z-modal: 9100;--z-loading: 9200;--z-toast: 9300}[data-theme=light]{color-scheme:light;--bg-primary: #f5f5f7;--bg-secondary: #ffffff;--bg-tertiary: #f0f0f2;--bg-card: #ffffff;--border: #e1e3e8;--border-light: #d1d5db;--text: #1a1a2e;--text-muted: #6b7280;--text-dim: #9ca3af;--primary: #10b981;--primary-hover: #059669;--success: #16a34a;--success-hover: #15803d;--warning: #d97706;--error: #dc2626;--error-muted: #ef4444;--info: #2563eb;--toggle-bg: #e1e5e9;--toggle-knob: #ffffff;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .1);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--transition: .3s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text);min-height:100vh}header{height:56px;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100}.logo{font-size:20px;font-weight:600;color:var(--text-muted)}.logo span{color:var(--text-muted);font-weight:400;font-size:14px;margin-left:12px}.auth-section{display:flex;align-items:center;gap:16px}.user-email{color:var(--text-muted);font-size:13px}.theme-toggle{display:flex;align-items:center;gap:10px;flex-shrink:0}.theme-toggle-icon{font-size:18px;color:var(--text-muted);width:22px;text-align:center;line-height:1}.theme-toggle-switch{position:relative;width:48px;height:26px;background:var(--toggle-bg);border-radius:13px;cursor:pointer;transition:background .3s ease}.theme-toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--toggle-knob);border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .3s ease}[data-theme=light] .theme-toggle-switch:after{transform:translate(0)}[data-theme=dark] .theme-toggle-switch,:root:not([data-theme=light]) .theme-toggle-switch{background:var(--primary)}[data-theme=dark] .theme-toggle-switch:after,:root:not([data-theme=light]) .theme-toggle-switch:after{transform:translate(22px)}.btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary-hover)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-hover)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border-light)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover:not(:disabled){background:#d97706}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.container{max-width:1200px;margin:0 auto;padding:32px 24px}#mainApp{display:none}.input-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.input-group label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.input-group input,.input-group select,.input-group textarea{padding:12px 16px;border-radius:8px;border:1px solid var(--border-light);background:var(--bg-card);color:var(--text);font-size:14px;font-family:inherit}.input-group input:focus,.input-group select:focus,.input-group textarea:focus{outline:none;border-color:var(--primary)}.input-group input.error{border-color:var(--error)}.input-row{display:flex;gap:16px}.input-row .input-group{flex:1}.error-msg{color:var(--error);font-size:12px;margin-top:4px}.hidden{display:none!important}.status-badge{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase}.status-pending{background:var(--border);color:var(--text-muted)}.status-running{background:#3b82f633;color:var(--info)}.status-completed{background:#22c55e33;color:var(--success)}.status-error{background:#ef444433;color:var(--error)}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:1000;align-items:center;justify-content:center}.modal-overlay.visible{display:flex}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:480px;max-width:90vw;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:18px}.modal-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0 4px}.modal-close:hover{color:var(--text)}.modal-body{padding:24px}.modal-desc{font-size:13px;color:var(--text-muted);margin-bottom:16px}.nm-combo{position:relative}.nm-combo-input{width:100%;padding:6px 8px;box-sizing:border-box}.nm-combo-list{position:absolute;z-index:50;left:0;right:0;top:100%;max-height:260px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-light);border-radius:8px;box-shadow:0 6px 18px #0000002e}.nm-combo-item{padding:7px 10px;cursor:pointer;font-size:14px}.nm-combo-item:hover,.nm-combo-item.is-active{background:var(--border)}.nm-combo-empty{padding:7px 10px;color:var(--text-muted);font-size:13px}.role-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.role-admin{background:#3b82f633;color:var(--info)}.role-accounting{background:#f59e0b33;color:var(--warning)}.role-user{background:#22c55e33;color:var(--success)}.role-guest{background:#8883;color:var(--text-muted)}.role-superadmin{background:#8b5cf633;color:#a78bfa}.role-manager{background:#14b8a633;color:#2dd4bf}.nm-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;transition:height .2s ease,padding .2s ease,opacity .15s ease,border-bottom-width .2s ease;overflow:hidden}.nm-toolbar.nm-toolbar-hidden{height:0!important;padding-top:0;padding-bottom:0;border-bottom-width:0;opacity:0}.nm-toolbar-group{display:flex;align-items:center;gap:4px}.nm-toolbar-group+.nm-toolbar-group{padding-left:8px;border-left:1px solid var(--border)}.nm-toolbar-divider{width:1px;align-self:stretch;margin:2px 4px;background:var(--border);flex-shrink:0}.nm-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text-muted);cursor:pointer;font-size:16px;transition:all .15s}.nm-toolbar-btn:hover{background:var(--bg-tertiary);color:var(--text);border-color:var(--border)}.nm-toolbar-btn:active{background:var(--border)}.nm-toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.nm-toolbar-btn-busy{position:relative}.nm-toolbar-btn.nm-toolbar-btn-busy:disabled{opacity:1;cursor:progress}.nm-toolbar-btn-busy>*{visibility:hidden}.nm-toolbar-btn-busy:after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}.nm-toolbar-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nm-toolbar-btn.nm-toolbar-btn-text{width:auto;padding:4px 10px;font-size:11px;font-weight:400;white-space:nowrap}.nm-toolbar-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.nm-toolbar-spacer{flex:1}.nm-toolbar-custom-slot{display:inline-flex;align-items:center;gap:6px}.nm-toolbar-custom-slot.nm-toolbar-custom-error{color:var(--error);font-size:11px}.nm-toolbar-btn.nm-toolbar-btn-with-label{width:auto;padding:4px 10px;gap:6px}.nm-toolbar-btn.nm-toolbar-btn-with-label span{font-size:11px}header{transition:height .2s ease,padding .2s ease,opacity .15s ease,border-bottom-width .2s ease;overflow:hidden}header.nm-header-hidden{height:0!important;padding-top:0;padding-bottom:0;border-bottom-width:0;opacity:0;min-height:0}.nm-status{display:flex;flex-direction:column;flex-shrink:0}.nm-status-log{overflow-y:auto;background:var(--bg);font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:11px;line-height:1.6;padding:4px 12px;transition:height .2s ease}.nm-status-log.collapsed{height:0!important;overflow:hidden;padding:0 12px}.nm-status-log::-webkit-scrollbar{width:6px}.nm-status-log::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.nm-status-drag{height:4px;background:var(--bg-tertiary);cursor:ns-resize;flex-shrink:0;transition:background .15s}.nm-status-drag:hover{background:var(--primary, #3b82f6)}.nm-status-line{display:flex;align-items:center;gap:8px;padding:3px 12px;background:var(--bg-tertiary, var(--bg-secondary));border-bottom:1px solid var(--border);font-size:11px;color:var(--text-muted);flex-shrink:0;min-height:22px}.nm-status-entry{display:flex;align-items:baseline;gap:8px;padding:1px 0}.nm-status-time{color:var(--text-muted);opacity:.5;flex-shrink:0}.nm-status-entry .nm-status-msg{flex:1}.nm-status-entry.nm-status-info .nm-status-msg{color:var(--text-muted)}.nm-status-entry.nm-status-success .nm-status-msg{color:var(--success, #22c55e)}.nm-status-entry.nm-status-warning .nm-status-msg{color:var(--warning, #eab308)}.nm-status-entry.nm-status-error .nm-status-msg{color:var(--danger, #ef4444)}.nm-status-actions{display:flex;gap:4px;flex-shrink:0}.nm-status-action-btn{font-size:10px;padding:1px 8px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:all .15s;white-space:nowrap}.nm-status-action-btn:hover{background:var(--bg-tertiary);color:var(--text);border-color:var(--text-muted)}.nm-status-line .nm-status-msg{font-weight:500;color:var(--primary, #3b82f6)}.nm-status-preview{color:var(--text-muted);opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}.nm-status-preview.nm-status-preview-error{color:var(--danger, #ef4444);opacity:1;font-weight:500}.nm-status-preview.nm-status-preview-warning{color:var(--warning, #eab308);opacity:1}.nm-status-spacer{flex:1}.nm-toast-stack{position:fixed;right:16px;bottom:48px;z-index:10000;display:flex;flex-direction:column;gap:8px;max-width:min(440px,calc(100vw - 32px));pointer-events:none}.nm-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:6px;border:1px solid var(--border-light, rgba(128, 128, 128, .3));border-left:4px solid var(--primary, #3b82f6);background:var(--bg-card, #fff);color:var(--text, inherit);box-shadow:0 6px 20px #00000040;font-size:13px;line-height:1.4}.nm-toast-error{border-left-color:var(--danger, #ef4444)}.nm-toast-warning{border-left-color:var(--warning, #eab308)}.nm-toast-success{border-left-color:var(--success, #22c55e)}.nm-toast-msg{flex:1;overflow-wrap:anywhere}.nm-toast-close{background:none;border:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.nm-toast-close:hover{color:var(--text, inherit)}.nm-status-slot-left,.nm-status-slot-right{display:flex;align-items:center;flex-shrink:0}.nm-status-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:18px;border:1px solid var(--border);border-radius:4px;background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;padding:0;flex-shrink:0;transition:all .15s}.nm-status-toggle-btn:hover{background:var(--bg-tertiary);color:var(--text)}.nm-status-toggle-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nm-status-slot-right .toolbar-status-hints{opacity:.7}.nm-tab-view{display:flex;flex-direction:column;flex:1;min-height:0}.nm-tab-bar{display:flex;align-items:stretch;gap:0;background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 8px;flex-shrink:0;overflow-x:auto}.nm-tab-group{display:flex;align-items:center;padding:0 6px 0 4px;border-right:1px solid var(--border)}.nm-tab-group:last-child{border-right:none}.nm-tab-group-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:0 6px 0 2px;opacity:.7}.nm-tab-btn{flex-shrink:0;padding:6px 16px;font-size:12px;font-weight:500;text-transform:uppercase;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s,background .15s}.nm-tab-btn:hover{color:var(--text);background:var(--border)}.nm-tab-btn.nm-tab-active{color:var(--primary, #3b82f6);border-bottom-color:var(--primary, #3b82f6)}.nm-tab-btn:has(.nm-tab-badge){display:inline-flex;align-items:center}.nm-tab-badge{flex-shrink:0;margin-left:6px;min-width:16px;padding:0 5px;border-radius:9px;font-size:10px;font-weight:700;line-height:16px;text-align:center;color:#fff;background:var(--warning, #f59e0b)}.nm-tab-badge.nm-tab-badge--dot{display:inline-block;flex:0 0 auto;box-sizing:border-box;min-width:0;width:8px;height:8px;padding:0;line-height:0;border-radius:50%}.nm-tab-badge.nm-tab-badge--lock{background:none;color:var(--text-muted);min-width:0;padding:0;display:inline-flex;align-items:center}.nm-tab-btn:has(.nm-tab-close){display:inline-flex;align-items:center;gap:2px}.nm-tab-close{font-size:14px;line-height:1;opacity:0;margin-left:4px;padding:0 2px;cursor:pointer;transition:opacity .15s}.nm-tab-btn:hover .nm-tab-close{opacity:.5}.nm-tab-close:hover{opacity:1!important}.nm-tab-btn.nm-tab-dragging{opacity:.4}.nm-tab-btn.nm-tab-drop-target{border-left:2px solid var(--primary, #3b82f6)}.nm-tab-rename-input{background:var(--bg-secondary, #f5f5f7);border:1px solid var(--primary, #3b82f6);border-radius:3px;color:inherit;font:inherit;padding:1px 4px;outline:none;min-width:40px}.nm-tab-add{font-size:16px;padding:4px 10px;opacity:.5}.nm-tab-add:hover{opacity:1}.nm-tab-panels{flex:1;min-height:0;position:relative}.nm-tab-panel{display:flex;flex-direction:column;height:100%}.nm-toolbar-select{font-size:12px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer;height:30px}.nm-toolbar-select:focus{outline:none;border-color:var(--primary, #3b82f6)}.nm-toolbar-input{font-size:12px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);height:30px}.nm-toolbar-input:focus{outline:none;border-color:var(--primary, #3b82f6)}.nm-toolbar-input::placeholder{color:var(--text-muted);opacity:.6}.nm-toolbar-preset-active{background:var(--primary, #3b82f6)!important;color:#fff!important;border-color:var(--primary, #3b82f6)!important}.modal-overlay{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text)}.modal-close-btn{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0;line-height:1}.modal-close-btn:hover{color:var(--text)}.modal-body{flex:1;overflow-y:auto;padding:16px 20px}.modal-footer{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}.project-list{display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto}.project-list-item{padding:10px 14px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s}.project-list-item:hover{background:var(--bg-secondary)}.project-list-item.selected{border-color:var(--primary, #3b82f6);background:var(--bg-secondary)}.project-list-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-list-item-name{font-weight:500;color:var(--text)}.project-list-item-parts{font-size:12px;color:var(--text-muted);white-space:nowrap}.project-list-item-meta{font-size:12px;color:var(--text-muted);margin-top:4px}.project-list-group-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:12px 14px 4px;margin-top:4px}.project-list-group-header:first-child{margin-top:0}.import-tabs{display:flex;gap:0;border-bottom:1px solid var(--border)}.import-tab{padding:8px 16px;font-size:13px;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.import-tab:hover{color:var(--text)}.import-tab.active{color:var(--primary, #3b82f6);border-bottom-color:var(--primary, #3b82f6)}.import-content{padding:16px 0}.import-content .input-group{margin-bottom:12px}.import-content .input-group label{display:block;font-size:13px;font-weight:500;color:var(--text);margin-bottom:4px}.import-content .input-group input[type=text]{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px;box-sizing:border-box}.import-content .input-group input[type=text]:focus{outline:none;border-color:var(--primary, #3b82f6)}.import-content .error-msg{display:block;font-size:12px;color:var(--danger, #ef4444);margin-top:4px}.import-content .error-msg.hidden{display:none}.import-submit-btn{margin-top:12px;width:100%}.manual-add-row{display:flex;gap:8px;align-items:center;margin:8px 0}.manual-add-row input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px}.manual-add-row input:focus{outline:none;border-color:var(--primary, #3b82f6)}.manual-part-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;margin-bottom:4px;font-size:13px}.manual-part-mpn{font-weight:500;flex:2}.manual-part-qty{color:var(--text-muted);width:40px}.manual-part-mfr{color:var(--text-muted);flex:1}.manual-part-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:0 4px}.manual-part-remove:hover{color:var(--danger, #ef4444)}html,body{height:100%;overflow:hidden}body{display:flex;flex-direction:column}header{flex:0 0 auto}#mainApp{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}#toolbarContainer{flex:0 0 auto}.nm-toolbar-label[data-item-id=contextLabel]{display:inline-block;min-width:150px;text-align:center;white-space:nowrap}.nm-toolbar-btn[data-item-id=newDoc]{color:#059669}.nm-toolbar-btn[data-item-id=newDoc]:hover{color:#047857;background:none;border-color:transparent}#contentArea,.rt-collection-panel{flex:1;min-height:0;display:flex;overflow:hidden}.rt-list-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.rt-detail-layout{display:none;min-height:0;min-width:0;flex-direction:column;overflow-y:auto}.rt-collection-panel.is-split .rt-list-view{flex:1 1 50%}.rt-collection-panel.is-split .rt-detail-layout{display:flex;flex:1 1 50%;border-left:1px solid var(--border, #e2e8f0)}@media(max-width:900px){.rt-collection-panel.is-split .rt-list-view{display:none}.rt-collection-panel.is-split .rt-detail-layout{flex-basis:100%}}#contentArea,.nm-tab-view,.nm-tab-panels,.nm-tab-panel,.rt-collection-panel,.rt-list-view,.rt-table-container,.rt-table-scroll{min-width:0}.rt-table-container{outline:none;flex:1;min-height:0;display:flex;flex-direction:column;padding:4px 12px;overflow:hidden}.rt-table-filter{flex:0 0 auto;display:flex;gap:18px;margin-bottom:4px;align-items:center}.rt-filter-input{flex:0 0 auto;width:200px;max-width:100%;padding:8px 12px;border:1px solid var(--border, #e2e8f0);border-radius:6px;font-size:13px;background:var(--bg-primary, #fff);color:var(--text, #1e293b)}.rt-search-input{padding:8px 12px;font-size:13px}.rt-filter-input:focus{outline:none;border-color:var(--accent, #0ea5e9);box-shadow:0 0 0 2px #0ea5e926}.rt-table-scroll{flex:1;min-height:0;overflow:auto;border:1px solid var(--border, #e2e8f0);border-radius:8px}.rt-table thead th{position:sticky;top:0;z-index:2}.rt-table{width:100%;border-collapse:collapse;font-size:13px}.rt-table th{padding:8px 12px;text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #64748b);background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border, #e2e8f0);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.rt-table th:hover{color:var(--text, #1e293b)}.rt-col-filter-btn{color:var(--text-muted, #94a3b8);font-size:10px}.rt-col-filter-btn.rt-col-filter-active{color:var(--accent, #0ea5e9)}.rt-col-filter-dropdown{background:var(--bg-primary, #fff);border:1px solid var(--border, #e2e8f0);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:200;padding:6px 0;min-width:160px;max-height:280px;overflow-y:auto}.rt-col-filter-item{display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:13px;cursor:pointer;transition:background .1s}.rt-col-filter-item:hover{background:var(--hover, rgba(14, 165, 233, .04))}.rt-col-filter-item input[type=checkbox]{width:15px;height:15px;cursor:pointer}.rt-col-filter-sep{height:1px;background:var(--border, #e2e8f0);margin:4px 0}.rt-table th.rt-sort-active{color:var(--accent, #0ea5e9)}.rt-table td{padding:8px 12px;border-bottom:1px solid var(--border, #e2e8f0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.rt-table tbody tr{cursor:pointer;transition:background .1s}.rt-table tbody tr:hover{background:var(--hover, rgba(14, 165, 233, .04))}.rt-table tbody tr.rt-row-selected{background:var(--selected, rgba(14, 165, 233, .1))}.rt-table tbody tr.rt-row-open,.rt-table tbody tr.rt-row-open:hover{background:var(--selected, rgba(14, 165, 233, .14));box-shadow:inset 3px 0 0 0 var(--accent, #0ea5e9)}.rt-table tbody tr.rt-row-flash{animation:rt-flash 1.5s ease-out}@keyframes rt-flash{0%{background:#10b98133}to{background:transparent}}.rt-table-status{margin-left:auto;font-size:12px;color:var(--text-muted, #64748b);white-space:nowrap}.rt-more-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;font-size:12px;color:var(--text-muted, #64748b)}.rt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;border:1px solid var(--border, #e2e8f0);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;background:var(--bg-primary, #fff);color:var(--text, #1e293b);transition:all .15s}.rt-btn:hover{background:var(--bg-secondary, #f8fafc)}.rt-btn:disabled{opacity:.45;cursor:not-allowed}.rt-btn-primary:disabled:hover{opacity:.45}.rt-btn-primary{background:var(--accent, #0ea5e9);color:#fff;border-color:var(--accent, #0ea5e9)}.rt-btn-primary:hover{opacity:.9}.rt-btn-secondary{background:var(--bg-secondary, #f8fafc)}.rt-btn-danger{color:#ef4444;border-color:#ef4444}.rt-btn-small{height:28px;padding:0 10px;font-size:12px}.rt-copy-btn{display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:none;color:var(--text-muted, #64748b);cursor:pointer;border-radius:4px}.rt-copy-btn:hover{color:var(--text, #1e293b);background:var(--bg-secondary, #f1f5f9)}.rt-copy-btn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}.rt-editor{max-width:720px}.rt-editor-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:8px 0;background:var(--bg-primary, #fff);border-bottom:1px solid var(--border, #e2e8f0)}.rt-editor-header-info{min-width:0}.rt-editor-title-row{display:flex;align-items:center;gap:6px;min-width:0}.rt-editor-title{font-size:17px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rt-editor-meta{font-size:11px;color:var(--text-muted, #64748b);margin-top:2px}.rt-meta-version{font-weight:700;color:var(--accent, #0ea5e9)}.rt-meta-sep{color:var(--text-muted, #94a3b8);margin:0 2px}.rt-autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary, #fff);border:1px solid var(--border, #e2e8f0);border-radius:6px;box-shadow:0 4px 12px #0000001f;z-index:100;max-height:200px;overflow-y:auto}.rt-autocomplete-item{padding:8px 12px;cursor:pointer;font-size:13px;transition:background .1s}.rt-autocomplete-item:hover{background:var(--hover, rgba(14, 165, 233, .06))}.rt-autocomplete-name{color:var(--text-muted, #64748b);margin-left:6px}.rt-editor-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px 16px;align-items:start}.rt-editor-form .rt-field-wide{grid-column:1 / -1}.rt-field-group{display:flex;flex-direction:column;gap:4px}.rt-field-label{font-size:12px;font-weight:600;color:var(--text-muted, #64748b);text-transform:uppercase;letter-spacing:.3px}.rt-input{padding:8px 12px;border:1px solid var(--border, #e2e8f0);border-radius:6px;font-size:14px;background:var(--bg-primary, #fff);color:var(--text, #1e293b);width:100%}.rt-input:focus{outline:none;border-color:var(--accent, #0ea5e9);box-shadow:0 0 0 2px #0ea5e926}.rt-input:disabled{background:var(--bg-secondary, #f8fafc);color:var(--text-muted, #64748b)}.rt-input.rt-input-invalid{border-color:var(--danger, #dc2626);background:var(--danger-bg, #fef2f2)}.rt-input.rt-input-invalid:focus{box-shadow:0 0 0 2px #dc262626}.rt-textarea{resize:vertical;min-height:60px}.rt-checkbox-wrapper{display:flex;align-items:center;gap:8px;min-height:36px}.rt-checkbox{width:18px;height:18px;cursor:pointer}.rt-array-container{display:flex;flex-direction:column;gap:6px}.rt-array-row{display:flex;gap:6px;align-items:flex-start}.rt-array-row .rt-input{flex:1}.rt-array-remove{flex:0 0 auto;padding:8px 10px;border:1px solid transparent;border-radius:6px;background:none;color:var(--text-muted, #64748b);font-size:16px;line-height:1;cursor:pointer}.rt-array-remove:hover{color:var(--error, #ef4444);background:#ef44441a}.rt-array-add{align-self:flex-start}.rt-token-field{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--border, #e2e8f0);border-radius:6px;background:var(--bg-primary, #fff);position:relative;cursor:text}.rt-token-field:focus-within{border-color:var(--accent, #0ea5e9);box-shadow:0 0 0 2px #0ea5e926}.rt-token{display:inline-flex;align-items:center;height:26px;max-width:100%;padding:0 2px 0 8px;background:var(--bg-secondary, #f1f5f9);border:1px solid var(--border, #e2e8f0);border-radius:4px;font-size:13px}.rt-token-id{font-weight:600;color:var(--text, #1e293b);flex:0 0 auto}.rt-token-name{color:var(--text-muted, #64748b);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-token-remove{border:none;background:none;cursor:pointer;color:var(--text-muted, #64748b);font-size:15px;line-height:1;padding:0 3px;margin-left:2px;border-radius:3px}.rt-token-remove:hover{color:var(--error, #ef4444);background:#ef44441f}.rt-token-input{flex:0 0 auto;width:150px;max-width:100%;height:26px;border:1px solid var(--border, #e2e8f0);border-radius:4px;background:#10b98114;padding:0 8px;font-size:13px;color:var(--text, #1e293b);outline:none}.rt-token-input::placeholder{color:#059669;opacity:.75}.rt-token-input:focus{background:#10b98124}.rt-file-wrapper{display:flex;gap:6px}.rt-file-wrapper .rt-input{flex:1}.rt-editor-actions{display:flex;gap:8px;flex:0 0 auto;align-items:center;margin-right:8px}.rt-editor-status:not(:empty){margin-top:2px;font-size:12px;color:var(--text-muted, #64748b)}.rt-search-overlay{position:fixed;inset:0;background:#0006;z-index:1000;display:flex;justify-content:center;align-items:flex-start;padding-top:15vh}.rt-search-modal{background:var(--bg-primary, #fff);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:560px;max-height:400px;display:flex;flex-direction:column;overflow:hidden}.rt-search-modal .rt-search-field{flex:0 0 auto}.rt-search-modal .rt-search-input{padding:16px 20px;border:none;border-bottom:1px solid var(--border, #e2e8f0);font-size:16px;background:transparent;color:var(--text, #1e293b);outline:none}.rt-search-results{overflow-y:auto;flex:1}.rt-search-item{display:flex;align-items:center;gap:10px;padding:10px 20px;cursor:pointer;transition:background .1s}.rt-search-item:hover,.rt-search-item.rt-search-selected{background:var(--hover, rgba(14, 165, 233, .06))}.rt-search-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;background:var(--accent, #0ea5e9);color:#fff;min-width:36px;text-align:center}.rt-search-id{font-weight:600;font-size:14px}.rt-search-preview{color:var(--text-muted, #64748b);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-search-field-label{font-weight:600;text-transform:capitalize}.rt-search-preview strong{color:var(--text, #1e293b);font-weight:700}.rt-search-empty{padding:20px;text-align:center;color:var(--text-muted, #64748b)}.rt-search-error{color:var(--error, #ef4444)}.rt-xref-panel{padding:16px;border-left:1px solid var(--border, #e2e8f0);min-width:220px}.rt-xref-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #64748b);margin-bottom:12px}.rt-xref-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.rt-xref-group-label{flex:0 0 auto;min-width:80px;font-size:11px;font-weight:600;color:var(--text-muted, #64748b)}.rt-xref-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;border-radius:4px;font-size:12px;font-weight:500;background:var(--bg-secondary, #f1f5f9);border:1px solid var(--border, #e2e8f0);color:var(--accent, #0ea5e9);transition:all .15s}.rt-xref-chip:hover{background:#0ea5e91a;border-color:var(--accent, #0ea5e9)}.rt-xref-chip-id{border:none;background:none;color:inherit;font:inherit;padding:0;cursor:pointer}.rt-xref-file{color:var(--text, #1e293b)}.rt-xref-empty{font-size:12px;color:var(--text-muted, #64748b);font-style:italic}.rt-pdf-overlay{position:fixed;inset:0;background:#0009;z-index:1000;display:flex;justify-content:center;align-items:center}.rt-pdf-modal{background:var(--bg-primary, #fff);border-radius:12px;width:90vw;height:90vh;display:flex;flex-direction:column;overflow:hidden}.rt-pdf-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border, #e2e8f0)}.rt-pdf-title{font-weight:600;font-size:14px}.rt-pdf-content{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #64748b);overflow:hidden;position:relative}.rt-pdf-iframe{width:100%;height:100%;border:none}.rt-img-viewer{overflow:hidden;background:#1a1a2e;cursor:grab}.rt-img-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.rt-img-zoomable{transform-origin:center center;transition:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;max-height:none}.rt-viewer-controls{display:flex;align-items:center;gap:6px}.rt-viewer-zoom-label{font-size:12px;font-weight:600;min-width:40px;text-align:center;color:var(--text-muted, #64748b)}.rt-file-upload{display:flex;flex-direction:column;gap:6px}.rt-file-input{font-size:13px}.rt-file-status{font-size:12px;color:var(--text-muted, #64748b)}.rt-detail-main,.rt-detail-sidebar{padding:0 20px 20px}.rt-file-array-container{display:flex;flex-direction:column;gap:8px}.rt-file-list{display:flex;flex-wrap:wrap;gap:6px}.rt-file-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-secondary, #f1f5f9);border:1px solid var(--border, #e2e8f0);border-radius:6px;font-size:12px}.rt-file-chip span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-file-upload-row{display:flex;align-items:center;gap:8px}.rt-presence{font-size:12px;color:var(--accent, #0ea5e9);font-weight:500;margin-top:4px}.rt-xref-loading{font-size:12px;color:var(--text-muted, #64748b);font-style:italic}.rt-emoji-overlay{position:fixed;inset:0;z-index:1001}.rt-emoji-picker{position:fixed;background:var(--bg-primary, #fff);border:1px solid var(--border, #e2e8f0);border-radius:10px;box-shadow:0 8px 30px #00000026;padding:12px;width:280px;max-height:320px;overflow-y:auto;z-index:1002}.rt-emoji-category{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #64748b);margin:8px 0 4px}.rt-emoji-category:first-child{margin-top:0}.rt-emoji-grid{display:flex;flex-wrap:wrap;gap:2px}.rt-emoji-btn{width:32px;height:32px;border:none;background:transparent;border-radius:6px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s}.rt-emoji-btn:hover{background:var(--hover, rgba(14, 165, 233, .08));transform:scale(1.15)}.rt-emoji-btn.rt-emoji-active{background:#0ea5e926;box-shadow:0 0 0 2px var(--accent, #0ea5e9)}.rt-emoji-btn svg{width:20px;height:20px}.rt-emoji-display{display:inline-flex;align-items:center;gap:3px;flex-wrap:wrap}.rt-emoji-tag{font-size:16px;cursor:pointer;padding:1px;border-radius:4px;transition:transform .1s}.rt-emoji-tag:hover{transform:scale(1.2);background:#ef44441a}.rt-emoji-tag svg{width:16px;height:16px}.rt-emoji-add{width:22px;height:22px;border:1px dashed var(--border, #cbd5e1);background:transparent;border-radius:4px;font-size:13px;color:var(--text-muted, #94a3b8);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.rt-emoji-add:hover{border-color:var(--accent, #0ea5e9);color:var(--accent, #0ea5e9)}.rt-emoji-cell{white-space:nowrap}.rt-linked-ref{color:var(--accent, #0ea5e9);cursor:pointer}.rt-linked-ref:hover{text-decoration:underline}.rt-emoji-icon{display:inline-flex;align-items:center;margin-right:1px}.rt-emoji-icon svg{width:14px;height:14px}.rt-readonly-doc{border:1px solid var(--border, #e2e2df);border-radius:10px;background:var(--bg-card, #fff);padding:20px 22px;max-width:640px}.rt-ro-title{margin:0 0 2px;font-size:20px;letter-spacing:-.01em}.rt-ro-sub{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--text-muted, #6b7770);margin-bottom:18px}.rt-fact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 24px}.rt-fact{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid var(--border-subtle, #eef1ef)}.rt-fact-k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7770)}.rt-fact-v{font-size:14px;font-variant-numeric:tabular-nums}.rt-fact-layers{margin-top:16px;display:flex;flex-direction:column;gap:4px}.rt-fact-layers .rt-fact-v{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;color:var(--text, #1a1a1a);word-break:break-word}.rt-ro-note{margin:18px 0 0;font-size:12.5px;color:var(--text-muted, #6b7770);line-height:1.5}.rt-loading-doc{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-muted, #64748b)}.rt-loading-spinner{width:32px;height:32px;border:3px solid var(--border, #e2e8f0);border-top-color:var(--accent, #0ea5e9);border-radius:50%;animation:rt-spin .8s linear infinite}@keyframes rt-spin{to{transform:rotate(360deg)}}.rt-loading-text{font-size:14px}.rt-search-field{position:relative;display:inline-flex;align-items:center;flex:1}.rt-search-field .rt-search-input,.rt-search-field .rt-filter-input{width:100%;padding-left:30px}.rt-search-field-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #64748b);pointer-events:none}.rt-search-field-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.rt-inline-spinner{width:14px;height:14px;border:2px solid var(--border, #e2e8f0);border-top-color:var(--accent, #0ea5e9);border-radius:50%;animation:rt-spin .8s linear infinite}.container{max-width:1400px;margin:0 auto;padding:20px 24px}.rt-action-cell{width:36px;text-align:center;padding:0 2px}.rt-action-header{width:36px}.rt-archive-btn{background:none;border:none;cursor:pointer;font-size:14px;opacity:.25;padding:2px 4px;border-radius:3px;transition:opacity .15s}tr:hover .rt-archive-btn{opacity:.6}.rt-archive-btn:hover{opacity:1;background:var(--surface-hover, #fee2e2)}.rt-unarchive-btn:hover{background:var(--surface-hover, #dcfce7)}.rt-row-archived{opacity:.45;text-decoration:line-through}.rt-archive-toggle{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted, #64748b);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.rt-costsplit-body{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border, #e2e8f0);border-radius:6px;background:var(--bg-secondary, #f8fafc)}.rt-costsplit-header{font-size:13px;color:var(--text, #1e293b)}.rt-costsplit-actual{margin-left:10px;color:var(--text-muted, #64748b)}.rt-costsplit-note{font-size:13px;color:var(--text-muted, #64748b);font-style:italic}.rt-costsplit-provenance{font-size:12px;color:var(--text-muted, #64748b)}.rt-costsplit-readonly{font-size:13px;color:var(--text, #1e293b);font-variant-numeric:tabular-nums}.rt-costsplit-mode{display:inline-flex;gap:4px}.rt-costsplit-mode .rt-btn{min-width:34px;padding:0 8px}.rt-btn.is-active{background:var(--accent, #0ea5e9);color:#fff;border-color:var(--accent, #0ea5e9)}.rt-costsplit-rows{display:flex;flex-direction:column;gap:6px}.rt-costsplit-row{display:flex;align-items:center;gap:12px}.rt-costsplit-jobcell{flex:1;display:flex;align-items:baseline;gap:8px;min-width:0}.rt-costsplit-jobid{font-weight:600;font-size:13px;color:var(--text, #1e293b);white-space:nowrap}.rt-costsplit-jobname{font-size:12px;color:var(--text-muted, #64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-costsplit-amtwrap{display:flex;align-items:center;gap:4px;flex:0 0 160px}.rt-costsplit-unit{color:var(--text-muted, #64748b);font-size:14px}.rt-costsplit-amt{text-align:right;width:100%}.rt-costsplit-derived{flex:0 0 110px;text-align:right;font-size:12px;color:var(--text-muted, #64748b);font-variant-numeric:tabular-nums}.rt-costsplit-actions{display:flex;gap:8px;flex-wrap:wrap}.rt-costsplit-status{display:flex;align-items:center;gap:10px;font-size:13px}.rt-costsplit-remaining{font-weight:500}.rt-costsplit-remaining.is-balanced{color:#10b981}.rt-costsplit-remaining.is-over{color:#ef4444}.rt-costsplit-remaining.is-short{color:var(--text-muted, #64748b)}.rt-costsplit-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6}.rt-costsplit-chip.is-done{background:#10b98126;color:#047857}.rt-costsplit-chip.is-na{background:transparent;color:var(--text-muted, #64748b)}.rt-costsplit-chip.is-needed,.rt-placeholder-job,.rt-token.is-placeholder,.rt-xref-chip.is-placeholder,.rt-costsplit-row.is-placeholder{color:var(--warning);background:color-mix(in srgb,var(--warning) 15%,transparent)}.rt-placeholder-job{padding:0 4px;font-weight:600}.rt-token.is-placeholder,.rt-xref-chip.is-placeholder{border-color:var(--warning)}.rt-token.is-placeholder .rt-token-id,.rt-xref-chip.is-placeholder .rt-xref-chip-id,.rt-costsplit-row.is-placeholder .rt-costsplit-jobid{color:var(--warning)}.rt-costsplit-row.is-placeholder{padding:2px 6px}
