:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: rgba(37, 99, 235, .1);--color-success: #16a34a;--color-success-hover: #15803d;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-warning: #f59e0b;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-550: #64748b;--color-gray-600: #4b5563;--color-gray-650: #475569;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #1e293b;--color-slate-200: #e2e8f0;--color-slate-300: #cbd5e1;--color-warning-light: #fef3c7;--color-warning-dark: #92400e;--border-color: var(--color-gray-200);--border-color-dark: #d1d5db;--table-header-bg: #f1f5f9;--table-row-hover: #f8fafc;--table-row-selected: #eff6ff;--color-bg: #fff;--color-bg-subtle: #fafafa;--color-bg-hover: #f8faff;--color-text: #333;--color-text-secondary: #555;--color-text-muted: #666;--color-text-light: #888;--color-text-lighter: #aaa;--color-info-bg: #dbeafe;--color-info-bg-light: #eff6ff;--color-info-bg-active: #e0f2fe;--color-info-text: #1e40af;--color-info-text-dark: #1e3a8a;--color-info-border: #93c5fd;--color-info-hint: #0369a1;--color-success-bg: #dcfce7;--color-success-bg-light: #e8f5e9;--color-success-border: #bbf7d0;--color-success-border-dark: #81c784;--color-success-text: #166534;--color-danger-bg: #fee2e2;--color-danger-bg-light: #fef2f2;--color-danger-border: #fecaca;--color-danger-text: #991b1b;--color-warning-bg: #fffbeb;--color-warning-border: #fcd34d;--color-warning-border-light: #fde68a;--color-warning-text: #b45309;--color-warning-text-dark: #78350f;--color-tab-active-bg: #e0e7ff;--color-tab-active-text: #4338ca;--color-teal: #0891b2;--color-teal-hover: #0e7490;--color-purple: #8b5cf6;--color-purple-hover: #7c3aed;--color-emerald: #059669;--color-emerald-hover: #047857;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .2);--shadow-overlay: rgba(0, 0, 0, .5);--shadow-overlay-strong: rgba(0, 0, 0, .4);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px}html[data-theme=dark]{--color-primary: #60a5fa;--color-primary-hover: #93c5fd;--color-primary-light: rgba(96, 165, 250, .15);--color-success: #34d399;--color-success-hover: #10b981;--color-danger: #f87171;--color-danger-hover: #ef4444;--color-warning: #fbbf24;--color-gray-50: #1c1c1f;--color-gray-100: #27272a;--color-gray-200: #3f3f46;--color-gray-300: #52525b;--color-gray-400: #6b7280;--color-gray-500: #9ca3af;--color-gray-550: #9a9aa4;--color-gray-600: #d1d5db;--color-gray-650: #d4d4d8;--color-gray-700: #e5e7eb;--color-gray-800: #f3f4f6;--color-gray-900: #f9fafb;--color-slate-200: #3f3f46;--color-slate-300: #52525b;--color-warning-light: rgba(251, 191, 36, .15);--color-warning-dark: #fbbf24;--border-color: #3f3f46;--border-color-dark: #52525b;--table-header-bg: #232326;--table-row-hover: #1c1c1f;--table-row-selected: rgba(96, 165, 250, .1);--color-bg: #18181b;--color-bg-subtle: #1c1c1f;--color-bg-hover: #27272a;--color-text: #e5e7eb;--color-text-secondary: #d1d5db;--color-text-muted: #9ca3af;--color-text-light: #6b7280;--color-text-lighter: #4b5563;--color-info-bg: rgba(96, 165, 250, .15);--color-info-bg-light: rgba(96, 165, 250, .08);--color-info-bg-active: rgba(96, 165, 250, .2);--color-info-text: #93c5fd;--color-info-text-dark: #bfdbfe;--color-info-border: rgba(96, 165, 250, .3);--color-info-hint: #7dd3fc;--color-success-bg: rgba(52, 211, 153, .15);--color-success-bg-light: rgba(52, 211, 153, .1);--color-success-border: rgba(52, 211, 153, .3);--color-success-border-dark: rgba(52, 211, 153, .4);--color-success-text: #6ee7b7;--color-danger-bg: rgba(248, 113, 113, .15);--color-danger-bg-light: rgba(248, 113, 113, .08);--color-danger-border: rgba(248, 113, 113, .3);--color-danger-text: #fca5a5;--color-warning-bg: rgba(251, 191, 36, .1);--color-warning-border: rgba(251, 191, 36, .3);--color-warning-border-light: rgba(251, 191, 36, .2);--color-warning-text: #fcd34d;--color-warning-text-dark: #fde68a;--color-tab-active-bg: rgba(96, 165, 250, .15);--color-tab-active-text: #93c5fd;--color-teal: #22d3ee;--color-teal-hover: #06b6d4;--color-purple: #a78bfa;--color-purple-hover: #8b5cf6;--color-emerald: #34d399;--color-emerald-hover: #10b981;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-overlay: rgba(0, 0, 0, .7);--shadow-overlay-strong: rgba(0, 0, 0, .6)}html[data-theme=dark] .entity-selector-group-label,html[data-theme=dark] .view-selector-group-label,html[data-theme=dark] .process-selector-group-label,html[data-theme=dark] .entity-selector-trigger,html[data-theme=dark] .breadcrumb-item,html[data-theme=dark] .tree-node-header,html[data-theme=dark] .tree-fk-header,html[data-theme=dark] .tree-backref-header,html[data-theme=dark] th[style*=background-color]{background-image:linear-gradient(#00000080,#00000080)}html[data-theme=dark] .entity-selector-group-label,html[data-theme=dark] .view-selector-group-label,html[data-theme=dark] .process-selector-group-label{color:var(--color-text)}.focus-ring:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.app-container.page-fill{height:100vh;display:flex;flex-direction:column;padding:0}#app-header{flex-shrink:0}#app-header .header{margin-bottom:0;padding:8px 16px;background:var(--color-bg);border-bottom:1px solid var(--border-color)}#app-header .header .header-brand{font-size:.95rem;flex:1;min-width:0;max-width:fit-content;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-settings-dropdown{position:relative}.header-settings-btn{background:none;border:1px solid transparent;padding:4px 10px;border-radius:4px;cursor:pointer;font-size:.85rem;color:var(--color-text-secondary);transition:background .15s,border-color .15s}.header-settings-btn:hover{background:var(--color-slate-100);border-color:var(--color-slate-300)}.header-settings-btn .dropdown-arrow{font-size:.7em;margin-left:2px;opacity:.7}.header-settings-menu{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:var(--color-bg);border:1px solid var(--border-color-dark);border-radius:8px;box-shadow:var(--shadow-md);padding:12px;min-width:220px;z-index:10000}.header-settings-menu.open{display:block}.settings-section{margin-bottom:10px}.settings-label{display:block;font-size:.75rem;color:var(--color-gray-500);margin-bottom:4px}.settings-select{width:100%;padding:6px 8px;border:1px solid var(--color-slate-300);border-radius:4px;background:var(--color-bg);font-size:.85rem;color:var(--color-gray-650);cursor:pointer}.settings-select:hover{border-color:var(--color-primary)}.settings-select:focus{outline:none;border-color:var(--color-primary)}.settings-divider{height:1px;background:var(--border-color);margin:10px 0}.settings-button-row{display:flex;gap:6px}.settings-button{flex:1;padding:6px 8px;border:1px solid var(--color-slate-300);border-radius:4px;background:var(--color-bg);font-size:.85rem;color:var(--color-gray-650);cursor:pointer;text-align:center}.settings-button-icon{flex:0 0 auto;width:auto;padding:6px 8px}.settings-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.settings-checkbox{display:flex;align-items:flex-start;gap:8px;padding:6px 0;cursor:pointer;font-size:.85rem;color:var(--color-gray-650)}.settings-checkbox:hover{color:var(--color-primary)}.settings-checkbox input[type=checkbox]{margin:2px 0 0;cursor:pointer;align-self:flex-start}.settings-checkbox small{color:var(--color-gray-500);font-size:.75rem}.status-widget{flex-shrink:0;margin-top:auto}.status-widget .status-footer{margin-top:0!important;padding:8px 16px;background:var(--color-gray-50);border-top:1px solid var(--border-color)}.rap-menu-bar{display:flex;align-items:center;justify-content:flex-start;gap:4px;background:var(--table-row-hover);border-bottom:1px solid var(--border-color);padding:0 8px;height:36px;flex-shrink:0;overflow:hidden}.rap-menu-bar .menu-item{padding:6px 14px;color:var(--color-text-secondary);text-decoration:none;font-size:.85rem;border-radius:4px;transition:background .15s,color .15s}.rap-menu-bar .menu-item:hover{background:var(--color-slate-200);color:var(--color-primary);text-decoration:none}.rap-menu-bar .menu-separator{color:var(--color-slate-300);margin:0 8px}.rap-menu-bar .menu-label{color:var(--color-gray-550);font-size:.8rem;margin-right:4px}.rap-menu-bar .menu-select{padding:4px 8px;border:1px solid var(--color-slate-300);border-radius:4px;background:var(--color-bg);font-size:.8rem;color:var(--color-gray-650);cursor:pointer}.rap-menu-bar .menu-select:hover{border-color:var(--color-primary)}.rap-menu-bar .menu-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.rap-menu-bar .menu-checkbox{display:flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid var(--color-slate-300);border-radius:4px;background:var(--color-bg);font-size:.8rem;color:var(--color-gray-650);cursor:pointer;user-select:none}.rap-menu-bar .menu-checkbox:hover{border-color:var(--color-primary)}.rap-menu-bar .menu-checkbox:has(input:checked){background:var(--color-info-bg);border-color:var(--color-primary);color:var(--color-info-text)}.rap-menu-bar .menu-checkbox input{margin:0;cursor:pointer}.breadcrumb-hint{color:var(--color-gray-400);font-size:.8rem;font-style:italic;padding:0 4px;user-select:none}.breadcrumb-trail{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;padding:2px 4px;width:100%;scrollbar-width:thin;scrollbar-color:var(--color-slate-300) transparent}.breadcrumb-trail::-webkit-scrollbar{height:4px}.breadcrumb-trail::-webkit-scrollbar-track{background:transparent}.breadcrumb-trail::-webkit-scrollbar-thumb{background:var(--color-slate-300);border-radius:2px}.breadcrumb-item{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;font-size:.8rem;font-weight:500;border:none;cursor:pointer;white-space:nowrap;transition:opacity .15s,transform .1s,box-shadow .15s;color:var(--color-text);box-shadow:var(--shadow-sm)}.breadcrumb-item:hover:not(.active){opacity:.85;transform:scale(1.02);box-shadow:var(--shadow-md)}.breadcrumb-item.active{font-weight:600;cursor:default;box-shadow:var(--shadow-sm)}.breadcrumb-item.forward{opacity:.45}.breadcrumb-item.forward:hover{opacity:.75}.breadcrumb-separator{color:var(--color-gray-400);font-size:1rem;user-select:none;flex-shrink:0}.crumb-text{display:inline-flex;align-items:center;gap:4px}.crumb-filter-icon{font-size:.75rem;opacity:.7}.breadcrumb-share-overlay{position:fixed;inset:0;background:var(--shadow-overlay);display:none;justify-content:center;align-items:center;z-index:10000}.breadcrumb-share-overlay.visible{display:flex}.breadcrumb-share-dialog{background:var(--color-bg);border-radius:8px;box-shadow:var(--shadow-lg);width:90%;max-width:480px;overflow:hidden}.share-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--color-gray-100);border-bottom:1px solid var(--color-gray-200)}.share-dialog-title{font-weight:600;font-size:1rem}.share-dialog-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-gray-500);line-height:1;padding:0}.share-dialog-close:hover{color:var(--color-gray-700)}.share-dialog-body{padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px}.share-url-container{width:100%;display:flex;gap:8px}.share-url-input{flex:1;padding:8px 12px;border:1px solid var(--color-gray-300);border-radius:4px;font-family:monospace;font-size:.85rem;background:var(--color-gray-50)}.share-url-input:focus{outline:none;border-color:var(--primary-color)}.share-copy-btn{padding:8px 16px;background:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;white-space:nowrap}.share-copy-btn:hover{background:var(--primary-color-dark, #1565c0)}.share-copy-btn.copied{background:var(--color-success-hover)}.share-qr-container{padding:16px;background:var(--color-bg);border:1px solid var(--color-gray-200);border-radius:8px}.share-qr-code{display:flex;justify-content:center;align-items:center;min-height:300px;min-width:300px}.share-qr-code img{display:block}.share-options{width:100%}.share-auth-option{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--color-gray-600)}.share-auth-checkbox{width:16px;height:16px}.share-dialog-footer{padding:12px 16px;background:var(--color-gray-50);border-top:1px solid var(--color-gray-200);display:flex;justify-content:flex-end}.share-close-btn{padding:8px 20px;background:var(--color-gray-200);border:none;border-radius:4px;cursor:pointer;font-weight:500}.share-close-btn:hover{background:var(--color-gray-300)}.main-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.content-split{display:flex;flex:1;min-height:0;overflow:hidden;position:relative}.entity-explorer{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--border-color);overflow:hidden}.explorer-toolbar{display:flex;align-items:center;gap:8px;padding:4px 16px;background:var(--color-gray-50);border-bottom:1px solid var(--border-color);flex-shrink:0}.view-params-bar{display:flex;align-items:center;gap:12px;padding:6px 16px;background:var(--color-gray-50);border-bottom:1px solid var(--border-color);flex-shrink:0;font-size:.85rem}.view-params-group{display:flex;align-items:center;gap:4px}.view-params-group label{color:var(--color-text-muted);font-size:.8rem;white-space:nowrap}.view-params-group select,.view-params-group input{padding:2px 6px;border:1px solid var(--border-color);border-radius:4px;background:var(--color-bg);color:var(--color-text);font-size:.85rem;min-width:100px}.view-params-group select:focus,.view-params-group input:focus{outline:none;border-color:var(--color-info-border)}.view-param-step-btn{padding:2px 6px;border:1px solid var(--border-color);border-radius:3px;background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:.75rem;line-height:1}.view-param-step-btn:hover{background:var(--color-hover-bg)}.entity-selector-dropdown,.view-selector-dropdown,.process-selector-dropdown{position:relative}.entity-selector-dropdown,.view-selector-dropdown,.process-selector-dropdown{flex:1;min-width:0}.entity-selector-trigger,.view-selector-trigger,.process-selector-trigger{width:100%;padding:6px 12px;border-radius:6px;font-size:.9rem;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.entity-selector-trigger,.view-selector-trigger,.process-selector-trigger{border:1px solid var(--border-color-dark);background:var(--color-gray-100);color:var(--color-text)}.entity-selector-trigger:after,.view-selector-trigger:after,.process-selector-trigger:after{content:"\25bc";font-size:.7rem;margin-left:8px}.entity-selector-trigger:after,.view-selector-trigger:after,.process-selector-trigger:after{color:var(--color-text-muted)}.entity-selector-dropdown.open .entity-selector-trigger:after,.view-selector-dropdown.open .view-selector-trigger:after,.process-selector-dropdown.open .process-selector-trigger:after{content:"\25b2"}.entity-selector-trigger:focus,.view-selector-trigger:focus,.process-selector-trigger:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.entity-selector-menu,.view-selector-menu,.process-selector-menu{display:none;position:absolute;top:100%;left:0;background:var(--color-bg);border:1px solid var(--border-color-dark);border-radius:6px;margin-top:4px;max-height:calc(100vh - 80px);overflow-y:auto;z-index:100;box-shadow:var(--shadow-md);flex-direction:row;flex-wrap:nowrap;gap:0;max-width:calc(100vw - 16px)}.entity-selector-dropdown.open .entity-selector-menu,.view-selector-dropdown.open .view-selector-menu,.process-selector-dropdown.open .process-selector-menu{display:flex}.selector-column{display:flex;flex-direction:column;border-right:1px solid var(--color-gray-200)}.selector-column:last-child{border-right:none}.entity-selector-group,.view-selector-group,.process-selector-group{padding:4px 0;min-width:140px}.entity-selector-group-label,.view-selector-group-label,.process-selector-group-label{padding:4px 10px;font-size:.65rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.entity-selector-item,.view-selector-item,.process-selector-item{padding:3px 10px;cursor:pointer;font-size:.8rem;border-left:3px solid transparent;line-height:1.2;white-space:nowrap;display:flex;align-items:center}.entity-selector-item{justify-content:space-between;gap:12px}.view-selector-item{gap:8px}.view-type-icon{width:10px;height:10px;flex-shrink:0;margin-left:auto;opacity:.4}.view-selector-item:has(.view-description){flex-wrap:wrap;white-space:normal}.view-description{display:block;width:100%;font-size:.75em;color:var(--color-gray-400);margin-top:-2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.process-selector-item{gap:8px}a.process-selector-external{text-decoration:none;color:inherit}.process-selector-actions{margin-left:auto;display:flex;gap:2px;flex-shrink:0}.process-selector-edit-btn,.process-selector-delete-btn{background:none;border:none;cursor:pointer;padding:2px;border-radius:3px;color:var(--color-gray-400);display:flex;align-items:center}.process-selector-edit-btn:hover{color:var(--color-primary);background:var(--color-gray-100)}.process-selector-delete-btn:hover{color:var(--color-danger, #dc2626);background:var(--color-gray-100)}.entity-selector-item .entity-count{color:var(--color-gray-400);font-size:.75rem;min-width:24px;text-align:right}.entity-selector-item:hover,.view-selector-item:hover,.process-selector-item:hover{background:var(--color-gray-100)}.entity-selector-item.selected,.view-selector-item.selected,.process-selector-item.selected{background:var(--color-gray-200);font-weight:500}.btn-icon{padding:6px;background:transparent;border:1px solid var(--border-color-dark);border-radius:6px;cursor:pointer;color:var(--color-gray-500);display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.rap-docs-btn{border-style:dashed}.neighbor-systems-dropdown{position:relative;display:inline-flex}.neighbor-systems-btn{font-size:.78em;font-weight:700;padding:4px 8px;border-style:dotted}.neighbor-systems-menu{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid var(--color-gray-200);border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:200px;max-height:400px;overflow-y:auto;z-index:100;padding:4px 0}.neighbor-systems-dropdown.open .neighbor-systems-menu{display:block}.neighbor-systems-item{display:block;padding:6px 12px;color:var(--color-gray-700);text-decoration:none;font-size:.82em;white-space:nowrap}.neighbor-systems-item:hover{background:var(--color-gray-50);color:var(--color-primary)}.neighbor-systems-area{padding:4px 10px;font-size:.65rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;font-variant:small-caps}.btn-toolbar{padding:6px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap}.btn-toolbar:hover{background:var(--color-primary-hover)}.btn-toolbar:disabled{background:var(--color-gray-400);cursor:not-allowed}.btn-view-toggle{padding:6px 10px;background:var(--color-bg);border:1px solid var(--border-color-dark);border-radius:6px;font-size:1rem;cursor:pointer;color:var(--color-text-muted)}.btn-view-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-view-toggle.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.entity-list{flex:1;min-height:0;overflow:hidden;padding:8px;display:flex;flex-direction:column}#entity-tree-container{overflow:auto}#entity-tree-container:has(.tree-node.pinned){overflow:hidden}.empty-message{color:var(--color-text-light);text-align:center;padding:40px 20px;font-size:.9rem}.live-update-toast{position:fixed;bottom:20px;right:20px;background:var(--color-gray-800, #1f2937);color:#fff;padding:8px 16px;border-radius:6px;font-size:.8rem;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;z-index:10000;pointer-events:none}.live-update-toast.visible{opacity:.85;transform:translateY(0)}.empty-table-message{color:var(--color-text-light);text-align:center;padding:30px 20px;font-style:italic}.empty-table-new-btn{margin-top:10px;padding:5px 16px;font-size:.85rem;font-style:normal;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.empty-table-new-btn:hover{opacity:.85}.detail-panel{width:350px;flex-shrink:0;min-height:0;display:flex;flex-direction:column;background:var(--color-gray-50);transition:width .2s;overflow:hidden}.detail-panel.collapsed{width:0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-bg);border-bottom:1px solid var(--border-color)}.panel-title{font-weight:600;color:var(--color-text);font-size:.85rem}.panel-toggle{background:none;border:none;padding:4px 8px;color:var(--color-text-light);cursor:pointer;font-size:1rem;border-radius:4px}.panel-toggle:hover{background:var(--color-gray-200);color:var(--color-text)}.panel-content{flex:1;overflow-y:auto;padding:10px 12px}.panel-expand{position:absolute;right:0;top:50%;transform:translateY(-50%);background:var(--color-bg);border:1px solid var(--border-color);border-right:none;border-radius:6px 0 0 6px;padding:12px 6px;cursor:pointer;color:var(--color-gray-400);font-size:1rem;box-shadow:var(--shadow-sm)}.panel-expand:hover{background:var(--color-gray-100);color:var(--color-primary)}.entity-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:4px}.form-fieldset.aggregate-group,.form-fieldset.oneof-group{border:1px solid var(--border-color-dark);border-radius:8px;padding:12px 16px;margin:0;background:var(--color-gray-50)}.form-fieldset.oneof-group legend{font-size:.85rem;font-weight:500;color:var(--color-gray-600);padding:0 8px}.form-fieldset.oneof-group .oneof-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.form-fieldset.oneof-group .oneof-pill{padding:4px 12px;font-size:.85rem;background:var(--color-gray-100, #f3f4f6);border:1px solid var(--border-color-dark);border-radius:999px;cursor:pointer;color:var(--color-gray-600);transition:background .1s,color .1s,border-color .1s}.form-fieldset.oneof-group .oneof-pill:hover{background:var(--color-gray-200, #e5e7eb)}.form-fieldset.oneof-group .oneof-pill.active{background:var(--color-primary, #2196f3);color:#fff;border-color:var(--color-primary, #2196f3)}.form-fieldset.oneof-group .oneof-pill-none{color:var(--color-gray-500)}.form-fieldset.oneof-group .oneof-members .oneof-member-field{margin:0}.form-fieldset.aggregate-group legend{font-size:.85rem;font-weight:500;color:var(--color-gray-600);padding:0 8px}.form-fieldset.aggregate-group .aggregate-type{font-weight:400;color:var(--color-gray-400);font-size:.8rem}.form-fieldset.aggregate-group .aggregate-fields{display:flex;gap:16px;flex-wrap:wrap}.form-fieldset.aggregate-group .aggregate-subfield{flex:1;min-width:120px}.form-fieldset.aggregate-group .aggregate-subfield .form-label{font-size:.8rem;color:var(--color-gray-500);text-transform:capitalize}.form-fieldset.aggregate-group .aggregate-subfield.geocoded-field{opacity:.7}.form-fieldset.aggregate-group .aggregate-subfield.geocoded-field .form-input{background:var(--color-gray-100);cursor:not-allowed;font-family:monospace;font-size:.85rem}.form-fieldset.aggregate-group .aggregate-subfield.geocoded-field .form-input:not(:placeholder-shown){background:var(--color-success-bg-light);border-color:var(--color-success-border-dark)}.geocoded-hint{font-size:.7rem;color:var(--color-gray-400);font-weight:400;margin-left:4px}.address-map-container{margin-bottom:12px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color-dark)}.address-map-container.hidden{display:none}.form-fieldset.aggregate-group legend .address-map-btn{margin-left:4px;padding:2px 6px;font-size:.9rem;background:transparent;border:1px solid var(--border-color-dark);border-radius:4px;cursor:pointer;vertical-align:middle}.form-fieldset.aggregate-group legend .address-map-btn:hover{background:var(--color-gray-100)}.form-fieldset.aggregate-group legend .geo-map-toggle{margin-left:8px;padding:2px 6px;font-size:.9rem;background:transparent;border:1px solid var(--border-color-dark);border-radius:4px;cursor:pointer;vertical-align:middle}.form-fieldset.aggregate-group legend .geo-map-toggle:hover{background:var(--color-gray-100)}.geo-map-container{margin-bottom:12px;border-radius:8px;overflow:hidden;border:1px solid var(--border-color-dark)}.geo-map-container.hidden{display:none}.geo-map{height:200px;width:100%;z-index:1}.leaflet-popup-content-wrapper{border-radius:6px}.form-fieldset.aggregate-group legend .geo-search-btn,.form-fieldset.aggregate-group legend .geo-reverse-btn{margin-left:4px;padding:2px 6px;font-size:.9rem;background:transparent;border:1px solid var(--border-color-dark);border-radius:4px;cursor:pointer;vertical-align:middle}.form-fieldset.aggregate-group legend .geo-search-btn:hover,.form-fieldset.aggregate-group legend .geo-reverse-btn:hover{background:var(--color-gray-100)}.geo-address-display{padding:8px 12px;background:var(--color-blue-50);border:1px solid var(--color-blue-200);border-radius:6px;margin-bottom:12px;font-size:.85rem;display:flex;align-items:center;gap:8px}.geo-address-display.hidden{display:none}.geo-address-text{flex:1}.geo-address-close{padding:0 4px;background:transparent;border:none;cursor:pointer;font-size:1.2rem;color:var(--color-gray-500)}.geo-address-close:hover{color:var(--color-gray-700)}.geo-search-modal{position:fixed;inset:0;background:var(--shadow-overlay);display:flex;align-items:center;justify-content:center;z-index:9999}.geo-search-dialog{max-width:500px;width:90vw;background:var(--color-bg);border:none;border-radius:12px;box-shadow:var(--shadow-lg);padding:0}.geo-search-dialog .dialog-content{padding:20px}.geo-search-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color-dark)}.geo-search-header h3{margin:0;font-size:1.1rem}.geo-search-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-gray-500);padding:0;line-height:1}.geo-search-close:hover{color:var(--color-gray-700)}.geo-search-input-row{display:flex;gap:8px;padding:16px 20px}.geo-search-input{flex:1;padding:8px 12px;border:1px solid var(--border-color-dark);border-radius:6px;font-size:.9rem}.geo-search-submit{padding:8px 12px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;cursor:pointer}.geo-search-results{max-height:300px;overflow-y:auto;padding:0 20px 16px}.geo-search-result{padding:10px 12px;border:1px solid var(--border-color-dark);border-radius:6px;margin-bottom:8px;cursor:pointer;transition:background .15s}.geo-search-result:hover{background:var(--color-gray-100)}.geo-search-result strong{display:block;margin-bottom:4px}.geo-search-result small{color:var(--color-gray-500);font-size:.8rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geo-search-results .loading,.geo-search-results .no-results,.geo-search-results .error{padding:12px;text-align:center;color:var(--color-gray-500)}.geo-search-results .error{color:var(--color-danger)}.form-label{font-size:.85rem;font-weight:500;color:var(--color-text-secondary)}.form-label .required{color:var(--color-danger)}.form-input{padding:8px 12px;border:1px solid var(--border-color-dark);border-radius:6px;font-size:.9rem}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.form-input.error{border-color:var(--color-danger)}.form-input:disabled{background:var(--color-gray-100);color:var(--color-text-light)}input[type=number].form-input{-moz-appearance:textfield}input[type=number].form-input::-webkit-inner-spin-button,input[type=number].form-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-input.form-checkbox{width:auto;padding:0;cursor:pointer;transform:scale(1.2);margin:4px 0}.form-input.fk-combobox{width:100%}.form-input.fk-combobox::placeholder{color:var(--color-gray-400);font-style:italic}.field-error{font-size:.75rem;color:var(--color-danger)}.timestamp-preview{display:block;font-size:.75rem;color:var(--color-gray-500);margin-top:2px}.colorcode-swatch{display:inline-block;width:14px;height:14px;border-radius:2px;border:1px solid var(--color-gray-300);vertical-align:middle;margin-right:6px}.colorcode-input-group{display:flex;align-items:center;gap:8px}.colorcode-picker{width:40px;height:32px;padding:2px;cursor:pointer;flex-shrink:0}.colorcode-text{flex:1;max-width:12ch}.form-actions{display:flex;gap:8px;padding-top:8px;border-top:1px solid var(--color-gray-200);margin-top:8px}.btn-save{flex:1;padding:10px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer}.btn-save:hover{background:var(--color-primary-hover)}.btn-save:disabled{background:var(--color-gray-400);cursor:not-allowed}.btn-cancel{padding:10px 16px;background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--border-color-dark);border-radius:6px;font-size:.9rem;cursor:pointer}.btn-cancel:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.confirm-dialog{border:none;border-radius:8px;padding:0;box-shadow:var(--shadow-lg);max-width:400px}.confirm-dialog::backdrop{background:var(--shadow-overlay-strong)}.dialog-content{padding:24px}.dialog-content p{margin:0 0 16px;color:var(--color-text);font-size:.95rem;line-height:1.5}.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:.85rem;color:var(--color-text-muted);cursor:pointer}.checkbox-row input{width:16px;height:16px;accent-color:var(--color-primary)}.dialog-buttons{display:flex;gap:8px;justify-content:flex-end}.btn-secondary{padding:8px 16px;background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--border-color-dark);border-radius:6px;font-size:.9rem;cursor:pointer}.btn-secondary:hover{background:var(--color-gray-100)}.btn-danger{padding:8px 16px;background:var(--color-danger);color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer}.btn-danger:hover{background:var(--color-danger-hover)}.hidden{display:none!important}.loading:after{content:"";display:inline-block;width:14px;height:14px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;margin-left:8px;vertical-align:middle}.panel-message{padding:12px;border-radius:6px;font-size:.85rem;margin-bottom:16px}.panel-message.error{background:var(--color-danger-bg);color:var(--color-danger-text);border:1px solid var(--color-danger-border)}.panel-message.success{background:var(--color-success-bg);color:var(--color-success-hover);border:1px solid var(--color-success-border)}.entity-tree{padding:8px}.tree-node{margin-bottom:4px;border:1px solid var(--border-color);border-radius:6px;background:var(--color-bg)}.tree-node.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.tree-node.root-node.pinned{overflow:hidden}.tree-node-attrs{padding:8px 12px 4px 32px;border-top:1px solid var(--border-color)}.tree-node-refs{overflow-y:auto;padding:4px 12px 12px 32px;border-top:1px dashed var(--border-color)}.tree-pin-toggle{margin-left:auto;cursor:pointer;opacity:.3;font-size:14px;transition:opacity .15s}.tree-pin-toggle:hover{opacity:.7}.tree-pin-toggle.active{opacity:1}.tree-node-header{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;user-select:none}.tree-node-header:hover{background:var(--color-bg-hover)}.tree-expand-icon{font-size:.7rem;color:var(--color-text-muted);width:12px;text-align:center;flex-shrink:0}.tree-node-label{font-weight:500;color:var(--color-text)}.tree-node-prefix{font-weight:600;color:var(--color-text-secondary)}.tree-node-subtitle{color:var(--color-text-light);font-size:.85rem}.tree-node-actions{display:none;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}.tree-node-header:hover .tree-node-actions{display:inline-flex}.tree-node-content{padding:8px 12px 12px 32px;border-top:1px solid var(--color-gray-200)}.tree-attribute{display:flex;gap:8px;padding:4px 0;font-size:.85rem}.tree-attribute .attr-name{color:var(--color-text-muted);min-width:120px;flex-shrink:0}.tree-attribute .attr-value{color:var(--color-text);word-break:break-word}.tree-attribute .attr-value em{color:var(--color-text-lighter);font-style:italic}.tree-fk-node{margin:4px 0;padding-left:8px;border-left:2px solid var(--color-gray-200)}.tree-fk-node.expanded{border-left-color:var(--color-primary)}.tree-fk-header{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;font-size:.85rem}.tree-fk-header:hover{background:var(--color-bg-hover)}.tree-fk-header .attr-name{color:var(--color-text-muted)}.tree-fk-header .fk-label{color:var(--color-primary);font-weight:500;cursor:pointer}.tree-fk-header .fk-label:hover{color:var(--color-primary-hover);text-decoration:underline}.tree-fk-header .fk-entity{color:var(--color-text-light);font-size:.75rem}.tree-fk-content{padding:4px 0 4px 20px}.tree-backref-node{margin:8px 0 4px;padding-left:8px;border-left:2px solid var(--color-warning-border)}.tree-backref-node.expanded{border-left-color:var(--color-warning)}.tree-backref-header{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;font-size:.85rem}.tree-backref-header:hover{background:var(--color-warning-bg)}.tree-backref-header .backref-label{color:var(--color-warning-dark);font-weight:500}.backref-navigate{cursor:pointer;font-size:1rem;color:var(--color-warning-dark);margin-left:4px;opacity:.7}.backref-navigate:hover{opacity:1}.tree-backref-content{padding:4px 0 4px 20px}.backref-more-indicator{padding:4px 8px;font-size:.75rem;color:var(--color-warning-dark);font-style:italic;border-top:1px dashed var(--color-warning-border);margin-top:4px}.backref-more-link{cursor:pointer;text-decoration:underline}.backref-more-link:hover{opacity:.8}.backref-nav-link{color:var(--color-primary);cursor:pointer;text-decoration:underline;text-decoration-style:dotted}.backref-nav-link:hover{text-decoration-style:solid;color:var(--color-primary-hover)}.tree-backref-table{width:100%;border-collapse:collapse;font-size:.8rem;margin:4px 0}.tree-backref-table th{background:var(--color-warning-light);padding:4px 8px;text-align:left;font-weight:500;color:var(--color-warning-dark);font-size:.7rem;border-bottom:1px solid var(--color-warning-border);white-space:normal;min-width:50px}.tree-backref-table td{padding:4px 8px;border-bottom:1px solid var(--color-warning-border-light);color:var(--color-text);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--color-warning-bg)}.tree-backref-table td em{color:var(--color-text-lighter);font-style:italic}.tree-backref-table td:has(.htmltext-cell){max-width:none;overflow:visible;white-space:normal}.backref-table-row{cursor:pointer}.backref-table-row:hover td{background:var(--color-warning-light)}.tree-backref-table th.expand-col,.tree-backref-table td.expand-cell{width:24px;min-width:24px;max-width:24px;padding:4px;text-align:center}.tree-backref-table td.expand-cell{cursor:pointer}.tree-backref-table td.expand-cell:hover{background:var(--color-warning-border-light)}.tree-backref-table td.expand-cell .tree-expand-icon{font-size:.7rem;color:var(--color-warning-dark, #92400e)}.backref-table-row.expanded>td{background:var(--color-warning-light)}.backref-row-content>td{padding:8px 12px!important;max-width:none;white-space:normal}.backref-row-expanded{padding:4px 0}.backref-row-expanded .tree-fk-node,.backref-row-expanded .tree-backref-node{margin:4px 0}.backref-row-expanded .no-relations{color:var(--color-text-light);font-size:.8rem}.backref-table-row.cycle-row{opacity:.7}.backref-table-row.cycle-row td,.tree-backref-table td.cycle-cell{cursor:not-allowed}.tree-backref-table td.cycle-cell .cycle-icon{color:var(--color-warning);font-size:.8rem}.tree-error{padding:8px;color:var(--color-danger);font-size:.85rem;background:var(--color-danger-bg);border-radius:4px}.tree-attr-table{width:100%;border-collapse:collapse;font-size:.8rem;margin:4px 0}.tree-attr-table th{background:var(--table-header-bg);padding:4px 8px;text-align:left;font-weight:500;color:var(--color-gray-550);font-size:.7rem;border-bottom:1px solid var(--color-slate-200);white-space:normal;min-width:50px}.tree-attr-table td{padding:4px 8px;border-bottom:1px solid var(--border-color);color:var(--color-text);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-attr-table td em{color:var(--color-text-lighter);font-style:italic}.hierarchy-tree{padding:12px}.hierarchy-node{margin:2px 0}.hierarchy-header{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background .15s}.hierarchy-header:hover{background:var(--color-gray-100)}.hierarchy-header.hierarchy-selected{background:var(--color-primary-light, #dbeafe)}.hierarchy-toggle{width:16px;color:var(--color-gray-400);cursor:pointer;user-select:none;flex-shrink:0}.hierarchy-toggle.hierarchy-no-children{visibility:hidden}.hierarchy-toggle.hierarchy-leaf-feedback{color:var(--color-gray-300);animation:hierarchy-fade .8s ease-out}@keyframes hierarchy-fade{0%{color:var(--color-gray-400)}to{color:var(--color-gray-200)}}.hierarchy-color{width:4px;height:20px;border-radius:2px;flex-shrink:0}.hierarchy-label{font-weight:500;color:var(--color-gray-900)}.hierarchy-label:hover{text-decoration:underline}.hierarchy-subtitle{color:var(--color-gray-500);font-size:.9em}.hierarchy-navigate{margin-left:8px;padding:2px 8px;color:var(--color-gray-500);background:var(--color-gray-100);border-radius:4px;cursor:pointer;font-size:1em;font-weight:700}.hierarchy-header:hover .hierarchy-navigate{color:var(--color-primary);background:var(--color-gray-200)}.hierarchy-navigate:hover{color:var(--color-primary);background:var(--color-gray-100);border-radius:3px}.hierarchy-children{border-left:1px dashed var(--color-gray-300);margin-left:7px}.hierarchy-empty-state{text-align:center;padding:40px;color:var(--color-gray-500)}.hierarchy-empty-state p{margin:8px 0}.hierarchy-hint{font-size:.85em;color:var(--color-gray-400)}.entity-table-wrapper{overflow-x:scroll;overflow-y:auto;flex:1;min-height:0}.entity-table{border-collapse:collapse;font-size:.85rem;width:100%}.entity-table thead{position:sticky;top:0;z-index:1}.entity-table th{background:var(--table-header-bg);border-bottom:2px solid var(--color-slate-200);padding:8px 10px;text-align:left;font-weight:600;color:var(--color-gray-650);user-select:none}.entity-table th.sortable{cursor:pointer;transition:background .15s}.entity-table th.sortable:hover{background:var(--color-slate-200)}.entity-table th .sort-hint{color:var(--color-slate-300);font-size:.75rem}.entity-table th.fk-column{color:var(--color-primary)}.entity-table th.actions-column{width:80px;text-align:center}.entity-table .filter-row{background:var(--table-row-hover)}.entity-table .filter-cell{padding:4px 6px;border-bottom:2px solid var(--color-slate-200)}.entity-table .column-filter{width:100%;min-width:0;padding:4px 6px;border:1px solid var(--color-slate-200);border-radius:4px;font-size:.75rem;background:var(--color-bg);box-sizing:border-box}.entity-table .column-filter:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.entity-table .column-filter::placeholder{color:var(--color-slate-300)}.entity-table td{padding:6px 10px;border-bottom:1px solid var(--border-color);white-space:normal;word-break:break-word;line-height:1.3;overflow:hidden}.entity-table td.aggregate-cell{max-width:320px}.entity-table td.nowrap-cell{white-space:nowrap}.system-col{font-style:italic}.api-source-col{border-bottom:2px dashed var(--color-primary);opacity:.75}.entity-table tbody tr{background:var(--color-bg);cursor:default;transition:background .1s}.entity-table tbody tr.zebra{background:var(--table-row-hover)}.entity-table tbody tr:hover{background:var(--table-header-bg)}.entity-table tbody tr.selected{background:var(--table-row-selected);outline:2px solid var(--color-primary);outline-offset:-2px}.entity-table tbody tr.ql-defective{background:var(--color-warning-bg, #fff8e1);border-left:3px solid var(--color-warning, #f59e0b)}.entity-table tbody tr.ql-defective:hover{background:var(--color-warning-hover, #fff3cd)}.entity-table tbody tr.ql-defective.selected{background:var(--table-row-selected)}.entity-table td.ql-cell{font-size:.85em;color:var(--color-warning-text, #92400e);font-weight:600;white-space:nowrap}.entity-table td.qd-cell{font-size:.85em;color:var(--color-warning-text, #92400e);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enum-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:.7rem;font-weight:500;line-height:1.2;word-break:keep-all}.entity-table td em.null-value{color:var(--color-gray-400);font-style:italic}.entity-table .fk-cell{padding:4px 12px}.entity-table .fk-loading{color:var(--color-gray-400)}.entity-table .fk-value{color:var(--color-primary);cursor:pointer;text-decoration:underline;text-decoration-style:dotted}.entity-table .fk-value:hover{text-decoration-style:solid;color:var(--color-primary-hover)}.entity-table .fk-link{color:var(--color-primary);cursor:pointer;text-decoration:underline;text-decoration-style:dotted}.entity-table .fk-link:hover{text-decoration-style:solid;color:var(--color-primary-hover)}.entity-table .actions-cell{text-align:center;white-space:nowrap}.btn-table-action{padding:4px 8px;background:none;border:1px solid transparent;border-radius:4px;font-size:.8rem;color:var(--color-text-muted);cursor:pointer;opacity:.5;transition:opacity .15s,border-color .15s}.entity-table tbody tr:hover .btn-table-action{opacity:1}.btn-table-action:hover{border-color:var(--border-color-dark)}.btn-table-action.btn-edit:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-table-action.btn-delete:hover{border-color:var(--color-danger);color:var(--color-danger)}.view-mode-buttons{display:flex;gap:2px;background:var(--color-gray-200);border-radius:6px;padding:2px}.btn-view-mode{padding:4px 8px;background:transparent;border:none;border-radius:4px;font-size:.9rem;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.btn-view-mode:hover{color:var(--color-text)}.btn-view-mode.active{background:var(--color-bg);color:var(--color-primary);box-shadow:var(--shadow-sm)}.btn-ql-filter.active{background:var(--color-warning, #f59e0b);color:#fff}.btn-view-mode.disabled{opacity:.25;pointer-events:none}.btn-view-mode svg{display:block}.entity-table th.backref-column{color:var(--color-text);font-weight:500;text-align:center}.entity-table th.backref-column .backref-entity{display:block}.entity-table th.backref-column .backref-field{display:block;font-size:.7rem;color:var(--color-text-secondary);font-weight:400}.entity-table .backref-cell{text-align:center;padding:4px 8px}.entity-table .backref-loading{color:var(--color-gray-400);font-size:.75rem}.entity-table .backref-count{display:inline-block;min-width:24px;padding:2px 8px;background:var(--color-warning-light);color:var(--color-warning-dark);font-weight:600;border-radius:10px;cursor:pointer;transition:background .15s,transform .1s}.entity-table .backref-count:hover{background:var(--color-warning-border-light);transform:scale(1.1)}.entity-table .backref-zero{color:var(--color-gray-300);font-size:.8rem}.entity-table .backref-error{color:var(--color-danger);font-size:.75rem}.entity-table .backref-placeholder{color:var(--color-gray-200);font-size:.8rem}.entity-table .col-collapsed{width:20px;min-width:20px;max-width:20px;padding:0;text-align:center;color:var(--color-slate-400);font-size:.75rem;cursor:pointer;user-select:none;overflow:hidden}.entity-table th.col-collapsed{background:var(--table-header-bg)}.entity-table th.col-collapsed:hover{background:var(--color-slate-200);color:var(--color-slate-600)}.entity-table .filter-row .col-collapsed{border-bottom:2px solid var(--border-color)}.col-header-menu{position:fixed;z-index:10000;background:var(--color-bg);border:1px solid var(--border-color-dark);border-radius:6px;box-shadow:0 4px 12px #00000040;padding:4px 0;min-width:160px}.col-header-menu-item{padding:6px 14px;cursor:pointer;font-size:.85rem;white-space:nowrap}.col-header-menu-item:hover{background:var(--color-slate-100)}.entity-table th[draggable]{cursor:grab}.entity-table th.col-dragging{opacity:.4}.entity-table th.col-drag-over{border-left:3px solid var(--color-primary, #3b82f6)}#modal-container{display:none}#modal-container.active{display:block}.modal-overlay{position:fixed;inset:0;background:var(--shadow-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:var(--color-bg);border-radius:8px;box-shadow:var(--shadow-lg);max-width:750px;width:90%;max-height:80vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.1rem;color:var(--color-gray-900)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-gray-550);cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--color-gray-900)}.modal-body{padding:16px 20px;overflow-y:auto;flex:1}.modal-footer{display:flex;gap:8px;padding:16px 20px;border-top:1px solid var(--color-gray-200);flex-wrap:wrap}.modal-footer .footer-spacer{flex:1}.modal-footer .btn-new-system{background:var(--color-emerald);color:#fff}.modal-footer .btn-new-system:hover{background:var(--color-emerald-hover)}.footer-dropdown{position:relative}.footer-dropdown-menu{display:none;position:absolute;bottom:100%;left:0;margin-bottom:4px;background:var(--color-bg);border:1px solid var(--border-color-dark);border-radius:8px;box-shadow:var(--shadow-md);padding:4px 0;min-width:180px;z-index:10000}.footer-dropdown.open .footer-dropdown-menu{display:block}.footer-dropdown-item{padding:7px 14px;cursor:pointer;font-size:.8rem;white-space:nowrap;color:var(--color-gray-700)}.footer-dropdown-item:hover{background:var(--color-slate-100)}.footer-dropdown-item:first-child{border-radius:6px 6px 0 0}.footer-dropdown-item:last-child{border-radius:0 0 6px 6px}.edit-dialog-overlay{position:fixed;inset:0;background:var(--shadow-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.edit-dialog-overlay[data-level="1"]{z-index:1100}.edit-dialog-overlay[data-level="2"]{z-index:1200}.edit-dialog{background:var(--color-bg);border-radius:12px;box-shadow:var(--shadow-lg);width:90vw;max-height:85vh;display:flex;flex-direction:column}.edit-dialog-overlay[data-level="1"] .edit-dialog{width:85vw}.edit-dialog-overlay[data-level="2"] .edit-dialog{width:80vw}.edit-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-color)}.edit-dialog-header h2{margin:0;font-size:1.15rem;font-weight:600;color:var(--color-gray-900)}.edit-dialog-close{background:none;border:none;font-size:1.5rem;color:var(--color-gray-550);cursor:pointer;padding:4px 8px;line-height:1;border-radius:4px}.edit-dialog-close:hover{color:var(--color-gray-900);background:var(--color-gray-100)}.edit-dialog-body{padding:20px 24px;overflow-y:auto;flex:1}.edit-dialog-body .entity-form{max-width:700px;gap:6px}.edit-dialog-body .form-field{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}.edit-dialog-body .form-label{width:140px;min-width:140px;text-align:right;flex-shrink:0;padding-top:4px;align-self:flex-start}.edit-dialog-body .form-field>.form-input,.edit-dialog-body .form-field>.fk-field-with-create{flex:1;min-width:0;max-width:100%}.edit-dialog-body .form-field>input[type=number].form-input{flex:0 1 auto;width:16ch;min-width:10ch;max-width:24ch}.edit-dialog-body .form-field>.money-input{flex:0 1 auto;width:20ch;max-width:24ch}.edit-dialog-body .form-field>input[type=date].form-input{flex:0 1 auto;width:16ch}.edit-dialog-body .form-field>.form-checkbox{flex:0;align-self:center}.edit-dialog-body .form-field>select.form-input,.edit-dialog-body .form-field>.fk-field-with-create{flex:0 1 auto;width:auto;max-width:100%}.edit-dialog-body .fk-field-with-create .fk-combobox{min-width:320px}.edit-dialog-body .form-field>input[type=text].form-input:not(.fk-combobox){max-width:360px}.edit-dialog-body .field-error{flex-basis:100%;margin-left:152px}.edit-dialog-body .form-actions{padding-top:12px;margin-top:4px;margin-left:152px;border-top:1px solid var(--color-gray-200)}.edit-dialog-body .media-field{flex:1;min-width:0}.edit-dialog-body .media-dropzone{padding:8px 12px}.edit-dialog-body .media-input-area{gap:4px}.edit-dialog-body .media-url-row,.edit-dialog-body .media-buttons-row{display:inline-flex}.edit-dialog-body .media-input-area{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.edit-dialog-body .media-input-area .media-dropzone{flex:0 0 auto}.edit-dialog-body .media-input-area .media-url-row{flex:1;min-width:200px}.edit-dialog-body .media-input-area .media-buttons-row{flex-shrink:0}.edit-dialog-body .media-preview{padding:6px 10px;gap:8px}.edit-dialog-body .media-thumbnail{height:32px}.fk-field-with-create{display:flex;gap:4px;align-items:center}.fk-field-with-create .fk-select,.fk-field-with-create .fk-combobox{flex:1}.fk-create-btn{padding:4px 10px;border-radius:6px;font-size:1.1em;cursor:pointer;background:var(--color-gray-100);border:1px solid var(--border-color);color:var(--color-gray-600);line-height:1;flex-shrink:0}.fk-create-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.fk-lookup-btn{padding:4px 8px;border-radius:6px;font-size:.95em;cursor:pointer;background:var(--color-gray-100);border:1px solid var(--border-color);color:var(--color-gray-600);line-height:1;flex-shrink:0}.fk-lookup-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.fk-lookup-dialog .modal-dialog{max-width:700px}.fk-lookup-table{width:100%;border-collapse:collapse;font-size:.9rem}.fk-lookup-table th{text-align:left;padding:6px 10px;border-bottom:2px solid var(--border-color);color:var(--color-gray-600);font-weight:600;font-size:.85rem}.fk-lookup-table td{padding:6px 10px;border-bottom:1px solid var(--border-color-light)}.fk-lookup-table tbody tr{cursor:pointer}.fk-lookup-table tbody tr:hover{background:var(--color-primary-light)}.fk-lookup-hint{color:var(--color-gray-400);font-size:.8rem;margin-bottom:8px}.global-search-modal{max-width:560px;min-height:200px}.global-search-input{width:100%;padding:10px 12px;font-size:1rem;margin-bottom:12px;box-sizing:border-box}.global-search-results{max-height:400px;overflow-y:auto}.search-group-header{padding:4px 10px;font-weight:600;font-size:.85rem;color:var(--color-gray-600);margin-top:4px}.search-result-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border-color-light);gap:12px}.search-result-item:hover,.search-result-item.selected{background:var(--color-primary-light)}.search-result-label{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-match{font-size:.85rem;color:var(--color-gray-400);white-space:nowrap}.search-result-match mark{background:var(--color-warning-light, #fff3cd);padding:0 2px;border-radius:2px}.global-search-empty{padding:16px;color:var(--color-gray-400);text-align:center}.discard-confirm{position:absolute;bottom:100%;left:0;margin-bottom:6px;z-index:2000;background:var(--color-bg);border:1px solid var(--color-gray-300);border-radius:8px;box-shadow:var(--shadow-lg);padding:12px 16px;max-width:300px}.edit-dialog-header .discard-confirm{inset:100% 0 auto auto;margin-top:6px;margin-bottom:0}.discard-confirm-text{display:block;font-size:.9rem;color:var(--color-text);margin-bottom:10px}.discard-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.discard-confirm-actions button{padding:5px 14px;border-radius:6px;font-size:.85rem;cursor:pointer;border:1px solid var(--border-color)}.btn-discard-yes{background:var(--color-gray-100);color:var(--color-danger);border-color:var(--color-gray-300)!important}.btn-discard-yes:hover{background:var(--color-gray-200)}.btn-discard-no{background:var(--color-primary);color:#fff;border-color:var(--color-primary)!important}.btn-discard-no:hover{opacity:.9}.image-lightbox{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1100;cursor:pointer}.image-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px;box-shadow:0 4px 24px #00000080}.ext-query-overlay{z-index:1100}.ext-query-dialog{max-width:820px;width:94%;max-height:85vh}.ext-query-search{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border-color)}.ext-query-input{flex:1;padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background:var(--color-bg);color:var(--color-text)}.ext-query-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626}.ext-query-body{padding:0!important}.ext-query-status{padding:10px 20px;font-size:.82rem;color:var(--color-text-secondary)}.ext-query-loading{display:flex;align-items:center;gap:8px}.ext-query-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:ext-query-spin .6s linear infinite}@keyframes ext-query-spin{to{transform:rotate(360deg)}}.ext-query-error{color:var(--color-red)}.ext-query-table{width:100%;border-collapse:collapse;font-size:.83rem}.ext-query-table thead th{text-align:left;padding:6px 12px;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--border-color);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.ext-query-row td{padding:8px 12px;border-bottom:1px solid var(--color-gray-100);vertical-align:top}.ext-query-row:hover td{background:var(--color-gray-50)}.ext-query-date{white-space:nowrap;color:var(--color-text-secondary);font-size:.8rem}.ext-query-link{white-space:nowrap;font-family:var(--font-mono, monospace);font-size:.8rem}.ext-query-title-cell{line-height:1.35}.ext-query-title{font-weight:500}.ext-query-abstract{margin-top:4px;font-size:.78rem;color:var(--color-text-secondary);line-height:1.45}.ext-query-abstract mark,.ext-query-title mark{background:#fef08a;color:inherit;padding:0 1px;border-radius:2px}.ext-query-keyword{color:#1e40af;font-weight:600}.ext-query-search-btn{padding:6px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;white-space:nowrap}.ext-query-search-btn:hover{background:var(--color-primary-hover)}.ext-query-load-more{padding:12px 20px;text-align:center}.ext-query-more-btn{padding:6px 16px;background:var(--color-bg);color:var(--color-text-secondary);border:1px solid var(--border-color);border-radius:4px;font-size:.83rem;cursor:pointer}.ext-query-more-btn:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.ext-query-more-btn:disabled{opacity:.6;cursor:not-allowed}.ext-query-muted{color:var(--color-text-secondary);font-style:italic}.login-overlay{background:#1e293bd9}.login-dialog{max-width:360px}.login-dialog .modal-header{justify-content:center;border-bottom:none;padding-bottom:8px}.login-dialog .modal-header h2{font-size:1.3rem}.login-dialog .modal-body{padding:0 24px 16px}.login-dialog .form-group{margin-bottom:16px}.login-dialog .form-group label{display:block;margin-bottom:6px;font-weight:500;color:var(--color-gray-700)}.login-dialog .form-control{width:100%;padding:10px 12px;border:1px solid var(--border-color-dark);border-radius:6px;font-size:1rem;box-sizing:border-box}.login-dialog .form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.login-dialog .form-control:disabled{background:var(--color-gray-100);color:var(--color-gray-400)}.login-demo-notice{background:#e0f2fe;color:#0369a1;padding:8px 12px;border-radius:6px;font-size:.85em;margin-bottom:16px;text-align:center}.login-error{padding:10px 12px;background:var(--color-danger-bg-light);border:1px solid var(--color-danger-border);border-radius:6px;color:var(--color-danger);font-size:.9rem;margin-top:8px}.login-dialog .modal-footer{border-top:none;padding:0 24px 24px;justify-content:center}.login-dialog .btn-primary{width:100%;padding:12px;font-size:1rem;font-weight:500}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.login-dialog.shake{animation:shake .3s ease-in-out}.um-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-color);margin-bottom:16px}.um-tab{padding:8px 20px;border:none;background:none;font-size:.9rem;font-weight:500;color:var(--color-gray-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.um-tab:hover{color:var(--color-gray-700)}.um-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.um-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.um-table{width:100%;border-collapse:collapse;font-size:.85rem}.um-table th{text-align:left;padding:8px 10px;border-bottom:2px solid var(--border-color);font-weight:600;color:var(--color-gray-600);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.um-table td{padding:8px 10px;border-bottom:1px solid var(--border-color-light);vertical-align:middle}.um-table tbody tr:hover{background:var(--table-row-hover)}.um-role-badge{display:inline-block;padding:2px 8px;border-radius:10px;background:var(--color-primary-light);color:var(--color-primary);font-size:.78rem;font-weight:500;margin-right:4px}.um-system-badge{display:inline-block;padding:1px 6px;border-radius:3px;background:var(--color-gray-200);color:var(--color-gray-500);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}.um-actions{white-space:nowrap}.btn-sm{padding:3px 10px;font-size:.78rem;border:1px solid var(--border-color-dark);border-radius:4px;background:var(--color-bg);color:var(--color-gray-700);cursor:pointer;transition:background .15s}.btn-sm:hover{background:var(--color-gray-100)}.btn-sm.btn-danger{color:var(--color-danger);border-color:var(--color-danger)}.btn-sm.btn-danger:hover{background:var(--color-danger);color:#fff}.um-form .form-group{margin-bottom:14px}.um-form .form-group label{display:block;margin-bottom:4px;font-weight:500;font-size:.85rem;color:var(--color-gray-700)}.um-role-list{display:flex;flex-wrap:wrap;gap:8px 16px}.um-checkbox{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}.um-form-actions{display:flex;gap:8px;margin-top:20px;padding-top:14px;border-top:1px solid var(--border-color-light)}.um-help{margin-top:6px;font-size:.78rem;color:var(--color-gray-500);line-height:1.5}.um-help code{background:var(--color-gray-100);padding:1px 4px;border-radius:3px;font-size:.76rem}.um-perm-summary{font-size:.8rem;color:var(--color-gray-600);max-width:250px}.status-user-indicator{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:.8rem;color:var(--color-gray-650);transition:background .15s,color .15s}.status-user-indicator:hover{background:var(--color-slate-200);color:var(--color-info-text)}.status-user-role{text-transform:capitalize;font-weight:500}.status-admin-link{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:500;color:var(--color-gray-650);text-decoration:none;transition:background .15s,color .15s}.status-admin-link:hover{background:var(--color-slate-200);color:var(--color-info-text)}.status-powered-by{font-size:.75rem;color:var(--color-gray-400);text-decoration:none;margin-left:8px}.status-powered-by:hover{color:var(--color-gray-500);text-decoration:underline}.modal-toolbar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--table-row-hover);border-bottom:1px solid var(--border-color)}.modal-toolbar label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-gray-650)}.modal-toolbar select{padding:4px 8px;border:1px solid var(--color-slate-300);border-radius:4px;background:var(--color-bg);font-size:.85rem}.order-hint{margin:0 0 12px;padding:8px 12px;background:var(--color-info-bg-light);border:1px solid var(--color-info-border);border-radius:4px;font-size:.8rem;color:var(--color-info-hint)}.seed-table{width:100%;border-collapse:collapse;font-size:.9rem}.seed-table th{background:var(--table-row-hover);padding:10px 12px;text-align:left;font-weight:600;color:var(--color-gray-650);border-bottom:2px solid var(--color-slate-200)}.seed-table td{padding:10px 12px;border-bottom:1px solid var(--border-color)}.seed-table .entity-name{font-weight:500;color:var(--color-gray-900)}.seed-table .dep-status{text-align:center;width:30px}.dep-dot{font-size:28px;cursor:default}.dep-dot.dep-none{color:var(--color-success)}.dep-dot.dep-ready{color:var(--color-primary)}.dep-dot.dep-missing{color:var(--color-danger)}.seed-table .row-count,.seed-table .seed-count{text-align:center;font-family:monospace;color:var(--color-gray-550)}.seed-table .source-status{text-align:center;width:50px}.seed-table .source-ready{color:var(--color-emerald);font-weight:700}.seed-table .source-missing{color:var(--color-danger)}.seed-table .seed-count.active,.seed-table th.active{background:var(--color-info-bg-active);color:var(--color-info-hint);font-weight:600}.seed-table .btn-copy{padding:4px 6px;font-size:.75rem}.seed-table .actions{text-align:right;white-space:nowrap}.btn-seed{padding:6px 12px;font-size:.8rem;border-radius:4px;cursor:pointer;border:1px solid var(--border-color-dark);background:var(--color-bg);color:var(--color-gray-700);transition:all .15s}.btn-seed:hover:not(:disabled){background:var(--color-gray-100);border-color:var(--color-gray-400)}.btn-seed.btn-load{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.btn-seed.btn-load:hover:not(:disabled){background:var(--color-info-bg)}.btn-seed.btn-clear{background:var(--color-danger-bg-light);border-color:var(--color-danger-border);color:var(--color-danger-hover)}.btn-seed.btn-clear:hover:not(:disabled){background:var(--color-danger-bg)}.btn-load-all,.btn-reset-all{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.btn-load-all:hover,.btn-reset-all:hover{background:var(--color-info-bg)}.btn-clear-all{background:var(--color-danger-bg-light);border-color:var(--color-danger-border);color:var(--color-danger-hover)}.btn-clear-all:hover{background:var(--color-danger-bg)}.status-message{padding:8px 12px;border-radius:4px;font-size:.85rem;flex:1}.status-message.success{background:var(--color-success-bg);color:var(--color-success-hover)}.status-message.error{background:var(--color-danger-bg);color:var(--color-danger-hover)}.seed-context-menu{position:fixed;background:var(--color-bg);border:1px solid var(--border-color-dark);border-radius:6px;box-shadow:var(--shadow-md);z-index:1000;min-width:160px;display:none;padding:4px 0}.seed-context-menu.visible{display:block}.context-menu-item{padding:8px 16px;cursor:pointer;font-size:.9rem;color:var(--color-gray-700);transition:background .1s}.context-menu-item:hover{background:var(--color-gray-100)}.context-menu-item.disabled{opacity:.4;cursor:not-allowed}.context-menu-item.disabled:hover{background:transparent}.context-menu-separator{border-top:1px solid var(--color-gray-200);margin:4px 0}.seed-table tbody tr{cursor:context-menu;transition:background .1s}.seed-table tbody tr:hover{background:var(--table-row-hover)}.seed-table.compact th,.seed-table.compact td{padding:5px 10px}.seed-table.compact .dep-dot{font-size:20px}.seed-table th.sortable{cursor:pointer;user-select:none}.seed-table th.sortable:hover{background:var(--color-gray-200)}.system-tables-toggle{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted);cursor:pointer;margin-left:auto;margin-right:12px}.system-tables-toggle input{margin:0}.system-table-row{background:#3b82f60a}.system-table-row .entity-name{color:var(--color-text-muted)}.system-table-separator td{border-top:2px solid var(--border-color);padding:0;height:2px}.analyze-ddl-textarea{width:100%;padding:12px;border:1px solid var(--color-border);border-radius:8px;font-family:monospace;font-size:.9rem;line-height:1.5;resize:vertical;box-sizing:border-box}.analyze-ddl-textarea:focus{outline:none;border-color:var(--color-primary)}.bulk-results-overlay{position:fixed;inset:0;background:#0000004d;display:flex;align-items:center;z-index:1100;justify-content:center;z-index:10}.bulk-results-dialog{background:var(--color-surface);border-radius:8px;width:90%;max-height:85%;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.bulk-results-dialog .modal-body{overflow-y:auto;flex:1}.bulk-summary{display:flex;gap:16px;margin-bottom:8px}.bulk-ok{color:var(--color-success);font-weight:600}.bulk-err{color:var(--color-danger);font-size:.85em}.bulk-fk-err,.bulk-media-err{color:var(--color-warning-hover);font-size:.85em}.bulk-fuzzy{color:var(--color-info);font-size:.85em}.bulk-error-row{background:var(--color-danger-bg)}.bulk-results-table td.num{text-align:right}.seed-import-modal{width:95%;max-width:none;height:92vh;max-height:92vh;display:flex;flex-direction:column}.seed-import-modal .modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column;gap:0}.import-toolbar{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.drop-zone-compact{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px dashed var(--color-slate-300);border-radius:6px;cursor:pointer;transition:all .2s;background:var(--color-bg-subtle);font-size:.85rem;color:var(--color-gray-550)}.drop-zone-compact:hover,.drop-zone-compact.dragover{border-color:var(--color-primary);background:var(--color-info-bg-light);color:var(--color-primary)}.drop-zone-compact .drop-zone-icon{font-size:1rem}.drop-zone-compact .drop-zone-text{white-space:nowrap}.import-tabs{display:flex;gap:4px;flex:1}.import-tab{padding:6px 16px;border:none;background:transparent;color:var(--color-gray-550);font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .15s}.import-tab:hover{background:var(--table-header-bg);color:var(--color-gray-650)}.import-tab.active{background:var(--color-tab-active-bg);color:var(--color-tab-active-text);font-weight:500}.import-toolbar-actions{display:flex;gap:8px}.import-tab-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.import-textarea{width:100%;height:100%;flex:1;min-height:0;padding:12px;border:1px solid var(--border-color-dark);border-radius:6px;font-family:monospace;font-size:.85rem;resize:none;box-sizing:border-box}.import-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.import-preview{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.import-preview-table{flex:1;min-height:0;overflow:auto;border:1px solid var(--border-color);border-radius:6px}.preview-empty{padding:40px 20px;text-align:center;color:var(--color-gray-400);font-style:italic}.import-status{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--color-gray-200);margin-top:12px}#preview-info{font-size:.9rem;color:var(--color-gray-650);font-weight:500}.import-status .preview-warnings{flex:1;margin:0;padding:6px 10px;font-size:.8rem}.import-footer{display:flex;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--color-gray-200);margin-top:auto}.import-footer-buttons{display:flex;gap:8px}.btn-save-only{background:var(--table-row-hover);border-color:var(--color-slate-300);color:var(--color-gray-650)}.btn-save-only:hover:not(:disabled){background:var(--color-slate-200)}.btn-seed:disabled{opacity:.5;cursor:not-allowed}.preview-table th{background:var(--table-row-hover);padding:8px 10px;text-align:left;font-weight:600;color:var(--color-gray-650);border-bottom:1px solid var(--border-color);position:sticky;top:0}.preview-table td{padding:6px 10px;border-bottom:1px solid var(--table-header-bg);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-table td.fk-invalid{background:var(--color-warning-light);color:var(--color-warning-dark)}.preview-table tr.invalid-row{background:var(--color-warning-light)}.preview-table tr.invalid-row td:first-child:before{content:"\26a0  "}.seed-count .seed-valid{color:var(--color-success);font-weight:600}.preview-truncated{padding:8px 10px;text-align:center;color:var(--color-gray-550);font-size:.8rem;font-style:italic}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;font-size:inherit;font-style:normal;padding:0;margin-left:8px}.btn-link:hover{color:var(--color-primary-hover)}.preview-warnings{display:block;margin-top:12px;font-size:.85rem}.preview-warnings .warning-section{padding:10px 12px;background:var(--color-warning-light);border-radius:6px;color:var(--color-warning-dark)}.warning-icon{font-size:1.1rem}.warning-text{flex:1;line-height:1.5}.warning-more{margin-top:4px;font-style:italic;color:var(--color-warning-text)}.warning-section{display:flex;align-items:flex-start;gap:8px;padding:8px 0}.conflict-section{margin-top:8px;padding:10px 12px;background:var(--color-info-bg);border-radius:6px;border-left:3px solid var(--color-primary)}.conflict-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--color-info-text);font-weight:500}.conflict-icon{font-size:1.1rem}.conflict-mode-selector{display:flex;flex-direction:column;gap:6px;margin-left:24px;font-size:.85rem}.conflict-mode-selector label{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--color-info-text-dark)}.conflict-mode-selector input[type=radio]{margin:0}.conflict-mode-selector strong{color:var(--color-info-text)}.conflict-mode-selector .mode-hint{color:var(--color-gray-500);font-size:.8rem;margin-left:4px}.load-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:12px;padding:8px 12px;background:var(--table-row-hover);border-radius:6px;border:1px solid var(--color-slate-200)}.load-mode-options{display:flex;gap:12px;font-size:.85rem}.load-mode-options label{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--color-gray-700)}.load-mode-options input[type=radio]{margin:0}.load-validation-options{display:flex;gap:12px;font-size:.85rem;margin-left:8px;padding-left:12px;border-left:1px solid var(--color-slate-200)}.load-validation-options label{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--color-gray-700)}.load-validation-options input[type=checkbox]{margin:0}.load-toolbar .btn-save{margin-left:auto}.import-error{padding:16px;text-align:center;color:var(--color-danger-hover);background:var(--color-danger-bg);border-radius:6px}.btn-seed.btn-save{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-seed.btn-save:hover:not(:disabled){background:var(--color-success)}.btn-parse{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-parse:hover:not(:disabled){background:var(--color-primary)}.unified-import{width:95%;max-width:none;height:92vh;max-height:92vh}.unified-import .modal-body{display:flex;flex-direction:column;gap:0;padding:16px}.import-tabs-bar{display:flex;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.import-tabs-bar .import-tab{padding:8px 16px;font-size:.9rem}.import-tabs-bar .import-tab.disabled{opacity:.4;cursor:not-allowed}.import-split-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.import-content-area{flex:1;display:flex;flex-direction:column;min-height:100px;overflow:hidden}.import-resizer{height:6px;background:var(--border-color);cursor:row-resize;flex-shrink:0;transition:background .15s}.import-resizer:hover{background:var(--color-primary-light)}.tab-content-scroll{flex:1;min-height:0;overflow:auto;padding:8px}.schema-content{font-size:.9rem}.schema-info{margin-bottom:16px;padding:12px;background:var(--table-row-hover);border-radius:6px}.schema-columns{padding:12px;background:var(--color-bg-subtle);border-radius:6px}.schema-columns ul{margin:8px 0 0;padding-left:20px;max-height:200px;overflow-y:auto;columns:2;column-gap:20px}.schema-columns li{font-family:monospace;font-size:.85rem;padding:2px 0;break-inside:avoid}.schema-error{padding:20px;text-align:center;color:var(--color-danger-hover)}.sample-content{font-size:.9rem}.sample-info{margin-bottom:16px;padding:12px;background:var(--table-row-hover);border-radius:6px}.sample-records{display:flex;flex-direction:column;gap:12px}.sample-record{border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.sample-record-header{padding:8px 12px;background:var(--table-header-bg);font-weight:500;font-size:.85rem;border-bottom:1px solid var(--border-color)}.sample-json{margin:0;padding:12px;background:var(--color-bg-subtle);font-family:monospace;font-size:.8rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.rule-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin-bottom:8px;border-bottom:1px solid var(--color-gray-200)}.rule-path{font-family:monospace;font-size:.85rem;color:var(--color-gray-550)}.schema-diff-overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;border-radius:8px}.schema-diff-dialog{background:var(--color-bg, #fff);border-radius:8px;padding:20px;min-width:400px;max-width:600px;max-height:70vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d}.schema-diff-dialog h3{margin:0 0 12px;font-size:1rem}.schema-diff-table{width:100%;border-collapse:collapse;font-family:monospace;font-size:.85rem;margin-bottom:16px}.schema-diff-table th{text-align:left;padding:4px 8px;border-bottom:2px solid var(--color-gray-300);color:var(--color-gray-550);font-weight:600}.schema-diff-table td{padding:3px 8px;border-bottom:1px solid var(--color-gray-200)}.diff-unchanged td{color:var(--color-gray-400)}.diff-added td{background:#e8f5e9;color:#2e7d32;font-weight:600}.diff-removed td{background:#ffebee;color:#c62828;font-weight:600;text-decoration:line-through}[data-theme=dark] .diff-added td{background:#1b3a1b;color:#81c784}[data-theme=dark] .diff-removed td{background:#3a1b1b;color:#ef9a9a}.schema-diff-actions{display:flex;justify-content:flex-end;gap:8px}.btn-save-rule{padding:6px 16px}.btn-save-rule:disabled{opacity:.5;cursor:not-allowed}.rule-content{flex:1;display:flex;flex-direction:column;min-height:0}.rule-editor{flex:1;width:100%;min-height:300px;padding:12px;font-family:monospace;font-size:.9rem;line-height:1.5;border:1px solid var(--color-gray-300);border-radius:6px;resize:none;background:var(--color-bg-subtle)}.rule-editor:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg)}.rule-editor:disabled{background:var(--color-gray-100);color:var(--color-gray-500)}#tab-rule{display:flex;flex-direction:column}.rule-ai-instruction{padding:8px 12px;border-bottom:1px solid var(--color-gray-200);background:var(--color-bg-subtle)}.rule-ai-instruction .instruction-row{display:flex;align-items:center;gap:8px}.rule-ai-instruction .instruction-label{font-size:.8rem;font-weight:600;color:var(--color-primary);white-space:nowrap}.rule-ai-instruction .instruction-textarea{flex:1;min-height:32px;max-height:80px;padding:4px 8px;font-size:.85rem;border:1px solid var(--color-gray-300);border-radius:4px;resize:vertical;font-family:inherit}.rule-ai-instruction .instruction-textarea:focus{outline:none;border-color:var(--color-primary)}.rule-ai-instruction .instruction-textarea.applied{color:var(--color-gray-500);background:var(--color-gray-50);border-color:var(--color-gray-200);font-style:italic}.btn-build-rule{white-space:nowrap}#rule-phase-edit,#rule-phase-prompt,#rule-phase-response{flex:1;display:flex;flex-direction:column;min-height:0}.rule-phase-actions{display:flex;gap:8px;padding:8px 0}.prompt-header{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:.85rem;font-weight:600;color:var(--color-gray-600)}.prompt-readonly{background:var(--color-bg-subtle)!important;color:var(--color-gray-600)}.rule-error{padding:20px;text-align:center;color:var(--color-danger-hover)}.run-content{font-size:.9rem}.run-content p{margin:0 0 16px;color:var(--color-gray-550)}.btn-run-import{background:var(--color-primary);border-color:var(--color-primary);color:#fff;padding:10px 20px}#run-result{margin-top:16px}.run-success{padding:16px;background:var(--color-success-bg);border-radius:6px;color:var(--color-success-text)}.run-error{padding:16px;background:var(--color-danger-bg);border-radius:6px;color:var(--color-danger-hover)}.load-content{font-size:.9rem}.load-content .result-table-wrapper{max-height:350px}.load-content p{margin:0 0 16px;color:var(--color-gray-550)}.btn-load-preview{background:var(--color-primary);border-color:var(--color-primary);color:#fff}#load-preview{margin-top:16px}.load-info{margin-bottom:12px;font-weight:500}.load-error,.load-empty{padding:20px;text-align:center;color:var(--color-gray-400)}.load-error{color:var(--color-danger-hover);background:var(--color-danger-bg);border-radius:6px}#load-actions{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-color)}.paste-toolbar{display:flex;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border-color)}.paste-tabs{display:flex;gap:4px;flex:1}.paste-tab{padding:6px 12px;border:none;background:transparent;color:var(--color-gray-550);font-size:.85rem;cursor:pointer;border-radius:4px}.paste-tab:hover{background:var(--table-header-bg)}.paste-tab.active{background:var(--color-tab-active-bg);color:var(--color-tab-active-text);font-weight:500}.paste-tab-content{flex:1;min-height:0;display:flex;flex-direction:column}#tab-paste .import-textarea{height:150px;flex:none}.paste-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color)}.import-log-container{flex:0 0 150px;display:flex;flex-direction:column;min-height:80px;padding-top:8px}.import-log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.8rem;font-weight:600;color:var(--color-gray-550);flex-shrink:0}.btn-clear-log{padding:2px 8px;font-size:.75rem;border:1px solid var(--border-color);background:transparent;border-radius:4px;cursor:pointer;color:var(--color-gray-550)}.btn-clear-log:hover{background:var(--table-row-hover)}.import-log-content{flex:1;min-height:0;overflow-y:auto;background:var(--table-row-hover);border:1px solid var(--border-color);border-radius:4px;padding:8px;font-size:.8rem;font-family:monospace}.log-empty{color:var(--color-gray-400);font-style:italic;text-align:center;padding:20px}.log-entry{display:flex;gap:8px;padding:3px 0}.log-icon{flex-shrink:0;width:16px}.log-message{flex:1;word-break:break-word}.log-success .log-icon{color:var(--color-success)}.log-warning .log-icon{color:var(--color-warning)}.log-error .log-icon{color:var(--color-danger-hover)}.log-info .log-icon{color:var(--color-primary)}.log-error .log-message{color:var(--color-danger-hover)}.loading{padding:20px;text-align:center;color:var(--color-gray-400)}.import-progress{padding:20px;text-align:center;color:var(--color-gray-200)}.import-progress .progress-phase{font-size:15px;font-weight:700;margin-bottom:6px}.import-progress .progress-elapsed{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-primary);margin-bottom:6px}.import-progress .progress-detail{font-size:13px;color:var(--color-gray-400)}.no-definition{padding:40px 20px;text-align:center;color:var(--color-gray-400);font-style:italic}.seed-preview-modal{width:90%;max-width:800px;max-height:85vh;display:flex;flex-direction:column}.seed-preview-modal .modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column;gap:12px}.preview-info{font-size:.9rem;color:var(--color-gray-650);font-weight:500}.load-conflict-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:6px;padding:10px 14px;font-size:.85rem}.load-conflict-warning .conflict-summary{color:var(--color-warning-dark);font-weight:500;margin-bottom:8px}.load-conflict-warning .conflict-options{display:flex;flex-direction:column;gap:6px}.load-conflict-warning .conflict-option{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--color-warning-text-dark)}.load-conflict-warning .conflict-option input[type=radio]{margin:0}.seed-preview-container{flex:1;overflow:auto;border:1px solid var(--border-color);border-radius:6px;min-height:200px;max-height:400px}.preview-empty{padding:40px;text-align:center;color:var(--color-gray-400);font-style:italic}.btn-export-json,.btn-export-csv{background:var(--color-purple);border-color:var(--color-purple-hover);color:#fff}.btn-export-json:hover:not(:disabled),.btn-export-csv:hover:not(:disabled){background:var(--color-purple-hover)}.btn-load-confirm{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-load-confirm:hover:not(:disabled){background:var(--color-success)}.seed-generator-dialog{width:95%;max-width:1400px;height:92vh;max-height:92vh;display:flex;flex-direction:column}.generator-tabs{display:flex;border-bottom:1px solid var(--border-color-dark);background:var(--color-gray-50);padding:0 12px}.generator-tab{padding:10px 16px;border:none;background:transparent;font-size:.85rem;color:var(--color-gray-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.generator-tab:hover:not(:disabled){color:var(--color-gray-700);background:var(--color-gray-100)}.generator-tab:disabled{color:var(--color-gray-300);cursor:not-allowed}.generator-tab.active{color:var(--color-teal);border-bottom-color:var(--color-teal);background:var(--color-bg);font-weight:500}.generator-tab.has-data{color:var(--color-emerald)}.generator-tab.has-data.active{color:var(--color-emerald);border-bottom-color:var(--color-emerald)}.seed-generator-dialog .modal-body{flex:1;overflow:auto;padding:16px;min-height:250px;display:flex;flex-direction:column}.tab-content-instruction{display:flex;flex-direction:column;gap:8px}.instruction-row{display:flex;align-items:stretch;gap:8px}.instruction-row .instruction-label{min-width:100px;font-size:.75rem;font-family:monospace;color:var(--color-text-muted);padding-top:8px;flex-shrink:0}.instruction-row textarea{flex:1;padding:8px;border:1px solid var(--border-color-dark);border-radius:4px;font-family:inherit;font-size:.85rem;resize:vertical;min-height:60px}.instruction-row textarea:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 2px var(--color-primary-light)}.instruction-row .btn-seed{align-self:flex-start;white-space:nowrap;flex-shrink:0}.seed-generator-dialog .tab-content-response{display:flex;flex-direction:column;height:100%}.seed-generator-dialog .tab-content-response textarea{flex:1;width:100%;min-height:200px;padding:12px;border:1px solid var(--color-warning);border-radius:8px;background:var(--color-warning-bg);font-family:monospace;font-size:.85rem;resize:none}.seed-generator-dialog .tab-content-response textarea:focus{outline:none}.tab-content-prompt-paste{display:flex;flex-direction:column;gap:12px;height:100%}.tab-content-prompt-paste .prompt-section,.tab-content-prompt-paste .paste-section{flex:1;display:flex;flex-direction:column;min-height:0}.prompt-section-header,.paste-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.prompt-section-label,.paste-section-label{font-size:.8rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em}.tab-content-prompt-paste .prompt-section textarea{width:100%;flex:1;min-height:120px;padding:10px;border:1px solid var(--border-color-dark);border-radius:4px;font-family:monospace;font-size:.8rem;line-height:1.5;background:var(--color-gray-50);resize:vertical}.tab-content-prompt-paste .paste-section{border:2px dashed var(--color-warning);border-radius:8px;background:var(--color-warning-bg);padding:8px;transition:all .2s}.tab-content-prompt-paste .paste-section.drag-over{border-color:var(--color-warning);background:var(--color-warning-light);box-shadow:inset 0 0 10px #fbbf2433}.tab-content-prompt-paste .paste-section textarea{width:100%;flex:1;min-height:120px;padding:10px;border:none;background:transparent;font-family:monospace;font-size:.8rem;line-height:1.5;resize:vertical}.tab-content-prompt-paste .paste-section textarea:focus{outline:none}.btn-seed.btn-small{padding:2px 10px;font-size:.75rem}.instruction-status{font-size:.8rem;padding:4px 0;margin-bottom:6px}.instruction-status.has-instruction{color:var(--color-emerald)}.instruction-status.no-instruction{color:var(--color-gray-400);font-style:italic}.prompt-actions{display:flex;align-items:center;gap:6px}.ai-link{display:inline-block;padding:2px 8px;font-size:.7rem;font-weight:600;border-radius:3px;text-decoration:none;cursor:pointer;transition:opacity .15s}.ai-link:hover{opacity:.8}.ai-link-chatgpt{background:#10a37f;color:#fff}.ai-link-claude{background:#d97706;color:#fff}.ai-link-gemini{background:#4285f4;color:#fff}.ai-link-copilot{background:linear-gradient(135deg,#0078d4,#7b68ee);color:#fff}.fk-dependency-warning{padding:8px 12px;background:var(--color-warning-light);border:1px solid var(--color-warning-border);border-radius:4px;font-size:.8rem;color:var(--color-warning-dark)}.tab-content-result{height:100%}.tab-content-result .result-content{border:1px solid var(--border-color);border-radius:4px;background:var(--color-gray-50);overflow:auto;max-height:300px}.result-content .empty-result{padding:40px;text-align:center;color:var(--color-gray-400);font-style:italic}.result-table-wrapper{overflow-x:auto;overflow-y:auto;max-height:280px}.seed-preview-table{border-collapse:collapse;font-size:.8rem;width:100%}.seed-preview-table th{background:var(--color-gray-200);padding:8px 10px;text-align:left;font-weight:600;color:var(--color-gray-700);position:sticky;top:0;border-bottom:1px solid var(--border-color-dark)}.seed-preview-table td{padding:6px 10px;border-bottom:1px solid var(--border-color)}.seed-preview-table tr:hover td{background:var(--color-gray-100)}.seed-preview-table .null-value{color:var(--color-gray-400);font-style:italic}.seed-url-link{color:var(--color-primary);text-decoration:none;cursor:pointer}.seed-url-link:hover{text-decoration:underline;color:var(--color-primary-dark, #1d4ed8)}.seed-json-value{font-family:monospace;font-size:.75rem;background:var(--color-gray-100);padding:2px 4px;border-radius:3px;color:var(--color-gray-600)}.generator-validation{margin-top:12px;padding:10px 12px;background:var(--color-gray-50);border:1px solid var(--border-color);border-radius:4px}.validation-summary{font-size:.85rem;color:var(--color-gray-700);margin-bottom:4px}.preview-truncated{padding:8px 10px;font-size:.8rem;color:var(--color-gray-400);font-style:italic;text-align:center}.seed-preview-table td.fk-invalid{background:var(--color-danger-bg-light);color:var(--color-danger-hover)}.seed-preview-table tr.invalid-row{opacity:.6}.btn-seed.primary{background:var(--color-teal);border-color:var(--color-teal);color:#fff}.btn-seed.primary:hover:not(:disabled){background:var(--color-teal-hover)}.context-menu{position:fixed;background:var(--color-bg);border:1px solid var(--color-slate-200);border-radius:6px;box-shadow:var(--shadow-md);min-width:140px;z-index:1000;opacity:0;visibility:hidden;transition:opacity .1s,visibility .1s}.context-menu.visible{opacity:1;visibility:visible}.context-menu-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:.85rem;color:var(--color-gray-700)}.context-menu-item:first-child{border-radius:6px 6px 0 0}.context-menu-item:last-child{border-radius:0 0 6px 6px}.context-menu-item:hover{background:var(--table-header-bg)}.context-menu-item-danger:hover{background:var(--color-danger-bg);color:var(--color-danger)}.context-menu-icon{width:16px;text-align:center}.context-menu-separator{height:1px;background:var(--color-slate-200);margin:4px 0}.context-menu-has-sub{position:relative}.context-menu-has-sub>.context-menu-arrow{margin-left:auto;font-size:.7rem;color:var(--color-text-muted)}.context-menu-sub{display:none;position:fixed;background:var(--color-bg);border:1px solid var(--color-slate-200);border-radius:6px;box-shadow:var(--shadow-md);min-width:120px;width:max-content;max-height:calc(100vh - 16px);overflow-y:auto;z-index:1001}.context-menu-has-sub.sub-open:not(.disabled)>.context-menu-sub{display:block}.context-menu-sub .context-menu-item:first-child{border-radius:6px 6px 0 0}.context-menu-sub .context-menu-item:last-child{border-radius:0 0 6px 6px}.tree-fk-node.cycle-detected .tree-fk-header{opacity:.7}.tree-fk-header.disabled{cursor:not-allowed}.tree-fk-header.disabled:hover{filter:none}.cycle-icon{color:var(--color-warning);margin-right:4px;font-size:.9rem}.model-builder-dialog{width:90%;max-width:900px;max-height:85vh;display:flex;flex-direction:column}.model-builder-dialog .modal-body{flex:1;overflow:auto;padding:20px;min-height:300px}.tab-content-info .form-group{margin-bottom:16px}.tab-content-info label{display:block;font-weight:500;margin-bottom:4px;color:var(--color-gray-700);font-size:.9rem}.tab-content-info input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--border-color-dark);border-radius:4px;font-size:.95rem}.tab-content-info input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.tab-content-info .field-hint{font-size:.8rem;color:var(--color-gray-500);margin-top:4px}.tab-content-info .color-picker-row{display:flex;align-items:center;gap:12px}.tab-content-info input[type=color]{width:60px;height:36px;border:1px solid var(--border-color-dark);border-radius:4px;padding:2px;cursor:pointer}.tab-content-info .color-value{font-family:monospace;color:var(--color-gray-500)}.tab-content-design .form-group{height:100%}.tab-content-design label{display:block;font-weight:500;margin-bottom:4px;color:var(--color-gray-700);font-size:.9rem}.tab-content-design textarea{width:100%;min-height:280px;padding:12px;border:1px solid var(--border-color-dark);border-radius:4px;font-family:inherit;font-size:.9rem;resize:vertical;line-height:1.5}.tab-content-design textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.tab-content-preview{padding:8px}.tab-content-preview h4{margin:0 0 12px;font-size:1rem;color:var(--color-gray-700)}.validation-errors{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:4px;padding:12px;margin-bottom:12px;color:var(--color-danger-hover)}.validation-errors ul,.validation-warnings ul{margin:4px 0 0 20px;padding:0}.validation-warnings{background:var(--color-warning-light);border:1px solid var(--color-warning-border-light);border-radius:4px;padding:12px;margin-bottom:12px;color:var(--color-warning-dark)}.preview-table{width:100%;border-collapse:collapse;font-size:.85rem}.preview-table th,.preview-table td{padding:10px 12px;border:1px solid var(--border-color);text-align:left;vertical-align:top}.preview-table th{background:var(--color-gray-50);font-weight:600;color:var(--color-gray-700)}.preview-table tr.junction-entity{background:var(--color-warning-light)}.preview-table .badge{display:inline-block;font-size:.7rem;padding:2px 6px;background:var(--color-warning);color:var(--color-warning-text-dark);border-radius:10px;margin-left:6px;font-weight:500}.preview-table .attr-item{margin-bottom:4px;padding:2px 4px;background:var(--color-gray-100);border-radius:3px;font-family:monospace;font-size:.8rem}.preview-table .attr-markers{color:var(--color-primary);font-weight:500}.preview-table .seeding-cell{font-size:.8rem;color:var(--color-gray-500);max-width:250px}.preview-table .text-muted{color:var(--color-gray-400)}.preview-table .entity-description{font-size:.75rem;color:var(--color-gray-500);font-style:italic;margin-top:4px;white-space:normal}.areas-preview{margin-bottom:20px}.areas-preview h4{margin:0 0 12px;font-size:.95rem;color:var(--color-gray-700)}.areas-grid{display:flex;flex-wrap:wrap;gap:12px}.area-card{padding:10px 14px;border-radius:6px;min-width:150px;flex:1;max-width:250px}.area-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.area-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.area-entities{display:flex;flex-wrap:wrap;gap:4px}.area-entity{font-size:.75rem;padding:2px 8px;background:#ffffffb3;border-radius:10px;color:var(--color-gray-700)}.areas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.areas-header h4{margin:0}.layout-toggle{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--color-gray-500);cursor:pointer}.layout-toggle input{cursor:pointer}.areas-grid.fit-content{justify-content:flex-start}.areas-grid.fit-content .area-card{flex:0 0 auto;min-width:auto;max-width:none}.tab-content-select{padding:20px}.tab-content-select select{width:100%;max-width:400px;padding:12px;font-size:1rem;border:1px solid var(--border-color-dark);border-radius:4px;background:var(--color-bg);cursor:pointer}.tab-content-select select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.tab-content-select .field-hint{margin-top:12px;color:var(--color-gray-500);font-size:.9rem}.import-options{margin-top:20px;padding:16px;background:var(--color-gray-50);border:1px solid var(--border-color);border-radius:6px}.import-options h4{margin:0 0 12px;font-size:.95rem;color:var(--color-gray-700)}.import-options .field-hint{margin-bottom:12px;color:var(--color-gray-500);font-size:.85rem}.import-mode-radio{display:flex;flex-direction:column;gap:10px}.import-mode-radio label{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--color-bg);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:border-color .15s,background .15s}.import-mode-radio label:hover{border-color:var(--color-primary);background:var(--color-info-bg-light)}.import-mode-radio input[type=radio]{margin-top:3px}.import-mode-radio input[type=radio]:checked+strong{color:var(--color-primary)}.tab-content-info input[readonly]{background:var(--color-gray-100);color:var(--color-gray-500);cursor:not-allowed}.scroll-sentinel{height:1px;width:100%}.pagination-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--color-gray-550);font-size:.9rem}.spinner{width:20px;height:20px;border:2px solid var(--color-slate-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rap-dialog{max-width:400px;width:90%;padding:0;border:none;border-radius:8px;box-shadow:var(--shadow-lg)}.rap-dialog::backdrop{background:var(--shadow-overlay-strong)}.rap-dialog-header{padding:16px 20px;background:var(--table-row-hover);border-bottom:1px solid var(--color-slate-200);display:flex;align-items:center;justify-content:space-between}.rap-dialog-header h3{margin:0;font-size:1.1rem;color:var(--color-gray-900)}.rap-dialog-header p{margin:0;font-size:.85rem;color:var(--color-gray-550)}.rap-dialog-close{background:none;border:none;font-size:1.5rem;color:var(--color-gray-550);cursor:pointer;padding:0;line-height:1}.rap-dialog-close:hover{color:var(--color-gray-900)}.rap-dialog-body{padding:20px}.prefilter-fields{padding:20px;display:flex;flex-direction:column;gap:16px}.prefilter-field{display:flex;flex-direction:column;gap:4px}.prefilter-field label{font-size:.85rem;font-weight:500;color:var(--color-gray-650);text-transform:capitalize}.rap-dialog-select{padding:8px 12px;border:1px solid var(--color-slate-300);border-radius:4px;font-size:.9rem;background:var(--color-bg);width:100%;box-sizing:border-box}.rap-dialog-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.rap-dialog-input{padding:10px 12px;border:1px solid var(--color-slate-300);border-radius:4px;font-size:.95rem;background:var(--color-bg);width:100%;box-sizing:border-box}.rap-dialog-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.rap-dialog-input::placeholder{color:var(--color-gray-400)}.rap-dialog-loading{font-size:.8rem;color:var(--color-gray-400);font-style:italic}.rap-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;background:var(--table-row-hover);border-top:1px solid var(--color-slate-200)}.rap-dialog-actions .btn-secondary{padding:8px 16px;background:var(--color-bg);border:1px solid var(--color-slate-300);border-radius:4px;color:var(--color-gray-650);cursor:pointer;font-size:.9rem}.rap-dialog-actions .btn-secondary:hover{background:var(--table-header-bg)}.rap-dialog-actions .btn-primary{padding:8px 16px;background:var(--color-primary);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem}.rap-dialog-actions .btn-primary:hover{background:var(--color-primary-hover)}.conflict-dialog{border:none;border-radius:8px;padding:0;box-shadow:var(--shadow-lg);max-width:600px;width:90%}.conflict-dialog::backdrop{background:var(--shadow-overlay-strong)}.conflict-dialog .dialog-content{padding:24px}.conflict-dialog h3{margin:0 0 8px;color:var(--color-warning, #d97706);font-size:1.1rem}.conflict-dialog .conflict-message{margin:0 0 16px;color:var(--color-gray-650);font-size:.9rem}.conflict-diff{max-height:300px;overflow-y:auto;margin-bottom:16px;border:1px solid var(--color-slate-200);border-radius:4px}.conflict-diff-table{width:100%;border-collapse:collapse;font-size:.85rem}.conflict-diff-table th{background:var(--table-header-bg);padding:8px 12px;text-align:left;font-weight:500;border-bottom:1px solid var(--color-slate-200)}.conflict-diff-table td{padding:6px 12px;border-bottom:1px solid var(--color-slate-100);vertical-align:top}.conflict-row-diff{background:var(--color-warning-light)}.conflict-row-same{color:var(--color-gray-400)}.conflict-field-name{font-weight:500;color:var(--color-gray-700)}.conflict-your-value{color:var(--color-danger, #dc2626)}.conflict-server-value{color:var(--color-success, #059669)}.null-value{color:var(--color-gray-400);font-style:italic}.conflict-dialog .dialog-buttons{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.json-value{font-family:Fira Code,Consolas,Monaco,monospace;font-size:.8rem;background:var(--color-bg-subtle);padding:8px 12px;border-radius:4px;overflow-x:auto;max-height:300px;white-space:pre;margin:0;border:1px solid var(--border-color)}.json-cell{font-family:monospace;font-size:.8rem;color:var(--color-text-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.json-input{font-family:Fira Code,Consolas,Monaco,monospace;font-size:.85rem;line-height:1.4;resize:vertical}.mdtext-cell{color:var(--color-text-muted);white-space:normal;word-break:break-word;line-height:1.3;max-width:500px;overflow:hidden}.mdtext-rendered{font-size:.9rem;line-height:1.5;max-height:400px;overflow-y:auto;padding:4px 0}.mdtext-rendered p{margin:0 0 .5em}.mdtext-rendered p:last-child{margin-bottom:0}.mdtext-input{font-size:.9rem;line-height:1.5;resize:vertical;min-height:120px}.mdtext-preview{margin-top:4px;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--color-bg);font-size:.9rem;line-height:1.5;max-height:300px;overflow-y:auto}.mdtext-preview:empty{display:none}.mdtext-preview p{margin:0 0 .5em}.mdtext-preview p:last-child{margin-bottom:0}.htmltext-cell{color:var(--color-text-muted);white-space:normal;line-height:1.3;max-width:500px;overflow:visible}.htmltext-rendered{font-size:.9rem;line-height:1.5;max-height:400px;overflow-y:auto;padding:4px 0}.htmltext-input{font-size:.9rem;line-height:1.5;resize:vertical;min-height:120px}.htmltext-preview{margin-top:4px;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;background:var(--color-bg);font-size:.9rem;line-height:1.5;max-height:300px;overflow-y:auto}.htmltext-preview:empty{display:none}.url-link,.mail-link{color:var(--primary-color, #3b82f6);text-decoration:none}.url-link:hover,.mail-link:hover{text-decoration:underline}.form-textarea{min-height:100px;resize:vertical}.media-upload-zone{border:2px dashed var(--color-gray-300);border-radius:8px;padding:32px 24px;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--color-gray-50)}.media-upload-zone:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.media-upload-zone.dragover{border-color:var(--color-primary);background:var(--color-primary-light);transform:scale(1.01)}.media-upload-zone.uploading{opacity:.7;cursor:wait}.media-upload-zone.error{border-color:var(--color-danger);background:#dc26260d}.media-upload-icon{color:var(--color-gray-400);margin-bottom:12px}.media-upload-text{font-size:.95rem;color:var(--color-gray-600);margin-bottom:8px}.media-upload-link{color:var(--color-primary);text-decoration:underline;cursor:pointer}.media-upload-hint{font-size:.8rem;color:var(--color-gray-400)}.media-upload-input{display:none}.media-upload-progress{margin-top:16px}.media-upload-progress-bar{height:4px;background:var(--color-primary);border-radius:2px;width:0%;transition:width .3s ease}.media-upload-progress-text{font-size:.8rem;color:var(--color-gray-500);margin-top:8px}.media-field{position:relative}.media-preview{display:flex;align-items:center;gap:12px;padding:12px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:6px}.media-thumbnail{height:48px;width:auto;max-width:120px;border-radius:4px;background:var(--color-gray-100)}.media-thumb-fallback{padding:4px;object-fit:contain;box-sizing:border-box}.media-filename{flex:1;font-size:.9rem;color:var(--color-gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-remove{background:none;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--color-gray-400);padding:4px 8px;border-radius:4px;transition:all .2s}.media-remove:hover{color:var(--color-danger);background:#dc26261a}.media-dropzone{padding:20px;border:2px dashed var(--color-gray-300);border-radius:6px;text-align:center;color:var(--color-gray-500);cursor:pointer;transition:all .2s}.media-dropzone:hover{border-color:var(--color-primary);color:var(--color-primary)}.media-dropzone.dragover{border-color:var(--color-primary);background:var(--color-primary-light)}.media-dropzone .uploading{color:var(--color-primary)}.media-dropzone .error{color:var(--color-danger)}.media-file-input{display:none}.media-input-area{display:flex;flex-direction:column;gap:8px}.media-input-area.hidden{display:none}.media-buttons-row{display:flex;gap:8px}.media-url-row{display:flex;gap:8px;align-items:center}.media-url-input{flex:1;padding:6px 10px;border:1px solid var(--color-gray-300);border-radius:4px;font-size:.9em}.media-url-input:focus{outline:none;border-color:var(--color-primary)}.media-file-btn,.media-url-load{padding:6px 12px;border:1px solid var(--color-gray-300);border-radius:4px;background:var(--color-gray-100);cursor:pointer;font-size:.85em;white-space:nowrap;transition:all .2s}.media-file-btn:hover,.media-url-load:hover{background:var(--color-gray-200);border-color:var(--color-gray-400)}.media-url-load:disabled{opacity:.5;cursor:not-allowed}.media-thumb-tiny{height:32px;width:auto;max-width:60px;border-radius:3px;vertical-align:middle;background:var(--color-gray-100)}.media-thumb-small{height:32px;width:auto;max-width:80px;border-radius:4px;vertical-align:middle;background:var(--color-gray-100)}.media-cell{text-align:center}.media-cell a{display:inline-block}.entity-table tbody tr[style*=height] .media-cell{width:1%;white-space:nowrap;max-width:none;overflow:visible;height:inherit;padding:4px}.entity-table tbody tr[style*=height] .media-thumb-tiny{height:100%;width:auto;max-height:none;max-width:none;object-fit:contain}.media-display{display:inline-flex;align-items:center;gap:8px}.media-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--color-primary)}.media-link:hover{text-decoration:underline}.media-view-text{font-size:.85rem}.media-upload-button-wrapper{display:inline-block}.media-upload-btn{min-width:120px}.media-column-header{background-color:var(--color-info-bg-light);cursor:pointer;transition:background-color .15s}.media-column-header:hover{background-color:var(--color-info-bg)}.wikipedia-icon{width:16px;height:16px;vertical-align:middle;opacity:.7}.wikipedia-icon:hover{opacity:1}.wikipedia-cell{text-align:center}.wikipedia-column-header,.image-column-header{text-align:center!important}.image-header-icon{width:20px;height:20px;vertical-align:middle;opacity:.6}.image-header-icon:hover{opacity:1}.media-browser-modal .modal-content{width:90%;max-width:900px;max-height:80vh;background:var(--color-bg);border-radius:8px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.media-browser-content .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-gray-200);background:var(--color-gray-50);border-radius:8px 8px 0 0}.media-browser-content .modal-header h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-gray-900)}.media-browser-content .modal-close{background:none;border:none;font-size:24px;color:var(--color-gray-500);cursor:pointer;padding:0 4px;line-height:1}.media-browser-content .modal-close:hover{color:var(--color-gray-900)}.media-browser-content .modal-body{padding:16px;overflow-y:auto;max-height:calc(80vh - 140px);background:var(--color-bg)}.media-browser-content .modal-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-top:1px solid var(--color-gray-200);background:var(--color-gray-50);border-radius:0 0 8px 8px}.media-browser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.media-browser-item{border:1px solid var(--color-gray-200);border-radius:8px;padding:12px;background:var(--color-bg-subtle);display:flex;flex-direction:column;gap:8px}.media-browser-item:hover{border-color:var(--color-primary);box-shadow:0 2px 4px #3b82f61a}.media-browser-thumb{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:4px;overflow:hidden}.media-browser-thumb img{max-width:100%;max-height:100%;object-fit:contain}.media-browser-thumb a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.media-browser-info{flex:1}.media-browser-name{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.media-browser-meta{font-size:11px;color:var(--color-text-muted)}.media-browser-actions{margin-top:auto}.media-browser-actions .btn{width:100%}.media-browser-empty{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.media-browser-empty .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.media-browser-empty .empty-text{font-size:16px;margin-bottom:8px}.media-browser-empty .empty-hint{font-size:13px;color:var(--color-text-lighter)}.media-browser-content .modal-footer{display:flex;justify-content:space-between;align-items:center}.media-browser-content .pagination-info{color:var(--color-text-muted);font-size:13px}.entity-map{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;z-index:1}.entity-map-canvas{flex:1;min-height:400px;background:var(--color-gray-100)}.map-popup{font-size:13px;line-height:1.4}.map-popup-title{font-weight:600;font-size:14px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #e5e7eb;color:#1f2937}.map-popup-table{width:100%;border-collapse:collapse}.map-popup-table tr:not(:last-child) td{padding-bottom:4px}.map-popup-label{color:#6b7280;font-size:11px;text-transform:uppercase;padding-right:12px;white-space:nowrap;vertical-align:top}.map-popup-value{color:#374151;word-break:break-word}.map-popup-actions{margin-top:10px;padding-top:8px;border-top:1px solid #e5e7eb}.map-popup-link{color:var(--color-primary);text-decoration:none;font-size:12px}.map-popup-link:hover{text-decoration:underline}.map-popup-api-link{display:inline-block;color:var(--color-primary);text-decoration:none;font-size:12px;margin-right:12px;cursor:pointer}.map-popup-api-link:hover{text-decoration:underline}.json-preview-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:10000;justify-content:center;align-items:center}.json-preview-overlay.visible{display:flex}.json-preview-dialog{background:var(--bg-primary, #fff);border-radius:8px;box-shadow:0 8px 32px #0003;width:600px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column}.json-preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-color, #e5e7eb)}.json-preview-title{font-weight:600;font-size:15px}.json-preview-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary, #6b7280);padding:0 4px}.json-preview-close:hover{color:var(--text-primary, #1f2937)}.json-preview-url{padding:4px 16px 8px;font-size:11px;color:var(--text-secondary, #6b7280);font-family:monospace;word-break:break-all}.json-preview-body{flex:1;overflow:auto;margin:0;padding:12px 16px;font-size:12px;font-family:SF Mono,Consolas,Monaco,monospace;line-height:1.5;background:var(--bg-secondary, #f9fafb);white-space:pre-wrap;word-break:break-word}.json-preview-footer{padding:8px 16px;border-top:1px solid var(--border-color, #e5e7eb);text-align:right}.json-preview-apply{padding:6px 16px;font-size:13px}.leaflet-popup-content-wrapper{border-radius:8px;box-shadow:0 4px 12px #00000026}.leaflet-popup-content{margin:12px 14px}.marker-cluster-small{background-color:#2563eb99}.marker-cluster-small div{background-color:#2563ebcc}.marker-cluster-medium{background-color:#2563eb99}.marker-cluster-medium div{background-color:#2563ebcc}.marker-cluster-large{background-color:#2563eb99}.marker-cluster-large div{background-color:#2563ebcc}.map-labels-toggle{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);cursor:pointer;user-select:none;margin-left:4px;padding:4px 6px;border-radius:4px}.map-labels-toggle:hover{background:var(--bg-hover)}.map-labels-toggle input[type=checkbox]{width:13px;height:13px;cursor:pointer;margin:0}.map-labels-toggle span{line-height:1}.map-label-tooltip{background:#fffffff2;border:1px solid #d1d5db;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:500;color:#374151;box-shadow:0 1px 3px #0000001a}.map-label-tooltip:before{border-top-color:#d1d5db}.entity-chart{flex:1;display:flex;flex-direction:column;min-height:0;position:relative;padding:16px 16px 60px;background:var(--color-bg);overflow:auto}.entity-chart-canvas{flex:1;min-height:400px;display:flex;justify-content:center;align-items:flex-start;padding-bottom:40px}.entity-chart-canvas>div{width:100%;max-width:800px}.diagram-overlay{cursor:pointer}.diagram-dialog{max-width:85vw;width:85vw;max-height:85vh;cursor:auto}.diagram-body{padding:0;overflow:auto;min-height:400px;background:var(--color-bg-subtle)}.diagram-container{display:flex;justify-content:center;align-items:center;min-height:400px;padding:20px}.diagram-container svg{max-width:100%;height:auto}.diagram-loading,.diagram-error{color:var(--color-gray-500);padding:20px;text-align:center}.diagram-error{color:var(--color-danger)}.diagram-info{color:var(--color-gray-500);font-size:.85rem;margin-right:auto}.diagram-overview-dialog{width:calc(100vw - 32px);max-width:none;height:calc(100vh - 32px);max-height:none;cursor:auto;display:flex;flex-direction:column}.diagram-overview-body{flex:1;overflow:auto;padding:8px;background:#fff}.diagram-zoom-controls{display:flex;align-items:center;gap:4px;margin-left:auto;margin-right:12px}.diagram-zoom-controls .btn-icon{width:28px;height:28px;font-size:1.1rem;font-weight:700}.diagram-zoom-label{font-size:.8rem;color:var(--color-gray-500);min-width:36px;text-align:center}.process-toggle-btn.active{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success-text)}.process-panel{padding:16px 24px;overflow-y:auto;flex:1;min-height:0}.process-panel.process-status-opened{background:#e8f5e9}.process-panel.process-status-active{background:#fff8e1}.process-panel.process-status-completed{background:#e3f2fd}.process-header{margin-bottom:12px}.process-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.process-title{font-size:1.1rem;font-weight:600;color:var(--color-text)}.process-close-btn{background:transparent;border:none;font-size:1.3rem;cursor:pointer;color:var(--color-gray-400);padding:2px 6px;border-radius:4px;line-height:1}.process-close-btn:hover{background:var(--color-gray-100);color:var(--color-gray-700)}.process-description{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:6px}.process-context{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.process-context-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:.75rem;background:var(--color-info-bg-light);color:var(--color-info-text);border:1px solid var(--color-info-border)}.process-persist-bar{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.8rem}.process-save-btn,.process-complete-btn{padding:3px 12px;border-radius:4px;border:1px solid var(--border-color);font-size:.78rem;cursor:pointer;background:var(--color-bg)}.process-save-btn{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.process-complete-btn{background:var(--color-success-bg-light, #e8f5e9);color:var(--color-success-text, #2e7d32);border-color:var(--color-success-border, #a5d6a7)}.process-save-btn:hover,.process-complete-btn:hover{opacity:.85}.process-persist-info{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.process-tree-toggle-btn{background:none;border:1px solid transparent;cursor:pointer;padding:2px 4px;border-radius:3px;color:var(--color-text-secondary);display:flex;align-items:center}.process-tree-toggle-btn:hover{color:var(--color-text);background:var(--color-gray-200)}.process-tree-toggle-btn.active{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-bg-light, rgba(25, 118, 210, .08))}.process-tabs-bar{position:relative;background:var(--color-gray-300);box-shadow:inset 0 -2px 0 var(--border-color);margin-bottom:16px}.process-tabs-scroll{display:flex;overflow-x:auto;scrollbar-width:none}.process-tabs-scroll::-webkit-scrollbar{display:none}.process-tabs-arrow{position:absolute;top:0;bottom:0;width:28px;border:none;cursor:pointer;z-index:2;display:none;align-items:center;justify-content:center;font-size:1rem;color:var(--color-text-secondary);background:var(--color-gray-300);box-shadow:inset 0 -2px 0 var(--border-color)}.process-tabs-arrow:hover{color:var(--color-text);background:var(--color-gray-400)}.process-tabs-arrow-left{left:0;border-right:1px solid var(--border-color)}.process-tabs-arrow-right{right:0;border-left:1px solid var(--border-color)}.process-tabs-bar.scroll-left .process-tabs-arrow-left,.process-tabs-bar.scroll-right .process-tabs-arrow-right{display:flex}.process-tabs-bar.scroll-left .process-tabs-scroll{margin-left:28px}.process-tabs-bar.scroll-right .process-tabs-scroll{margin-right:28px}.process-tab{padding:7px 14px 6px;margin:6px 2px 0;border:1px solid transparent;border-bottom:none;border-radius:5px 5px 0 0;background:var(--color-gray-100);font-size:.82rem;cursor:pointer;white-space:nowrap;color:var(--color-text-secondary);transition:color .15s,background .15s}.process-tab:hover{color:var(--color-text);background:var(--color-bg)}.process-tab.active{color:var(--color-primary);background:var(--color-bg);border-color:var(--border-color);margin-bottom:-1px;padding-bottom:7px;font-weight:700}.process-step-content{max-width:800px}.process-step-body,.entity-definition-body{font-size:.9rem;line-height:1.6;color:var(--color-text)}.process-step-body h1,.entity-definition-body h1,.process-step-body h2,.entity-definition-body h2,.process-step-body h3,.entity-definition-body h3{margin-top:1em;margin-bottom:.5em;color:var(--color-text)}.process-step-body ul,.entity-definition-body ul,.process-step-body ol,.entity-definition-body ol{padding-left:1.5em;margin:.5em 0}.process-step-body li,.entity-definition-body li{margin-bottom:.3em}.process-step-body p,.entity-definition-body p{margin:.5em 0}.process-step-body table,.entity-definition-body table{border-collapse:collapse;margin:.8em 0;font-size:.85rem}.process-step-body th,.entity-definition-body th,.process-step-body td,.entity-definition-body td{border:1px solid var(--border-color);padding:4px 10px;text-align:left}.process-step-body th,.entity-definition-body th{background:var(--color-gray-100);font-weight:600}.process-step-body img,.entity-definition-body img{max-width:100%;border-radius:6px;margin:.5em 0}.process-step-body code,.entity-definition-body code{background:var(--color-gray-100);padding:1px 5px;border-radius:3px;font-size:.85em}.process-step-body pre,.entity-definition-body pre{background:var(--color-gray-100);padding:10px 14px;border-radius:6px;overflow-x:auto;font-size:.85rem}.process-step-body blockquote,.entity-definition-body blockquote{border-left:3px solid var(--color-primary);margin:.5em 0;padding:.3em .8em;color:var(--color-text-secondary)}.ai-instruction{margin:12px 0;border:1px solid var(--border-color, #e0e0e0);border-radius:var(--radius-md, 6px);background:var(--color-bg-subtle, #f8f9fa);font-size:.85rem}.ai-instruction summary{cursor:pointer;padding:6px 12px;font-weight:600;color:var(--color-text-muted, #6b7280);user-select:none}.ai-instruction summary:hover{color:var(--color-primary, #2563eb)}.ai-instruction>:not(summary){padding:0 12px 8px}.entity-category-badge{display:flex;align-items:center;gap:10px;padding:7px 12px;margin-bottom:14px;background:var(--color-gray-50, #f8f9fa);border-radius:4px;font-size:13px}.category-chip{color:#fff;padding:2px 9px;border-radius:10px;font-weight:700;font-size:12px;white-space:nowrap;letter-spacing:.2px}.category-desc{flex:1;color:var(--color-gray-500, #666);font-size:12px}.category-link{color:var(--color-primary, #3b82f6);white-space:nowrap;font-size:12px;text-decoration:none}.category-link:hover{text-decoration:underline}.ai-instruction p{margin:4px 0}.section-editor-wrapper{display:flex;flex-direction:column;height:100%;min-height:300px}.section-editor-wrapper .editor-header{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-bottom:1px solid var(--border-color);background:var(--color-gray-100);border-radius:4px 4px 0 0}.section-editor-wrapper .editor-header span{font-weight:600;color:var(--color-text)}.section-editor-wrapper .editor-container{flex:1;position:relative;overflow:hidden;min-height:200px}.section-editor-wrapper .editor-textarea,.section-editor-wrapper .editor-highlight{position:absolute;top:0;left:0;width:100%;height:100%;padding:15px;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:13px;line-height:1.6;border:none;resize:none;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.section-editor-wrapper .editor-textarea{background:transparent;color:transparent;caret-color:var(--color-text);z-index:2;outline:none}.section-editor-wrapper .editor-highlight{background:var(--color-bg);color:var(--color-text);z-index:1;pointer-events:none;overflow:auto}.section-editor-wrapper .editor-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 15px;border-top:1px solid var(--border-color);background:var(--color-gray-100);border-radius:0 0 4px 4px}.section-editor-wrapper .editor-btn{padding:8px 16px;border-radius:5px;font-size:.9rem;cursor:pointer;border:none;transition:all .2s}.section-editor-wrapper .editor-btn-cancel{background:var(--color-gray-200);color:var(--color-text)}.section-editor-wrapper .editor-btn-cancel:hover{background:var(--color-gray-300)}.section-editor-wrapper .editor-btn-save{background:var(--color-primary);color:#fff}.section-editor-wrapper .editor-btn-save:hover{background:var(--color-primary-dark)}.section-editor-wrapper .editor-btn-saveas{background:var(--color-gray-200);color:var(--color-text);margin-right:auto}.section-editor-wrapper .editor-btn-saveas:hover{background:var(--color-gray-300)}.section-editor-wrapper .md-heading{color:#1e40af;font-weight:700}.section-editor-wrapper .md-bold{color:#b91c1c}.section-editor-wrapper .md-italic{color:#7c3aed;font-style:italic}.section-editor-wrapper .md-code{background:var(--color-gray-200);color:#dc2626;border-radius:3px}.section-editor-wrapper .md-link{color:#2563eb}.section-editor-wrapper .md-list{color:#059669}.editor-ai-panel{padding:8px 12px;border-bottom:1px solid var(--color-gray-300);background:var(--color-gray-50)}.editor-ai-panel .ai-mode-row{margin-bottom:6px;display:flex;gap:2px}.editor-ai-panel .ai-mode-btn{padding:3px 12px;border:1px solid var(--color-gray-400);background:var(--color-gray-100);cursor:pointer;font-size:12px;border-radius:3px}.editor-ai-panel .ai-mode-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.editor-ai-panel .ai-mode-btn:hover:not(.active){background:var(--color-gray-200)}.editor-ai-panel .ai-instruction-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.editor-ai-panel .ai-instruction-input{flex:1;min-width:200px;padding:4px 8px;border:1px solid var(--color-gray-400);border-radius:3px;font-size:13px}.editor-ai-panel .ai-response-row{margin-top:8px}.editor-ai-panel .ai-response-textarea{width:100%;padding:6px;font-family:var(--font-mono, monospace);font-size:12px;border:1px solid var(--color-gray-400);border-radius:3px;resize:vertical;box-sizing:border-box}.editor-ai-panel .editor-btn-apply{margin-top:4px;padding:3px 12px;font-size:12px;background:var(--color-success, #16a34a);color:#fff;border:none;border-radius:3px;cursor:pointer}.editor-ai-panel .editor-btn-apply:hover{opacity:.85}.entity-definition-body h1[style*=context-menu]:hover,.entity-definition-body h2[style*=context-menu]:hover,.entity-definition-body h3[style*=context-menu]:hover,.entity-definition-body h4[style*=context-menu]:hover,.entity-definition-body h5[style*=context-menu]:hover,.entity-definition-body h6[style*=context-menu]:hover{background:#2563eb14;border-radius:4px;margin-left:-6px;margin-right:-6px;padding-left:6px;padding-right:6px}.process-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.process-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s}.process-action-view{background:var(--color-info-bg-light);color:var(--color-info-text);border-color:var(--color-info-border)}.process-action-view:hover{background:var(--color-info-bg)}.process-action-entity{background:var(--color-gray-100);color:var(--color-text);border-color:var(--border-color-dark)}.process-action-entity:hover{background:var(--color-gray-200)}.process-action-create{background:var(--color-gray-100);color:var(--color-text);border-color:var(--border-color-dark)}.process-action-create:hover{background:var(--color-gray-200)}.process-action-edit{background:var(--color-gray-100);color:var(--color-text);border-color:var(--border-color-dark)}.process-action-edit:hover{background:var(--color-gray-200)}.process-action-call{background:#fef3c7;color:#92400e;border-color:#fbbf24}.process-action-call:hover{background:#fde68a}.process-select-container{margin:6px 0}.process-select{width:100%;padding:6px 8px;border-radius:4px;border:1px solid var(--border-color);font-size:.85rem;background:var(--color-bg);color:var(--color-text)}.process-select:disabled{opacity:.6;cursor:wait}.process-title-actions{display:flex;align-items:center;gap:4px}.process-raw-edit-btn{background:transparent;border:1px solid transparent;cursor:pointer;color:var(--color-gray-400);padding:4px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.process-raw-edit-btn:hover{color:var(--color-primary);background:var(--color-gray-100);border-color:var(--border-color)}.process-step-header-row{display:flex;justify-content:flex-end;margin-bottom:2px}.process-edit-btn{background:transparent;border:1px solid transparent;cursor:pointer;color:var(--color-gray-400);padding:4px 6px;border-radius:4px;line-height:1;transition:color .15s,background .15s}.process-edit-btn:hover{color:var(--color-primary);background:var(--color-gray-100);border-color:var(--border-color)}.process-desc-edit-btn{display:inline;vertical-align:middle;margin-left:6px;padding:2px 4px}.process-description-empty{color:var(--color-text-secondary)}.process-edit-form{display:flex;flex-direction:column;gap:8px;max-width:800px}.process-edit-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:-4px}.process-edit-title{padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;font-weight:600;background:var(--color-bg);color:var(--color-text)}.process-edit-title:focus{outline:none;border-color:var(--color-primary)}.process-edit-body{min-height:250px;padding:10px 12px;border:1px solid var(--border-color);border-radius:4px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;line-height:1.5;resize:vertical;background:var(--color-bg-subtle, var(--color-gray-50));color:var(--color-text);tab-size:4}.process-edit-body:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg)}.process-edit-directives{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;background:var(--color-gray-100);border-radius:4px;font-size:.8rem;color:var(--color-text-secondary)}.process-edit-directives-label{font-weight:600;margin-right:4px}.process-edit-directives code{background:var(--color-bg);padding:1px 6px;border-radius:3px;border:1px solid var(--border-color);font-size:.8rem}.process-edit-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.process-edit-cancel{padding:6px 16px;border:1px solid var(--border-color);border-radius:4px;background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:.85rem}.process-edit-cancel:hover{background:var(--color-gray-100)}.process-edit-save{padding:6px 16px;border:1px solid var(--color-primary);border-radius:4px;background:var(--color-primary);color:#fff;cursor:pointer;font-size:.85rem;font-weight:500}.process-edit-save:disabled{opacity:.5;cursor:not-allowed}.process-edit-save:not(:disabled):hover{filter:brightness(1.1)}.process-raw-editor{display:flex;flex-direction:column;gap:8px;height:100%;min-height:400px}.process-raw-path{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace;padding:4px 0}.process-raw-textarea{flex:1;min-height:300px;padding:12px;border:1px solid var(--border-color);border-radius:4px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem;line-height:1.5;resize:vertical;background:var(--color-bg-subtle, var(--color-gray-50));color:var(--color-text);tab-size:4}.process-raw-textarea:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg)}.process-desc-edit-form{display:flex;flex-direction:column;gap:6px}.process-desc-textarea{min-height:60px;padding:6px 10px;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;line-height:1.4;resize:vertical;background:var(--color-bg);color:var(--color-text)}.process-desc-textarea:focus{outline:none;border-color:var(--color-primary)}.process-selector-new{padding:8px 12px;border-top:1px solid var(--border-color);margin-top:4px}.process-selector-new-btn{width:100%;padding:6px 12px;border:1px dashed var(--border-color);border-radius:4px;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;transition:color .15s,border-color .15s,background .15s}.process-selector-new-btn:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-gray-50)}.welcome-screen{padding:28px 20px 16px;overflow-y:auto;flex:1;min-height:0;display:flex;justify-content:center;align-items:flex-start}.welcome-content{max-width:900px;text-align:center;font-size:150%}.welcome-content h2{font-size:1.4rem;font-weight:600;color:var(--color-text);margin:0 0 4px}.welcome-content p{margin:8px 0}.welcome-content ul,.welcome-content ol{padding-left:1.2em}.welcome-content strong{color:var(--color-text)}.welcome-content a{color:var(--color-primary, #3b82f6);text-decoration:none}.welcome-content a:hover{text-decoration:underline}.welcome-illustration{width:100%;max-width:600px;margin-top:20px;border-radius:12px}html[data-theme=dark] .welcome-illustration{opacity:.85;filter:brightness(.9)}.welcome-tip{margin-top:20px;padding:10px 16px;background:linear-gradient(135deg,#e8f4fd,#d1ecf9);border-left:4px solid #2196F3;border-radius:6px;font-size:1rem;line-height:1.5;color:#1a5276;opacity:1;transition:opacity 1.5s ease-out;text-align:left}html[data-theme=dark] .welcome-tip{background:linear-gradient(135deg,#1a3a4a,#1e3d50);color:#b0d4e8;border-left-color:#1976d2}.welcome-tip.fade-out{opacity:0}.welcome-tip-icon{margin-right:6px}@media(max-width:768px){#app-header .header{padding:4px 8px}#app-header .header>div:last-child{gap:6px}.header-settings-btn span[data-i18n=settings_btn],.header-settings-btn .dropdown-arrow{display:none}.rap-menu-bar{padding:0 4px;height:32px}.rap-menu-bar .menu-item{padding:4px 8px;font-size:.78rem}.rap-menu-bar .menu-separator{margin:0 4px}}.import-progress-log{max-height:40em;overflow-y:auto;font-family:var(--font-mono, monospace);font-size:.82em;line-height:1.5;padding:8px 12px;margin:8px 0;background:var(--color-gray-50, #f8f9fa);border:1px solid var(--color-gray-200, #e2e8f0);border-radius:6px}.import-progress-line.has-errors{color:var(--color-warning, #e67e22)}.import-progress-line.error{color:var(--color-danger, #e74c3c);font-weight:600}.media-viewer-overlay{z-index:1050}.media-viewer-dialog{max-height:95vh}.media-viewer-body{display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:16px;background:var(--color-gray-100)}.media-viewer-canvas{max-width:100%;box-shadow:0 2px 8px #00000026}.media-viewer-image{max-width:100%;max-height:80vh;object-fit:contain}.media-viewer-error{color:#dc2626;padding:24px;text-align:center}.media-viewer-page-nav{display:flex;align-items:center;gap:6px;padding:6px 16px;border-bottom:1px solid var(--color-gray-200);font-size:.85rem}.media-viewer-btn{padding:3px 10px;border:1px solid var(--color-gray-300);background:var(--color-gray-100);color:var(--color-gray-700);border-radius:4px;cursor:pointer;font-size:.85rem}.media-viewer-btn:hover{background:var(--color-gray-200)}.media-viewer-page-info{min-width:100px;text-align:center}.media-viewer-sep{color:var(--color-gray-300)}.media-viewer-external{margin-left:auto;margin-right:8px;font-size:1.1rem;text-decoration:none;color:var(--color-gray-400)}.media-viewer-external:hover{color:var(--color-primary)}.log-viewer-overlay{z-index:1050}.log-viewer-toolbar{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--color-gray-200);flex-wrap:wrap}.log-date-select{padding:4px 8px;border:1px solid var(--color-gray-300);border-radius:4px;font-size:.85rem;background:var(--color-bg)}.log-level-filter{display:flex;gap:2px}.log-level-btn{padding:3px 10px;border:1px solid var(--color-gray-300);background:var(--color-gray-100);color:var(--color-gray-700);cursor:pointer;font-size:.8rem;border-radius:4px}.log-level-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.log-level-btn:hover:not(.active){background:var(--color-gray-100)}.log-worker-select{padding:4px 8px;border:1px solid var(--color-gray-300);border-radius:4px;font-size:.85rem;background:var(--color-bg);font-family:var(--font-mono, monospace)}.log-count{margin-left:auto;color:var(--color-gray-500);font-size:.8rem}.log-viewer-header-row{display:flex;align-items:center;gap:8px;padding:4px 16px;background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);font-family:var(--font-mono, monospace);font-size:.75rem;font-weight:600;color:var(--color-gray-600);user-select:none}.log-sort-btn{background:transparent;border:none;padding:2px 4px;cursor:pointer;font:inherit;color:inherit;text-align:left;flex-shrink:0}.log-sort-btn:hover{color:var(--color-primary)}.log-sort-btn[data-sort=worker]{min-width:32px}.log-sort-btn[data-sort=timestamp]{min-width:80px}.log-sort-btn[data-sort=level]{min-width:60px}.log-header-msg{flex:1;padding-left:4px}.log-viewer-body{padding:0;overflow:auto;font-family:var(--font-mono, monospace);font-size:.8rem}.log-entry{display:flex;align-items:baseline;gap:8px;padding:3px 16px;border-bottom:1px solid var(--color-gray-50);white-space:nowrap}.log-entry:hover{background:var(--color-gray-50)}.log-worker{color:var(--color-gray-500);min-width:24px;flex-shrink:0;font-variant-numeric:tabular-nums;opacity:.8}.log-time{color:var(--color-gray-400);white-space:nowrap;flex-shrink:0}.log-badge{padding:1px 6px;border-radius:3px;font-size:.7rem;font-weight:600;text-transform:uppercase;white-space:nowrap;flex-shrink:0;min-width:40px;text-align:center}.log-badge-error{background:#fef2f2;color:#dc2626}.log-badge-warn{background:#fffbeb;color:#d97706}.log-badge-info{background:#eff6ff;color:#2563eb}.log-badge-debug{background:var(--color-gray-100);color:var(--color-gray-500)}.log-meta{color:var(--color-gray-400);font-size:.75rem}.log-empty{color:var(--color-gray-500);padding:24px 16px;text-align:center}.log-warning-badge{display:inline-block;background:#fbbf24;color:#92400e;font-size:.7rem;font-weight:700;padding:1px 5px;border-radius:8px;margin-left:4px;vertical-align:middle}.snapshot-manager-overlay{z-index:1050}.snapshot-manager-body{padding:16px;overflow-y:auto}.snapshot-manager-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--color-gray-200)}.snapshot-btn{padding:6px 16px;border-radius:6px;border:1px solid var(--color-gray-300);background:var(--color-gray-100);cursor:pointer;font-size:.85rem}.snapshot-btn:hover:not(:disabled){background:var(--color-gray-200)}.snapshot-btn:disabled{opacity:.5;cursor:default}.snapshot-btn-create{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.snapshot-btn-create:hover:not(:disabled){opacity:.9}.snapshot-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--color-gray-50);border-radius:8px;font-size:.85rem;margin-bottom:16px}.snapshot-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.snapshot-status-dot.active{background:#22c55e}.snapshot-status-dot.inactive{background:var(--color-gray-400)}.snapshot-status-sep{color:var(--color-gray-400)}.snapshot-tier{margin-bottom:16px}.snapshot-tier-header{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--color-gray-200);font-size:.9rem}.snapshot-tier-meta{color:var(--color-gray-500);font-size:.8rem}.snapshot-tier-count{margin-left:auto;color:var(--color-gray-500);font-size:.8rem}.snapshot-tier-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:4px}.snapshot-tier-table th{text-align:left;padding:6px 8px;font-weight:600;color:var(--color-gray-500);font-size:.75rem;text-transform:uppercase}.snapshot-tier-table td{padding:6px 8px;border-top:1px solid var(--color-gray-100)}.snapshot-col-size{text-align:right;color:var(--color-gray-500)}.snapshot-col-actions{text-align:right;white-space:nowrap}.snapshot-action-restore,.snapshot-action-delete{padding:3px 10px;border-radius:4px;border:1px solid var(--color-gray-300);background:var(--color-gray-100);cursor:pointer;font-size:.8rem;margin-left:4px;color:var(--color-gray-700)}.snapshot-action-restore:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.snapshot-action-delete:hover{background:#ef4444;color:#fff;border-color:#ef4444}.snapshot-empty{color:var(--color-gray-500);font-size:.85rem;padding:12px 0}.snapshot-restoring{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 0;color:var(--color-gray-500)}.snapshot-restoring-spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:snapshot-spin .8s linear infinite}@keyframes snapshot-spin{to{transform:rotate(360deg)}}.record-history-overlay{z-index:1050}.record-history-dialog{width:min(680px,90vw)}.record-history-body{padding:16px 20px;display:flex;flex-direction:column;gap:0}.record-history-empty{color:var(--color-gray-500);font-style:italic;padding:12px 0}.record-history-entry{padding:12px 0;border-bottom:1px solid var(--border-color)}.record-history-entry:last-child{border-bottom:none}.record-history-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px}.record-history-ts{color:var(--color-gray-500);font-size:.82rem;font-variant-numeric:tabular-nums}.record-history-by{color:var(--color-gray-400);font-size:.78rem}.record-history-badge{display:inline-block;padding:1px 7px;border-radius:4px;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.record-history-badge-create{background:#d1fae5;color:#065f46}.record-history-badge-update{background:#dbeafe;color:#1e40af}.record-history-badge-delete{background:#fee2e2;color:#991b1b}.record-history-diff{width:100%;border-collapse:collapse;font-size:.82rem}.record-history-diff td{padding:2px 6px;vertical-align:top}.record-history-field{color:var(--color-gray-600);font-weight:500;width:30%;white-space:nowrap}.record-history-before{color:#991b1b;width:33%;word-break:break-all}.record-history-arrow{color:var(--color-gray-400);width:16px;text-align:center}.record-history-after{color:#065f46;word-break:break-all}.record-history-null{color:var(--color-gray-400);font-style:italic}.record-history-nochange{color:var(--color-gray-400);font-style:italic;font-size:.82rem;padding:2px 6px}.record-history-id{color:var(--color-gray-400);font-weight:400;font-size:.85em}.record-history-footer{padding:10px 16px;border-top:1px solid var(--color-gray-200);display:flex;justify-content:flex-end;align-items:center}.record-history-earlier-btn{display:block;width:100%;margin:12px 0 8px;padding:8px 12px;background:var(--color-gray-50, #f9f9f9);border:1px dashed var(--color-gray-300, #ccc);border-radius:4px;color:var(--color-gray-600, #666);font-size:.85rem;cursor:pointer;text-align:left}.record-history-earlier-btn:hover{background:var(--color-gray-100, #f0f0f0);border-color:var(--color-gray-400, #aaa)}.record-history-earlier-entries{border-left:3px solid var(--color-gray-300, #ccc);padding-left:12px;margin-left:4px;opacity:.85}.record-history-footer-sep{color:var(--color-gray-400);font-size:.85em}.record-history-audit-link{background:none;border:none;padding:4px 0;color:var(--color-gray-500);font-size:.85em;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.record-history-audit-link:hover{color:var(--color-primary)}.diagram-view-container{padding:20px;text-align:center}
