:root{color-scheme:dark;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--accent-cyan:#06b6d4;--accent-teal:#14b8a6;--accent-green:#22c55e;--accent-yellow:#eab308;--accent-orange:#f97316;--accent-red:#ef4444;--accent-purple:#8b5cf6;--gray-50:var(--bg-1);--gray-100:var(--bg-2);--gray-200:var(--line);--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--sidebar-bg:#1e293b;--sidebar-hover:#334155;--sidebar-active:#3b82f6;--header-bg:var(--bg-1);--content-bg:var(--bg-0);--card-bg:var(--bg-1);--border-color:var(--line);--text-primary:var(--fg-0);--text-secondary:var(--fg-2);--text-muted:var(--fg-3);--table-blue:#3b82f6;--table-cyan:#06b6d4;--table-teal:#14b8a6;--table-indigo:#6366f1;--table-purple:#8b5cf6;--table-orange:#f97316;--table-green:#22c55e;--table-red:#ef4444;--table-rose:#f43f5e;--table-pink:#ec4899;--table-fuchsia:#d946ef;--table-violet:#8b5cf6;--table-sky:#0ea5e9;--table-emerald:#10b981;--table-lime:#84cc16;--table-yellow:#eab308;--table-coral:#fb6b6b;--table-amber:#f59e0b;--table-slate:#64748b;--table-gray:#6b7280;--table-stone:#78716c;--table-brown:#a16207;--table-navy:#1e3a8a;--table-midnight:#312e81;--ch-added-text:#4ade80;--ch-added-bg:#22c55e1f;--ch-added-border:#4ade8033;--ch-removed-text:#f87171;--ch-removed-bg:#ef44441f;--ch-removed-border:#f8717133;--ch-modified-text:#fb923c;--ch-modified-bg:#f973161f;--ch-modified-border:#fb923c33;--ch-diagram-text:#a78bfa;--ch-diagram-bg:#8b5cf61f;--ch-diagram-border:#a78bfa33;--um-active-bg:#22c55e1f;--um-active-text:#4ade80;--um-active-dot:#22c55e;--um-inactive-bg:#ef44441f;--um-inactive-text:#f87171;--um-inactive-dot:#ef4444;--um-role-bg:#3b82f61f;--um-role-text:#60a5fa;--um-role-border:#60a5fa33;--um-edit-hover-bg:#3b82f61f;--um-edit-hover-text:#60a5fa;--um-edit-hover-border:#60a5fa33;--um-delete-hover-bg:#ef44441f;--um-delete-hover-text:#f87171;--um-delete-hover-border:#f8717133}.header{border-bottom:1px solid var(--line);background:#fff;flex-shrink:0;align-items:center;gap:16px;height:56px;padding:0 20px;display:flex}.header-left{flex-shrink:0;align-items:center;gap:10px;display:flex}.logo-wordmark{-webkit-user-select:none;user-select:none;align-items:center;text-decoration:none;display:flex}.logo-img{width:auto;height:22px;transition:filter .25s;display:block}.header-divider{background:var(--line);flex-shrink:0;width:1px;height:20px}.sidebar-toggle-btn:hover{color:var(--fg-0);background:#afb8c133}.header-center{flex:1;align-items:center;display:flex}.header-nav{gap:2px;display:flex}.header-right{flex-shrink:0;align-items:center;gap:2px;display:flex}.header-right-sep{background:var(--line);flex-shrink:0;width:1px;height:20px;margin:0 6px}.header-dropdown{position:relative}.header-dropdown-trigger{color:var(--fg-2);cursor:pointer;white-space:nowrap;z-index:1001;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:3px;padding:5px 10px;font-size:13px;font-weight:500;line-height:1;transition:background .12s,color .12s,border-color .12s,border-radius;display:flex;position:relative}.header-dropdown-trigger:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.header-dropdown.open .header-dropdown-trigger{border-color:var(--line);color:var(--fg-0);background:#fff;border-bottom-color:#fff;border-radius:8px 8px 0 0}.header-dropdown-chevron{color:var(--fg-1);flex-shrink:0;margin-top:1px;transition:transform .18s}.header-dropdown.open .header-dropdown-chevron{color:var(--fg-2);transform:rotate(180deg)}.header-dropdown-menu{border:1px solid var(--line);z-index:1000;opacity:0;visibility:hidden;background:#fff;border-radius:0 8px 8px;min-width:192px;padding:5px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% - 1px);left:0;transform:translateY(-4px);box-shadow:0 4px 6px #8c959f14,0 10px 24px #8c959f29}.header-dropdown.open .header-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.header-dropdown-item{color:var(--fg-0);border-radius:6px;align-items:center;gap:9px;padding:7px 10px;font-size:13px;font-weight:400;text-decoration:none;transition:background .1s;display:flex}.header-dropdown-item:hover{background:var(--bg-2);color:var(--fg-0)}.header-dropdown-item svg{color:var(--fg-2);flex-shrink:0}.btn-signin{background:var(--primary-600);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:background .2s;display:flex}.btn-signin:hover{background:var(--primary-700)}.sidebar-brand{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;height:60px;min-height:60px;padding:0 12px;display:flex}.sidebar-logo{letter-spacing:-.5px;align-items:center;font-size:18px;font-weight:700;text-decoration:none;display:flex}.sidebar-logo .wm-db{color:var(--fg-0)}.sidebar-logo .wm-dux{color:var(--accent)}.sidebar{background:var(--bg-2);border-right:1px solid var(--line);width:288px;min-width:288px;color:var(--fg-0);flex-direction:column;flex-shrink:0;height:100vh;transition:width .25s,min-width .25s;display:flex;position:relative;overflow:hidden}.sidebar.collapsed{width:0;min-width:0}.sidebar.resizing{transition:none}.sidebar-resize-handle{z-index:20;touch-action:none;outline:none;flex:0 0 0;width:0;position:relative}.sidebar-resize-handle:before{content:"";cursor:col-resize;width:10px;position:absolute;top:0;bottom:0;left:-5px}.sidebar-resize-handle:after{content:"";pointer-events:none;background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:-1px}.sidebar-resize-handle:hover:after{background:var(--accent);transition-delay:.2s}.sidebar-resize-handle.active:after,.sidebar-resize-handle:focus-visible:after{background:var(--accent);transition-delay:0s}.sidebar-resize-handle:focus-visible:after{width:4px;left:-2px}.sidebar-resize-grip{background:var(--fg-3);opacity:0;pointer-events:none;border-radius:4px;width:4px;height:56px;margin-top:-28px;transition:opacity .15s,background .15s;position:absolute;top:50%;left:-2px}.sidebar:hover+.sidebar-resize-handle .sidebar-resize-grip,.sidebar-resize-handle:hover .sidebar-resize-grip{opacity:.6}.sidebar-resize-handle.active .sidebar-resize-grip,.sidebar-resize-handle:focus-visible .sidebar-resize-grip{opacity:1;background:var(--accent)}.sidebar.collapsed+.sidebar-resize-handle{display:none}.sidebar-toggle-btn{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.sidebar-toggle-btn:hover{background:var(--gray-100);color:var(--text-primary)}.sidebar-header{border-bottom:1px solid #ffffff1a;padding:16px 16px 8px}.sidebar-title{text-transform:none;letter-spacing:0;color:var(--gray-400);font-size:12px;font-weight:700}.db-env-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.sidebar-alert{color:var(--fg-0);border-radius:8px;align-items:flex-start;gap:10px;margin:8px 0;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.sidebar-alert.sidebar-alert-warning{background:color-mix(in oklch, var(--warn), transparent 86%);border:1px solid #f59e0b40}.sidebar-alert.sidebar-alert-warning .sidebar-alert-icon{color:#d97706}.sidebar-alert.sidebar-alert-error{background:color-mix(in oklch, var(--err), transparent 86%);border:1px solid #ef444440}.sidebar-alert.sidebar-alert-error .sidebar-alert-icon{color:#dc2626}.sidebar-alert-icon{flex-shrink:0;margin-top:1px}.sidebar-alert-text{word-break:break-word;flex:1;min-width:0}.sidebar-search{border:1px solid var(--line);background:#fff;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;margin:0 8px 4px;padding:5px 8px;transition:border-color .15s,box-shadow .15s;display:flex}.sidebar-search svg{color:var(--fg-2);flex-shrink:0}.sidebar-search input{box-shadow:none;color:var(--fg-0);background:0 0;border:none;outline:none;width:100%;font-size:12.5px}.sidebar-nav{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sidebar-nav>ul{flex-direction:column;flex:1;min-height:0;margin:0;padding:4px 0 0;display:flex;overflow:hidden}.sidebar-footer{border-top:1px solid var(--line);background:var(--bg-2);flex-direction:column;flex-shrink:0;gap:1px;padding:6px 8px;display:flex}.sidebar-more-wrap{position:relative}.sidebar-more-btn{width:100%;color:var(--fg-2);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:500;transition:background .12s,color .12s;display:flex}.sidebar-more-btn .nav-icon{opacity:.7}.sidebar-more-btn:hover .nav-icon,.sidebar-more-btn.active .nav-icon{opacity:1;color:var(--fg-0)}.more-btn-chevron{color:var(--fg-2);flex-shrink:0;transition:transform .2s}.sidebar-more-btn.active .more-btn-chevron{transform:rotate(180deg)}.sidebar-more-menu{border:1px solid var(--line);z-index:100;background:#fff;border-radius:10px;padding:4px;animation:.15s ease-out sidebarMenuUp;display:none;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 -4px 16px #0000001a}.sidebar-more-menu.open{flex-direction:column;gap:2px;display:flex}@keyframes sidebarMenuUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.sidebar-more-item{color:var(--fg-2);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-more-item:hover{color:var(--fg-0);background:#afb8c133}.sidebar-more-item svg{flex-shrink:0}.sidebar-more-item-btn{cursor:pointer;text-align:left;background:0 0;border:none;width:100%}.sidebar-more-divider{background:var(--bg-3);height:1px;margin:4px 0}.sidebar-version{border-top:1px solid var(--line-soft);color:var(--fg-2);justify-content:space-between;align-items:center;margin-top:2px;padding:5px 8px;font-size:11px;display:flex}.sidebar-version-tag{color:var(--fg-2);background:#afb8c14d;border-radius:20px;padding:1px 5px;font-size:10px;font-weight:500}.db-changelog-section{margin-bottom:2px;position:relative}.db-changelog-trigger{color:var(--gray-400);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.db-changelog-trigger:hover{background:var(--sidebar-hover);color:var(--fg-0)}.db-changelog-trigger svg:first-child{opacity:.6;flex-shrink:0;transition:opacity .2s}.db-changelog-trigger:hover svg:first-child{opacity:1}.db-changelog-trigger span{flex:1}.db-changelog-chevron{color:var(--gray-500);flex-shrink:0;transition:transform .2s}.db-changelog-section.open .db-changelog-chevron{transform:rotate(180deg)}.db-changelog-section.open .db-changelog-trigger{background:var(--tint-3);color:var(--fg-0)}.db-changelog-dropdown{background:var(--bg-1);border:1px solid var(--line);z-index:200;opacity:0;visibility:hidden;border-radius:10px;flex-direction:column;max-height:420px;transition:all .2s;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;transform:translateY(8px);box-shadow:0 -8px 32px #0000002e}.db-changelog-section.open .db-changelog-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.db-changelog-header{border-bottom:1px solid var(--line-soft);text-transform:none;letter-spacing:0;color:var(--gray-400);padding:10px 14px;font-size:12px;font-weight:700}.db-changelog-search-wrapper{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:10px 12px;display:flex}.db-changelog-search-wrapper svg{color:var(--gray-500);flex-shrink:0}.db-changelog-search{color:var(--fg-0);background:0 0;border:none;outline:none;flex:1;font-size:13px}.db-changelog-search::placeholder{color:var(--gray-500)}.db-changelog-list{flex:1;max-height:320px;padding:6px;overflow-y:auto}.db-changelog-list::-webkit-scrollbar{width:4px}.db-changelog-list::-webkit-scrollbar-track{background:0 0}.db-changelog-list::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.db-changelog-item{cursor:pointer;border-left:3px solid #0000;border-radius:6px;margin-bottom:2px;padding:10px;transition:all .15s}.db-changelog-item:hover{background:var(--sidebar-hover);border-left-color:var(--primary-500)}.db-changelog-item-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.db-changelog-item-table{color:var(--fg-1);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:600;overflow:hidden}.db-changelog-item-version{color:var(--primary-400);background:#3b82f633;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700}.db-changelog-item-note{color:var(--gray-400);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:11px;overflow:hidden}.db-changelog-item-meta{color:var(--gray-600);align-items:center;gap:8px;font-size:10px;display:flex}.db-changelog-item-author{align-items:center;gap:4px;display:flex}.db-changelog-item-author:before{content:"";background:var(--primary-400);border-radius:50%;flex-shrink:0;width:4px;height:4px}.db-changelog-item-date{margin-left:auto}.db-changelog-empty{color:var(--gray-500);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px 12px;font-size:12px;display:flex}.db-changelog-empty svg{opacity:.4}.db-changelog-loading{text-align:center;color:var(--gray-500);padding:20px 12px;font-size:12px}.db-changelog-item-icon{border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.db-changelog-item-icon.type-added{color:light-dark(#15803d,#22c55e);background:#22c55e26}.db-changelog-item-icon.type-removed{color:#ef4444;background:#ef444426}.db-changelog-item-icon.type-modified{color:light-dark(#c2410c,#f97316);background:#f9731626}.db-changelog-item-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:700}.db-changelog-item-badge.type-added{color:light-dark(#15803d,#22c55e);background:#22c55e26}.db-changelog-item-badge.type-removed{color:#ef4444;background:#ef444426}.db-changelog-item-badge.type-modified{color:light-dark(#c2410c,#f97316);background:#f9731626}.db-changelog-item.type-added:hover{border-left-color:#22c55e}.db-changelog-item.type-removed:hover{border-left-color:#ef4444}.db-changelog-item.type-modified:hover{border-left-color:#f97316}.db-changelog-item-column{color:var(--gray-500);background:var(--tint-2);border-radius:3px;padding:1px 5px;font-size:10px}.schema-group{margin:0}.schema-header{cursor:pointer;color:var(--fg-0);border-radius:6px;align-items:center;gap:4px;margin:0 8px;padding:5px 8px;font-size:13px;font-weight:500;transition:background .12s;display:flex}.schema-header:hover{background:#afb8c133}.schema-header .chevron{color:var(--fg-2);flex-shrink:0;order:-2;margin-right:0;transition:transform .2s}.schema-header.expanded .chevron{transform:rotate(90deg)}.schema-header .schema-icon{border-radius:0;order:-1;width:16px;height:16px;color:var(--fg-2)!important;background:0 0!important}.schema-header .sidebar-badge{margin-left:auto}.schema-icon{width:16px;height:16px;color:var(--fg-2);flex-shrink:0;justify-content:center;align-items:center;display:flex}.schema-tables{max-height:2000px;transition:max-height .25s;overflow:hidden}.schema-tables.collapsed{max-height:0}.sidebar-badge{min-width:16px;height:16px;color:var(--fg-2);background:#afb8c14d;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 4px;font-size:10px;font-weight:500;line-height:1;display:inline-flex}.schema-header:hover .sidebar-badge{color:var(--fg-0);background:#afb8c180}.nav-icon{color:var(--fg-2);opacity:.9;flex-shrink:0}.schemas-section{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.schemas-header{text-transform:none;letter-spacing:0;color:var(--fg-2);flex-shrink:0;align-items:center;gap:6px;padding:8px 16px 4px;font-size:12px;font-weight:600;display:flex}.schemas-header .schema-icon{display:none}.schemas-header .sidebar-badge{color:var(--fg-2);background:#afb8c14d;font-size:10px}.schemas-list{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:1;min-height:0;overflow-y:auto}.schemas-list::-webkit-scrollbar{width:3px}.schemas-list::-webkit-scrollbar-track{background:0 0}.schemas-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}.schema-category-label{display:none}.flow-detail-title{align-items:center;gap:10px;display:flex}.flow-detail-color-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.flow-detail-description{color:var(--text-secondary);margin-top:4px;font-size:14px}.flow-canvas-section{flex-direction:column;flex:1;display:flex}.flow-empty-state{height:100%;min-height:400px;color:var(--gray-400);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.flow-empty-state h3{color:var(--text-secondary);font-size:18px;font-weight:600}.flow-empty-state p{color:var(--text-muted);max-width:400px;font-size:14px}.create-flow-modal{z-index:1000;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.create-flow-backdrop{background:#00000080;width:100%;height:100%;position:absolute;top:0;left:0}.create-flow-container{background:var(--bg-1);border:1px solid var(--line);width:420px;box-shadow:var(--shadow-2);border-radius:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.create-flow-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.create-flow-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.create-flow-body{flex-direction:column;gap:16px;padding:20px;display:flex}.create-flow-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding:16px 20px;display:flex}.flow-color-picker{flex-wrap:wrap;gap:8px;display:flex}.flow-color-option{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:all .2s}.flow-color-option:hover{transform:scale(1.1)}.flow-color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px white, 0 0 0 4px var(--text-primary)}.user-menu{position:relative}.user-menu-btn{cursor:pointer;z-index:1001;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:3px 8px 3px 3px;transition:background .12s,border-color .12s;display:flex;position:relative}.user-menu-btn:hover{background:var(--bg-2);border-color:var(--line)}.user-menu.open .user-menu-btn{border-color:var(--line);z-index:1001;background:linear-gradient(160deg,#f0f6ff 0%,#f8faff 60%,#fafbff 100%);border-bottom-color:#0000;border-radius:8px 8px 0 0}.ua{letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-2);border:1px solid var(--line);background:var(--bg-2);border-color:var(--line);flex-shrink:0;justify-content:center;align-items:center;font-family:inherit;font-weight:600;line-height:1;transition:box-shadow .12s;display:inline-flex}.ua--photo{padding:0;overflow:hidden}.ua-img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.user-menu-name{color:var(--fg-0);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:13px;font-weight:500;overflow:hidden}.user-menu-chevron{color:var(--fg-1);flex-shrink:0;transition:transform .18s,color .12s}.user-menu.open .user-menu-chevron{color:var(--fg-2);transform:rotate(180deg)}.dropdown-profile>.ua{box-shadow:0 0 0 3px #fff,0 4px 12px #00000014;box-shadow:0 0 0 3px var(--bg-2), 0 4px 12px #0000004d;margin-bottom:8px}.user-dropdown{border:1px solid var(--line);opacity:0;visibility:hidden;z-index:1000;background:#fff;border-radius:8px 0 8px 8px;width:244px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% - 1px);right:0;overflow:hidden;transform:translateY(-4px);box-shadow:0 4px 6px #8c959f14,0 10px 24px #8c959f29}.user-menu.open .user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-header{border-bottom:1px solid var(--line-soft);text-align:center;background:linear-gradient(160deg,#f0f6ff 0%,#f8faff 60%,#fafbff 100%);padding:20px 16px 18px;position:relative;overflow:hidden}.dropdown-header-glow{pointer-events:none;background:radial-gradient(circle,#3b82f61f 0%,#0000 70%);border-radius:50%;width:160px;height:160px;position:absolute;top:-60px;left:50%;transform:translate(-50%)}.dropdown-profile{z-index:1;flex-direction:column;align-items:center;gap:3px;display:flex;position:relative}.user-avatar.xlarge{border:2.5px solid #fff;border-radius:50%;flex-shrink:0;width:54px;height:54px;margin-bottom:8px;overflow:hidden;box-shadow:0 0 0 2px #3b82f638,0 4px 14px #0000001a}.user-avatar.xlarge img{object-fit:cover;width:100%;height:100%}.dropdown-user-name{color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:13px;font-weight:700;line-height:1.3;overflow:hidden}.dropdown-user-email{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;max-width:200px;margin-top:1px;font-size:11.5px;overflow:hidden}.dropdown-user-role{color:var(--accent);letter-spacing:.2px;background:#3b82f61a;border-radius:20px;align-items:center;margin-top:7px;padding:2px 9px;font-size:10px;font-weight:600;display:inline-flex}.dropdown-divider{background:var(--border-color);height:1px;margin:4px 6px}.dropdown-item{color:var(--fg-0);border-radius:6px;align-items:center;gap:8px;margin:2px 4px;padding:7px 10px;font-size:13px;font-weight:400;text-decoration:none;transition:background .1s;display:flex}.dropdown-item:hover{background:#afb8c133}.dropdown-item svg{color:var(--fg-2);flex-shrink:0}.dropdown-item.text-danger,.dropdown-item.text-danger svg{color:var(--err)}.header-actions{align-items:center;gap:4px;display:flex}.header-lang-menu{position:relative}.header-lang-trigger{color:var(--fg-2);cursor:pointer;white-space:nowrap;z-index:1001;letter-spacing:.3px;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:5px 8px;font-size:12px;font-weight:600;transition:background .12s,color .12s,border-color .12s,border-radius;display:flex;position:relative}.header-lang-trigger:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.header-lang-menu.open .header-lang-trigger{border-color:var(--line);color:var(--fg-0);background:#fff;border-bottom-color:#fff;border-radius:6px 6px 0 0}.header-lang-chevron{color:var(--fg-1);flex-shrink:0;transition:transform .18s,color .12s}.header-lang-menu.open .header-lang-chevron{color:var(--fg-2);transform:rotate(180deg)}.header-lang-dropdown{border:1px solid var(--line);z-index:1000;opacity:0;visibility:hidden;background:#fff;border-radius:0 6px 6px;min-width:140px;padding:4px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% - 1px);left:0;transform:translateY(-4px);box-shadow:0 4px 6px #8c959f14,0 10px 24px #8c959f29}.header-lang-menu.open .header-lang-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.header-lang-item{width:100%;color:var(--fg-0);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;font-weight:400;transition:background .1s;display:flex}.header-lang-item:hover{background:var(--bg-2)}.header-lang-item.active{color:var(--accent);font-weight:500}.lang-flag{font-size:14px;line-height:1}.lang-check{color:var(--accent);flex-shrink:0;margin-left:auto}.header-theme-btn{width:32px;height:32px;color:var(--fg-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:flex}.header-theme-btn:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.header-theme-btn.dark{color:light-dark(#b45309,#f0a400)}.header-theme-btn.dark:hover{color:#d08000;background:#fff8e6;border-color:#e6c87a}.notification-menu{position:relative}.header-notif-btn{width:32px;height:32px;color:var(--fg-2);cursor:pointer;z-index:1001;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s,border-radius;display:flex;position:relative}.header-notif-btn:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.notification-menu.open .header-notif-btn{border-color:var(--line);color:var(--fg-0);background:#fff;border-bottom-color:#fff;border-radius:6px 6px 0 0}.header-icon-btn{width:32px;height:32px;color:var(--fg-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex;position:relative}.header-icon-btn:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.notification-badge{background:var(--accent-red);color:#fff;border:2px solid #fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notification-badge.hidden{display:none}.notification-dropdown{border:1px solid var(--line);opacity:0;visibility:hidden;z-index:1000;background:#fff;border-radius:8px 0 8px 8px;width:340px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% - 1px);right:0;overflow:hidden;transform:translateY(-4px);box-shadow:0 4px 6px #8c959f14,0 10px 24px #8c959f29}.notification-menu.open .notification-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.notification-dropdown-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px 14px;display:flex}.notification-dropdown-header h4{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:14px;font-weight:600}.btn-mark-all-read{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:all .15s;display:flex}.btn-mark-all-read:hover{background:var(--primary-50);color:var(--primary-600)}.notification-list{max-height:360px;padding:6px;overflow-y:auto}.notification-list::-webkit-scrollbar{width:4px}.notification-list::-webkit-scrollbar-track{background:0 0}.notification-list::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:4px}.notification-list::-webkit-scrollbar-thumb:hover{background:var(--gray-300)}.notification-item{cursor:pointer;border-radius:8px;align-items:flex-start;gap:12px;margin-bottom:2px;padding:12px 14px;transition:all .15s;display:flex;position:relative}.notification-item:last-child{margin-bottom:0}.notification-item.unread .notification-text{color:var(--text-primary);font-weight:500}.notification-item.unread:after{content:"";background:var(--primary-500);border-radius:50%;width:7px;height:7px;position:absolute;top:50%;right:14px;transform:translateY(-50%);box-shadow:0 0 0 2px #3b82f633}.notification-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:transform .15s;display:flex}.notification-item:hover .notification-icon{transform:scale(1.05)}.notification-icon.icon-info{background:var(--primary-50);color:var(--primary-600)}.notification-icon.icon-success{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--accent-green)}.notification-icon.icon-warning{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.notification-icon.icon-collab{background:color-mix(in oklch, var(--purple), transparent 86%);color:var(--accent-purple)}.notification-content{flex:1;min-width:0;padding-right:16px}.notification-text{color:var(--text-secondary);margin:0 0 3px;font-size:13px;line-height:1.5}.notification-text strong{color:var(--text-primary);font-weight:600}.notification-meta{align-items:center;gap:8px;display:flex}.notification-time{color:var(--text-muted);letter-spacing:.01em;font-size:11px;font-weight:400}.notification-item.has-link{cursor:pointer}.notification-item.has-link:hover .notification-link-hint{opacity:1}.notification-link-hint{color:var(--primary-500);opacity:0;margin-left:auto;font-size:11px;font-weight:600;transition:opacity .15s}.notification-item.has-link:hover{background:var(--primary-50)}.notification-empty{text-align:center;color:var(--text-muted);padding:40px 20px}.notification-empty svg{opacity:.3;color:var(--gray-400);margin-bottom:12px}.notification-empty p{margin:0;font-size:13px;font-weight:500}.notification-dropdown-footer{border-top:1px solid var(--border-color);text-align:center;padding:8px 6px}.btn-clear-notifications{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;width:100%;padding:6px 12px;font-size:12px;font-weight:500;transition:all .15s}.main-content{background:var(--content-bg);flex-direction:column;flex:1;overflow-y:auto}.page-container{flex:1;padding:20px}.table-details{border-bottom:1px solid var(--border-color)}.detail-header{border-bottom:1px solid var(--border-color);background:var(--card-bg);align-items:center;gap:12px;padding:20px 0;display:flex}.detail-header h2{font-size:16px;font-weight:600}.detail-badge{background:var(--primary-100);color:var(--primary-700);border-radius:4px;padding:4px 10px;font-size:12px;font-weight:500}.fields-list{padding:0}.field-row{border-bottom:1px solid var(--border-color);grid-template-columns:200px 100px 180px 1fr 60px 100px;align-items:center;gap:16px;padding:12px 24px;transition:background .2s;display:grid}.field-info{align-items:center;gap:10px;display:flex}.field-icon-lg{background:var(--gray-100);border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;display:flex}.field-icon-lg.pk{background:var(--accent-yellow);color:var(--gray-900);font-weight:700}.field-icon-lg.fk{background:var(--primary-500);color:#fff;font-weight:700}.field-name{color:var(--text-primary);font-weight:500}.field-type{color:var(--primary-600);font-family:var(--font-mono);font-size:13px}.field-ref{color:var(--accent-cyan);font-size:12px}.field-desc{color:var(--text-secondary);font-size:13px}.field-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex}.field-row:hover .field-actions{opacity:1}.action-btn{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.action-btn:hover{background:var(--gray-100)}.field-date{color:var(--accent-green);text-align:right;font-size:12px}.table-references{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;margin-top:16px;display:flex;overflow:hidden}.section-header{border-bottom:1px solid var(--line-soft);color:var(--fg-2);background:#fff;align-items:center;gap:8px;padding:12px 16px;display:flex}.section-header svg{color:var(--fg-2);flex-shrink:0}.section-header h3{color:var(--fg-0);flex:1;margin:0;font-size:13px;font-weight:600}.erd-container{background:var(--content-bg);flex:1;min-height:450px;position:relative;overflow:hidden}.erd-container.collapsed{display:none}.erd-toolbar{background:var(--card-bg);border:1px solid var(--border-color);z-index:100;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:absolute;bottom:20px;left:20px;box-shadow:0 2px 12px #00000012,0 1px 3px #0000000a}.erd-toolbar-sk{z-index:10;background:var(--card-bg);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex;position:absolute;inset:0}.erd-toolbar-sk-btn{border-radius:6px;flex-shrink:0;width:32px;height:32px}.erd-toolbar-sk-label{border-radius:3px;flex-shrink:0;width:28px;height:13px}.erd-toolbar-sk-divider{background:var(--border-color);flex-shrink:0;width:1px;height:18px}.erd-btn{border:1px solid var(--border-color);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:16px;transition:background .15s,color .15s,border-color .15s;display:flex}.erd-btn:hover{background:var(--primary-50,#eff6ff);color:var(--primary-600,var(--accent));border-color:var(--primary-200,#bfdbfe)}.erd-btn.active{background:var(--primary-50,#eff6ff);color:var(--primary-600,var(--accent));border-color:var(--primary-300,#93c5fd);box-shadow:inset 0 1px 3px #2563eb14}.erd-zoom{color:var(--text-secondary);padding:0 8px;font-size:13px;font-weight:500}.erd-controls{background:var(--card-bg);z-index:100;border-radius:10px;align-items:center;gap:8px;padding:8px 16px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000001a}.control-btn{cursor:pointer;width:36px;height:36px;color:var(--text-secondary);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex}.control-btn:hover,.control-btn.active{background:var(--primary-100);color:var(--primary-600)}.show-dropdown{border-left:1px solid var(--border-color);align-items:center;gap:8px;margin-left:8px;padding-left:16px;display:flex}.show-dropdown span{color:var(--text-secondary);font-size:13px}.dropdown-btn{border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;display:flex}.erd-canvas{background-image:radial-gradient(circle,#64748b2e 1px,#0000 1px);background-size:24px 24px;background-color:var(--bg-2);background-color:var(--bg-0);background-image:radial-gradient(circle,#94a3b833 1px,#0000 1px);background-size:24px 24px;width:100%;height:100%;min-height:500px;padding-top:52px;position:relative;overflow:auto}.erd-wrapper{transform-origin:0 0;width:100%;min-width:2000px;height:100%;min-height:1500px;transition:transform .1s ease-out;position:absolute;top:0;left:0;overflow:visible}.erd-lines{z-index:1;width:100%;min-width:2000px;height:100%;min-height:1500px;position:absolute;top:0;left:0;overflow:visible}.erd-lines .relation-line,.erd-lines circle,.erd-lines text{pointer-events:none}.relation-line{transition:stroke .2s}.relation-line:hover{stroke:var(--primary-500);stroke-width:3px}.erd-group{background:var(--card-bg,#fff);border:1.5px solid var(--grp-border,#3b82f6);z-index:0;pointer-events:auto;cursor:default;border-radius:5px;position:absolute;box-shadow:0 4px 18px #00000014,0 1px 4px #0000000a}.erd-group-header{z-index:3;background:var(--grp-border,#3b82f6);pointer-events:all;cursor:grab;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:5px 5px 0 0;align-items:center;gap:6px;padding:0 10px;transition:filter .15s;display:flex;position:absolute}.erd-group-header:hover{filter:brightness(1.08)}.erd-group-header:active{cursor:grabbing;filter:brightness(.94)}.erd-group-color-btn{cursor:pointer;pointer-events:all;opacity:1;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:background .15s,border-color .15s,transform .12s;display:flex}.erd-group-color-btn:hover{background:#ffffff47;border-color:#fff9;transform:scale(1.1)}.erd-group-color-btn.active{background:#ffffff59;border-color:#fffc;transform:scale(1.05);box-shadow:0 0 0 2px #ffffff40}.erd-group-grip{opacity:.65;flex-shrink:0}.erd-group-name-display{color:#fff;white-space:nowrap;text-overflow:ellipsis;min-width:0;cursor:inherit;flex:1;font-size:11.5px;font-weight:600;overflow:hidden}.erd-group-count{color:#ffffffe6;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:6px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:700;line-height:18px}.erd-group-toggle{cursor:pointer;pointer-events:all;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:background .15s,border-color .15s;display:flex}.erd-group-toggle:hover{background:#ffffff47;border-color:#fff9}.erd-group-dot{background:#ffffffb3;border-radius:50%;flex-shrink:0;width:6px;height:6px}.erd-table{z-index:10;border-radius:8px;transition:box-shadow .2s,transform .1s;position:absolute;overflow:visible;box-shadow:0 4px 12px #0000001a}.erd-table-inner{background:var(--card-bg);border-radius:8px}.erd-table:hover{box-shadow:0 8px 24px #00000026}.erd-table.dragging{z-index:100;cursor:grabbing;box-shadow:0 12px 32px #0003}.erd-table-header{color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px 8px 0 0;align-items:center;gap:6px;padding:10px 10px 10px 14px;font-size:12px;font-weight:600;display:flex}.erd-table-header:active{cursor:grabbing}.erd-table-col-count{color:#fffffff2;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:10px;font-weight:700;display:flex}.erd-table-toggle-btn{cursor:pointer;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:background .15s,border-color .15s;display:flex}.erd-table-toggle-btn:hover{background:#ffffff47;border-color:#fff9}.erd-table-chevron{transition:transform .2s}.erd-table.fields-collapsed .erd-table-chevron{transform:rotate(-90deg)}.erd-table-header.blue{background:var(--table-blue)}.erd-table-header.cyan{background:var(--table-cyan)}.erd-table-header.teal{background:var(--table-teal)}.erd-table-header.indigo{background:var(--table-indigo)}.erd-table-header.purple{background:var(--table-purple)}.erd-table-header.orange{background:var(--table-orange)}.erd-table-header.green{background:var(--table-green)}.erd-table-header.red{background:var(--table-red)}.erd-table-header.rose{background:var(--table-rose)}.erd-table-header.pink{background:var(--table-pink)}.erd-table-header.fuchsia{background:var(--table-fuchsia)}.erd-table-header.violet{background:var(--table-violet)}.erd-table-header.sky{background:var(--table-sky)}.erd-table-header.emerald{background:var(--table-emerald)}.erd-table-header.lime{background:var(--table-lime)}.erd-table-header.yellow{background:var(--table-yellow)}.erd-table-header.coral{background:var(--table-coral)}.erd-table-header.amber{background:var(--table-amber)}.erd-table-header.slate{background:var(--table-slate)}.erd-table-header.gray{background:var(--table-gray)}.erd-table-header.stone{background:var(--table-stone)}.erd-table-header.brown{background:var(--table-brown)}.erd-table-header.navy{background:var(--table-navy)}.erd-table-header.midnight{background:var(--table-midnight)}.erd-table-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin-right:30px;overflow:hidden}.erd-color-btn{cursor:pointer;opacity:1;background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-left:4px;padding:0;transition:background .15s,border-color .15s,transform .12s;display:flex}.erd-color-btn:hover{background:#ffffff47;border-color:#fff9;transform:scale(1.1)}.erd-color-btn.active{background:#ffffff59;border-color:#fffc;transform:scale(1.05);box-shadow:0 0 0 2px #ffffff40}.erd-color-btn.pulse{animation:.35s cpPulse}@keyframes cpPulse{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.erd-color-picker{z-index:99999;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;animation:.14s cubic-bezier(.2,0,0,1.1) cpFadeIn;position:fixed;box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f}@keyframes cpFadeIn{0%{opacity:0;transform:translate(-6px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}.erd-color-picker.cp-arrow-left:before,.erd-color-picker.cp-arrow-left:after{content:"";top:var(--cp-arrow-y,50%);pointer-events:none;position:absolute;transform:translateY(-50%)}.erd-color-picker.cp-arrow-left:before{border:7px solid #0000;border-right-color:var(--border-color);right:100%}.erd-color-picker.cp-arrow-left:after{border:6px solid #0000;border-right-color:var(--card-bg);right:calc(100% - 1px)}.erd-color-picker.cp-arrow-right:before,.erd-color-picker.cp-arrow-right:after{content:"";top:var(--cp-arrow-y,50%);pointer-events:none;position:absolute;transform:translateY(-50%)}.erd-color-picker.cp-arrow-right:before{border:7px solid #0000;border-left-color:var(--border-color);left:100%}.erd-color-picker.cp-arrow-right:after{border:6px solid #0000;border-left-color:var(--card-bg);left:calc(100% - 1px)}.erd-cp-swatches{grid-template-columns:repeat(6,20px);gap:4px;padding:8px;display:grid}.erd-cp-swatch{cursor:pointer;border:2px solid #0000;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex;position:relative}.erd-cp-swatch:hover{z-index:1;transform:scale(1.2);box-shadow:0 4px 12px #00000040}.erd-cp-swatch.active{border-color:#ffffffd9;box-shadow:0 0 0 2px #0003,0 4px 12px #0003}.relation-line.rel-hovered{stroke-width:2px!important;filter:none!important}@keyframes rel-flow-dash{to{stroke-dashoffset:-24px}}@keyframes rel-flow-dash-rev{to{stroke-dashoffset:24px}}.relation-line.rel-hover-flow{stroke-dasharray:8 6;stroke-dashoffset:0;animation:.55s linear infinite rel-flow-dash}.relation-line.rel-hover-flow.reverse{animation:.55s linear infinite rel-flow-dash-rev}.rel-tooltip{z-index:9999;background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);pointer-events:none;opacity:0;border-radius:5px;width:272px;animation:.17s cubic-bezier(.22,1,.36,1) forwards rel-tt-in;position:fixed;transform:translateY(4px)scale(.97);box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f}@keyframes rel-tt-in{to{opacity:1;transform:translateY(0)scale(1)}}.rel-tooltip:before{content:"";pointer-events:none;border:6px solid #0000;position:absolute;top:50%;transform:translateY(-50%)}.rel-tooltip.tt-arrow-left:before{border-right-color:var(--border-color,#e5e7eb);left:-12px}.rel-tooltip.tt-arrow-left:after{content:"";border:5px solid #0000;border-right-color:var(--card-bg,#fff);pointer-events:none;position:absolute;top:50%;left:-10px;transform:translateY(-50%)}.rel-tooltip.tt-arrow-right:before{border-left-color:var(--border-color,#e5e7eb);right:-12px}.rel-tooltip.tt-arrow-right:after{content:"";border:5px solid #0000;border-left-color:var(--card-bg,#fff);pointer-events:none;position:absolute;top:50%;right:-10px;transform:translateY(-50%)}.rel-tt-header{background:var(--card-bg,#fff);border-bottom:1px solid var(--border-color,#e5e7eb);border-radius:5px 5px 0 0;align-items:center;gap:9px;padding:10px 12px;display:flex}.rel-tt-type-badge{letter-spacing:.4px;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-family:ui-monospace,monospace;font-size:11px;font-weight:800;display:flex}.rel-tt-header.rel-tt-blue .rel-tt-type-badge{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent);border:1px solid color-mix(in oklch, var(--accent), transparent 65%)}.rel-tt-header.rel-tt-cyan .rel-tt-type-badge{background:color-mix(in oklch, var(--info), transparent 86%);color:var(--info);border:1px solid color-mix(in oklch, var(--info), transparent 65%)}.rel-tt-header.rel-tt-green .rel-tt-type-badge{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok);border:1px solid color-mix(in oklch, var(--ok), transparent 65%)}.rel-tt-header.rel-tt-orange .rel-tt-type-badge{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn);border:1px solid color-mix(in oklch, var(--warn), transparent 65%)}.rel-tt-header-text{flex:1;min-width:0}.rel-tt-title{color:var(--text-primary,#111827);font-size:12px;font-weight:700;line-height:1.3}.rel-tt-subtitle{align-items:center;gap:4px;margin-top:3px;display:flex}.rel-tt-sub-pill{color:var(--text-muted,#9ca3af);background:var(--gray-100,#f3f4f6);border-radius:20px;padding:1px 6px;font-size:9px;font-weight:600}.rel-tt-desc{background:var(--gray-50,#f9fafb);border-bottom:1px solid var(--border-color,#e5e7eb);align-items:flex-start;gap:8px;padding:9px 12px;display:flex}.rel-tt-desc-icon{color:var(--text-muted,#9ca3af);flex-shrink:0;margin-top:2px}.rel-tt-desc-text{color:var(--text-secondary,#4b5563);font-size:11px;line-height:1.55}.rel-tt-desc-text b{color:var(--text-primary,#111827);font-weight:600}.rel-tt-tables{border-radius:0 0 5px 5px;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:9px 12px;display:grid}.rel-tt-card{background:var(--gray-50,#f9fafb);border:1px solid var(--border-color,#e5e7eb);border-radius:5px;min-width:0;padding:7px 9px}.rel-tt-card-label{text-transform:none;letter-spacing:0;color:var(--text-muted,#9ca3af);margin-bottom:3px;font-size:12px;font-weight:700}.rel-tt-card-table{color:var(--text-primary,#111827);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:11px;font-weight:700;overflow:hidden}.rel-tt-card-field{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.rel-tt-field-pill{color:var(--text-secondary,#6b7280);background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;max-width:80px;padding:0 5px;font-family:ui-monospace,Fira Code,monospace;font-size:9.5px;overflow:hidden}.rel-tt-arrow{color:var(--text-muted,#9ca3af);flex-shrink:0;justify-content:center;align-items:center;display:flex}.rel-tt-badges{flex-wrap:wrap;gap:2px;margin-top:2px;display:flex}.rel-tt-badge{letter-spacing:.2px;text-transform:uppercase;border-radius:3px;padding:0 4px;font-size:8px;font-weight:700;line-height:1.7}.rel-tt-badge.fk{color:#1e40af;background:#dbeafe}.rel-tt-badge.idx{color:#991b1b;background:#fee2e2}.rel-tt-badge.ai{color:#15803d;background:#f0fdf4}.erd-table-fields{background:#fff;padding:4px 0}.erd-field{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;transition:background .15s;display:flex;position:relative}.erd-field:last-child{border-bottom:none;border-radius:0 0 8px 8px}.erd-field-left{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.erd-field-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.erd-field-icons{flex-shrink:0;align-items:center;gap:2px;display:flex}.erd-fi-tip{background:var(--bg-3);color:var(--fg-0);border:1px solid var(--line);white-space:nowrap;pointer-events:none;opacity:0;z-index:99999;box-shadow:var(--shadow-1);border-radius:6px;padding:4px 9px;font-size:11px;font-weight:500;transition:opacity .12s;position:fixed;transform:translate(-50%,-100%)}.erd-fi-tip.visible{opacity:1}.erd-fi{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:opacity .12s;display:flex}.erd-fi.pk{color:#b45309;background:#fef3c7}.erd-fi.fk{color:#2563eb;background:#dbeafe}.erd-fi.nn{color:#6b7280;background:#f3f4f6}.erd-fi.ai{color:#059669;background:#d1fae5}.erd-fi.uq{color:#7c3aed;background:#ede9fe}.field-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:3px;padding:2px 5px;font-size:9px;font-weight:700}.field-badge.pk{background:var(--accent-yellow);color:var(--gray-900)}.erd-field-type{color:var(--text-muted);font-family:var(--font-mono);flex-shrink:0;margin-left:8px;font-size:11px}.erd-btn{position:relative}.erd-btn:after{content:attr(title);background:var(--gray-800);color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:1000;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.erd-btn:before{content:"";border:6px solid #0000;border-top-color:var(--gray-800);opacity:0;visibility:hidden;pointer-events:none;z-index:1000;transition:all .2s;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.erd-btn:hover:after,.erd-btn:hover:before{opacity:1;visibility:visible}.btn-export{position:relative}.btn-export:after{content:attr(title);background:var(--gray-800);color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:1000;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.btn-export:before{content:"";border:6px solid #0000;border-bottom-color:var(--gray-800);opacity:0;visibility:hidden;pointer-events:none;z-index:1000;transition:all .2s;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}.btn-export:hover:after,.btn-export:hover:before{opacity:1;visibility:visible}.erd-line{stroke:var(--gray-300);stroke-width:2px;fill:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.field-row{animation:.3s ease-out fadeIn}.toolbar-divider{background:var(--border-color);width:1px;height:20px;margin:0 4px}.erd-btn.btn-relation-focus.active{background:var(--primary-50,#eff6ff);color:var(--primary-600,var(--accent));border-color:var(--primary-200,#bfdbfe)}.erd-field.relation-focus-hidden{display:none!important}.erd-btn.btn-pan.active{background:var(--primary-50,#eff6ff);color:var(--primary-600,var(--accent));border-color:var(--primary-300,#93c5fd);box-shadow:inset 0 1px 3px #2563eb14}.relation-summary-drawer{width:520px}.summary-stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px;display:grid}.summary-stat-card{background:var(--gray-50);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:14px 12px;transition:all .2s;display:flex}.summary-stat-card:hover{border-color:var(--gray-300);box-shadow:0 2px 8px #00000014}.stat-icon{border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-icon.tables{color:#6366f1;background:#6366f11a}.stat-icon.relations{color:#059669;background:#10b9811a}.stat-icon.soft{color:#64748b;background:#64748b1a}.stat-info{flex-direction:column;align-items:center;gap:2px;display:flex}.stat-info .stat-number{color:var(--text-primary);font-size:20px;font-weight:700}.stat-info .stat-label{color:var(--text-secondary);font-size:11px;font-weight:500}.relation-summary-list{flex-direction:column;gap:10px;max-height:280px;display:flex;overflow-y:auto}.relation-summary-card{background:var(--card-bg);border:1px solid var(--gray-300);border-left:3px solid #94a3b8;border-radius:10px;padding:14px;transition:all .2s}.relation-summary-card:hover{border-color:var(--gray-400);box-shadow:0 2px 8px #00000014}.relation-summary-card.soft-relation{background:#22c55e0a;border-left:3px solid #22c55e}.relation-summary-card.soft-relation:hover{border-color:#22c55e}.relation-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.relation-tables{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.relation-table-name{background:var(--gray-100);color:var(--text-primary);border-radius:6px;padding:4px 10px}.relation-arrow{color:var(--text-tertiary);align-items:center;display:flex}.relation-type-badge{color:#64748b;background:#94a3b826;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.relation-type-badge.soft{color:#16a34a;background:#22c55e1f}.relation-type-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.relation-card-details{color:var(--text-secondary);align-items:center;gap:16px;font-size:12px;display:flex}.relation-field{align-items:center;gap:4px;display:flex}.relation-field code{background:var(--gray-100);font-family:var(--font-mono);color:var(--text-primary);border-radius:4px;padding:2px 6px;font-size:11px}.relation-card-footer{border-top:1px solid var(--border-color);align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.relation-status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:20px;padding:4px 10px;font-size:10px;font-weight:600}.relation-status-badge.fk{color:#64748b;background:#94a3b826}.relation-status-badge.logical{color:#16a34a;background:#22c55e1f}.relation-desc-badge{background:var(--primary-50);color:var(--primary-600);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:500}.relation-type-distribution{flex-direction:column;gap:10px;display:flex}.distribution-item{align-items:center;gap:12px;display:flex}.distribution-label{min-width:80px;color:var(--text-secondary);font-size:12px;font-weight:500}.distribution-bar-container{background:var(--gray-100);border-radius:4px;flex:1;height:8px;overflow:hidden}.distribution-bar{border-radius:4px;height:100%;transition:width .3s}.distribution-bar.one-to-many{background:#818cf8}.distribution-bar.many-to-one{background:#34d399}.distribution-bar.one-to-one{background:#fcd34d}.distribution-bar.many-to-many{background:#f9a8d4}.distribution-count{min-width:24px;color:var(--text-primary);text-align:right;font-size:12px;font-weight:600}.info-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10002;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.3s ease-out modalOverlayIn;display:flex;position:fixed;inset:0}.info-modal-overlay.info-modal-hide{animation:.3s ease-out forwards modalOverlayOut}.info-modal-container{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:700px;max-height:85vh;animation:.4s cubic-bezier(.16,1,.3,1) modalIn;display:flex;box-shadow:0 25px 80px #0000004d}.info-modal-hide .info-modal-container{animation:.3s ease-out forwards modalOut}.info-modal-header{border-bottom:1px solid var(--border-color);color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#7c3aed 100%);border-radius:20px 20px 0 0;justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.info-modal-title{align-items:center;gap:12px;display:flex}.info-modal-title h3{margin:0;font-size:18px;font-weight:700}.info-modal-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s;display:flex}.info-modal-close:hover{background:#ffffff40}.info-modal-content{flex:1;padding:24px 28px;overflow-y:auto}.info-intro{color:var(--text-secondary);background:var(--gray-50);border-left:4px solid var(--primary-500);border-radius:12px;margin-bottom:24px;padding:16px;font-size:14px;line-height:1.7}.relation-type-card{border:1px solid var(--border-color);border-radius:14px;margin-bottom:20px;transition:all .2s;overflow:hidden}.relation-type-card:hover{border-color:var(--gray-300);box-shadow:0 2px 10px #0000000f}.relation-type-header{border-bottom:1px solid var(--border-color);border-left:3px solid #0000;align-items:center;gap:12px;padding:12px 16px;display:flex}.relation-type-header.one-to-many{color:#2563eb;background:#3b82f60f;border-left-color:#3b82f6}.relation-type-header.many-to-one{color:#0891b2;background:#06b6d40f;border-left-color:#06b6d4}.relation-type-header.one-to-one{color:#16a34a;background:#22c55e0f;border-left-color:#22c55e}.relation-type-header.many-to-many{color:#ea580c;background:#f973160f;border-left-color:#f97316}.relation-type-badge{color:inherit;background:#00000012;border-radius:5px;padding:3px 9px;font-family:monospace;font-size:12px;font-weight:700}.relation-type-header h4{margin:0;font-size:15px;font-weight:600}.relation-type-body{padding:18px}.relation-type-body>p{color:var(--text-primary);margin-bottom:14px;font-size:13px;line-height:1.6}.relation-example{background:var(--gray-50);border-radius:10px;margin-bottom:14px;padding:14px}.example-label,.usage-label{text-transform:none;letter-spacing:0;color:var(--text-muted);margin-bottom:10px;font-size:12px;font-weight:700;display:block}.example-diagram{justify-content:center;align-items:center;gap:12px;margin-bottom:12px;display:flex}.example-table{border:2px solid var(--primary-500);color:var(--primary-700);background:#fff;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600}.example-arrow{color:var(--text-muted);font-family:monospace;font-size:14px;font-weight:700}.example-desc{color:var(--text-secondary);text-align:center;margin:0;font-size:12px;font-style:italic}.relation-usage ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.relation-usage li{background:var(--gray-100);color:var(--text-secondary);border-radius:6px;padding:5px 12px;font-size:12px}.relation-tip{background:var(--primary-50);color:var(--primary-700);border-radius:8px;align-items:flex-start;gap:10px;margin-top:14px;padding:12px;font-size:12px;display:flex}.relation-tip svg{color:var(--primary-600);flex-shrink:0;margin-top:2px}.relation-tip.warning{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.relation-tip.warning svg{color:#d97706}.relation-tip code{background:#0000001a;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:11px}.info-footer{border-top:1px solid var(--border-color);margin-top:10px;padding-top:20px}.info-best-practices h4{color:var(--text-primary);margin:0 0 12px;font-size:14px;font-weight:700}.info-best-practices ul{margin:0;padding:0;list-style:none}.info-best-practices li{color:var(--text-secondary);border-bottom:1px dashed var(--border-color);padding:8px 0;font-size:13px}.info-best-practices li:last-child{border-bottom:none}.info-best-practices li strong{color:var(--text-primary)}.erd-btn.btn-data-flow.active{background:var(--primary-50,#eff6ff);color:var(--primary-600,var(--accent));border-color:var(--primary-300,#93c5fd);box-shadow:inset 0 1px 3px #2563eb14}.relation-line.data-flow-active{stroke-dasharray:8 4;animation:1s linear infinite dataFlowAnimation,2s ease-in-out infinite relationGlowGray}.relation-line.data-flow-active.reverse{animation:1s linear infinite dataFlowAnimationReverse,2s ease-in-out infinite relationGlowGray}@keyframes relationGlowGray{0%,to{filter:drop-shadow(0 0 2px #94a3b8)}50%{filter:drop-shadow(0 0 6px #64748b)}}@keyframes dataFlowAnimation{0%{stroke-dashoffset:0}to{stroke-dashoffset:-24px}}@keyframes dataFlowAnimationReverse{0%{stroke-dashoffset:0}to{stroke-dashoffset:24px}}.data-flow-particle{fill:var(--primary-500);opacity:.8}.relation-line.new-relation.data-flow-active{stroke-dasharray:8 4;animation:1s linear infinite dataFlowAnimation,2s ease-in-out infinite relationGlow;stroke:light-dark(#15803d,#22c55e)!important}.relation-line.new-relation.data-flow-active.reverse{animation:1s linear infinite dataFlowAnimationReverse,2s ease-in-out infinite relationGlow}@keyframes relationGlow{0%,to{filter:drop-shadow(0 0 3px #22c55e)}50%{filter:drop-shadow(0 0 8px #22c55e)}}.erd-topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border-color);z-index:200;background:#fffffff0;align-items:center;gap:6px;height:52px;padding:0 16px;display:flex;position:absolute;top:0;left:0;right:0;box-shadow:0 1px 6px #0000000f}.dark-mode .erd-topbar{background:#1e232df0}.erd-topbar-left{flex-shrink:0;align-items:center;display:flex}.erd-topbar-title{color:var(--text-primary);align-items:center;gap:8px;display:none}.erd-topbar-title svg{color:var(--primary-600);flex-shrink:0}.erd-topbar-title span{text-overflow:ellipsis;white-space:nowrap;max-width:220px;color:var(--text-primary);font-size:13px;font-weight:600;overflow:hidden}.erd-topbar-sep{background:var(--border-color);flex-shrink:0;width:1px;height:18px;margin:0 12px;display:none}.erd-topbar-center{flex:1;justify-content:center;align-items:center;display:flex}.erd-topbar-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.erd-topbar-sk{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1e232df0;align-items:center;gap:6px;padding:0 16px;display:flex;position:absolute;inset:0}.erd-topbar-sk-spacer{flex:1}.erd-topbar-sk-right{align-items:center;gap:6px;display:flex}.erd-topbar-sk-btn{border-radius:6px;flex-shrink:0;height:30px}.erd-topbar-sk-icon{border-radius:6px;flex-shrink:0;width:30px;height:30px}.erd-topbar-sk-divider{background:var(--border-color);flex-shrink:0;width:1px;height:18px;margin:0 4px}.erd-topbar-sk-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.erd-topbar-divider{background:var(--border-color);flex-shrink:0;width:1px;height:18px;margin:0 4px}.erd-collab-zone{align-items:center;gap:8px;display:flex;position:relative}.erd-collab-dot{background:var(--gray-300);border-radius:50%;flex-shrink:0;width:7px;height:7px;transition:background-color .3s}.erd-collab-dot.online{background:#22c55e;box-shadow:0 0 0 2px #22c55e33}.erd-collab-dot.offline{background:var(--gray-300)}.erd-collab-dot.connecting{background:#f59e0b;animation:1.2s ease-in-out infinite collab-pulse}@keyframes collab-pulse{0%,to{opacity:1}50%{opacity:.4}}.erd-collab-users-btn{background:var(--gray-50);border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);border-radius:5px;align-items:center;gap:8px;padding:4px 10px 4px 4px;transition:all .2s;display:flex}.erd-collab-users-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.erd-collab-user-label{color:var(--text-secondary);white-space:nowrap;font-size:11px;font-weight:500}.erd-collab-zone .fullscreen-active-users-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:auto;transform:translateY(-8px)scale(.98)}.erd-collab-zone .fullscreen-active-users-dropdown.show{transform:translateY(0)scale(1)}.btn-export{color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-export:hover{background:var(--gray-100)}.btn-export-save{color:#16a34a}.btn-export-save:hover{background:#22c55e1a}.btn-export-download{color:var(--accent)}.btn-export-download:hover{background:#3b82f61a}.erd-btn.btn-fullscreen{width:32px;height:32px;padding:0;position:relative}.erd-btn.btn-fullscreen .icon-compress{display:none}.erd-btn.btn-fullscreen:after{content:attr(title);background:var(--gray-800);color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:1000;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;position:absolute;top:calc(100% + 8px);bottom:auto;left:50%;transform:translate(-50%)}.erd-btn.btn-fullscreen:before{content:"";border:6px solid #0000;border-bottom-color:var(--gray-800);opacity:0;visibility:hidden;pointer-events:none;z-index:1000;transition:all .2s;position:absolute;top:calc(100% + 2px);bottom:auto;left:50%;transform:translate(-50%)}.erd-btn.btn-fullscreen:hover:after,.erd-btn.btn-fullscreen:hover:before{opacity:1;visibility:visible}.fullscreen-mode .erd-btn.btn-fullscreen .icon-expand{display:none}.fullscreen-mode .erd-btn.btn-fullscreen .icon-compress{display:block}.fullscreen-mode{background:var(--content-bg);z-index:9999!important;width:100vw!important;height:100vh!important;position:fixed!important;inset:0!important}.fullscreen-mode .erd-container{height:100vh!important;min-height:100vh!important}.fullscreen-mode .erd-toolbar{bottom:56px}.fullscreen-mode .erd-topbar-title,.fullscreen-mode .erd-topbar-sep{display:flex}.fullscreen-active .header,.fullscreen-active .sidebar,.fullscreen-active .table-details>:not(.table-references){display:none!important}.fullscreen-active .app-right{width:100vw}.fullscreen-active .main-content{height:100vh;padding:0}.fullscreen-active .table-references{z-index:9999;height:100vh;position:fixed;inset:0}.fullscreen-active .section-header{display:none}.erd-topbar .btn-export{gap:5px;padding:6px 10px;font-size:12px}.erd-topbar .btn-version-dropdown,.erd-topbar .btn-version-info-global{padding:5px 9px;font-size:12px}.fullscreen-connection-status{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;display:flex}.fullscreen-connection-status .connection-indicator{border-radius:50%;width:7px;height:7px;transition:background-color .3s}.fullscreen-connection-status .connection-status-text{color:var(--text-secondary);font-size:11px;font-weight:500}.fullscreen-active-users{position:relative}.fullscreen-active-users-btn{background:var(--gray-50);border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);border-radius:8px;align-items:center;gap:6px;padding:4px 8px 4px 4px;transition:all .2s;display:flex}.fullscreen-active-users-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.active-users-avatars{align-items:center;display:flex}.active-user-avatar-mini{color:#fff;border:2px solid var(--bg-1);letter-spacing:.02em;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-right:-4px;font-size:9px;font-weight:700;display:flex}.active-user-avatar-mini:last-child{margin-right:0}.fullscreen-active-users-count{background:var(--primary-500);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:2px;padding:0 5px;font-size:10px;font-weight:600;display:flex}.fullscreen-active-users-dropdown{background:var(--bg-1);border:1px solid var(--line);width:280px;box-shadow:var(--shadow-2);opacity:0;visibility:hidden;z-index:1000;border-radius:12px;transition:all .2s cubic-bezier(.16,1,.3,1);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-8px)scale(.98)}.fullscreen-active-users-dropdown.show{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.export-watermark{color:var(--text-secondary);z-index:1000;background:#ffffffe6;border-radius:6px;padding:8px 16px;font-size:12px;font-weight:500;display:none;position:absolute;bottom:20px;right:20px;box-shadow:0 2px 8px #0000001a}.drawer-overlay{z-index:150;opacity:0;visibility:hidden;background:#0000004d;transition:all .3s;position:absolute;inset:0}.drawer-overlay.active{opacity:1;visibility:visible}.relation-drawer{background:var(--card-bg);z-index:200;flex-direction:column;width:500px;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;right:0;transform:translate(100%)}.relation-drawer.active{transform:translate(0)}.drawer-header{background:var(--card-bg);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.drawer-title{align-items:center;gap:14px;display:flex}.drawer-icon{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.drawer-icon-blue{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent)}.drawer-icon-green{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.drawer-icon-red{background:color-mix(in oklch, var(--err), transparent 86%);color:var(--err)}.drawer-icon-amber{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.drawer-icon-cyan{background:color-mix(in oklch, var(--info), transparent 86%);color:var(--info)}.drawer-icon-purple{background:color-mix(in oklch, var(--purple), transparent 86%);color:var(--purple)}.drawer-icon-emerald{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.drawer-title-text h4{color:var(--text-primary);margin:0 0 2px;font-size:15px;font-weight:700}.drawer-subtitle{color:var(--text-secondary);margin:0;font-size:12px}.drawer-close{border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.drawer-close:hover{background:var(--surface);color:var(--text-primary)}.drawer-content{scroll-behavior:smooth;flex:1;overflow:hidden auto}.drawer-content::-webkit-scrollbar{width:6px}.drawer-content::-webkit-scrollbar-track{background:var(--gray-100)}.drawer-content::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.drawer-content::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.drawer-section{border-bottom:1px solid var(--border-color);padding:20px 24px}.section-title{color:var(--text-secondary);text-transform:none;letter-spacing:0;align-items:center;gap:10px;margin-bottom:16px;font-size:13px;font-weight:600;display:flex}.section-title svg{color:var(--primary-500)}.relation-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;margin-top:5px;display:flex}.form-group label{color:var(--text-secondary);font-size:12px;font-weight:600}.form-select{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%236B7280' stroke-width='1.5'/%3E%3C/svg%3E") right 12px center no-repeat;border-radius:8px;padding:10px 36px 10px 14px;font-size:13px;transition:all .2s}.form-select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.form-select:disabled{background-color:var(--gray-100);cursor:not-allowed;color:var(--text-muted)}.relation-direction{justify-content:center;align-items:center;gap:12px;padding:8px 0;display:flex}.direction-line{background:linear-gradient(90deg, transparent, var(--primary-300), transparent);flex:1;height:2px}.direction-icon{background:var(--primary-100);width:40px;height:40px;color:var(--primary-600);border-radius:50%;justify-content:center;align-items:center;display:flex}.btn-add-relation{background:var(--primary-500);color:#fff;cursor:pointer;border:none;border-radius:9px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:8px;padding:11px 20px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s;display:flex}.btn-add-relation:hover{background:var(--primary-600);box-shadow:0 2px 8px #2563eb2e}.btn-add-relation:active{background:var(--primary-700)}.btn-add-relation:disabled{background:var(--gray-300);cursor:not-allowed;box-shadow:none}.relation-status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;align-items:center;margin-left:8px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.relation-status-badge.logical{color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);box-shadow:0 1px 3px #22c55e4d}.relation-status-badge.fk{color:#fff;background:linear-gradient(135deg,#6b7280 0%,#4b5563 100%);box-shadow:0 1px 3px #6b72804d}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20000;background:#00000080;justify-content:center;align-items:center;animation:.2s ease-out modalOverlayIn;display:flex;position:fixed;inset:0}.modal-overlay.modal-hide{animation:.2s ease-out forwards modalOverlayOut}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalOverlayOut{0%{opacity:1}to{opacity:0}}.modal-container{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:400px;padding:32px;animation:.3s cubic-bezier(.16,1,.3,1) modalIn;box-shadow:0 20px 60px #0000004d}.modal-hide .modal-container{animation:.2s ease-out forwards modalOut}@keyframes modalIn{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes modalOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.modal-icon{margin-bottom:20px}.modal-title{color:var(--text-primary);margin:0 0 12px;font-size:20px;font-weight:700}.modal-message{color:var(--text-secondary);margin:0 0 24px;font-size:14px;line-height:1.6}.modal-message strong{color:var(--text-primary)}.modal-message .warning-text{color:var(--accent-red);font-weight:500}.modal-actions{justify-content:center;gap:12px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:10px;min-width:100px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s}.modal-btn-cancel{background:var(--gray-100);color:var(--text-primary)}.modal-btn-cancel:hover{background:var(--gray-200)}.modal-btn-primary{background:var(--primary-600);color:#fff}.modal-btn-primary:hover{background:var(--primary-700);transform:translateY(-1px)}.modal-btn-danger{background:var(--accent-red);color:#fff}.modal-btn-danger:hover{background:#dc2626;transform:translateY(-1px)}.modal-form-container{text-align:left;max-width:520px;padding:0}.modal-form-header{border-bottom:1px solid var(--border-color);align-items:center;gap:14px;padding:20px 24px;display:flex}.modal-form-header .modal-title{margin:0;font-size:17px}.modal-icon-sm{flex-shrink:0}.modal-icon-sm svg{width:28px;height:28px}.modal-close-btn{width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;transition:all .15s;display:flex}.modal-close-btn:hover{background:var(--gray-100);color:var(--text-primary)}.modal-form-body{padding:20px 24px}.modal-form-group{margin-bottom:16px}.modal-form-group:last-child{margin-bottom:0}.modal-form-label{color:var(--text-primary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.modal-form-input,.modal-form-textarea{border:1.5px solid var(--border-color);width:100%;color:var(--text-primary);background:var(--gray-50);resize:vertical;box-sizing:border-box;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:14px;transition:all .2s}.modal-form-input:focus,.modal-form-textarea:focus{border-color:var(--primary-500);background:#fff;outline:none;box-shadow:0 0 0 3px #3b82f61a}.modal-form-container .modal-actions{border-top:1px solid var(--border-color);justify-content:flex-end;padding:16px 24px}.searchable-select-wrapper{position:relative}.searchable-select-wrapper.disabled{opacity:.6;pointer-events:none}.searchable-select-display{border:1px solid var(--border-color);background:var(--card-bg);cursor:pointer;height:38px;color:var(--text-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:0 12px;font-size:13px;transition:border-color .15s,box-shadow .15s;display:flex}.searchable-select-display:hover{border-color:var(--primary-400)}.searchable-select-wrapper.open .searchable-select-display{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.searchable-select-display .selected-text{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.searchable-select-display .chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s}.searchable-select-wrapper.open .chevron{transform:rotate(180deg)}.searchable-select-dropdown{background:var(--card-bg);border:1px solid var(--border-color);z-index:1000;opacity:0;visibility:hidden;border-radius:10px;transition:all .2s;position:absolute;top:calc(100% + 4px);left:0;right:0;transform:translateY(-10px);box-shadow:0 10px 40px #00000026}.searchable-select-wrapper.open .searchable-select-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.search-box-wrapper{border-bottom:1px solid var(--border-color);background:var(--gray-50);color:var(--text-tertiary);align-items:center;gap:8px;padding:9px 12px;display:flex}.search-box-wrapper svg{color:var(--text-muted);flex-shrink:0}.searchable-select-search{color:var(--text-primary);border:none;outline:none;flex:1;font-size:13px}.searchable-select-search::placeholder{color:var(--text-muted)}.searchable-select-options{max-height:200px;padding:6px;overflow-y:auto}.searchable-select-option{color:var(--text-primary);cursor:pointer;border-radius:6px;padding:10px 12px;font-size:13px;transition:background .15s}.searchable-select-option:hover{background:var(--gray-100)}.searchable-select-option.selected{background:var(--primary-100);color:var(--primary-700)}.searchable-select-option.disabled{color:var(--text-muted);cursor:not-allowed}.no-options{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.table-cards-list{flex-direction:column;gap:8px;display:flex}.tc-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;display:flex}.tc-empty svg{opacity:.32}.tc-empty p{color:var(--text-secondary);margin:0;font-size:13px}.tc-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.tc-card:hover{border-color:var(--gray-300);box-shadow:0 2px 8px #0000000f}.tc-card-locked{background:var(--gray-50,#f8fafc)}.tc-card-top{align-items:center;gap:11px;padding:12px 14px 10px;display:flex}.tc-card-icon{width:34px;height:34px;color:var(--accent);background:#3b82f61a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tc-card-icon-locked{color:light-dark(#64748b,#94a3b8);background:#64748b1a}.tc-card-meta{flex:1;min-width:0}.tc-card-name-row{align-items:center;gap:7px;min-width:0;display:flex}.tc-card-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.tc-card-stats{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.tc-rel-count{color:var(--primary-500);font-weight:500}.tc-locked-badge{text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#64748b1a;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.tc-card-fields{border-bottom:1px solid var(--border-subtle,#0000000f);padding:0 14px 6px}.tc-field{border-bottom:1px solid var(--border-subtle,#0000000a);align-items:center;gap:8px;padding:4px 0;display:flex}.tc-field:last-child{border-bottom:none}.tc-field-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.tc-field-type{color:var(--text-muted);flex-shrink:0;font-family:monospace;font-size:11px}.tc-field-badges{flex-shrink:0;gap:3px;display:flex}.tc-badge{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-family:monospace;font-size:9px;font-weight:700}.tc-badge-pk{color:#b45309;background:#f59e0b24}.tc-badge-fk{color:#1d4ed8;background:#3b82f624}.tc-badge-nn{color:#64748b;background:#64748b1f}.tc-badge-uq{color:var(--purple);background:#8b5cf624}.tc-field-more{color:var(--text-muted);padding:5px 0 3px;font-size:11px;font-style:italic}.tc-locked-msg{color:var(--text-secondary);border-top:1px solid var(--border-subtle,#0000000f);background:#64748b0d;align-items:center;gap:8px;padding:9px 14px;font-size:11px;display:flex}.tc-locked-msg svg{color:light-dark(#64748b,#94a3b8);flex-shrink:0}.tc-btn{cursor:pointer;border:none;border-top:1px solid var(--border-subtle,#0000000f);justify-content:center;align-items:center;gap:7px;width:100%;padding:10px 14px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.tc-btn-add{color:#16a34a;background:#22c55e14}.tc-btn-add:hover{background:#22c55e26}.tc-btn-remove{color:#dc2626;background:#ef444412}.tc-btn-remove:hover{background:#ef444424}.table-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;transition:all .2s;overflow:hidden}.table-card:hover{border-color:var(--primary-300);box-shadow:0 4px 12px #00000014}.table-card-header{color:#fff;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:600;display:flex}.table-card-header.blue{background:var(--table-blue)}.table-card-header.cyan{background:var(--table-cyan)}.table-card-header.teal{background:var(--table-teal)}.table-card-header.indigo{background:var(--table-indigo)}.table-card-header.purple{background:#8b5cf6}.table-card-header.orange{background:#f97316}.table-card-header.green{background:var(--table-green)}.table-card-header.red{background:var(--table-red)}.table-card-header.pink{background:var(--table-pink)}.table-card-header.amber{background:var(--table-amber)}.table-card-header.slate{background:var(--table-slate)}.table-card-fields{border-bottom:1px solid var(--border-color);padding:10px 14px}.table-card-field{align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.table-card-field .field-name{color:var(--text-primary);font-weight:500}.table-card-field .field-type{color:var(--text-muted);font-family:monospace;font-size:11px}.table-card-field .badge{border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700}.table-card-field .badge.pk{background:var(--accent-yellow);color:var(--gray-900)}.table-card-field .badge.fk{background:var(--primary-500);color:#fff}.table-card-field .badge.nn{background:var(--gray-200);color:var(--gray-600)}.table-card-more{color:var(--text-muted);padding:6px 0;font-size:11px;font-style:italic}.table-card-info{border-bottom:1px solid var(--border-color);gap:16px;padding:10px 14px;display:flex}.table-card-info .info-item{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.table-card-info .info-item.has-relations{color:var(--primary-600)}.btn-add-table{cursor:pointer;background:var(--accent-green);color:#fff;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-add-table:hover{background:#16a34a}.btn-remove-table{cursor:pointer;background:var(--gray-100);width:100%;color:var(--accent-red);border:none;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.btn-remove-table:hover{background:var(--accent-red);color:#fff}.add-table-btn-wrapper{position:relative}.erd-btn.btn-add-table-toolbar.popup-open{color:light-dark(#15803d,#4ade80);background:#22c55e2e;border-color:#4ade8059}.erd-btn.btn-remove-table-toolbar.popup-open{color:light-dark(#b91c1c,#f87171);background:#ef444426;border-color:#f871714d}.erd-btn.btn-relation-info.popup-open,.erd-btn.btn-relation-summary.popup-open,.erd-btn.btn-sql-generator.popup-open{color:var(--text-primary);background:var(--gray-100);border-color:var(--border-color)}#relationPopup .relation-status-badge{letter-spacing:.04em;box-shadow:none;background:0 0;border-radius:4px;flex-shrink:0;margin-left:3px;padding:1px 5px;font-size:9.5px;font-weight:700}#relationPopup .relation-status-badge.fk{color:var(--text-muted);background:var(--gray-100);border:1px solid var(--border-color)}#relationPopup .relation-status-badge.logical{color:#16a34a;background:#22c55e17;border:1px solid #22c55e38}#relationPopup .relation-status-badge.fk{color:var(--fg-3);background:var(--bg-2);border-color:var(--line)}#relationPopup .relation-status-badge.logical{color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, transparent);border-color:color-mix(in srgb, var(--ok) 25%, transparent)}.erd-btn.btn-relation.popup-open{color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}#relationPopup .rel-type-badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:color-mix(in srgb, var(--accent) 25%, transparent)}.table-card.protected{border-color:var(--primary-200);background:var(--primary-50)}.table-card.protected .table-card-header{position:relative}.protected-badge{text-transform:uppercase;letter-spacing:.5px;background:#ffffff40;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700}.protected-message{background:linear-gradient(135deg, var(--primary-50) 0%, var(--primary-100) 100%);color:var(--primary-700);border-top:1px solid var(--primary-200);align-items:center;gap:10px;padding:14px;font-size:12px;font-weight:500;display:flex}.protected-message svg{color:var(--primary-600);flex-shrink:0}.empty-state{color:var(--text-muted);flex-direction:column;align-items:center;padding:40px 20px;display:flex}.empty-state svg{opacity:.5;margin-bottom:12px}.empty-state p{margin:0;font-size:14px}.search-input-wrapper{background:var(--gray-100);border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;transition:all .2s;display:flex}.search-input-wrapper:focus-within{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);background:#fff}.search-input-wrapper svg{color:var(--text-muted);flex-shrink:0}.search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:14px}.search-input::placeholder{color:var(--text-muted)}.relation-line.highlighted{stroke:var(--primary-500)!important;stroke-width:3px!important}.wiki-container{margin:0 auto}.wiki-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.wiki-header h2{color:var(--text-primary);font-size:24px;font-weight:700}.btn-edit-wiki{background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;appearance:none;border-radius:8px;align-items:center;gap:8px;padding:7px 14px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.btn-edit-wiki:hover{background:var(--gray-50);border-color:var(--primary-500);color:var(--primary-600)}.wiki-content{flex-direction:column;gap:16px;display:flex}.wiki-card{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.wiki-card-header{border-bottom:1px solid var(--line-soft);color:var(--fg-2);align-items:center;gap:8px;padding:12px 16px;display:flex}.wiki-card-header svg{color:var(--fg-2);flex-shrink:0}.wiki-card-header h3{color:var(--fg-0);flex:1;margin:0;font-size:13px;font-weight:600}.btn-edit-card{border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-muted);cursor:pointer;appearance:none;background:0 0;border-radius:7px;justify-content:center;align-items:center;margin-left:auto;transition:all .15s;display:flex}.btn-edit-card:hover{background:var(--gray-100);border-color:var(--gray-300);color:var(--text-primary)}.btn-edit-card svg{color:inherit!important}.wiki-card-content{padding:16px}.wiki-info-layout{grid-template-columns:1fr 260px;align-items:start;gap:20px;display:grid}@media (max-width:960px){.wiki-info-layout{grid-template-columns:1fr}}.wiki-section-label{color:var(--fg-2);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.wiki-meta-panel,.wiki-desc-block{flex-direction:column;display:flex}.wiki-desc-empty{background:var(--gray-50);border:1px dashed var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;min-height:72px;padding:14px 16px;transition:background .15s,border-color .15s;display:flex}.wiki-desc-empty:hover{background:var(--primary-50,#3b82f60a);border-color:var(--primary-300)}.wiki-desc-empty svg{color:var(--primary-400,#60a5fa);opacity:.7;flex-shrink:0}.wiki-desc-empty span{color:var(--text-muted);font-size:12.5px}.wiki-description{background:var(--gray-50);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;min-height:72px;margin:0;padding:12px 14px;transition:background .15s,border-color .15s;position:relative}.wiki-description:hover .wiki-desc-edit-hint{opacity:1}.wiki-description-text{color:var(--fg-0);white-space:pre-line;margin:0;padding-right:64px;font-size:13.5px;line-height:1.75}.wiki-desc-edit-hint{color:var(--primary-500);background:var(--card-bg);border:1px solid var(--primary-200,#bfdbfe);opacity:0;pointer-events:none;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;transition:opacity .15s;display:inline-flex;position:absolute;top:10px;right:12px}.wiki-desc-editor{border:1.5px solid var(--primary-400);background:var(--card-bg);border-radius:8px;flex-direction:column;gap:0;display:flex;overflow:hidden;box-shadow:0 0 0 3px #3b82f61a}.wiki-editor-fmtbar{background:var(--gray-50);border-bottom:1px solid var(--border-color);align-items:center;gap:2px;padding:6px 10px;display:flex}.wiki-fmt-btn{width:28px;height:26px;color:var(--text-secondary);cursor:pointer;appearance:none;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.wiki-fmt-btn strong{font-size:13px;font-weight:700}.wiki-fmt-btn em{font-size:13px;font-style:italic;font-weight:500}.wiki-fmt-btn u{font-size:13px;font-weight:500;text-decoration:underline}.wiki-fmt-btn.active{background:var(--primary-50,#3b82f614);border-color:var(--primary-200,#bfdbfe);color:var(--primary-600)}.wiki-fmt-divider{background:var(--border-color);flex-shrink:0;width:1px;height:16px;margin:0 6px}.wiki-fmt-hint{color:var(--text-muted);opacity:.8;margin-left:2px;font-size:11px}.wiki-desc-textarea{color:#303030;background:var(--card-bg);box-sizing:border-box;word-break:break-word;white-space:pre-wrap;border:none;outline:none;width:100%;min-height:96px;padding:12px 14px;font-family:inherit;font-size:13.5px;line-height:1.75}.wiki-desc-textarea:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}.wiki-desc-textarea strong,.wiki-desc-textarea b{font-weight:700}.wiki-desc-textarea em,.wiki-desc-textarea i{font-style:italic}.wiki-desc-toolbar{background:var(--gray-50);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.wiki-desc-hint{color:var(--text-muted);flex-shrink:0;align-items:center;gap:2px;font-size:11px;display:flex}.wiki-desc-hint kbd{background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-secondary);box-shadow:0 1px 0 var(--border-color);border-radius:4px;padding:1px 5px;font-family:inherit;font-size:10px;display:inline-block}.wiki-desc-actions{gap:6px;display:flex}.wiki-desc-btn{border:1px solid var(--border-color);cursor:pointer;appearance:none;border-radius:6px;align-items:center;padding:5px 14px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.wiki-desc-btn-cancel{background:var(--card-bg);color:var(--text-secondary)}.wiki-desc-btn-save{background:var(--primary-600);color:#fff;border-color:var(--primary-600)}.wiki-desc-btn-save:hover:not(:disabled){background:var(--primary-700);border-color:var(--primary-700)}.wiki-desc-btn-save:disabled{opacity:.6;cursor:not-allowed}.meta-label{color:var(--fg-2);align-items:center;gap:5px;font-size:12px;font-weight:500;display:flex}.meta-label svg{color:var(--fg-2);flex-shrink:0}.ownership-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.ownership-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.ownership-label{color:var(--fg-2);align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.ownership-label svg{color:var(--fg-2);flex-shrink:0}.ownership-value{flex-wrap:wrap;align-items:center;gap:6px;min-height:28px;display:flex}.ownership-value.user{align-items:center;gap:10px;display:flex}.ownership-value.user img{border-radius:50%;width:30px;height:30px}.ownership-value.user span{color:var(--text-primary);font-size:13px;font-weight:500}.ownership-empty{color:var(--text-muted);font-size:12px;font-style:italic}.wiki-card-edit-btn{border:1px solid var(--primary-200,#bfdbfe);background:var(--card-bg);color:var(--primary-500);cursor:pointer;opacity:0;pointer-events:none;border-radius:5px;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:500;transition:opacity .15s,background .15s;display:inline-flex}.wiki-card-edit-btn svg{flex-shrink:0;color:inherit!important}.fed-overlay{z-index:10000;opacity:0;pointer-events:none;background:#00000047;transition:opacity .24s;position:fixed;inset:0}.fed-overlay.open{opacity:1;pointer-events:all}.fed-drawer{width:420px;max-width:100vw;box-shadow:-1px 0 0 var(--line), -4px 0 24px #0000001a;background:#fff;flex-direction:column;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.fed-overlay.open .fed-drawer{transform:translate(0)}.fed-drawer{background:var(--bg-0);box-shadow:-1px 0 0 var(--line), -4px 0 24px #0006}.fed-header{border-bottom:1px solid var(--line);border-bottom-color:var(--line);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px;display:flex}.fed-header-icon{width:36px;height:36px;color:var(--accent);background:#f0f6ff;background:var(--bg-2);border:1px solid #388bfd33;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.fed-header-text{flex:1;min-width:0}.fed-header-text h3{color:var(--fg-0);text-overflow:ellipsis;white-space:nowrap;margin:0 0 2px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:14px;font-weight:600;overflow:hidden}.fed-header-text p{color:var(--fg-2);letter-spacing:.01em;margin:0;font-size:11px;font-weight:500}.fed-close{width:30px;height:30px;color:var(--fg-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.fed-close{color:var(--fg-2)}.fed-close:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.fed-body{flex-direction:column;flex:1;gap:24px;padding:24px 20px;display:flex;overflow-y:auto}.fed-field-group{flex-direction:column;gap:6px;display:flex}.fed-label{color:var(--fg-2);letter-spacing:.01em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.fed-label svg{color:inherit;flex-shrink:0}.fed-textarea{border:1px solid var(--line);width:100%;color:var(--fg-0);resize:vertical;box-sizing:border-box;background:#fff;border-radius:8px;min-height:110px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.65;transition:border-color .15s,box-shadow .15s}.fed-textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0969da1f}.fed-textarea{background:var(--bg-0);border-color:var(--line);color:var(--fg-0)}.fed-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}.fed-textarea::placeholder{color:var(--fg-3)}.fed-input{border:1px solid var(--line);width:100%;color:var(--fg-0);box-sizing:border-box;background:#fff;border-radius:8px;padding:9px 12px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px;transition:border-color .15s,box-shadow .15s}.fed-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #0969da1f}.fed-input{background:var(--bg-0);border-color:var(--line);color:var(--fg-0)}.fed-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}.fed-input::placeholder{color:var(--fg-3);font-family:inherit}.fed-hint{color:var(--fg-3);margin-top:2px;font-size:11px}.fed-footer{border-top:1px solid var(--line);border-top-color:var(--line);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.fed-btn{cursor:pointer;border:1px solid;border-radius:7px;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.fed-btn-cancel:hover{background:var(--bg-3);border-color:#bac0c7}.fed-btn-cancel{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.fed-btn-cancel:hover{background:var(--line)}.fed-btn-save{color:#fff;background:#1f883d;border-color:#1f232826}.fed-btn-save{background:var(--ok);border-color:#f0f6fc1a}.fed-btn-save:hover{background:var(--ok)}.fed-btn-save.loading{opacity:.7;pointer-events:none}.access-list{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.access-item{background:var(--gray-50);border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.access-role{color:var(--text-primary);font-size:14px;font-weight:600}.access-permissions{gap:8px;display:flex}.perm{text-transform:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.perm.read{background:color-mix(in oklch, var(--info), transparent 86%);color:var(--info)}.perm.write{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.perm.delete{background:color-mix(in oklch, var(--err), transparent 86%);color:var(--err)}.security-notes{background:color-mix(in oklch, var(--warn), transparent 86%);border-left:4px solid #f59e0b;border-radius:10px;padding:16px}.security-notes h4{color:#92400e;margin:0 0 8px;font-size:13px;font-weight:600}.security-notes ul{margin:0;padding-left:20px}.security-notes li{color:#78350f;margin-bottom:4px;font-size:13px}.table-details{border-bottom:1px solid var(--border-color);padding:0}.tdp-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;display:flex}.detail-type-badge{background:var(--gray-100);color:var(--text-muted);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.protected-table-badge{color:var(--primary-700);background:linear-gradient(135deg,#dbeafe 0%,#e0e7ff 100%);border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:11px;font-weight:600;display:flex}.detail-actions{gap:10px;display:flex}.detail-description{margin:0}.detail-description p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.fields-table-container{border:1px solid var(--line);background:#fff;border-radius:8px;margin:16px 0 0;overflow:hidden}.fields-table{border-collapse:collapse;width:100%}.fields-table th{text-align:left;color:var(--fg-2);background:var(--bg-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 16px;font-size:12px;font-weight:600}.fields-table td{color:var(--text-primary);border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:12px 16px;font-size:13px}.fields-table tr:last-child td{border-bottom:none}.fields-table tr:hover{background:var(--gray-50)}.field-badge-cell{gap:4px;display:flex}.field-badge{border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.field-badge.fk{color:#1e40af;background:#dbeafe}.field-badge.nn{color:#991b1b;background:#fee2e2}.field-badge.ai{color:#065f46;background:#d1fae5}.field-name-cell{font-family:var(--font-mono);color:var(--text-primary);font-size:12.5px;font-weight:500}.field-type-cell{font-family:var(--font-mono);color:var(--primary-600);background:var(--primary-50);border-radius:4px;padding:4px 8px;font-size:12px}.field-nullable{font-size:12px}.field-nullable.yes{color:var(--text-muted)}.field-nullable.no{color:var(--accent-red);font-weight:600}.field-default{color:var(--text-muted);font-family:monospace;font-size:12px}.field-desc-cell{flex-direction:column;gap:4px;max-width:320px;display:flex}.field-description{color:var(--text-secondary);font-size:13px;line-height:1.4}.field-description.empty{color:var(--text-muted);font-style:italic}.field-example{color:var(--text-muted);font-family:SF Mono,Consolas,Monaco,monospace;font-size:11px}.field-example:empty{display:none}.field-desc-row{align-items:center;gap:6px;display:flex}.field-info-icon{color:var(--text-muted);cursor:pointer;flex-shrink:0;align-items:center;transition:color .2s;display:inline-flex;position:relative}.field-info-icon:hover{color:var(--primary-500)}.field-info-tooltip{background:var(--gray-800);color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:9999;border-radius:8px;flex-direction:column;gap:6px;padding:10px 14px;font-size:12px;transition:opacity .2s,visibility .2s;display:flex;position:fixed;box-shadow:0 4px 12px #00000026}.field-info-tooltip:before{content:"";border:6px solid #0000;border-right-color:var(--gray-800);position:absolute;top:50%;right:100%;transform:translateY(-50%)}.field-info-icon:hover .field-info-tooltip{opacity:1;visibility:visible}.field-info-row{align-items:center;gap:8px;display:flex}.field-info-label{color:#fff9;min-width:75px;font-size:11px;font-weight:500}.field-info-value{color:#fff;font-size:12px;font-weight:600}.field-actions-cell{gap:6px;display:flex}.field-action-btn{border:1px solid var(--primary-200,#bfdbfe);background:var(--card-bg);color:var(--primary-500);cursor:pointer;white-space:nowrap;opacity:0;pointer-events:none;border-radius:5px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;transition:opacity .15s,background .15s;display:inline-flex}.field-action-btn svg{flex-shrink:0;color:inherit!important}.form-input,.form-textarea{border:1px solid var(--border-color);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 14px;font-size:14px;transition:all .2s}.form-input:focus,.form-textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.form-textarea{resize:vertical;font-family:inherit}@media (max-width:1200px){.ownership-grid{grid-template-columns:1fr}}.sidebar-backdrop{display:none}@media (max-width:768px){.ide-shell .ide-body .sidebar{z-index:960;height:auto;box-shadow:var(--shadow-2);visibility:hidden;opacity:0;transition:opacity .18s,transform .18s,visibility 0s linear .18s;position:fixed;top:42px;bottom:0;left:48px;transform:translate(-12px);width:min(300px,100vw - 64px)!important;min-width:0!important}.ide-shell .ide-body .sidebar.is-open{visibility:visible;opacity:1;transition:opacity .18s,transform .18s;transform:none}.sidebar.is-open~.sidebar-backdrop{z-index:950;background:var(--backdrop);display:block;position:fixed;inset:42px 0 0 48px}.sidebar-resize-handle{display:none}}@media (max-width:768px) and (prefers-reduced-motion:reduce){.ide-shell .ide-body .sidebar,.ide-shell .ide-body .sidebar.is-open{transition:none}}.global-loader{z-index:99999;background:color-mix(in srgb, var(--bg-0) 82%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1;visibility:visible;place-items:center;transition:opacity .35s,visibility .35s;display:grid;position:fixed;inset:0}.global-loader.hidden{opacity:0;visibility:hidden;pointer-events:none}.ldr-card{border:1px solid var(--line);background:var(--bg-1);width:208px;box-shadow:var(--shadow-2);border-radius:16px;flex-direction:column;align-items:center;padding:26px 24px 0;transition:transform .35s;animation:.35s cubic-bezier(.2,.8,.2,1) both ldrIn;display:flex;position:relative;overflow:hidden}.global-loader.hidden .ldr-card{transform:scale(.97)}@keyframes ldrIn{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}.ldr-mark{place-items:center;width:72px;height:72px;margin-bottom:14px;display:grid;position:relative}.ldr-mark:before{content:"";background:radial-gradient(circle, color-mix(in oklch, var(--accent), transparent 78%) 0%, transparent 70%);border-radius:50%;animation:2.4s ease-in-out infinite ldrHalo;position:absolute;inset:4px}.ldr-mark svg{position:relative}.ldr-db-body{stroke:color-mix(in oklch, var(--fg-3), transparent 45%)}.ldr-db-layer{stroke:color-mix(in oklch, var(--fg-3), transparent 45%);animation:1.8s ease-in-out infinite ldrLayer}.ldr-db-layer.l2{animation-delay:.18s}.ldr-db-layer.l3{animation-delay:.36s}.ldr-db-layer.l4{animation-delay:.54s}@keyframes ldrLayer{0%,to{stroke:color-mix(in oklch, var(--fg-3), transparent 45%)}30%,55%{stroke:var(--accent)}}@keyframes ldrHalo{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}.ldr-wordmark{font-family:var(--font-mono);letter-spacing:-.02em;font-size:15px;font-weight:700;line-height:1}.ldr-wordmark .wm-db{color:var(--fg-0)}.ldr-wordmark .wm-dux{color:var(--accent)}.ldr-text{color:var(--fg-2);letter-spacing:.01em;align-items:baseline;gap:3px;margin:8px 0 22px;font-size:12px;display:inline-flex}.ldr-dots{gap:3px;display:inline-flex}.ldr-dots i{opacity:.2;background:currentColor;border-radius:50%;width:3px;height:3px;animation:1.2s ease-in-out infinite ldrDot}.ldr-dots i:nth-child(2){animation-delay:.15s}.ldr-dots i:nth-child(3){animation-delay:.3s}@keyframes ldrDot{0%,80%,to{opacity:.2}40%{opacity:1}}.ldr-progress{background:var(--tint-2);height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.ldr-progress span{background:linear-gradient(90deg, transparent, var(--accent), transparent);border-radius:2px;width:40%;animation:1.4s cubic-bezier(.45,0,.55,1) infinite ldrBar;position:absolute;top:0;bottom:0}@keyframes ldrBar{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:reduce){.ldr-card,.ldr-mark:before,.ldr-db-layer,.ldr-dots i,.ldr-progress span{animation:none}.ldr-db-layer.l1,.ldr-db-layer.l2{stroke:var(--accent)}.ldr-dots i{opacity:.6}.ldr-progress span{left:30%}}@keyframes skelShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg-3) 25%, #f3f5f8 50%, var(--bg-3) 75%);background-size:400% 100%;background:linear-gradient(90deg, var(--bg-2) 25%, var(--bg-3) 50%, var(--bg-2) 75%);background-size:400% 100%;border-radius:4px;animation:1.6s ease-in-out infinite skelShimmer}.sidebar-skeleton{flex-direction:column;gap:0;padding:6px 0 8px;display:flex}.sk-search-bar{border-radius:6px;height:30px;margin:0 8px 14px}.sk-schema-group{margin-bottom:4px}.sk-schema-hd{align-items:center;gap:8px;margin-bottom:2px;padding:5px 10px;display:flex}.sk-schema-icon{border-radius:4px;flex-shrink:0;width:20px;height:20px}.sk-schema-name{border-radius:3px;height:11px}.sk-schema-badge{border-radius:10px;flex-shrink:0;width:22px;height:16px;margin-left:auto}.sk-tables{flex-direction:column;gap:3px;padding:0 8px 6px 36px;display:flex}.sk-table-row{border-radius:6px;height:26px}.sk-stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.sk-stat-card{border:1px solid var(--line);background:#fff;background:var(--bg-1);border-color:var(--line);border-radius:12px;align-items:center;gap:16px;padding:20px;display:flex}.sk-stat-icon-box{border-radius:10px;flex-shrink:0;width:44px;height:44px}.sk-stat-lines{flex-direction:column;flex:1;gap:7px;display:flex}.sk-stat-num{border-radius:4px;width:48px;height:22px}.sk-stat-lbl{border-radius:3px;width:64px;height:11px}.sk-cards-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.sk-card{border:1px solid var(--line);background:#fff;background:var(--bg-1);border-color:var(--line);border-radius:12px;padding:20px 24px}.sk-card-title{border-radius:3px;width:110px;height:13px;margin-bottom:18px}.sk-card-lines{flex-direction:column;gap:10px;display:flex}.sk-card-line{border-radius:3px;height:12px}.sk-tdp-content{flex-direction:column;gap:16px;display:flex}.sk-tdp-card{border:1px solid var(--line);background:#fff;background:var(--bg-1);border-color:var(--line);border-radius:8px;overflow:hidden}.sk-tdp-card-header{border-bottom:1px solid var(--line-soft);border-bottom-color:var(--line);align-items:center;gap:8px;padding:12px 16px;display:flex}.sk-tdp-hicon{border-radius:3px;flex-shrink:0;width:16px;height:16px}.sk-tdp-htitle{border-radius:3px;width:110px;height:12px}.sk-tdp-card-body{flex-direction:column;gap:12px;padding:20px 16px;display:flex}.sk-tdp-row{border-radius:3px;height:12px}.sk-tdp-table-card{border:1px solid var(--line);background:#fff;background:var(--bg-1);border-color:var(--line);border-radius:8px;margin-top:16px;overflow:hidden}.sk-tdp-table-head{border-bottom:1px solid var(--line);background:var(--bg-2);background:var(--bg-2);border-bottom-color:var(--line);align-items:center;gap:20px;padding:10px 16px;display:flex}.sk-tdp-th{border-radius:3px;flex-shrink:0;height:11px}.sk-tdp-tr{border-bottom:1px solid var(--line-soft);border-bottom-color:var(--line);align-items:center;gap:20px;padding:11px 16px;display:flex}.sk-tdp-tr:last-child{border-bottom:none}.sk-tdp-td{border-radius:3px;flex-shrink:0;height:12px}.erd-sk-overlay{z-index:50;background:#fff;background:var(--bg-0);position:absolute;inset:0;overflow:hidden}.erd-sk-table{border:1px solid var(--line);background:#fff;background:var(--bg-1);border-color:var(--line);border-radius:6px;position:absolute;overflow:hidden;box-shadow:0 1px 4px #0000000f}.erd-sk-table-head{background:var(--bg-2);border-bottom:1px solid var(--line);background:var(--bg-2);border-bottom-color:var(--line);align-items:center;gap:8px;height:32px;padding:0 12px;display:flex}.erd-sk-table-icon{border-radius:2px;flex-shrink:0;width:12px;height:12px}.erd-sk-table-name{border-radius:3px;flex:1;max-width:100px;height:10px}.erd-sk-table-rows{flex-direction:column;gap:9px;padding:10px 12px;display:flex}.erd-sk-table-row{border-radius:3px;height:10px}.sql-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;opacity:0;visibility:hidden;background:#0f172ab3;justify-content:center;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0}.sql-modal-overlay.active{opacity:1;visibility:visible}.sql-modal{background:#fff;border-radius:16px;flex-direction:column;width:90%;max-width:800px;max-height:85vh;transition:transform .3s;display:flex;transform:scale(.9)translateY(20px);box-shadow:0 25px 50px -12px #00000040}.sql-modal-overlay.active .sql-modal{transform:scale(1)translateY(0)}.sql-modal-header{color:#fff;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.sql-modal-title{align-items:center;gap:12px;display:flex}.sql-modal-title h3{margin:0;font-size:18px;font-weight:600}.sql-modal-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.sql-modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.sql-modal-body{flex:1;padding:24px;overflow-y:auto}.relation-info-drawer{width:480px}.relation-info-drawer .info-intro{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.relation-info-drawer .relation-type-card.compact{background:var(--gray-50);border:1px solid var(--border-color);border-radius:10px;margin-bottom:12px;overflow:hidden}.relation-info-drawer .relation-type-card.compact .relation-type-header{align-items:center;gap:10px;padding:10px 14px;display:flex}.relation-info-drawer .relation-type-card.compact .relation-type-header h4{color:#fff;margin:0;font-size:13px;font-weight:600}.relation-info-drawer .relation-type-card.compact .relation-type-header .relation-type-badge{color:#fff;background:#fff3;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}.relation-info-drawer .relation-type-card.compact .relation-type-body{background:var(--bg-2);padding:12px 14px}.relation-info-drawer .relation-type-card.compact .relation-type-body p{color:var(--text-secondary);margin:0 0 10px;font-size:12px}.relation-info-drawer .example-diagram.compact{background:var(--gray-50);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.relation-info-drawer .example-diagram.compact .example-table{background:var(--primary-100);color:var(--primary-700);border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.relation-info-drawer .example-diagram.compact .example-arrow{color:var(--text-tertiary);font-size:11px;font-weight:600}.relation-info-drawer .relation-tip-text{color:var(--accent-yellow);margin:8px 0 0;font-size:11px;font-style:italic}.relation-info-drawer .line-styles-compact{flex-direction:column;gap:12px;margin-top:12px;display:flex}.relation-info-drawer .line-style-row{background:var(--gray-50);border-radius:8px;align-items:center;gap:12px;padding:10px 12px;display:flex}.relation-info-drawer .line-badge{text-transform:uppercase;border-radius:20px;padding:4px 10px;font-size:10px;font-weight:600}.relation-info-drawer .line-badge.existing{color:#64748b;background:#94a3b826}.relation-info-drawer .line-badge.new{color:#16a34a;background:#22c55e26}.relation-info-drawer .line-styles-detailed{flex-direction:column;gap:12px;margin-top:12px;display:flex}.relation-info-drawer .line-style-card{background:var(--gray-50);border:1px solid var(--border-color);border-radius:10px;padding:14px}.relation-info-drawer .line-style-card .line-style-visual{margin-bottom:10px}.relation-info-drawer .line-style-card .line-style-content .line-style-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.relation-info-drawer .line-style-card .line-style-name{color:var(--text-primary);font-size:13px;font-weight:600}.relation-info-drawer .line-style-card .line-style-content p{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.relation-info-drawer .field-types-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.relation-info-drawer .field-type-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:flex-start;gap:12px;padding:12px;display:flex}.relation-info-drawer .field-type-badge{text-transform:uppercase;border-radius:4px;justify-content:center;align-items:center;min-width:36px;height:24px;font-size:10px;font-weight:700;display:flex}.relation-info-drawer .field-type-badge.pk{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b47}.relation-info-drawer .field-type-badge.fk{color:#1d4ed8;background:#3b82f61f;border:1px solid #3b82f647}.relation-info-drawer .field-type-badge.uq{color:var(--purple);background:#8b5cf61f;border:1px solid #8b5cf647}.relation-info-drawer .field-type-badge.nn{color:var(--err);background:#ef44441f;border:1px solid #ef444447}.relation-info-drawer .field-type-badge.idx{color:#0e7490;background:#06b6d41f;border:1px solid #06b6d447}.relation-info-drawer .field-type-badge.ai{color:#047857;background:#10b9811f;border:1px solid #10b98147}.relation-info-drawer .field-type-info{flex:1}.relation-info-drawer .field-type-info .field-type-name{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:600;display:block}.relation-info-drawer .field-type-info p{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.4}.relation-info-drawer .table-styles-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.relation-info-drawer .table-style-row-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:14px;padding:12px;display:flex}.relation-info-drawer .mini-table{border:1px solid var(--border-color);border-radius:4px;width:50px;height:36px;position:relative;overflow:hidden}.relation-info-drawer .mini-table .mini-table-head{background:var(--primary-500);height:12px}.relation-info-drawer .mini-table.existing .mini-table-head{background:var(--primary-500)}.relation-info-drawer .mini-table.new .mini-table-head{background:#22c55e}.relation-info-drawer .mini-table .mini-table-body-area{background:var(--bg-2);height:24px}.relation-info-drawer .mini-table .mini-badge{color:#fff;background:#22c55e;border-radius:3px;padding:2px 4px;font-size:7px;font-weight:700;position:absolute;top:-6px;right:-6px}.relation-info-drawer .table-style-info{flex:1}.relation-info-drawer .table-style-info p{color:var(--text-secondary);margin:4px 0 0;font-size:11px}.ri-card{border:1px solid var(--border-color);background:var(--card-bg);border-left:3px solid #0000;border-radius:10px;margin-bottom:10px;padding:14px 16px;transition:box-shadow .15s}.ri-card:last-child{margin-bottom:0}.ri-card:hover{box-shadow:0 2px 8px #0000000f}.ri-card-blue{border-left-color:#3b82f6}.ri-card-cyan{border-left-color:#06b6d4}.ri-card-green{border-left-color:#22c55e}.ri-card-orange{border-left-color:#f97316}.ri-card-top{align-items:center;gap:10px;margin-bottom:8px;display:flex}.ri-icon{letter-spacing:-.5px;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-family:monospace;font-size:10px;font-weight:700;display:flex}.ri-icon-blue{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent)}.ri-icon-cyan{background:color-mix(in oklch, var(--info), transparent 86%);color:var(--info)}.ri-icon-green{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.ri-icon-orange{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.ri-card-title{color:var(--text-primary);font-size:13px;font-weight:600}.ri-card-desc{color:var(--text-secondary);margin:0 0 10px;font-size:12px;line-height:1.5}.ri-example{background:var(--gray-50);border:1px solid var(--border-color);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.ri-example-table{background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-primary);border-radius:4px;padding:3px 8px;font-family:monospace;font-size:11px;font-weight:600}.ri-example-arrow{text-align:center;color:var(--text-tertiary);flex:1;font-size:14px;font-weight:600}.ri-tip{color:#c2410c;background:#f9731614;border:1px solid #f973162e;border-radius:6px;margin-top:8px;padding:6px 10px;font-size:11px}.ri-line-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.ri-line-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:14px;padding:12px 14px;display:flex}.ri-line-visual{flex-shrink:0;justify-content:center;align-items:center;width:64px;display:flex}.ri-line-content{flex:1}.ri-line-name{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:3px;font-size:12px;font-weight:600;display:flex}.ri-line-content p{color:var(--text-secondary);margin:0;font-size:11px;line-height:1.4}.ri-line-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.ri-line-badge-gray{color:#64748b;background:#94a3b826}.ri-line-badge-green{color:#15803d;background:#22c55e1f}.ri-badge-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.ri-badge-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.ri-badge-item .field-type-badge{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;min-width:34px;height:22px;font-size:10px;font-weight:700;display:flex}.ri-badge-name{color:var(--text-primary);margin-bottom:1px;font-size:11px;font-weight:600;display:block}.ri-badge-item p{color:var(--text-tertiary);margin:0;font-size:10px;line-height:1.3}.ri-table-style-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.ri-table-style-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:14px;padding:12px 14px;display:flex}.ri-mini-table{border:1px solid var(--border-color);border-radius:4px;flex-shrink:0;width:48px;height:34px;overflow:hidden}.ri-mini-head{height:11px}.ri-mini-body{background:#fff;height:calc(100% - 11px)}.ri-mini-table-existing .ri-mini-head{background:#3b82f6}.ri-mini-table-new .ri-mini-head{background:#22c55e}.ri-table-style-info{flex:1;align-items:center;gap:10px;display:flex}.ri-table-style-info p{color:var(--text-secondary);margin:0;font-size:12px}.sql-drawer{width:550px}.diagram-sql-info{background:var(--gray-50);border:1px solid var(--border-color);border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.diagram-sql-info svg{color:#059669;flex-shrink:0;margin-top:1px}.diagram-sql-info p{color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.5}.btn-generate-diagram-sql{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:11px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.btn-generate-diagram-sql:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98159}.btn-generate-diagram-sql:disabled{opacity:.7;cursor:not-allowed;box-shadow:none;transform:none}.btn-generate-diagram-sql .spin-icon{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sql-keyword{color:var(--code-kw);font-weight:600}.sql-function{color:var(--code-fn)}.sql-string{color:var(--code-str)}.sql-number{color:var(--code-num)}.sql-comment{color:var(--code-com);font-style:italic}.sql-column{color:var(--code-col)}.erd-new-badge{letter-spacing:.5px;color:#fff;background:#ffffff40;border:1px solid #fff6;border-radius:4px;align-items:center;margin-left:auto;padding:2px 6px;font-size:9px;font-weight:700;animation:2s ease-in-out infinite newBadgePulse;display:inline-flex}@keyframes newBadgePulse{0%,to{opacity:1}50%{opacity:.7}}.erd-table.is-new-table{box-shadow:0 0 0 2px #22c55e80,0 4px 12px #22c55e40}.erd-table.is-new-table:before{content:"";pointer-events:none;border:2px dashed #22c55e99;border-radius:10px;animation:1s linear infinite borderDash;position:absolute;inset:-2px}@keyframes borderDash{0%{stroke-dashoffset:0}to{stroke-dashoffset:20px}}.relation-line.new-relation{animation:2s ease-in-out infinite relationPulse;stroke:light-dark(#15803d,#22c55e)!important}.relation-line.new-relation.rel-hover-flow{stroke-dasharray:8 6;stroke-dashoffset:0;animation:.55s linear infinite rel-flow-dash}.relation-line.new-relation.rel-hover-flow.reverse{animation:.55s linear infinite rel-flow-dash-rev}@keyframes relationPulse{0%,to{opacity:1}50%{opacity:.6}}.relation-new-badge{letter-spacing:.5px;color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:4px;align-items:center;margin-left:8px;padding:2px 6px;font-size:9px;font-weight:700;animation:2s ease-in-out infinite newBadgePulse;display:inline-flex}.erd-legend{border:1px solid var(--border-color);z-index:10;background:#fff;border-radius:10px;flex-direction:column;gap:8px;padding:12px 16px;font-size:12px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 2px 8px #00000014}.erd-legend-title{color:var(--text-primary);margin-bottom:4px;font-weight:600}.erd-legend-item{color:var(--text-secondary);align-items:center;gap:10px;display:flex}.erd-legend-line{border-radius:2px;width:30px;height:3px}.erd-legend-line.existing{background:#94a3b8}.erd-legend-line.new{background:repeating-linear-gradient(90deg,#22c55e 0 8px,#0000 8px 12px)}.erd-legend-table{border:2px solid;border-radius:3px;width:16px;height:12px}.erd-legend-table.new{background:#22c55e1a;border-style:dashed;border-color:#22c55e}.line-styles-card .relation-type-header.line-styles{color:#475569;background:#64748b14;border-left-color:#64748b}.line-style-examples{flex-direction:column;gap:16px;margin:16px 0;display:flex}.line-style-item{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:10px;flex-direction:column;gap:8px;padding:16px;display:flex}.line-style-visual{justify-content:center;padding:8px 0;display:flex}.line-style-info{align-items:center;gap:10px;display:flex}.line-style-title{color:var(--text-primary);font-size:14px;font-weight:600}.line-style-badge{letter-spacing:.5px;border-radius:4px;align-items:center;padding:3px 8px;font-size:10px;font-weight:700;display:inline-flex}.line-style-badge.existing{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent)}.line-style-badge.new{color:#15803d;background:#22c55e1f;border:1px solid #22c55e47}.line-style-desc{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.table-style-examples{border-top:1px solid var(--gray-200);margin-top:20px;padding-top:20px}.table-style-examples h5{color:var(--text-primary);margin:0 0 16px;font-size:14px;font-weight:600}.table-style-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.table-style-item{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}.table-style-visual{border-radius:6px;width:48px;height:36px;position:relative;overflow:hidden;box-shadow:0 2px 4px #0000001a}.table-style-visual.existing{border:2px solid #94a3b8}.table-style-visual.new{border:2px dashed #22c55e;box-shadow:0 0 0 2px #22c55e33,0 2px 4px #0000001a}.mini-table-header{background:linear-gradient(135deg,#3b82f6,#2563eb);height:12px}.table-style-visual.new .mini-table-header{background:linear-gradient(135deg,#22c55e,#16a34a)}.mini-table-body{background:#fff;height:calc(100% - 12px)}.mini-new-badge{background:color-mix(in oklch, var(--ok), transparent 82%);color:var(--ok);border-radius:2px;padding:1px 3px;font-size:6px;font-weight:700;position:absolute;top:2px;right:2px}.table-style-text{flex-direction:column;gap:4px;display:flex}.table-style-text p{color:var(--text-secondary);margin:0;font-size:12px}.notes-drawer{width:380px}.priority-selector{flex-wrap:wrap;gap:6px;display:flex}.priority-btn{border:2px solid var(--line);background:var(--bg-2);color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.priority-btn:hover{border-color:var(--gray-300);background:var(--gray-50)}.priority-btn.active{font-weight:600}.priority-btn[data-priority=low].active{color:#15803d;background:#22c55e1a;border-color:#16a34a}.priority-btn[data-priority=medium].active{color:#1d4ed8;background:#3b82f61a;border-color:#2563eb}.priority-btn[data-priority=high].active{color:#b45309;background:#f59e0b1a;border-color:#d97706}.priority-btn[data-priority=critical].active{color:#b91c1c;background:#ef44441a;border-color:#dc2626}.priority-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.priority-dot.low{background:#22c55e}.priority-dot.medium{background:#3b82f6}.priority-dot.high{background:#f59e0b}.priority-dot.critical{background:#ef4444}.btn-add-note{color:#fff;cursor:pointer;background:#d97706;border:none;border-radius:9px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:8px;padding:11px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s;display:flex}.btn-add-note:hover{background:#b45309;box-shadow:0 2px 8px #b4530933}.notes-filter{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.filter-btn{border:1px solid var(--line);background:var(--bg-2);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:11px;font-weight:500;transition:all .2s}.filter-btn:hover{background:var(--gray-50)}.filter-btn.active{border-color:var(--primary-400);color:var(--primary-600);background:#3b82f61a;font-weight:600}.notes-list{flex-direction:column;gap:10px;max-height:400px;display:flex;overflow-y:auto}.notes-list-empty{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.notes-list-empty svg{opacity:.4;margin-bottom:12px}.notes-list-empty p{margin:0;font-size:13px}.note-item{background:var(--bg-1);border:1px solid var(--line-soft);border-left:4px solid;border-radius:10px;flex-direction:column;padding:12px;transition:all .2s;display:flex}.note-item:hover{box-shadow:0 2px 8px #00000014}.note-item.priority-low{border-left-color:#22c55e}.note-item.priority-medium{border-left-color:#3b82f6}.note-item.priority-high{border-left-color:#f59e0b}.note-item.priority-critical{background:color-mix(in oklch, var(--err), transparent 86%);border-left-color:#ef4444}.note-item-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.note-item-title{color:var(--text-primary);flex:1;margin:0;font-size:13px;font-weight:600}.note-item-priority{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.note-item-priority.low{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.note-item-priority.medium{background:color-mix(in oklch, var(--info), transparent 86%);color:var(--info)}.note-item-priority.high{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.note-item-priority.critical{background:color-mix(in oklch, var(--err), transparent 86%);color:var(--err)}.note-item-content{color:var(--text-secondary);margin-bottom:10px;font-size:12px;line-height:1.5}.note-item-meta{border-top:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding-top:10px;display:flex}.note-item-info{align-items:center;gap:10px;display:flex}.note-item-user-badge{background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border-radius:14px;align-items:center;padding:4px 10px;display:inline-flex;box-shadow:0 2px 6px #6366f140}.note-item-user-badge span{color:#fff;letter-spacing:.3px;font-size:11px;font-weight:600}.note-item-date{color:var(--text-muted);font-size:10px}.note-item-actions{gap:4px;display:flex}.note-action-btn{background:var(--gray-100);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.note-action-btn:hover{background:var(--gray-200);color:var(--text-primary)}.note-action-btn.delete:hover{color:#dc2626;background:#fee2e2}.note-confirm-modal{z-index:100000;opacity:0;visibility:hidden;justify-content:center;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0}.note-confirm-modal.active{opacity:1;visibility:visible}.note-confirm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99;width:100%;height:100%;position:absolute;top:0;left:0}.note-confirm-container{background:var(--card-bg);text-align:center;border-radius:16px;width:90%;max-width:400px;padding:32px;transition:transform .3s;position:relative;transform:scale(.9)translateY(20px);box-shadow:0 25px 50px #00000040}.note-confirm-modal.active .note-confirm-container{transform:scale(1)translateY(0)}.note-confirm-icon{margin-bottom:20px}.note-confirm-title{color:var(--text-primary);margin:0 0 12px;font-size:20px;font-weight:700}.note-confirm-message{color:var(--text-secondary);margin:0 0 24px;font-size:14px;line-height:1.5}.note-confirm-actions{justify-content:center;gap:12px;display:flex}.note-confirm-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.note-confirm-btn.cancel{background:var(--gray-100);color:var(--text-secondary)}.note-confirm-btn.cancel:hover{background:var(--gray-200)}.note-confirm-btn.delete{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}.note-confirm-btn.delete:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ef444466}.btn-toggle-notes.notes-hidden{opacity:.6}.png-export-modal{z-index:100000;opacity:0;visibility:hidden;justify-content:center;align-items:center;width:100%;height:100%;transition:all .3s;display:flex;position:fixed;top:0;left:0}.png-export-modal.active{opacity:1;visibility:visible}.png-export-container{max-width:480px}.png-export-icon{margin-bottom:20px}.png-export-options{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.png-export-option{background:var(--gray-50);border:2px solid var(--gray-200);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;transition:all .2s;display:flex}.png-export-option:hover{border-color:var(--accent-blue);background:#3b82f60d;transform:translateY(-2px)}.png-export-option svg{color:var(--accent-blue)}.png-export-option .option-title{color:var(--text-primary);font-size:14px;font-weight:600}.png-export-option .option-desc{color:var(--text-secondary);font-size:12px}.png-export-option.selected{border-color:var(--accent-blue);background:#3b82f614;box-shadow:0 0 0 3px #3b82f626}.png-export-option.selected svg,.png-export-option.selected .option-title{color:var(--accent-blue)}.export-step-label{color:var(--text-secondary);align-items:center;gap:10px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.export-step-label .step-number{background:var(--accent-blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.export-action-panel{opacity:0;max-height:0;margin-top:0;transition:all .3s;overflow:hidden}.export-action-panel.visible{opacity:1;border-top:1px solid var(--border-color);max-height:200px;margin-top:20px;padding-top:20px}.export-action-buttons{grid-template-columns:1fr 1fr;gap:12px;display:grid}.export-action-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:14px 16px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.export-action-btn.with-summary{color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%)}.export-action-btn.with-summary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #22c55e66}.export-action-btn.with-summary:disabled{background:var(--gray-200);color:var(--gray-400);cursor:not-allowed}.export-action-btn.without-summary{background:var(--gray-100);color:var(--text-primary);border:1px solid var(--border-color)}.export-action-btn.without-summary:hover{background:var(--gray-200);transform:translateY(-2px)}.no-relations-hint{color:var(--text-tertiary);text-align:center;margin-top:10px;margin-bottom:0;font-size:12px}.png-export-checkbox-group{background:var(--gray-50);border:1px solid var(--border-color);border-radius:10px;margin-bottom:16px;padding:14px 16px}.png-export-checkbox-label{cursor:pointer;align-items:flex-start;gap:12px;display:flex;position:relative}.png-export-checkbox-label input[type=checkbox]{opacity:0;cursor:pointer;z-index:1;width:20px;height:20px;margin:0;position:absolute}.png-export-checkbox-label .checkbox-custom{border:2px solid var(--line);background:var(--bg-0);border-radius:5px;justify-content:center;align-items:center;width:20px;min-width:20px;height:20px;margin-top:2px;transition:all .2s;display:flex}.png-export-checkbox-label .checkbox-custom:after{content:"";border-top:none;border-bottom:2px solid #fff;border-left:2px solid #fff;border-right:none;width:10px;height:6px;margin-top:-2px;transition:transform .15s;transform:rotate(-45deg)scale(0)}.png-export-checkbox-label input[type=checkbox]:checked+.checkbox-custom{background:var(--accent-blue);border-color:var(--accent-blue)}.png-export-checkbox-label input[type=checkbox]:checked+.checkbox-custom:after{transform:rotate(-45deg)scale(1)}.png-export-checkbox-label input[type=checkbox]:disabled+.checkbox-custom{background:var(--gray-100);border-color:var(--gray-200);cursor:not-allowed}.png-export-checkbox-label:has(input:disabled){cursor:not-allowed;opacity:.6}.png-export-checkbox-label .checkbox-content{flex-direction:column;gap:2px;display:flex}.png-export-checkbox-label .checkbox-text{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.4}.png-export-checkbox-label .checkbox-hint{color:var(--text-secondary);font-size:12px;font-weight:400}.png-cancel-btn{width:100%;margin-top:8px}.api-save-container{text-align:left;max-width:480px}.api-save-info-row{gap:16px;margin-bottom:20px;display:flex}.api-save-info-item{background:var(--gray-50);border:1px solid var(--border-color);border-radius:10px;flex:1;padding:12px 16px}.api-save-info-item label{color:var(--text-muted);text-transform:none;letter-spacing:0;margin-bottom:4px;font-size:12px;display:block}.api-save-info-value{color:var(--text-primary);font-size:14px;font-weight:600}.api-save-info-value.version-badge{color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);border-radius:12px;padding:2px 10px;font-size:13px;display:inline-block}.api-save-stats{background:var(--gray-50);border-radius:10px;gap:12px;margin-bottom:20px;padding:16px;display:flex}.api-save-stat{text-align:center;flex:1}.api-save-stat .stat-number{color:var(--primary-400);font-size:24px;font-weight:700;display:block}.api-save-stat .stat-label{color:var(--text-muted);font-size:12px}.api-save-form-group{margin-bottom:0}.api-save-form-group label{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:500;display:block}.api-save-form-group label .required{color:#ef4444}.api-save-textarea{border:2px solid var(--border-color);background:var(--gray-50);width:100%;color:var(--text-primary);resize:vertical;border-radius:10px;min-height:100px;padding:12px 16px;font-family:inherit;font-size:14px;transition:all .2s}.api-save-textarea:focus{border-color:var(--primary-500);outline:none;box-shadow:0 0 0 3px #3b82f61a}.api-save-textarea.error{border-color:#ef4444}.api-save-hint{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}.api-save-error{color:#ef4444;margin-top:6px;font-size:12px;display:block}.api-save-actions{margin-top:20px}.api-save-confirm.loading{pointer-events:none;opacity:.7}.api-save-confirm.loading:after{content:"";border:2px solid #0000;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-left:8px;animation:.8s linear infinite spin}.version-dropdown-container{align-items:center;gap:8px;display:flex;position:relative}.btn-version-dropdown{background:var(--card-bg);border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-version-dropdown:hover{border-color:var(--primary-400);color:var(--primary-400);background:#3b82f61f}.btn-version-dropdown.active{border-color:var(--primary-400);color:var(--primary-400);background:#3b82f629}.btn-version-dropdown .version-label{text-overflow:ellipsis;white-space:nowrap;max-width:80px;overflow:hidden}.btn-version-dropdown .dropdown-chevron{transition:transform .2s}.btn-version-dropdown.active .dropdown-chevron{transform:rotate(180deg)}.btn-version-info-global{background:var(--card-bg);border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-version-info-global:hover{border-color:var(--primary-400);color:var(--primary-400);background:#3b82f61f}.btn-version-info-global svg{flex-shrink:0}.version-dropdown-menu{background:var(--card-bg);border:1px solid var(--border-color);z-index:1000;opacity:0;visibility:hidden;border-radius:12px;min-width:280px;transition:all .2s;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-10px);box-shadow:0 10px 40px #00000026}.version-dropdown-menu.active{opacity:1;visibility:visible;transform:translateY(0)}.version-dropdown-header{border-bottom:1px solid var(--border-color);color:var(--text-muted);text-transform:none;letter-spacing:0;padding:12px 16px;font-size:12px;font-weight:600}.version-list{max-height:300px;padding:8px;overflow-y:auto}.version-loading{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.version-item{cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;transition:all .15s;display:flex}.version-item:hover{background:var(--gray-50)}.version-item.current{background:#3b82f61f;border:1px solid #3b82f64d}.version-item.selected{background:var(--accent-yellow);background:#eab3081a;border:1px solid #eab3084d}.version-item-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.version-item-version{color:var(--text-primary);font-size:13px;font-weight:600}.version-item-badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.version-item-badge.current{background:var(--accent-green);color:#fff}.version-item-badge.viewing{background:var(--accent-yellow);color:var(--warn)}.version-item-note{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.version-item-meta{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;display:flex}.version-item-author{color:var(--text-secondary);font-weight:500}.version-item-author:after{content:"·";margin-left:8px}.version-item-date{color:var(--text-muted);font-size:11px}.version-empty{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.erd-view-banner{--vb-tone:var(--warn);background:color-mix(in oklab, var(--vb-tone) 8%, var(--bg-1));border-bottom:1px solid color-mix(in oklab, var(--vb-tone) 30%, var(--line));font-family:var(--font-ui);align-items:center;gap:12px;padding:8px 14px;animation:.18s ease-out erd-view-banner-in;display:flex;position:relative}@keyframes erd-view-banner-in{0%{opacity:0}to{opacity:1}}.erd-view-banner-icon{background:color-mix(in oklab, var(--vb-tone) 18%, transparent);width:32px;height:32px;color:var(--vb-tone);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.erd-view-banner-body{flex-direction:column;gap:2px;min-width:0;display:flex}.erd-view-banner-title{color:var(--fg-0);white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.erd-view-banner-chip{background:color-mix(in oklab, var(--vb-tone) 16%, transparent);color:color-mix(in oklab, var(--vb-tone) 70%, var(--fg-0));border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.erd-view-banner-meta{min-width:0;color:var(--fg-2);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12px;display:flex}.erd-view-banner-meta>span{white-space:nowrap}.erd-view-banner-note{text-overflow:ellipsis;min-width:0;max-width:280px;color:var(--fg-1);overflow:hidden}.erd-view-banner-meta>span+span:before{content:"·";color:var(--fg-3);margin-right:8px}.erd-view-banner-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.erd-view-banner-btn{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-1);height:30px;color:var(--fg-1);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.erd-view-banner-btn:hover{background:var(--bg-hover);color:var(--fg-0)}.erd-view-banner-btn.primary{background:var(--btn-primary);border-color:var(--btn-primary);color:var(--accent-fg)}.erd-view-banner-btn.primary:hover{background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.erd-view-banner-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:900px){.erd-view-banner{flex-wrap:wrap}.erd-view-banner-body{flex:1 1 0}.erd-view-banner-meta{flex-wrap:wrap;row-gap:2px}.erd-view-banner-note{flex-basis:100%;max-width:none}.erd-view-banner-meta>.erd-view-banner-note:before{content:none}.erd-view-banner-actions{margin-left:44px}}.btn-version-dropdown.viewing{border-color:color-mix(in oklab, var(--warn) 45%, var(--line));background:color-mix(in oklab, var(--warn) 10%, var(--bg-1));color:var(--fg-0)}.btn-version-dropdown.viewing:before{content:"";background:var(--warn);border-radius:50%;width:6px;height:6px}body.viewing-old-version .erd-canvas{box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--warn) 45%, transparent)}.api-save-baseline{border-radius:var(--radius);border:1px solid color-mix(in oklab, var(--accent) 30%, var(--line));background:color-mix(in oklab, var(--accent) 8%, var(--bg-1));color:var(--fg-1);text-align:left;align-items:flex-start;gap:8px;margin:0 0 16px;padding:10px 12px;font-size:12.5px;line-height:1.5;display:flex}.api-save-baseline svg{color:var(--accent);flex-shrink:0;margin-top:2px}.api-save-baseline strong{color:var(--fg-0);font-weight:600}.erd-presence{align-items:center;gap:8px;display:flex;position:relative}.erd-presence-status{background:var(--fg-3);border-radius:50%;flex-shrink:0;width:8px;height:8px}.erd-presence-status.online{background:var(--ok);box-shadow:0 0 0 3px color-mix(in oklab, var(--ok) 22%, transparent)}.erd-presence-status.connecting{background:var(--warn);animation:1.2s ease-in-out infinite collab-pulse}.erd-presence-offline{color:var(--fg-2);white-space:nowrap;font-size:12px}.erd-presence-stack{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;padding:2px 4px 2px 2px;transition:background .12s;display:inline-flex}.erd-presence-stack:hover,.erd-presence-stack.open{background:var(--tint-2)}.erd-presence-stack:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.erd-presence-avatar{width:26px;height:26px;box-shadow:0 0 0 2px var(--bg-1);color:#fff;font-family:var(--font-ui);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;line-height:1;transition:transform .15s;display:inline-flex;position:relative}.erd-presence-stack .erd-presence-avatar+.erd-presence-avatar{margin-left:-8px}.erd-presence-stack .erd-presence-avatar:hover{transform:translateY(-2px);z-index:20!important}.erd-presence-avatar.more{background:var(--bg-3);color:var(--fg-1);font-variant-numeric:tabular-nums}.erd-presence-avatar.lg{width:30px;height:30px;box-shadow:none;font-size:11px}.erd-presence-tip{border-radius:var(--radius);background:var(--fg-0);min-width:max-content;max-width:260px;color:var(--bg-1);box-shadow:var(--shadow-2);letter-spacing:0;text-align:left;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:30;flex-direction:column;gap:2px;padding:6px 10px;font-size:12px;font-weight:500;line-height:1.35;transition:opacity .12s,transform .12s,visibility .12s;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-4px)}.erd-presence-tip:before{content:"";background:inherit;border-radius:1px;width:8px;height:8px;position:absolute;top:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.erd-presence-avatar:hover .erd-presence-tip{opacity:1;visibility:visible;transform:translate(-50%)}.erd-presence-stack.open .erd-presence-tip{display:none}.erd-presence-tip-name{align-items:center;gap:6px;font-weight:600;display:inline-flex}.erd-presence-tip-meta{color:color-mix(in oklab, var(--bg-1) 72%, var(--fg-0));white-space:normal;font-weight:400}.erd-presence-tip .erd-presence-you{background:color-mix(in oklab, var(--bg-1) 18%, transparent);color:var(--bg-1)}.erd-presence-ident{font-family:var(--font-mono);font-size:.95em}.erd-presence-you{background:var(--accent-weak);color:var(--accent);border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:600;line-height:1.4}.erd-presence-menu{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);width:272px;box-shadow:var(--shadow-2);opacity:0;visibility:hidden;z-index:1000;transition:opacity .16s,transform .16s cubic-bezier(.16,1,.3,1),visibility .16s;position:absolute;top:calc(100% + 10px);left:0;overflow:hidden;transform:translateY(-6px)}.erd-presence-menu.show{opacity:1;visibility:visible;transform:translateY(0)}.erd-presence-menu-head{color:var(--fg-0);justify-content:space-between;align-items:baseline;padding:12px 14px 8px;font-size:13px;font-weight:600;display:flex}.erd-presence-menu-count{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:12px;font-weight:400}.erd-presence-list{max-height:280px;margin:0;padding:0 6px 6px;list-style:none;overflow-y:auto}.erd-presence-row{border-radius:var(--radius);align-items:center;gap:10px;padding:7px 8px;display:flex}.erd-presence-row:hover{background:var(--bg-hover)}.erd-presence-row-text{flex-direction:column;gap:1px;min-width:0;display:flex}.erd-presence-row-name{min-width:0;color:var(--fg-0);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.erd-presence-row-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.erd-presence-row-meta{text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2);font-size:12px;overflow:hidden}.erd-presence-menu-foot{border-top:1px solid var(--line-soft);color:var(--fg-2);align-items:center;gap:8px;padding:9px 14px;font-size:12px;display:flex}.btn-version-info{background:var(--card-bg);color:#1d4ed8;cursor:pointer;border:1px solid #3b82f666;border-radius:6px;align-items:center;gap:4px;margin-left:4px;padding:4px 8px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.btn-version-info:hover{background:#3b82f61a;border-color:#3b82f699}.version-info-container{text-align:left;max-width:420px}.version-info-items{width:100%}.version-info-item{background:var(--gray-50);border-radius:8px;flex-direction:column;gap:4px;margin-bottom:12px;padding:12px;display:flex}.version-info-item:last-child{margin-bottom:0}.version-info-label{color:var(--text-muted);text-transform:none;letter-spacing:0;font-size:12px;font-weight:600}.version-info-value{color:var(--text-primary);font-size:14px;font-weight:500;line-height:1.5}.version-info-value.version-badge{color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);border-radius:6px;align-items:center;gap:6px;width:fit-content;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.version-info-value.version-badge.current{background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%)}.version-info-value.note-text{background:var(--gray-50);border:1px solid var(--border-color);border-radius:6px;padding:10px;font-style:italic}body.viewing-old-version .btn-add-table-toolbar,body.viewing-old-version .btn-remove-table-toolbar,body.viewing-old-version .btn-relation,body.viewing-old-version .btn-notes-manager,body.viewing-old-version .btn-auto-layout,body.viewing-old-version .btn-export-save,body.viewing-old-version #btnAddNote,body.viewing-old-version #btnAddRelation{opacity:.4;pointer-events:none;cursor:not-allowed}body.viewing-old-version .erd-table,body.viewing-old-version .erd-table-header,body.viewing-old-version .erd-note,body.viewing-old-version .erd-note-header{cursor:default!important}body.viewing-old-version .erd-note-close{opacity:.3;pointer-events:none;cursor:not-allowed}body.viewing-old-version .note-card{cursor:default!important}body.viewing-old-version .note-card .note-actions,body.viewing-old-version .erd-table .table-drag-handle{display:none}.connection-status{background:var(--gray-100);border-radius:20px;align-items:center;gap:8px;margin-right:12px;padding:6px 12px;display:flex}.connection-indicator{border-radius:50%;width:10px;height:10px;transition:background-color .3s}.connection-indicator.online{background-color:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.connection-indicator.offline{background-color:var(--accent-red)}.connection-indicator.connecting{background-color:var(--accent-yellow);animation:1s ease-in-out infinite pulse-connecting}@keyframes pulse-connecting{0%,to{opacity:1}50%{opacity:.4}}.connection-status-text{color:var(--text-secondary);font-size:12px;font-weight:500}.active-users-container{margin-right:12px;position:relative}.active-users-btn{background:var(--gray-50);border:1px solid var(--border-color);cursor:pointer;color:var(--text-secondary);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;transition:all .15s;display:flex}.active-users-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.active-users-count{background:var(--primary-500);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;display:flex}.active-users-dropdown{background:var(--bg-1);border:1px solid var(--line);width:280px;box-shadow:var(--shadow-2);opacity:0;visibility:hidden;z-index:1000;border-radius:12px;transition:all .2s cubic-bezier(.16,1,.3,1);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-8px)scale(.98)}.active-users-dropdown.show{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.active-users-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:14px 16px 12px;display:flex}.active-users-header-left{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.active-users-header-left svg{color:var(--text-muted)}.active-users-header-count{background:var(--gray-100);min-width:20px;height:20px;color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:flex}.active-users-list{max-height:300px;padding:6px;overflow-y:auto}.active-users-list::-webkit-scrollbar{width:4px}.active-users-list::-webkit-scrollbar-track{background:0 0}.active-users-list::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:4px}.active-user-item{border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}.active-user-item:last-child{margin-bottom:0}.active-user-item:hover{background:var(--gray-50)}.active-user-item.current-user{background:var(--primary-50)}.active-user-item.current-user:hover{background:var(--primary-100)}.active-user-avatar{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.active-user-avatar span{color:#fff;letter-spacing:.02em;font-size:11px;font-weight:700}.active-user-details{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.active-user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;line-height:1.3;overflow:hidden}.active-user-status{color:var(--text-muted);font-size:11px;font-weight:400;line-height:1.3}.active-user-item.current-user .active-user-status{color:var(--primary-500);font-weight:500}.active-user-indicator{opacity:.6;border-radius:50%;flex-shrink:0;width:7px;height:7px}.no-users{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:28px 16px;font-size:13px;display:flex}.no-users svg{opacity:.3;color:var(--gray-400)}.no-users span{font-weight:500}.remote-cursor{pointer-events:none;z-index:9999;transition:left 50ms linear,top 50ms linear;position:absolute}.remote-cursor svg{filter:drop-shadow(0 1px 2px #0000004d)}.cursor-label{color:#fff;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;position:absolute;top:16px;left:16px;box-shadow:0 1px 3px #0003}.remote-selection-indicator{pointer-events:none;border:3px solid;border-radius:10px;animation:1.5s ease-in-out infinite selection-pulse;position:absolute;inset:-4px}@keyframes selection-pulse{0%,to{opacity:1}50%{opacity:.6}}.selection-label{color:#fff;white-space:nowrap;border-radius:4px;padding:2px 10px;font-size:11px;font-weight:500;position:absolute;top:-24px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.erd-table.remote-dragging{opacity:.85}.header-right{align-items:center;display:flex}@media (max-width:768px){.connection-status{padding:4px 8px}.connection-status-text{display:none}.active-users-dropdown{width:260px;right:-20px}}.change-history-page{max-width:none}.ch-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;margin-bottom:24px;padding-bottom:20px;display:flex}.ch-header-left{align-items:flex-start;gap:16px;display:flex}.ch-page-icon{background:var(--bg-2);width:40px;height:40px;color:var(--fg-2);border:1px solid var(--line);background:var(--bg-2);border-color:var(--line);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.ch-header-text{flex-direction:column;gap:2px;display:flex}.ch-breadcrumb{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.ch-breadcrumb-sep{opacity:.5;font-size:10px}.ch-title-row{align-items:center;gap:10px;display:flex}.ch-page-title{color:var(--text-primary);letter-spacing:-.3px;margin:0;font-size:20px;font-weight:600;line-height:1.25}.ch-count-badge{background:var(--gray-100);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:20px;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.ch-page-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:13px}.ch-stats-row{gap:10px;margin-bottom:20px;display:flex}.ch-stat-card{background:var(--card-bg);border:1px solid var(--border-color);cursor:default;border-radius:10px;flex-direction:column;flex:1;gap:4px;min-width:0;padding:14px 16px;transition:border-color .15s;display:flex}.ch-stat-card:hover{border-color:var(--primary-400)}.ch-stat-num{color:var(--text-primary);letter-spacing:-.5px;font-size:24px;font-weight:700;line-height:1}.ch-stat-lbl{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:500}.ch-stat-card--added .ch-stat-num{color:var(--ch-added-text)}.ch-stat-card--removed .ch-stat-num{color:var(--ch-removed-text)}.ch-stat-card--modified .ch-stat-num{color:var(--ch-modified-text)}.ch-stat-card--diagram .ch-stat-num{color:var(--ch-diagram-text)}.ch-filter-bar{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;margin-bottom:20px;overflow:hidden}.ch-filter-row-1{border-bottom:1px solid var(--border-color);background:var(--gray-50);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.ch-filter-row-2{align-items:center;gap:6px;padding:10px 14px;display:flex;overflow-x:auto}.ch-filter-row-2::-webkit-scrollbar{height:0}.ch-search{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;flex:1;align-items:center;gap:8px;min-width:200px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.ch-search:focus-within{border-color:var(--primary-400);box-shadow:0 0 0 3px #3b82f614}.ch-search svg{color:var(--text-muted);flex-shrink:0}.ch-search input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:8px 0;font-family:inherit;font-size:13px}.ch-search input::placeholder{color:var(--text-muted)}.ch-clear-btn{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.ch-clear-btn:hover{background:var(--ch-removed-bg);color:var(--ch-removed-text);border-color:var(--ch-removed-border)}.ch-chip{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:5px 11px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.ch-chip:hover{border-color:var(--primary-300);color:var(--primary-600);background:var(--primary-50)}.ch-chip.active{border-color:var(--primary-500);background:var(--primary-50);color:var(--primary-700);font-weight:600}.ch-chip--added.active{border-color:var(--ch-added-border);background:var(--ch-added-bg);color:var(--ch-added-text)}.ch-chip--removed.active{border-color:var(--ch-removed-border);background:var(--ch-removed-bg);color:var(--ch-removed-text)}.ch-chip--modified.active{border-color:var(--ch-modified-border);background:var(--ch-modified-bg);color:var(--ch-modified-text)}.ch-chip--diagram.active{border-color:var(--ch-diagram-border);background:var(--ch-diagram-bg);color:var(--ch-diagram-text)}.ch-date-warning{color:#a16207;background:#eab30814;border:1px solid #eab30840;border-radius:6px;align-items:center;gap:8px;margin:0 14px 10px;padding:8px 14px;font-size:12px;font-weight:500;display:flex}.ch-date-warning svg{color:#ca8a04;flex-shrink:0}.ch-empty-state,.ch-error{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:72px 20px;display:flex}.ch-empty-state h3{color:var(--text-secondary);margin:0;font-size:15px;font-weight:600}.ch-empty-state p{margin:0;font-size:13px}.ch-error{color:var(--ch-removed-text);font-size:13px}.rm-title-group{align-items:center;gap:12px;display:flex}.rm-page-icon{background:var(--bg-2);width:48px;height:48px;color:var(--fg-2);border:1px solid var(--line);background:var(--bg-2);border-color:var(--line);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rm-role-cell{align-items:center;gap:10px;display:flex}.rm-role-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.rm-role-name{color:var(--text-primary);font-weight:500}.rm-user-count{color:var(--text-secondary);font-size:13px}.rm-drawer-icon{background:var(--bg-2);width:40px;height:40px;color:var(--fg-2);border:1px solid var(--line);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rm-drawer-icon{background:var(--bg-2);border-color:var(--line);color:var(--fg-2)}.rm-drawer-icon-danger{color:light-dark(#b91c1c,#f87171);background:#dc26261f;border-color:#dc26264d}.rm-preview-row{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.rm-delete-card{background:#dc26260f;border:1px solid #dc262640;border-radius:10px;overflow:hidden}.rm-delete-role-preview{background:var(--card-bg);border-bottom:1px solid #dc262633;align-items:center;gap:12px;padding:16px;display:flex}.rm-delete-role-name{color:var(--text-primary);font-size:14px;font-weight:600}.rm-delete-role-meta{color:var(--text-muted);margin-top:2px;font-size:12px}.rm-delete-desc{color:light-dark(#b91c1c,#f87171);margin:0;padding:14px 16px;font-size:13px;line-height:1.5}.pm-page{max-width:1400px}.pm-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.pm-header-left{align-items:center;gap:16px;display:flex}.pm-page-icon{width:48px;height:48px;color:var(--primary-500);background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:12px;justify-content:center;align-items:center;display:flex}.pm-page-title{color:var(--text-primary);margin:0;font-size:22px;font-weight:700}.pm-page-subtitle{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.pm-btn{cursor:pointer;border:none;border-radius:4px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.pm-btn-primary{background:var(--primary-500);color:#fff}.pm-btn-primary:hover{background:var(--primary-600)}.pm-btn-cancel{background:var(--gray-100);color:var(--text-secondary)}.pm-btn-cancel:hover{background:var(--gray-200);color:var(--text-primary)}.pm-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.pm-stat-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:14px;padding:18px 20px;transition:box-shadow .15s;display:flex}.pm-stat-card:hover{box-shadow:0 2px 8px #0000000a}.pm-stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.pm-stat-icon-total{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent)}.pm-stat-icon-categories{background:color-mix(in oklch, var(--purple), transparent 86%);color:var(--purple)}.pm-stat-icon-assigned{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.pm-stat-icon-unassigned{background:color-mix(in oklch, var(--warn), transparent 86%);color:var(--warn)}.pm-stat-info{flex-direction:column;gap:2px;display:flex}.pm-stat-value{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.2}.pm-stat-label{color:var(--text-muted);font-size:12px;font-weight:500}.pm-table-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.pm-toolbar{border-bottom:1px solid var(--gray-100);align-items:center;gap:12px;padding:16px 20px;display:flex}.pm-toolbar-search{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;flex:1;align-items:center;gap:8px;min-width:0;max-width:360px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.pm-toolbar-search:focus-within{border-color:var(--primary-400);background:var(--card-bg);box-shadow:0 0 0 3px #3b82f614}.pm-toolbar-search svg{color:var(--text-muted);flex-shrink:0}.pm-toolbar-search input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:9px 0;font-family:inherit;font-size:13px}.pm-toolbar-filters{align-items:center;gap:10px;margin-left:auto;display:flex}.pm-category-dropdown{min-width:180px}.pm-view-toggle{gap:4px;display:flex}.pm-view-btn{width:var(--control-h);height:var(--control-h);border:1px solid var(--line);border-radius:var(--radius);color:var(--fg-2);cursor:pointer;background:0 0;place-items:center;transition:background .12s,color .12s,border-color .12s;display:grid}.pm-view-btn:hover{background:var(--bg-2);color:var(--fg-0);border-color:var(--bg-hover)}.pm-view-btn.active{background:color-mix(in srgb, var(--accent), transparent 86%);color:var(--accent);border-color:color-mix(in srgb, var(--accent), transparent 58%)}.pm-perm-icon-sm{background:color-mix(in srgb, var(--accent), transparent 86%);width:30px;height:30px;color:var(--accent);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.um-action-assign:hover{color:light-dark(#15803d,#22c55e);background:#22c55e29}.pm-table-wrap{overflow-x:auto}.pm-table{border-collapse:collapse;width:100%}.pm-table thead{background:var(--gray-50)}.pm-table th{color:var(--text-muted);text-align:left;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:12px;font-weight:600}.pm-table td{border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:12px 16px;font-size:13px}.pm-table tr:last-child td{border-bottom:none}.pm-table tr:hover{background:var(--gray-50)}.pm-perm-cell{align-items:center;gap:12px;display:flex}.pm-perm-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.pm-perm-info{flex-direction:column;gap:1px;display:flex}.pm-perm-name{color:var(--text-primary);font-size:13px;font-weight:500}.pm-perm-key{color:var(--text-muted);font-family:SF Mono,Consolas,monospace;font-size:11px}.pm-category-badge{white-space:nowrap;background:color-mix(in srgb, var(--accent), transparent 88%);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent), transparent 65%);border-radius:20px;align-items:center;padding:2px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.pm-assign-count{gap:6px;display:flex}.pm-assign-badge{border-radius:5px;align-items:center;padding:3px 8px;font-size:11px;font-weight:500;display:inline-flex}.pm-assign-badge-role{background:color-mix(in oklch, var(--purple), transparent 86%);color:var(--purple)}.pm-assign-badge-user{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent)}.pm-date{color:var(--text-muted);font-size:12px}.pm-actions{gap:4px;display:flex}.pm-action-btn{cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.pm-action-assign:hover{color:#059669;background:#ecfdf5}.pm-action-edit:hover{background:var(--primary-50);color:var(--primary-500)}.pm-action-delete:hover{color:var(--accent-red);background:#fef2f2}.pm-loading,.pm-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.pm-loading-spinner{border:3px solid var(--border-color);border-top-color:var(--primary-500);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.pm-empty h3{color:var(--text-secondary);margin:8px 0 0;font-size:16px}.pm-empty p{font-size:13px}.pm-group-scroll{background:var(--bg-0);flex:1;min-height:0;overflow-y:auto}.pm-group-view{flex-direction:column;gap:24px;padding:20px;display:flex}.pm-group-header{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;display:flex}.pm-group-title{color:var(--fg-2);text-transform:none;letter-spacing:0;font-size:12px;font-weight:600}.pm-group-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.pm-perm-card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;padding:14px;transition:border-color .13s,background .13s}.pm-perm-card:hover{border-color:var(--bg-hover);background:var(--bg-2)}.pm-card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.pm-card-main{flex:1;align-items:flex-start;gap:8px;min-width:0;display:flex}.pm-card-name{color:var(--fg-0);font-size:13px;font-weight:600;line-height:1.3}.pm-card-key{color:var(--fg-3);font-size:11px;font-family:var(--font-mono);margin-top:2px}.pm-card-actions{opacity:0;flex-shrink:0;gap:2px;transition:opacity .13s;display:flex}.pm-perm-card:hover .pm-card-actions{opacity:1}.pm-card-desc{color:var(--fg-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 10px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.pm-card-footer{border-top:1px solid var(--line-soft);gap:6px;padding-top:10px;display:flex}.pm-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pm-modal{background:var(--card-bg);border-radius:14px;width:100%;max-width:480px;animation:.2s ease-out pmModalIn;box-shadow:0 20px 60px #00000026}@keyframes pmModalIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.pm-modal-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.pm-modal-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.pm-modal-close{cursor:pointer;width:32px;height:32px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.pm-modal-close:hover{background:var(--gray-100);color:var(--text-primary)}.pm-modal-body{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.pm-form-group{flex-direction:column;gap:6px;display:flex}.pm-form-group label{color:var(--text-primary);font-size:13px;font-weight:500}.pm-form-input,.pm-form-textarea{border:1px solid var(--border-color);color:var(--text-primary);background:var(--gray-50);border-radius:8px;outline:none;padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .15s,box-shadow .15s}.pm-form-input:focus,.pm-form-textarea:focus{border-color:var(--primary-400);background:var(--card-bg);box-shadow:0 0 0 3px #3b82f614}.pm-form-textarea{resize:vertical;min-height:60px}.pm-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.pm-assign-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a66;justify-content:flex-end;display:flex;position:fixed;inset:0}.pm-assign-panel{background:var(--card-bg);flex-direction:column;width:100%;max-width:460px;height:100%;animation:.25s ease-out pmDrawerIn;display:flex;box-shadow:-8px 0 30px #0000001a}@keyframes pmDrawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}.pm-assign-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:flex-start;padding:20px 24px;display:flex}.pm-assign-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.pm-assign-subtitle{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.pm-assign-tabs{flex-shrink:0;padding:0 22px}.pm-assign-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.pm-assign-search{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:8px;margin:16px 24px 12px;padding:0 12px;display:flex}.pm-assign-search svg{color:var(--text-muted);flex-shrink:0}.pm-assign-search-input{box-shadow:none!important;background:0 0!important;border:none!important;padding:8px 0!important}.pm-assign-list{flex-direction:column;flex:1;gap:4px;padding:0 24px 16px;display:flex;overflow-y:auto}.pm-assign-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.pm-assign-item:hover{background:var(--gray-50)}.pm-assign-item-selected{background:var(--primary-50);border-color:var(--primary-200)}.pm-assign-item-selected:hover{background:var(--primary-50)}.pm-assign-item input[type=checkbox]{display:none}.pm-assign-item-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.pm-assign-item-avatar{flex-shrink:0}.pm-assign-item-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pm-assign-item-name{color:var(--text-primary);font-size:13px;font-weight:500}.pm-assign-item-meta{color:var(--text-muted);font-size:11px}.pm-assign-item-role{color:var(--text-muted);background:var(--gray-100);white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px}.pm-assign-check{border:1.5px solid var(--gray-300);color:#0000;background:var(--card-bg);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .15s;display:flex}.pm-assign-item-selected .pm-assign-check{background:var(--primary-500);border-color:var(--primary-500);color:#fff}.pm-assign-empty{text-align:center;color:var(--text-muted);padding:32px 16px;font-size:13px}.pm-assign-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@media (max-width:768px){.pm-stats{grid-template-columns:repeat(2,1fr)}.pm-toolbar{flex-direction:column;align-items:stretch}.pm-toolbar-search{max-width:none}.pm-toolbar-filters{margin-left:0}.pm-group-cards{grid-template-columns:1fr}.pm-assign-panel{max-width:100%}}@media (max-width:480px){.pm-stats{grid-template-columns:1fr}.pm-page{padding:16px}}.um-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;margin-bottom:24px;padding-bottom:20px;display:flex}.um-header-left{flex-direction:column;gap:2px;display:flex}.um-breadcrumb{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.um-breadcrumb-sep{opacity:.5;font-size:10px}.um-title-row{align-items:center;gap:10px;display:flex}.um-page-title{color:var(--text-primary);letter-spacing:-.3px;margin:0;font-size:20px;font-weight:600;line-height:1.25}.um-count-badge{background:var(--gray-100);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:20px;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.um-page-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:13px}.um-btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;height:28px;font-size:12px;font-weight:500;line-height:1;font-family:var(--font-ui);letter-spacing:.01em;border:1px solid #0000;align-items:center;gap:6px;padding:0 11px;transition:background .13s,border-color .13s,color .13s;display:inline-flex}.um-btn-primary{background:var(--btn-primary);color:var(--accent-fg);border-color:var(--btn-primary)}.um-btn-primary:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.um-btn:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.um-btn-cancel{background:var(--gray-100);color:var(--text-secondary);border-color:var(--border-color)}.um-btn-cancel:hover{background:var(--gray-200);color:var(--text-primary)}.um-btn-danger{color:#fff;background:#dc2626;border-color:#b91c1c}.um-btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#991b1b}.um-btn-primary:disabled,.um-btn-danger:disabled{opacity:.55;cursor:not-allowed}.um-stats{gap:12px;margin-bottom:20px;display:flex}.um-stat-card{background:var(--card-bg);border:1px solid var(--border-color);cursor:default;border-radius:10px;flex-direction:column;flex:1;gap:5px;padding:16px 20px;transition:border-color .15s;display:flex}.um-stat-card:hover{border-color:var(--primary-400)}.um-stat-value{color:var(--text-primary);letter-spacing:-.5px;font-size:26px;font-weight:700;line-height:1}.um-stat-label{color:var(--text-muted);font-size:12px;font-weight:500}.um-stat-card--active .um-stat-value{color:var(--um-active-text)}.um-stat-card--inactive .um-stat-value{color:var(--um-inactive-text)}.um-stat-env-dot{vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.um-table-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.um-toolbar{border-bottom:1px solid var(--border-color);background:var(--gray-50);align-items:center;gap:10px;padding:12px 16px;display:flex}.um-toolbar-search{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;flex:1;align-items:center;gap:8px;min-width:0;max-width:320px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.um-toolbar-search:focus-within{border-color:var(--primary-400);background:var(--card-bg);box-shadow:0 0 0 3px #3b82f614}.um-toolbar-search svg{color:var(--text-muted);flex-shrink:0}.um-toolbar-search input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:8px 0;font-family:inherit;font-size:13px}.um-toolbar-search input::placeholder{color:var(--text-muted)}.um-toolbar-filters{align-items:center;gap:8px;display:flex}.um-table-wrap{overflow-x:auto}.um-table{border-collapse:collapse;width:100%}.um-table thead{background:var(--gray-50)}.um-table th{color:var(--text-muted);text-align:left;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:10px 16px;font-size:12px;font-weight:600}.um-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:13px 16px;font-size:13px}.um-table tr:last-child td{border-bottom:none}.um-table tbody tr{transition:background .1s}.um-table tbody tr:hover{background:var(--gray-50)}.um-table tbody tr:hover .um-actions{opacity:1}.um-user-cell{align-items:center;gap:11px;display:flex}.um-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.um-user-name{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:500}.um-user-email{color:var(--text-muted);white-space:nowrap;font-size:12px}.um-role-badge{background:var(--um-role-bg);color:var(--um-role-text);border:1px solid var(--um-role-border);white-space:nowrap;border-radius:20px;align-items:center;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.um-status{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.um-status:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.um-status-active{background:var(--um-active-bg);color:var(--um-active-text)}.um-status-active:before{background:var(--um-active-dot)}.um-status-inactive{background:var(--um-inactive-bg);color:var(--um-inactive-text)}.um-status-inactive:before{background:var(--um-inactive-dot)}.um-date{color:var(--text-muted);white-space:nowrap;font-size:12px}.um-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex}.um-action-btn{cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.um-action-edit:hover{background:var(--um-edit-hover-bg);color:var(--um-edit-hover-text);border-color:var(--um-edit-hover-border)}.um-action-delete:hover{background:var(--um-delete-hover-bg);color:var(--um-delete-hover-text);border-color:var(--um-delete-hover-border)}.um-drawer-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10000;background:#00000073;justify-content:flex-end;animation:.2s umFadeIn;display:flex;position:fixed;inset:0}.um-drawer{background:var(--card-bg);border-left:1px solid var(--border-color);flex-direction:column;width:440px;max-width:100vw;height:100vh;animation:.28s cubic-bezier(.4,0,.2,1) umSlideIn;display:flex;box-shadow:-12px 0 40px #00000029}@keyframes umFadeIn{0%{opacity:0}to{opacity:1}}@keyframes umSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.um-drawer--wide{width:520px}.um-form-textarea{resize:vertical;min-height:72px;padding-top:10px;line-height:1.55}.um-drawer-header{border-bottom:1px solid var(--border-color);background:var(--gray-50);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex}.um-drawer-header-left{align-items:center;gap:13px;min-width:0;display:flex}.um-drawer-title-group{min-width:0}.um-drawer-title-group h3{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0 0 2px;font-size:14px;font-weight:600;overflow:hidden}.um-drawer-title-group p{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin:0;font-size:12px;overflow:hidden}.um-drawer-close{border:1px solid var(--border-color);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.um-drawer-close:hover{background:var(--gray-100);color:var(--text-primary)}.um-drawer-body{flex:1;overflow:hidden auto}.um-drawer-body::-webkit-scrollbar{width:4px}.um-drawer-body::-webkit-scrollbar-track{background:0 0}.um-drawer-body::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:2px}.um-drawer-body::-webkit-scrollbar-thumb:hover{background:var(--gray-300)}.um-drawer-section{border-bottom:1px solid var(--border-color);padding:20px 22px}.um-drawer-section:last-child{border-bottom:none}.um-drawer-section-label{color:var(--text-muted);text-transform:none;letter-spacing:0;align-items:center;gap:8px;margin-bottom:14px;font-size:12px;font-weight:600;display:flex}.um-drawer-section-label:after{content:"";background:var(--border-color);flex:1;height:1px}.um-form-group{margin-bottom:14px}.um-form-group:last-child{margin-bottom:0}.um-form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.um-form-input,.um-form-select{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background:var(--card-bg);box-sizing:border-box;border-radius:6px;outline:none;padding:9px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.um-form-input:focus,.um-form-select:focus{border-color:var(--primary-400);box-shadow:0 0 0 3px #3b82f61a}.um-form-input::placeholder{color:var(--text-muted)}.um-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.um-role-chips{flex-wrap:wrap;align-items:center;gap:6px;min-height:30px;display:flex}.um-role-chip{background:color-mix(in oklch, var(--accent), transparent 84%);border:1px solid color-mix(in oklch, var(--accent), transparent 58%);color:var(--accent);white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:3px 6px 3px 10px;font-size:12px;font-weight:500;display:inline-flex}.um-role-chip-remove{cursor:pointer;width:16px;height:16px;color:color-mix(in oklch, var(--accent), transparent 35%);background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;padding:0;transition:background .1s,color .1s;display:grid}.um-role-chip-remove:hover{background:color-mix(in oklch, var(--accent), transparent 68%);color:var(--accent)}.um-role-empty{color:var(--text-muted);font-size:12px;font-style:italic}.um-role-add-wrap{position:relative}.um-role-add-btn{border:1px dashed var(--border-color);height:26px;color:var(--text-muted);cursor:pointer;font-size:12px;font-family:var(--font-ui);background:0 0;border-radius:20px;align-items:center;gap:5px;padding:0 10px;transition:border-color .13s,color .13s,background .13s;display:inline-flex}.um-role-add-btn:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in oklch, var(--accent), transparent 90%);border-style:solid}.um-role-add-panel{background:var(--card-bg);border:1px solid var(--border-color);z-index:500;border-radius:8px;min-width:160px;padding:4px;animation:.12s ease-out sdSlideDown;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 20px #00000040}.um-role-add-option{color:var(--text-primary);cursor:pointer;border-radius:5px;padding:7px 12px;font-size:12.5px;transition:background .1s}.um-role-add-option:hover{background:var(--gray-100)}.um-drawer-footer{border-top:1px solid var(--border-color);background:var(--gray-50);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 22px;display:flex}.um-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:72px 20px;display:flex}.um-empty h3{color:var(--text-secondary);margin:0;font-size:15px;font-weight:600}.um-empty p{margin:0;font-size:13px}@keyframes umShimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.um-skel{background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);background-size:1200px 100%;border-radius:5px;flex-shrink:0;animation:1.5s ease-in-out infinite umShimmer}.um-stat-skel-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;flex:1;gap:8px;padding:16px 20px;display:flex}.um-skel-stat-val{width:48px;height:26px}.um-skel-stat-lbl{width:90px;height:12px}.um-skel-circle{border-radius:50%;width:34px;height:34px}.um-skel-line-lg{height:13px}.um-skel-line-sm{height:11px}.um-skel-pill{border-radius:20px;height:22px}.um-skel-user-cell{align-items:center;gap:11px;display:flex}.um-skel-user-info{flex-direction:column;flex:1;gap:5px;display:flex}.tm-page{max-width:1200px}.tm-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.tm-header-left{align-items:center;gap:16px;display:flex}.tm-page-icon{background:color-mix(in oklch, var(--purple), transparent 86%);width:48px;height:48px;color:var(--accent-purple);border-radius:12px;justify-content:center;align-items:center;display:flex}.tm-page-title{color:var(--text-primary);margin:0;font-size:22px;font-weight:700}.tm-page-subtitle{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.tm-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.tm-btn-primary{background:var(--accent-purple);color:#fff}.tm-btn-primary:hover{background:#7c3aed}.tm-btn-cancel{background:var(--gray-100);color:var(--text-secondary)}.tm-btn-cancel:hover{background:var(--gray-200)}.tm-table-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.tm-toolbar{border-bottom:1px solid var(--gray-100);align-items:center;gap:12px;padding:16px 20px;display:flex}.tm-toolbar-search{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;flex:1;align-items:center;gap:8px;min-width:0;max-width:360px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.tm-toolbar-search:focus-within{border-color:var(--accent-purple);background:var(--card-bg);box-shadow:0 0 0 3px #8b5cf614}.tm-toolbar-search svg{color:var(--text-muted);flex-shrink:0}.tm-toolbar-search input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:9px 0;font-family:inherit;font-size:13px}.tm-table-wrap{overflow-x:auto}.tm-table{border-collapse:collapse;width:100%}.tm-table thead{background:var(--gray-50)}.tm-table th{color:var(--text-muted);text-align:left;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:12px;font-weight:600}.tm-table td{border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:12px 16px;font-size:13px}.tm-table tr:last-child td{border-bottom:none}.tm-table tr:hover{background:var(--gray-50)}.tm-row-clickable{cursor:pointer}.tm-team-cell{align-items:center;gap:10px;display:flex}.tm-team-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.tm-team-name{color:var(--text-primary);font-weight:500}.tm-desc,.tm-member-count{color:var(--text-secondary);font-size:13px}.tm-date{color:var(--text-muted);font-size:12px}.tm-actions{gap:4px;display:flex}.tm-action-btn{cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.tm-action-edit:hover{color:var(--accent-purple);background:#f5f3ff}.tm-action-delete:hover{color:var(--accent-red);background:#fef2f2}.tm-modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.tm-modal{background:var(--card-bg);border-radius:16px;flex-direction:column;width:520px;max-width:95vw;max-height:85vh;animation:.2s slideUp;display:flex;box-shadow:0 20px 60px #00000026}.tm-modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.tm-modal-header h3{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.tm-modal-close{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.tm-modal-close:hover{background:var(--gray-100);color:var(--text-primary)}.tm-modal-body{flex:1;padding:20px 24px;overflow-y:auto}.tm-form-group{margin-bottom:16px}.tm-form-group label{color:var(--text-secondary);text-transform:none;letter-spacing:0;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.tm-form-input,.tm-form-textarea{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background:var(--card-bg);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.tm-form-input:focus,.tm-form-textarea:focus{border-color:var(--accent-purple);box-shadow:0 0 0 3px #8b5cf61a}.tm-form-textarea{resize:vertical;min-height:60px}.tm-member-search{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-0);align-items:center;gap:8px;margin-bottom:6px;padding:7px 10px;transition:border-color .13s;display:flex}.tm-member-search:focus-within{border-color:var(--accent)}.tm-member-search svg{color:var(--fg-3);flex-shrink:0}.tm-member-search-input{color:var(--fg-1);font-size:12.5px;font-family:var(--font-ui);background:0 0;border:none;outline:none;flex:1;padding:0}.tm-member-search-input::placeholder{color:var(--fg-3)}.tm-member-list{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-0);max-height:260px;overflow-y:auto}.tm-member-list::-webkit-scrollbar{width:3px}.tm-member-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}.tm-member-item{border-bottom:1px solid var(--line-soft);cursor:pointer;flex-wrap:nowrap;align-items:center;gap:8px;padding:5px 12px;transition:background .1s;display:flex}label.tm-member-item{flex-wrap:nowrap!important;display:flex!important}.tm-member-item:last-child{border-bottom:none}.tm-member-item:hover{background:var(--bg-2)}.tm-member-item-selected{background:color-mix(in srgb, var(--accent), transparent 90%)}.tm-member-item-selected:hover{background:color-mix(in srgb, var(--accent), transparent 82%)}.tm-member-item input[type=checkbox]{width:15px;min-width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin:0}.tm-member-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex;overflow:hidden}.tm-member-name{color:var(--fg-1);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;overflow:hidden}.tm-member-email{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.tm-member-role-badge{background:color-mix(in srgb, var(--accent), transparent 86%);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent), transparent 60%);white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:500}.tm-member-empty{text-align:center;color:var(--fg-3);padding:28px 16px;font-size:12.5px}.tm-modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.tm-detail-overlay{z-index:1000;background:#0006;justify-content:flex-end;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.tm-detail-panel{background:var(--card-bg);flex-direction:column;width:420px;max-width:95vw;height:100%;animation:.2s slideInRight;display:flex;box-shadow:-4px 0 20px #0000001a}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.tm-detail-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.tm-detail-header h3{margin:0;font-size:16px;font-weight:600}.tm-detail-body{flex:1;padding:20px 24px;overflow-y:auto}.tm-detail-desc{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.6}.tm-detail-meta{color:var(--text-muted);border-bottom:1px solid var(--gray-100);gap:16px;margin-bottom:20px;padding-bottom:16px;font-size:12px;display:flex}.tm-detail-section-title{color:var(--text-secondary);text-transform:none;letter-spacing:0;margin-bottom:12px;font-size:13px;font-weight:600}.tm-detail-members{flex-direction:column;gap:8px;display:flex}.tm-detail-member{background:var(--gray-50);border-radius:8px;align-items:center;gap:12px;padding:10px 12px;display:flex}.tm-detail-member-info{flex:1;min-width:0}.tm-detail-member-name{color:var(--text-primary);font-size:13px;font-weight:500;display:block}.tm-detail-member-email{color:var(--text-muted);font-size:11px;display:block}.tm-detail-member-role{background:var(--primary-50);color:var(--primary-600);white-space:nowrap;border-radius:12px;padding:3px 8px;font-size:11px;font-weight:500}.tm-detail-no-members{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.tm-loading,.tm-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.tm-loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent-purple);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.tm-empty h3{color:var(--text-secondary);margin:8px 0 0;font-size:16px}.tm-empty p{font-size:13px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dbs-page{max-width:1400px}.dbs-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.dbs-header-left{align-items:center;gap:16px;display:flex}.dbs-page-icon{background:var(--primary-50);width:48px;height:48px;color:var(--primary-500);border-radius:12px;justify-content:center;align-items:center;display:flex}.dbs-page-title{color:var(--text-primary);margin:0;font-size:22px;font-weight:700}.dbs-page-subtitle{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.dbs-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.dbs-btn-primary{background:var(--primary-500);color:#fff}.dbs-btn-primary:hover{background:var(--primary-600)}.dbs-btn-secondary{background:var(--gray-100);color:var(--text-secondary);border:1px solid var(--border-color)}.dbs-btn-secondary:hover{background:var(--gray-200);color:var(--text-primary)}.dbs-stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:20px;display:grid}.dbs-stat-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;align-items:center;gap:14px;padding:16px 18px;transition:all .2s;display:flex}.dbs-stat-card:hover{border-color:var(--gray-300);transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.dbs-stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.dbs-stat-info{flex-direction:column;display:flex}.dbs-stat-number{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.1}.dbs-stat-label{color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:500}.dbs-table-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.dbs-toolbar{border-bottom:1px solid var(--gray-100);align-items:center;gap:12px;padding:16px 20px;display:flex}.dbs-toolbar-search{background:var(--gray-50);border:1px solid var(--border-color);border-radius:8px;flex:1;align-items:center;gap:8px;min-width:0;max-width:360px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.dbs-toolbar-search:focus-within{border-color:var(--primary-400);background:var(--card-bg);box-shadow:0 0 0 3px #3b82f614}.dbs-toolbar-search svg{color:var(--text-muted);flex-shrink:0}.dbs-toolbar-search input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:9px 0;font-family:inherit;font-size:13px}.dbs-toolbar-filters{align-items:center;gap:10px;margin-left:auto;display:flex}.dbs-filter-dd{width:180px;min-width:160px}.dbs-table-wrap{overflow-x:auto}.dbs-table{border-collapse:collapse;width:100%}.dbs-table thead{background:var(--gray-50)}.dbs-table th{color:var(--text-muted);text-align:left;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:12px;font-weight:600}.dbs-table td{border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:12px 16px;font-size:13px}.dbs-table tr:last-child td{border-bottom:none}.dbs-table tr:hover{background:var(--gray-50)}.dbs-db-cell{align-items:center;gap:10px;display:flex}.dbs-db-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.dbs-db-name{color:var(--text-primary);font-weight:500}.dbs-type-badge,.dbs-env-badge{letter-spacing:.3px;border:1px solid;border-radius:6px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.dbs-env-empty{color:var(--text-muted);font-size:13px}.dbs-status{border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.dbs-status:before{content:"";border-radius:50%;width:6px;height:6px}.dbs-status-active{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.dbs-status-active:before{background:#22c55e}.dbs-actions{gap:4px;display:flex}.dbs-action-btn{cursor:pointer;width:30px;height:30px;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.dbs-action-edit:hover{background:var(--primary-50);color:var(--primary-500)}.dbs-action-delete:hover{color:var(--accent-red);background:#fef2f2}.dbs-loading,.dbs-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.dbs-loading-spinner{border:3px solid var(--border-color);border-top-color:var(--primary-500);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.dbs-empty h3{color:var(--text-secondary);margin:8px 0 0;font-size:16px}.dbs-empty p{font-size:13px}.dbs-group-header{cursor:pointer;background:var(--gray-50)}.dbs-group-header:hover{background:var(--gray-100)}.dbs-group-header td{padding:14px 16px}.dbs-group-header-cell{align-items:center;gap:10px;display:flex}.dbs-group-toggle{width:20px;height:20px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s;display:flex}.dbs-group-toggle.expanded{transform:rotate(90deg)}.dbs-group-count{background:var(--primary-50);color:var(--primary-600);white-space:nowrap;border-radius:10px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.dbs-group-envs{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.dbs-group-env-dot{border-radius:8px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.dbs-group-row{display:none}.dbs-group-row.visible{display:table-row}.dbs-group-row td:first-child{padding-left:48px}.dbs-group-row td{border-bottom:1px solid var(--gray-50);background:var(--card-bg)}.dbs-group-row:last-child td,.dbs-group-row.visible+tr:not(.dbs-group-row) td{border-bottom:1px solid var(--gray-100)}.dbs-group-indent{align-items:center;gap:10px;padding-left:8px;display:flex;position:relative}.dbs-group-indent:before{content:"";border-radius:2px;width:3px;position:absolute;top:-4px;bottom:-4px;left:0}@media (max-width:640px){.dbs-page{padding:16px}.dbs-header{flex-direction:column;align-items:flex-start;gap:12px}.dbs-stat-grid{grid-template-columns:1fr 1fr;gap:10px}.dbs-stat-card{gap:10px;padding:12px 14px}.dbs-stat-number{font-size:18px}.dbs-toolbar{flex-direction:column;align-items:stretch}.dbs-toolbar-search{max-width:none}.dbs-toolbar-filters{margin-left:0}}.dbs-header-right{align-items:center;gap:10px;display:flex}.dbs-search-input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:9px 0;font-family:inherit;font-size:13px}.dbs-badge{letter-spacing:.3px;border-radius:6px;align-items:center;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.dbs-stat-value{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.1}.dbs-name-cell{align-items:center;gap:10px;display:flex}.dbs-toggle-arrow{width:20px;height:20px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s;display:flex}.dbs-toggle-arrow.dbs-toggle-open,.dbs-toggle-arrow.open{transform:rotate(180deg)}.dbs-env-dots{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.dbs-action-btns{gap:4px;display:flex}.dbs-row:hover{background:var(--gray-50)}.dbs-row-active td,.dbs-row-active{background:#22c55e14!important}.dbs-row-group{cursor:pointer;background:var(--bg-2)!important}.dbs-row-group:hover{background:var(--bg-3)!important}.dbs-row-child .uik-grid__td{background:var(--bg-0)}.dbs-td-mono{font-family:var(--font-mono);color:var(--fg-2);font-size:12px}.dbs-group-badge{background:var(--bg-3);color:var(--fg-2);border:1px solid var(--line);border-radius:20px;align-items:center;padding:1px 6px;font-size:11px;font-weight:600;display:inline-flex}.dbs-status-active{color:light-dark(#15803d,#22c55e);align-items:center;gap:5px;font-size:12px;font-weight:500;display:inline-flex}.dbs-list-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:8px 0;display:flex}.dbs-list-row:last-child{border-bottom:none}.dbs-list-desc{color:var(--fg-2);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.dbs-list-name{color:var(--fg-1);flex:1;font-size:13px;font-weight:500}.dbs-list-actions{flex-shrink:0;gap:4px;display:flex}.dbs-badge-grey{background:var(--bg-2);color:var(--fg-3);border:1px solid var(--line)}.dbs-th-name,.dbs-td-name{min-width:200px}.dbs-td-host{min-width:140px;color:var(--text-secondary);font-size:12px}.dbs-td-port{width:70px;color:var(--text-secondary);font-size:12px}.dbs-td-status{width:120px}.dbs-th-actions,.dbs-td-actions{text-align:right;width:80px}.dbs-spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.dbs-spinner-lg{border-width:3px;border-color:var(--border-color);border-top-color:var(--primary-500);width:32px;height:32px}.dbs-loading-inner{color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;font-size:13px;display:flex}.dbs-drawer-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;z-index:1200;background:#00000073;transition:opacity .28s,visibility .28s;position:fixed;inset:0}.dbs-drawer-overlay.open{opacity:1;visibility:visible}.dbs-drawer{background:var(--card-bg);border-left:1px solid var(--border-color);z-index:1201;flex-direction:column;width:480px;height:100vh;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-12px 0 48px #00000024}.dbs-drawer.open{transform:translate(0)}.dbs-drawer.dbs-drawer-lg{width:540px}.dbs-drawer-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.dbs-drawer-title-row{align-items:center;gap:14px;display:flex}.dbs-drawer-icon{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.dbs-drawer-icon-blue{background:color-mix(in oklch, var(--accent), transparent 86%);color:var(--accent)}.dbs-drawer-icon-green{background:color-mix(in oklch, var(--ok), transparent 86%);color:var(--ok)}.dbs-drawer-title{color:var(--text-primary);margin:0 0 2px;font-size:16px;font-weight:700}.dbs-drawer-subtitle{color:var(--text-secondary);margin:0;font-size:12px}.dbs-drawer-close{border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.dbs-drawer-close:hover{background:var(--surface);color:var(--text-primary);border-color:var(--border-color)}.dbs-drawer-body{flex:1;padding:8px 0;overflow-y:auto}.dbs-drawer-form-body{padding:0 24px 16px;overflow-y:auto}.dbs-drawer-row{border-bottom:1px solid var(--border-subtle,#0000000f);align-items:center;gap:12px;padding:12px 24px;transition:background .12s;display:flex}.dbs-drawer-row:last-child{border-bottom:none}.dbs-drawer-row:hover{background:var(--surface,#00000005)}.dbs-drawer-row-name{color:var(--text-primary);flex:1;font-size:14px;font-weight:500}.dbs-drawer-row-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.dbs-drawer-row-actions{flex-shrink:0;gap:6px;display:flex}.dbs-row-btn{border:1px solid var(--border-color);background:var(--surface);cursor:pointer;color:var(--text-primary);white-space:nowrap;border-radius:7px;align-items:center;gap:5px;padding:5px 11px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.dbs-row-btn:hover{background:var(--bg)}.dbs-row-btn-danger{border-color:color-mix(in oklch, var(--err), transparent 60%);background:color-mix(in oklch, var(--err), transparent 90%);color:var(--err)}.dbs-row-btn-danger:hover{background:color-mix(in oklch, var(--err), transparent 80%)}.dbs-type-badge{white-space:nowrap;border:1px solid;border-radius:20px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:600}.dbs-env-dot{border-radius:50%;flex-shrink:0;width:13px;height:13px;display:inline-block}.dbs-env-color-chip{white-space:nowrap;border-radius:5px;flex-shrink:0;padding:2px 8px;font-family:monospace;font-size:11px;font-weight:600}.dbs-drawer-empty{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:64px 24px 40px;display:flex}.dbs-drawer-empty svg{opacity:.35}.dbs-drawer-empty p{color:var(--text-secondary);margin:0;font-size:15px;font-weight:500}.dbs-drawer-empty-hint{color:var(--text-muted);font-size:13px}.dbs-drawer-footer{border-top:1px solid var(--border-color);background:var(--card-bg);flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;display:flex}.dbs-btn-ghost{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0}.dbs-btn-ghost:hover{background:var(--surface);color:var(--text-primary)}.dbs-form-section{padding:20px 0 0}.dbs-form-section+.dbs-form-section{border-top:1px solid var(--border-subtle,#0000000f)}.dbs-form-section-label{text-transform:none;letter-spacing:0;color:var(--text-muted);margin-bottom:14px;font-size:12px;font-weight:700}.dbs-modal-overlay{z-index:9000;background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.dbs-modal{background:var(--card-bg);border-radius:14px;flex-direction:column;width:100%;max-width:560px;max-height:calc(100vh - 80px);animation:.18s slideUp;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000002e}.dbs-modal-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.dbs-modal-title-row{align-items:center;gap:12px;display:flex}.dbs-modal-icon{background:var(--primary-50);width:40px;height:40px;color:var(--primary-500);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dbs-modal-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.dbs-modal-close{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.dbs-modal-close:hover{background:var(--gray-100);color:var(--text-primary)}.dbs-modal-body{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow-y:auto}.dbs-modal-footer{border-top:1px solid var(--border-color);flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;display:flex}.dbs-form-row{gap:14px;display:flex}.dbs-form-group{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.dbs-form-group-full{flex:0 0 100%;width:100%}.dbs-form-group-grow{flex:1 1 0;min-width:0}.dbs-form-group-port{flex:0 0 110px;min-width:0}.dbs-form-label{color:var(--text-secondary);font-size:12px;font-weight:600}.dbs-required{color:var(--accent-red,#ef4444);margin-left:2px}.dbs-form-input{border:1px solid var(--border-color);color:var(--text-primary);background:var(--card-bg);box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .15s,box-shadow .15s}.dbs-form-input:focus{border-color:var(--primary-400);box-shadow:0 0 0 3px #3b82f614}.dbs-form-test-section{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0 0;display:flex}.dbs-test-btn{border:1px solid var(--border-color);background:var(--gray-50);color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.dbs-test-btn:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-300)}.dbs-test-btn:disabled{opacity:.6;cursor:not-allowed}.dbs-test-result{border-radius:8px;align-items:flex-start;gap:8px;margin-top:10px;padding:9px 12px;font-size:12.5px;font-weight:500;line-height:1.4;display:flex}.dbs-test-result svg{flex-shrink:0;margin-top:1px}.dbs-test-success{background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok);border:1px solid color-mix(in srgb, var(--ok) 35%, transparent)}.dbs-test-error{background:color-mix(in srgb, var(--err) 12%, transparent);color:var(--err);border:1px solid color-mix(in srgb, var(--err) 35%, transparent)}.sd-wrapper{width:100%;position:relative}.sd-trigger{border:1px solid var(--border-color);background:var(--card-bg);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;font-size:13px;transition:border-color .15s;display:flex}.sd-trigger:hover{border-color:var(--gray-400)}.sd-open .sd-trigger{border-color:var(--primary-400);box-shadow:0 0 0 3px #3b82f61a}.sd-trigger-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sd-trigger-text.sd-placeholder{color:var(--text-muted)}.sd-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.sd-open .sd-chevron{transform:rotate(180deg)}.sd-panel{background:var(--card-bg);border:1px solid var(--border-color);z-index:99999;border-radius:10px;animation:.12s ease-out sdSlideDown;display:none;position:fixed;overflow:hidden;box-shadow:0 8px 24px #0000001f}.sd-panel-visible{display:block}@keyframes sdSlideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sd-search-wrap{border-bottom:1px solid var(--gray-100);align-items:center;gap:8px;padding:8px 12px;display:flex}.sd-search-wrap svg{color:var(--text-muted);flex-shrink:0}.sd-search{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.sd-search::placeholder{color:var(--text-muted)}.sd-options{max-height:200px;padding:4px;overflow-y:auto}.sd-option{cursor:pointer;color:var(--text-primary);border-radius:6px;justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;transition:background .1s;display:flex}.sd-option:hover{background:var(--gray-50)}.sd-option-selected{background:var(--primary-50);color:var(--primary-600);font-weight:500}.sd-option-selected:hover{background:var(--primary-100)}.sd-option-selected svg{color:var(--primary-500)}.sd-no-results{text-align:center;color:var(--text-muted);padding:16px 12px;font-size:13px}.um-filter-dd{width:auto;min-width:140px}.sd-filter .sd-trigger{border:1px solid var(--line);height:28px;color:var(--fg-2);background:0 0;border-radius:6px;padding:4px 10px;font-size:12.5px;font-weight:500}.sd-filter .sd-trigger:hover{border-color:var(--line);background:#afb8c126}.sd-filter.sd-open .sd-trigger{border-color:var(--line);background:#afb8c11f}.sd-filter .sd-trigger-text{color:var(--fg-2);font-size:12.5px}.sd-filter .sd-trigger-text.sd-placeholder,.sd-filter .sd-chevron{color:var(--fg-3)}.sd-filter-panel.sd-panel{border:1px solid var(--line);border-radius:8px;min-width:140px;box-shadow:0 4px 12px #8c959f33}.sd-filter-panel .sd-options{max-height:220px;padding:4px}.sd-filter-panel .sd-option{color:var(--fg-0);border-radius:5px;gap:6px;padding:6px 10px;font-size:12.5px}.sd-filter-panel .sd-option:hover{background:#afb8c133}.sd-filter-panel .sd-option-selected{color:var(--accent);background:#ddf4ff;font-weight:500}.sd-filter-panel .sd-option-selected:hover{background:#b6e3ff}.sd-filter-panel .sd-option-selected svg{color:var(--accent)}.dark-mode .sd-filter .sd-trigger{border-color:var(--line);color:var(--fg-2)}.dark-mode .sd-filter .sd-trigger:hover,.dark-mode .sd-filter.sd-open .sd-trigger{border-color:var(--fg-3);background:#ffffff0f}.dark-mode .sd-filter .sd-trigger-text{color:var(--fg-1)}.dark-mode .sd-filter .sd-trigger-text.sd-placeholder,.dark-mode .sd-filter .sd-chevron{color:var(--fg-3)}.dark-mode .sd-filter-panel.sd-panel{border-color:var(--line);background:var(--bg-1);box-shadow:0 4px 12px #0006}.dark-mode .sd-filter-panel .sd-option{color:var(--fg-0)}.dark-mode .sd-filter-panel .sd-option:hover{background:var(--bg-2)}.dark-mode .sd-filter-panel .sd-option-selected{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.dark-mode .sd-filter-panel .sd-option-selected:hover{background:color-mix(in srgb, var(--accent) 25%, transparent)}.dark-mode .sd-filter-panel .sd-option-selected svg{color:var(--accent)}@media (max-width:768px){.um-toolbar{flex-direction:column;align-items:stretch;gap:10px}.um-toolbar-search{max-width:none}.um-toolbar-filters{margin-left:0}}.db-page-header{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.db-page-header-left{align-items:center;gap:14px;display:flex}.db-page-icon{background:var(--bg-2);width:40px;height:40px;color:var(--fg-2);border:1px solid var(--line);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.db-page-title{color:var(--fg-0);margin:0;font-size:20px;font-weight:600}.db-page-subtitle{color:var(--fg-2);margin:2px 0 0;font-size:13px}.db-current-badge{color:var(--fg-2);background:#afb8c14d;border:none;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.db-multiselect{flex-shrink:0;width:260px}.db-multiselect-icon{color:var(--text-muted)}.db-multiselect .sd-panel{width:300px;max-width:90vw;position:absolute;top:calc(100% + 6px);left:auto;right:0}.db-multiselect-opt-label{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.db-multiselect-checkbox{border:1.5px solid var(--border-color);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.sd-option-selected .db-multiselect-checkbox{background:var(--primary-500);border-color:var(--primary-500)}.db-multiselect .sd-option:hover{background:var(--gray-100)}.db-multiselect .sd-option-selected{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.db-multiselect .sd-option-selected:hover{background:color-mix(in srgb, var(--accent) 25%, transparent)}.db-multiselect-opt-type{color:var(--text-muted);flex-shrink:0;margin-left:8px;font-size:11px}.db-multiselect-footer{border-top:1px solid var(--gray-100);align-items:center;gap:10px;padding:8px 10px;display:flex}.db-multiselect-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-family:inherit;font-size:12px}.db-multiselect-link:hover{color:var(--text-primary)}.db-multiselect-apply{background:var(--primary-500);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-left:auto;padding:6px 14px;font-family:inherit;font-size:12.5px;font-weight:600}.db-multiselect-apply:hover{background:var(--primary-600)}.db-multiselect-apply:disabled{opacity:.5;cursor:not-allowed}.db-stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.db-stat-card{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:14px;padding:16px 20px;transition:border-color .12s;display:flex}.db-stat-icon{background:var(--bg-2);width:36px;height:36px;color:var(--fg-2);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.db-stat-icon.purple,.db-stat-icon.cyan,.db-stat-icon.green,.db-stat-icon.orange{background:var(--bg-2);color:var(--fg-2)}.db-stat-info{flex-direction:column;display:flex}.db-stat-number{color:var(--fg-0);font-size:22px;font-weight:600;line-height:1.1}.db-stat-label{color:var(--fg-2);margin-top:3px;font-size:12px;font-weight:400}.db-content-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.db-content-col{flex-direction:column;gap:20px;display:flex}.app-dep-section{margin-top:20px}.app-dep-tree{flex-direction:column;gap:4px;display:flex}.app-dep-app-row{background:var(--gray-50);border:1px solid var(--border-color);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;transition:background .15s,border-color .15s;display:flex}.app-dep-app-row:hover{background:var(--gray-100);border-color:var(--primary-400)}.app-dep-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.app-dep-app-row.open .app-dep-chevron,.app-dep-db-row.open .app-dep-chevron{transform:rotate(90deg)}.app-dep-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.app-dep-name{flex:1;font-size:13px;font-weight:600}.app-dep-counts{gap:6px;display:flex}.app-dep-count-badge{color:var(--text-muted);background:var(--gray-100);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:500}.app-dep-svc-icon{color:inherit;flex-shrink:0}.app-dep-flow-btn{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:background .13s,border-color .13s,color .13s;display:flex}.app-dep-flow-btn:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:var(--primary-400);color:var(--accent)}.app-dep-export-wrap{flex-shrink:0}.app-dep-export-btn{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:background .13s,border-color .13s,color .13s;display:flex}.app-dep-export-btn:hover,.app-dep-export-btn.active{background:color-mix(in srgb, var(--accent) 12%, transparent);border-color:var(--primary-400);color:var(--accent)}.app-dep-export-dropdown{width:218px}.afm-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10005;background:#01040999;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out afmFadeIn;display:flex;position:fixed;inset:0}@keyframes afmFadeIn{0%{opacity:0}to{opacity:1}}.afm-modal{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;flex-direction:column;width:920px;max-width:100%;max-height:90vh;animation:.18s cubic-bezier(.16,1,.3,1) both afmPopIn;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080,0 4px 16px #0000004d}@keyframes afmPopIn{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.afm-header{border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:12px;padding:16px 18px;display:flex}.afm-header-icon{background:var(--gray-100);border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.afm-header-text{flex:1;min-width:0}.afm-header-text h3{color:var(--text-primary);margin:0;font-size:14.5px;font-weight:600}.afm-header-text p{color:var(--text-muted);margin:2px 0 0;font-size:12px}.afm-close{border:1px solid var(--border-color);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.afm-close:hover{background:var(--gray-100);color:var(--text-primary);border-color:var(--bg-active)}.afm-canvas-wrap{background:radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 45%), radial-gradient(circle at 85% 80%, #a78bfa0d, transparent 45%);flex:1;justify-content:center;padding:10px 18px;display:flex;overflow:auto}.afm-canvas-wrap canvas{display:block}.afm-node-tooltip{z-index:10006;background:var(--bg-0);border:1px solid var(--border-color);max-width:320px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border-radius:6px;padding:5px 9px;font-family:Fira Mono,Cascadia Code,Consolas,monospace;font-size:11.5px;display:none;position:fixed;overflow:hidden;box-shadow:0 6px 18px #0006}.afm-footer{border-top:1px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:10px 18px;display:flex}.afm-hint{color:var(--text-muted);font-size:11.5px}.afm-legend{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.afm-legend-item{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:11.5px;display:flex}.afm-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.app-dep-db-list{border-left:2px solid var(--border-color);flex-direction:column;gap:4px;margin:4px 0 8px 21px;padding-left:16px;display:flex}.app-dep-db-row{border:1px solid var(--border-color);cursor:pointer;text-align:left;width:100%;color:var(--text-secondary);background:0 0;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;transition:background .15s,color .15s;display:flex}.app-dep-db-row:hover{background:var(--gray-50);color:var(--text-primary)}.app-dep-db-name{flex:1;font-size:12.5px;font-weight:500}.app-dep-table-list{background:var(--gray-50);border-radius:7px;flex-wrap:wrap;gap:6px;margin:4px 0 6px 33px;padding:8px 10px;display:flex}.app-dep-table-chip{color:var(--text-primary);background:var(--gray-100);border:1px solid var(--border-color);border-radius:5px;padding:3px 8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px}.app-dep-table-empty{color:var(--text-muted);font-size:12px;font-style:italic}.db-card{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.db-card-header{border-bottom:1px solid var(--line-soft);color:var(--fg-2);align-items:center;gap:8px;padding:12px 16px;display:flex}.db-card-header h3{color:var(--fg-0);flex:1;margin:0;font-size:13px;font-weight:600}.db-card-badge{color:var(--fg-2);background:#afb8c14d;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.db-card-link{color:var(--accent);white-space:nowrap;font-size:12px;font-weight:500;text-decoration:none;transition:color .12s}.db-card-link:hover{color:var(--accent);text-decoration:underline}.db-card-content{padding:16px}.db-empty{color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:32px 20px;font-size:13px;display:flex}.db-schema-chart{flex-direction:column;gap:16px;display:flex}.db-schema-bar{background:var(--gray-100);border-radius:6px;gap:2px;height:28px;display:flex;overflow:hidden}.db-schema-seg{min-width:6px;height:100%;transition:width .4s}.db-schema-seg:first-child{border-radius:4px 0 0 4px}.db-schema-seg:last-child{border-radius:0 4px 4px 0}.db-schema-legend{flex-direction:column;gap:9px;display:flex}.db-schema-legend-row{align-items:center;gap:8px;font-size:12.5px;display:flex}.db-schema-legend-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.db-schema-legend-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.db-schema-legend-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.db-schema-legend-pct{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;min-width:34px;font-weight:600}.db-changes-list{flex-direction:column;gap:0;display:flex}.db-change-item{border-bottom:1px solid var(--gray-100);gap:12px;padding:12px 0;display:flex}.db-change-item:last-child{border-bottom:none;padding-bottom:0}.db-change-item:first-child{padding-top:0}.db-change-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.db-change-dot.added{background:var(--accent-green)}.db-change-dot.removed{background:var(--accent-red)}.db-change-dot.modified{background:var(--accent-orange)}.db-change-dot.default{background:var(--gray-400)}.db-change-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.db-change-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.db-change-badge{white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.db-change-badge.added{color:#16a34a;background:#22c55e1a}.db-change-badge.removed{color:#dc2626;background:#ef44441a}.db-change-badge.modified{color:#ea580c;background:#f973161a}.db-change-date{color:var(--text-muted);white-space:nowrap;font-size:11px}.db-change-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.db-mini-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.db-mini-stat{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;flex-direction:column;align-items:center;padding:12px 8px;transition:border-color .12s;display:flex}.db-mini-stat-num{color:var(--fg-0);font-size:18px;font-weight:600;line-height:1}.db-mini-stat-label{color:var(--fg-2);margin-top:3px;font-size:11px;font-weight:400}.db-logins-section{border-top:1px solid var(--gray-100);padding-top:16px}.db-logins-title{color:var(--text-muted);text-transform:none;letter-spacing:0;margin-bottom:12px;font-size:12px;font-weight:600;display:block}.db-logins-list{flex-direction:column;gap:0;display:flex}.db-login-item{border-bottom:1px solid var(--gray-50);align-items:center;gap:10px;padding:8px 0;display:flex}.db-login-item:last-child{border-bottom:none;padding-bottom:0}.db-login-info{flex-direction:column;flex:1;min-width:0;display:flex}.db-login-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.db-login-role{color:var(--text-muted);font-size:11px}.db-login-time{color:var(--text-muted);white-space:nowrap;font-size:11px}.db-quick-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.db-quick-item{border:1px solid var(--line);color:var(--fg-0);background:#fff;border-radius:6px;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;font-size:12px;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:flex}.db-quick-item:hover{border-color:var(--fg-1);background:var(--bg-2)}.db-quick-icon{background:var(--bg-2);width:32px;height:32px;color:var(--fg-2);border-radius:6px;justify-content:center;align-items:center;display:flex}.db-quick-icon.blue,.db-quick-icon.green,.db-quick-icon.purple,.db-quick-icon.orange{background:var(--bg-2);color:var(--fg-2)}@media (max-width:1024px){.db-stat-grid{grid-template-columns:repeat(2,1fr)}.db-content-grid{grid-template-columns:1fr}}@media (max-width:640px){.db-dashboard-page{padding:16px}.db-page-header{flex-direction:column}.db-stat-grid{grid-template-columns:1fr 1fr;gap:10px}.db-stat-card{gap:12px;padding:14px}.db-stat-number{font-size:20px}.db-mini-stats{grid-template-columns:repeat(3,1fr);gap:8px}.db-quick-grid{grid-template-columns:1fr 1fr;gap:8px}}.sidebar-wizard-btn{border:1px solid color-mix(in oklch, var(--purple), transparent 65%);background:color-mix(in oklch, var(--purple), transparent 86%);width:100%;color:var(--purple);cursor:pointer;border-radius:7px;align-items:center;gap:8px;margin-bottom:4px;padding:7px 10px;font-size:12.5px;font-weight:600;transition:all .15s;display:flex}.sidebar-wizard-btn:hover{background:#ede9fe;border-color:#c4b5fd}.sidebar-wizard-btn:disabled{opacity:.4;cursor:not-allowed}.sidebar-wizard-btn:disabled:hover{background:#faf5ff;border-color:#e9d5ff}.sidebar-wizard-btn svg{flex-shrink:0}.wizard-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#00000080;justify-content:center;align-items:center;animation:.2s wizardFadeIn;display:flex;position:fixed;inset:0}@keyframes wizardFadeIn{0%{opacity:0}to{opacity:1}}.wizard-overlay.wizard-hide{animation:.2s forwards wizardFadeOut}@keyframes wizardFadeOut{0%{opacity:1}to{opacity:0}}.wizard-modal{background:var(--card-bg);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;width:100%;max-width:620px;max-height:85vh;animation:.25s wizardSlideUp;display:flex;box-shadow:0 20px 60px #0003}@keyframes wizardSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.wizard-header{border-bottom:1px solid var(--gray-100);align-items:center;gap:14px;padding:20px 24px 16px;display:flex}.wizard-header-icon{color:#8b5cf6;background:#8b5cf61a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.wizard-header-info{flex:1;min-width:0}.wizard-header-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.wizard-header-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:12px}.wizard-close-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.wizard-close-btn:hover{background:var(--gray-100);color:var(--text-primary)}.wizard-steps{background:var(--gray-50);align-items:center;gap:8px;padding:12px 24px;display:flex}.wizard-step{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:500;transition:color .2s;display:flex}.wizard-step.active{color:var(--primary-600);font-weight:600}.wizard-step.completed{color:var(--accent-green)}.wizard-step-num{border:1.5px solid var(--gray-300);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;transition:all .2s;display:flex}.wizard-step.active .wizard-step-num{border-color:var(--primary-600);background:var(--primary-600);color:#fff}.wizard-step.completed .wizard-step-num{border-color:var(--accent-green);background:var(--accent-green);color:#fff}.wizard-step-separator{background:var(--gray-300);width:24px;height:1px}.wizard-body{flex:1;min-height:0;padding:20px 24px;overflow-y:auto}.wizard-sql-label{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.wizard-sql-hint{color:var(--text-muted);margin-bottom:12px;font-size:11.5px;line-height:1.5}.wizard-sql-input{border:1px solid var(--border-color);background:var(--gray-50);width:100%;min-height:180px;color:var(--text-primary);resize:vertical;border-radius:10px;outline:none;padding:14px 16px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.6;transition:border-color .15s,box-shadow .15s}.wizard-sql-input:focus{border-color:var(--primary-500);background:var(--card-bg);box-shadow:0 0 0 3px #3b82f61a}.wizard-sql-input::placeholder{color:var(--text-muted);font-style:italic}.wizard-error{color:#dc2626;background:#ef444414;border:1px solid #ef444433;border-radius:8px;align-items:flex-start;gap:8px;margin-top:10px;padding:10px 14px;font-size:12.5px;font-weight:500;line-height:1.4;display:none}.wizard-error.visible{display:flex}.wizard-error svg{flex-shrink:0;margin-top:1px}.wizard-info{background:var(--gray-50);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:12.5px;font-weight:500;line-height:1.4;display:flex}.wizard-info svg{flex-shrink:0;margin-top:1px}.wizard-rel-table{border-collapse:collapse;border:1px solid var(--border-color);border-radius:6px;width:100%;margin-bottom:4px;font-size:12.5px;overflow:hidden}.wizard-rel-table thead{background:var(--gray-50)}.wizard-rel-table th{color:var(--text-muted);text-align:left;letter-spacing:.2px;border-bottom:1px solid var(--border-color);padding:7px 12px;font-size:11px;font-weight:600}.wizard-rel-table td{border-bottom:1px solid var(--gray-100);vertical-align:middle;color:var(--text-primary);padding:9px 12px}.wizard-rel-table tr:last-child td{border-bottom:none}.wizard-rel-table td code{background:var(--gray-100);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:11.5px}.wizard-rel-table tr:hover td{background:var(--gray-50)}.wizard-rel-table tr.wizard-rel-exists{opacity:.55}.wizard-rel-check,.wizard-table-check{width:14px;height:14px;accent-color:var(--primary-600);cursor:pointer}.wizard-rel-arrow{color:var(--text-muted);font-weight:600}.wizard-rel-badge{border-radius:6px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.wizard-rel-badge-new{color:#16a34a;background:#22c55e1a}.wizard-rel-badge-exists{color:#6b7280;background:#6b72801a}.wizard-rel-badge-type{color:#2563eb;background:#3b82f61a}.wizard-no-relations{text-align:center;color:var(--text-muted);padding:30px 20px}.wizard-no-relations svg{opacity:.4;margin-bottom:8px}.wizard-no-relations p{margin:0;font-size:13px}.wizard-footer{border-top:1px solid var(--gray-100);justify-content:space-between;align-items:center;gap:10px;padding:16px 24px;display:flex}.wizard-footer-left,.wizard-footer-right{gap:8px;display:flex}.wizard-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:9px 18px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.wizard-btn-secondary{background:var(--gray-100);color:var(--text-secondary);border:1px solid var(--border-color)}.wizard-btn-secondary:hover{background:var(--gray-200);color:var(--text-primary)}.wizard-btn-primary{background:var(--primary-600);color:#fff}.wizard-btn-primary:hover{background:var(--primary-700)}.wizard-btn-primary:disabled{opacity:.5;cursor:not-allowed}.wizard-btn-success{color:#fff;background:#16a34a}.wizard-btn-success:hover{background:#15803d}.wizard-btn-success:disabled{opacity:.5;cursor:not-allowed}.wizard-section-label{color:var(--text-muted);text-transform:none;letter-spacing:0;border-bottom:1px solid var(--border-color);margin:16px 0 8px;padding-bottom:4px;font-size:12px;font-weight:600}.wz-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10000;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0}.wz-panel{background:var(--card-bg);flex-direction:column;width:560px;height:100%;animation:.28s cubic-bezier(.4,0,.2,1) wzSlideIn;display:flex;box-shadow:-4px 0 32px #0000002e}@keyframes wzSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.wz-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.wz-header-left{align-items:center;gap:14px;display:flex}.wz-header-icon{background:var(--gray-100);width:36px;height:36px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.wz-title{color:var(--text-primary);margin:0 0 1px;font-size:14px;font-weight:600}.wz-subtitle{color:var(--text-muted);margin:0;font-size:12px}.wz-close-btn{border:1px solid var(--border-color);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.wz-close-btn:hover{background:var(--surface);color:var(--text-primary)}.wz-body{flex:1;min-height:0;padding:20px 24px;overflow:hidden auto}.wz-body::-webkit-scrollbar{width:6px}.wz-body::-webkit-scrollbar-track{background:var(--gray-100)}.wz-body::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.wz-body::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.wz-footer-bar{border-top:1px solid var(--border-color);background:var(--card-bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:16px 24px;display:flex}.sidebar-ai-btn{border:1px solid color-mix(in oklch, var(--info), transparent 65%);background:color-mix(in oklch, var(--info), transparent 86%);width:100%;color:var(--info);cursor:pointer;border-radius:7px;align-items:center;gap:8px;margin-bottom:4px;padding:7px 10px;font-size:12.5px;font-weight:600;transition:all .15s;display:flex}.sidebar-ai-btn:hover{background:#cffafe;border-color:#67e8f9}.sidebar-ai-btn svg{flex-shrink:0}.ac-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#00000073;justify-content:flex-end;animation:.2s acFadeIn;display:flex;position:fixed;inset:0}@keyframes acFadeIn{0%{opacity:0}to{opacity:1}}.ac-panel{background:var(--card-bg);border-left:1px solid var(--border-color);flex-direction:row;width:740px;max-width:100%;height:100vh;animation:.25s acSlideIn;display:flex;box-shadow:-8px 0 30px #0000001f}.ac-sidebar{border-right:1px solid var(--border-color);background:var(--gray-50);flex-direction:column;width:260px;min-width:260px;display:flex}.ac-sidebar-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.ac-sidebar-title{color:var(--text-primary);margin:0;font-size:13px;font-weight:700}.ac-sidebar-new-btn{border:1px solid var(--border-color);background:var(--card-bg);width:30px;height:30px;color:var(--accent-cyan);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.ac-sidebar-new-btn:hover{border-color:var(--accent-cyan);background:#06b6d414}.ac-sidebar-list{flex:1;padding:6px 0;overflow-y:auto}.ac-sidebar-list::-webkit-scrollbar{width:4px}.ac-sidebar-list::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:10px}.ac-sidebar-item{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:6px;padding:10px 16px;transition:all .12s;display:flex}.ac-sidebar-item.active{border-left-color:var(--accent-cyan);background:#06b6d40f}.ac-sidebar-item-content{flex:1;min-width:0}.ac-sidebar-item-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;line-height:1.3;overflow:hidden}.ac-sidebar-item-meta{align-items:center;gap:8px;margin-top:2px;display:flex}.ac-sidebar-item-date,.ac-sidebar-item-count{color:var(--text-muted);font-size:10.5px}.ac-sidebar-item-actions{opacity:0;gap:2px;transition:opacity .15s;display:flex}.ac-sidebar-item:hover .ac-sidebar-item-actions{opacity:1}.ac-sidebar-item-rename,.ac-sidebar-item-delete{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;transition:all .12s;display:flex}.ac-sidebar-item-rename:hover{background:var(--gray-200);color:var(--accent-cyan)}.ac-sidebar-item-delete:hover{color:var(--accent-red);background:#ef444414}.ac-sidebar-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 20px;font-size:12px;display:flex}.ac-main{flex-direction:column;flex:1;min-width:0;display:flex}.ac-sidebar-toggle{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.ac-sidebar-toggle:hover{background:var(--gray-100);color:var(--text-primary)}.ac-sidebar-toggle.active{color:var(--accent-cyan);background:#06b6d414}.ac-sidebar.ac-sidebar-hidden{border-right:none;width:0;min-width:0;padding:0;overflow:hidden}.ac-sidebar{transition:width .25s,min-width .25s}@keyframes acSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.ac-header{border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.ac-header-left{align-items:center;gap:12px;display:flex}.ac-header-icon{width:36px;height:36px;color:var(--accent-cyan);background:#06b6d41a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ac-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:700;line-height:1.2}.ac-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:11.5px}.ac-close-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.ac-close-btn:hover{background:var(--gray-100);color:var(--text-primary)}.ac-model-bar{border-bottom:1px solid var(--border-color);background:var(--gray-50);flex-shrink:0;align-items:center;gap:8px;padding:10px 20px;display:flex}.ac-model-selector{flex:1;min-width:0}.ac-model-selector .sd-trigger{background:var(--card-bg);border-color:var(--border-color);height:34px;font-size:12.5px}.ac-clear-btn{border:1px solid var(--border-color);background:var(--card-bg);width:34px;height:34px;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.ac-clear-btn:hover{border-color:var(--accent-red);color:var(--accent-red);background:#ef44440d}.ac-messages{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.ac-messages::-webkit-scrollbar{width:5px}.ac-messages::-webkit-scrollbar-track{background:0 0}.ac-messages::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:10px}.ac-welcome{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 20px;display:flex}.ac-welcome-icon{width:56px;height:56px;color:var(--accent-cyan);background:#06b6d414;border-radius:14px;justify-content:center;align-items:center;margin-bottom:16px;display:flex}.ac-welcome h4{color:var(--text-primary);margin:0 0 6px;font-size:15px;font-weight:700}.ac-welcome p{color:var(--text-muted);margin:0 0 20px;font-size:12.5px}.ac-suggestions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.ac-suggestion{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;padding:7px 14px;font-size:12px;font-weight:500;transition:all .15s}.ac-suggestion:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#06b6d40d}.ac-msg{gap:10px;max-width:100%;display:flex}.ac-msg-user{justify-content:flex-end}.ac-msg-avatar{width:28px;height:28px;color:var(--accent-cyan);background:#06b6d41a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;display:flex}.ac-msg-bubble{word-break:break-word;border-radius:12px;max-width:85%;padding:10px 14px;font-size:13px;line-height:1.55}.ac-msg-user-bubble{background:var(--primary-500);color:#fff;border-bottom-right-radius:4px}.ac-msg-ai-bubble{background:var(--gray-100);color:var(--text-primary);border-bottom-left-radius:4px}.ac-msg-error-bubble{color:var(--accent-red);background:#ef444414;border:1px solid #ef444433;border-radius:12px;font-size:12.5px}.ac-msg-ai-bubble h3{color:var(--text-primary);margin:12px 0 6px;font-size:14px;font-weight:700}.ac-msg-ai-bubble h4{color:var(--text-primary);margin:10px 0 4px;font-size:13px;font-weight:600}.ac-msg-ai-bubble ul{margin:6px 0;padding-left:18px}.ac-msg-ai-bubble li{margin:3px 0}.ac-msg-ai-bubble strong{font-weight:600}.ac-code-wrap{border:1px solid var(--gray-200);border-radius:8px;margin:8px 0;overflow:hidden}.ac-code-header{background:var(--gray-700);border-bottom:1px solid var(--gray-600);justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.ac-code-lang{color:#94a3b8;text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;font-weight:600}.ac-code-copy-btn{color:#94a3b8;cursor:pointer;background:#ffffff14;border:none;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:10.5px;transition:all .15s;display:flex}.ac-code-copy-btn:hover{color:#e2e8f0;background:#ffffff26}.ac-code-copy-btn.ac-copied{color:var(--accent-green)}.ac-code-block{background:var(--code-bg);color:var(--code-fg);white-space:pre;margin:0;padding:12px 14px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.5;overflow-x:auto}.ac-msg-actions{border-top:1px solid var(--gray-200);justify-content:flex-end;margin-top:8px;padding-top:6px;display:flex}.ac-copy-msg-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:11px;transition:all .15s;display:flex}.ac-copy-msg-btn:hover{background:var(--gray-200);color:var(--text-primary)}.ac-copy-msg-btn.ac-copied{color:var(--accent-green)}.ac-inline-code{color:var(--accent-cyan);background:#06b6d414;border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11.5px}.ac-typing{align-items:center;gap:4px;padding:12px 16px;display:flex}.ac-typing-dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s infinite acTypingBounce}.ac-typing-dot:nth-child(2){animation-delay:.15s}.ac-typing-dot:nth-child(3){animation-delay:.3s}@keyframes acTypingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ac-input-area{border-top:1px solid var(--border-color);background:var(--card-bg);flex-shrink:0;padding:12px 20px 16px}.ac-input-wrap{border:1px solid var(--border-color);background:var(--gray-50);border-radius:12px;align-items:flex-end;gap:8px;padding:8px 8px 8px 14px;transition:border-color .15s;display:flex}.ac-input-wrap:focus-within{border-color:var(--accent-cyan);box-shadow:0 0 0 3px #06b6d41a}.ac-input{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:120px;padding:2px 0;font-family:inherit;font-size:13px;line-height:1.5}.ac-input::placeholder{color:var(--text-muted)}.ac-send-btn{background:var(--accent-cyan);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;transition:all .15s;display:flex}.ac-send-btn:hover{background:#0891b2}.ac-send-btn:disabled{opacity:.5;cursor:not-allowed}.ac-send-loading{animation:1.5s infinite acPulse}@keyframes acPulse{0%,to{opacity:.5}50%{opacity:.3}}@media (max-width:780px){.ac-panel{width:100%}.ac-sidebar{z-index:10;transition:transform .25s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 20px #0000001a}.ac-sidebar.ac-sidebar-open{transform:translate(0)}.ac-sidebar.ac-sidebar-hidden{display:flex;transform:translate(-100%)}.ac-sidebar.ac-sidebar-hidden.ac-sidebar-open{transform:translate(0)}.ac-main{width:100%}}@media (max-width:540px){.ac-suggestions{flex-direction:column}.ac-suggestion{white-space:normal;text-align:center}.ac-sidebar{width:100%;min-width:100%}}.ar-title-group{align-items:center;gap:16px;display:flex}.ar-page-icon{background:var(--bg-2);width:48px;height:48px;color:var(--fg-2);border:1px solid var(--line);background:var(--bg-2);border-color:var(--line);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ar-header-filters{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.ar-header-filter{flex-direction:column;gap:5px;display:flex}.ar-filter-label{color:var(--text-muted);text-transform:none;letter-spacing:0;font-size:12px;font-weight:600}.ar-dropdown-container{min-width:190px}.ar-dropdown-sm{min-width:150px}.ar-stat-card--highlight{cursor:default}.ar-stat-value--badge{font-size:inherit;align-items:center;margin-bottom:2px;line-height:1;display:flex}.ar-stat-value--model{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:14px;font-weight:600;overflow:hidden}.ar-charts-row{grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px;display:grid}.ar-chart-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:18px 20px;overflow:hidden}.ar-chart-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.ar-chart-title{color:var(--text-muted);text-transform:none;letter-spacing:0;margin:0;font-size:12px;font-weight:600}.ar-chart-legend{gap:14px;display:flex}.ar-legend-item{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:flex}.ar-legend-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.ar-legend-conversations{background:var(--accent-cyan,#06b6d4)}.ar-legend-messages{background:var(--primary-500,#3b82f6);opacity:.45}.ar-chart-skeleton{align-items:flex-end;gap:3px;height:174px;padding-bottom:4px;display:flex}.ar-bar-sk{border-radius:2px 2px 0 0;flex:1;min-height:8px}.ar-chart-empty{height:174px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.ar-chart-area{height:174px;margin-bottom:4px;position:relative}.ar-chart-grid-lines{pointer-events:none;flex-direction:column;justify-content:space-between;padding-bottom:4px;display:flex;position:absolute;inset:0}.ar-grid-line{background:var(--border-color);opacity:.5;width:100%;height:1px}.ar-bar-chart{align-items:flex-end;gap:3px;display:flex;position:absolute;inset:0 0 4px}.ar-bar-group{cursor:pointer;flex:1;align-items:flex-end;gap:1px;min-width:0;display:flex}.ar-bar-group:hover .ar-bar{opacity:.7}.ar-bar{border-radius:2px 2px 0 0;flex:1;min-height:0;transition:height .3s,opacity .15s}.ar-bar-messages{background:var(--primary-500,#3b82f6);opacity:.35}.ar-bar-conversations{background:var(--accent-cyan,#06b6d4)}.ar-bar-labels{gap:3px;margin-top:5px;display:flex}.ar-bar-label{text-align:center;color:var(--text-muted);flex:1;min-width:0;font-size:10px;overflow:hidden}.ar-provider-list{flex-direction:column;display:flex}.ar-provider-item{border-bottom:1px solid var(--border-color);align-items:center;padding:10px 0;display:flex}.ar-provider-item:last-child{border-bottom:none}.ar-provider-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.ar-provider-rank{background:var(--gray-100);border:1px solid var(--border-color);width:22px;height:22px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.ar-provider-details{flex:1;min-width:0}.ar-provider-name-row{align-items:center;gap:6px;margin-bottom:3px;display:flex}.ar-provider-model{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-size:11px;overflow:hidden}.ar-provider-stats{color:var(--text-secondary);align-items:center;gap:4px;font-size:11px;display:flex}.ar-provider-sep{color:var(--text-muted)}.ar-provider-right{flex-direction:column;align-items:flex-end;gap:4px;min-width:52px;padding-left:10px;display:flex}.ar-provider-pct-label{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.ar-provider-bar-wrap{background:var(--gray-100);border-radius:3px;width:52px;height:5px;overflow:hidden}.ar-provider-bar{border-radius:3px;min-width:4px;height:100%;transition:width .5s}.ar-provider-badge{white-space:nowrap;border:1px solid #0000;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.ar-provider-default{background:var(--gray-100);color:var(--text-secondary);border-color:var(--border-color)}.ar-provider-bar.ar-provider-openai{background:#10a37f}.ar-provider-bar.ar-provider-groq{background:#f97316}.ar-provider-bar.ar-provider-gemini{background:#3b82f6}.ar-provider-bar.ar-provider-anthropic{background:#8b5cf6}.ar-provider-bar.ar-provider-default{background:var(--text-muted)}.ar-td-title{white-space:nowrap;text-overflow:ellipsis;max-width:280px;font-weight:500;overflow:hidden}.ar-td-model{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:hidden}.ar-td-count{text-align:center;color:var(--accent-cyan,#06b6d4);font-variant-numeric:tabular-nums;font-weight:600}.ar-td-date{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.ar-chart-card{background:var(--bg-1);border-color:var(--line)}.ar-grid-line{background:var(--line);opacity:.6}.ar-provider-item{border-bottom-color:var(--bg-2)}.ar-provider-rank{background:var(--bg-2);border-color:var(--line);color:var(--fg-3)}.ar-provider-bar-wrap{background:var(--bg-2)}.ar-provider-openai{color:light-dark(#047857,#3fb994);background:#10a37f1f;border-color:#10a37f40}.ar-provider-groq{color:light-dark(#c2410c,#fb923c);background:#f973161f;border-color:#f9731640}.ar-provider-gemini{color:light-dark(#1d4ed8,#60a5fa);background:#3b82f61f;border-color:#3b82f640}.ar-provider-anthropic{color:light-dark(#6d28d9,#a78bfa);background:#8b5cf61f;border-color:#8b5cf640}.ar-provider-default{background:var(--bg-2);border-color:var(--line);color:var(--fg-2)}.ar-stat-value--model{color:var(--fg-0)}@media (max-width:1024px){.ar-charts-row{grid-template-columns:1fr}}@media (max-width:768px){.ar-header-filters{width:100%}.um-header{flex-wrap:wrap;align-items:flex-start}}.export-menu-container{position:relative}.export-menu-trigger{align-items:center;gap:5px;display:flex}.export-menu-trigger .export-menu-chevron{color:var(--text-secondary);flex-shrink:0;transition:transform .2s}.export-menu-trigger.active .export-menu-chevron{transform:rotate(180deg)}.export-menu-trigger.active{border-color:var(--primary-400);color:var(--primary-400);background:#3b82f61f}.export-menu-dropdown{background:var(--card-bg);border:1px solid var(--border-color);z-index:500;opacity:0;visibility:hidden;border-radius:10px;width:230px;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;transform:translateY(-6px)scale(.98);box-shadow:0 8px 24px #0000001a,0 2px 6px #0000000f}.export-menu-dropdown.active{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.export-menu-divider{background:var(--border-color);height:1px;margin:0 12px}.export-menu-item{cursor:pointer;align-items:center;gap:12px;padding:10px 14px;transition:background .15s;display:flex}.export-menu-item:first-child{padding-top:12px}.export-menu-item:last-child{padding-bottom:12px}.export-menu-item:hover{background:var(--gray-50)}.export-menu-item:hover .export-menu-item-label{color:var(--primary-600)}.export-menu-item-primary{background:#3b82f61a}.export-menu-item-primary:hover{background:#3b82f629}.export-menu-item-primary .export-menu-item-label{color:var(--primary-400);font-weight:600}.export-menu-item-icon{border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.export-menu-item-icon-blue{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.export-menu-item-icon-amber{color:light-dark(#a16207,#d4a017);background:#eab30826}.export-menu-item-icon-green{color:var(--ok);background:#22c55e26}.export-menu-item-text{flex-direction:column;gap:1px;display:flex}.export-menu-item-label{color:var(--text-primary);font-size:13px;font-weight:500;line-height:1.3}.export-menu-item-desc{color:var(--text-secondary);font-size:11px;line-height:1.3}.fb-page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.fb-header-left{align-items:center;gap:14px;display:flex}.fb-page-title{color:var(--text-primary);margin:0 0 2px;font-size:17px;font-weight:600}.fb-page-subtitle{color:var(--text-muted);margin:0;font-size:13px}.fb-label{color:var(--text-secondary);letter-spacing:.01em;margin-bottom:8px;font-size:12.5px;font-weight:600;display:block}.fb-input{border:1px solid var(--border-color);background:var(--gray-50);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s,background .15s}.fb-input:focus{border-color:var(--primary-500);background:var(--card-bg);box-shadow:0 0 0 3px #3b82f61a}.fb-input::placeholder{color:var(--text-muted)}.fb-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.fb-btn:disabled{opacity:.45;cursor:not-allowed}.fb-btn-primary{background:var(--primary-600);color:#fff}.fb-btn-primary:hover:not(:disabled){background:var(--primary-700)}.fb-btn-outline{border:1.5px solid var(--border-color);color:var(--text-secondary);background:0 0}.fb-btn-outline:hover{background:var(--gray-50);color:var(--text-primary)}.fb-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite fbSpin}@keyframes fbSpin{to{transform:rotate(360deg)}}.hp-quick-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;display:grid}@media (max-width:1000px){.hp-quick-grid{grid-template-columns:repeat(2,1fr)}}.hp-quick-card{border:1.5px solid var(--border-color);background:var(--card-bg);cursor:pointer;text-align:left;appearance:none;color:inherit;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;font-family:inherit;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.hp-quick-card:hover{border-color:var(--gray-300);background:var(--gray-50)}.hp-quick-card.active{border-color:var(--primary-500);background:#3b82f614;box-shadow:0 0 0 3px #3b82f60f}.hp-quick-icon{background:var(--gray-100);width:36px;height:36px;color:var(--text-secondary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:2px;transition:background .15s,color .15s;display:flex}.hp-quick-card{background:var(--card-bg);color:var(--text-primary)}.hp-quick-card:hover{background:var(--gray-100);border-color:var(--gray-200)}.hp-quick-card.active{border-color:var(--primary-500);background:#3b82f61f}.hp-quick-card.active .hp-quick-icon{color:var(--primary-400);background:#3b82f633}.hp-guide-panel,.hp-card{background:var(--card-bg)}.hp-card-header,.hp-faq-q:hover,.hp-faq-a,.hp-contact-block{background:var(--gray-100)}.hp-quick-title{color:var(--text-primary);font-size:12.5px;font-weight:600;line-height:1}.hp-quick-desc{color:var(--text-muted);font-size:11.5px;line-height:1.4}.hp-guide-panel{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;margin-bottom:20px;padding:24px}.hp-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-color);margin:0 0 20px;padding-bottom:14px;font-size:14px;font-weight:600}.hp-steps{flex-direction:column;gap:0;display:flex}.hp-step{border-bottom:1px solid var(--border-color);gap:16px;padding:14px 0;display:flex}.hp-step:last-child{border-bottom:none;padding-bottom:0}.hp-step-num{background:var(--primary-600);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:1px;font-size:11.5px;font-weight:700;display:flex}.hp-step-body{flex:1}.hp-step-title{color:var(--text-primary);margin-bottom:3px;font-size:13px;font-weight:600}.hp-step-text{color:var(--text-secondary);font-size:12.5px;line-height:1.5}.hp-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.hp-card-header{border-bottom:1px solid var(--border-color);background:var(--gray-50);color:var(--text-secondary);align-items:center;gap:8px;padding:16px 20px;display:flex}.hp-card-title{color:var(--text-primary);margin:0;font-size:13px;font-weight:600}.hp-faq-list{flex-direction:column;display:flex}.hp-faq-item{border-bottom:1px solid var(--border-color)}.hp-faq-item:last-child{border-bottom:none}.hp-faq-q{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:13px 20px;font-family:inherit;font-size:12.5px;font-weight:500;transition:background .12s;display:flex}.hp-faq-q:hover{background:var(--gray-50)}.hp-faq-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s}.hp-faq-item.open .hp-faq-chevron{transform:rotate(180deg)}.hp-faq-a{color:var(--text-secondary);background:var(--gray-50);padding:0 20px 14px;font-size:12.5px;line-height:1.65}.hp-contact-block{background:var(--gray-50);border-top:1px solid var(--border-color);margin:4px 0 0;padding:16px 20px}.hp-contact-header{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.hp-contact-block p{color:var(--text-muted);margin:0 0 10px;font-size:12px;line-height:1.5}.hp-contact-link{color:var(--primary-600);align-items:center;gap:5px;font-size:12px;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.hp-contact-link:hover{color:var(--primary-700)}.pf-tab-nav{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:2px;padding:8px;display:flex}.pf-tab-btn{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;appearance:none;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:9px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:background .13s,color .13s;display:flex}.pf-tab-btn:hover{background:var(--gray-100);color:var(--text-primary)}.pf-tab-btn.active{background:var(--gray-100);color:var(--text-primary);font-weight:600}.pf-tab-btn:hover,.pf-tab-btn.active{background:var(--gray-100)}.pf-form{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.pf-form-header{border-bottom:1px solid var(--border-color);background:var(--gray-50);background:var(--gray-100);padding:20px 24px 16px}.pf-form-title{color:var(--text-primary);margin:0 0 4px;font-size:14px;font-weight:600}.pf-form-desc{color:var(--text-muted);margin:0;font-size:12.5px}.pf-field-grid{flex-direction:column;gap:18px;max-width:480px;padding:24px;display:flex}.pf-field{flex-direction:column;gap:6px;display:flex}.pf-field-hint{color:var(--text-muted);margin-top:2px;font-size:11.5px}.pf-form-footer{border-top:1px solid var(--border-color);background:var(--gray-50);background:var(--gray-100);justify-content:flex-end;padding:16px 24px;display:flex}.pf-msg{border-radius:8px;align-items:center;gap:8px;margin:0 24px 20px;padding:10px 14px;font-size:12.5px;font-weight:500;display:flex}.pf-msg-success{color:#16a34a;background:#22c55e14;border:1px solid #22c55e33}.pf-msg-error{color:#dc2626;background:#ef444414;border:1px solid #ef444433}.st-layout{grid-template-columns:220px 1fr;align-items:flex-start;gap:20px;display:grid}@media (max-width:860px){.st-layout{grid-template-columns:1fr}}.st-aside{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:8px}.st-aside .pf-tab-nav{background:0 0;border:none;border-radius:0;padding:0}.st-main{min-width:0}.st-section-body{flex-direction:column;gap:28px;padding:24px;display:flex}.st-group-label{color:var(--text-muted);text-transform:none;letter-spacing:0;margin-bottom:14px;font-size:12px;font-weight:600}.st-theme-cards{grid-template-columns:repeat(5,minmax(0,168px));gap:12px;display:grid}.st-theme-card{border:1px solid var(--border-color);background:var(--card-bg);cursor:pointer;text-align:left;color:inherit;appearance:none;border-radius:12px;flex-direction:column;gap:10px;padding:8px 8px 10px;font-family:inherit;transition:border-color .15s,box-shadow .2s,transform .2s cubic-bezier(.34,1.4,.64,1);display:flex}.st-theme-card:hover{border-color:color-mix(in oklch, var(--accent), var(--line) 60%);box-shadow:var(--shadow-1);transform:translateY(-1px)}.st-theme-card:focus-visible{box-shadow:0 0 0 3px var(--ring);outline:none}.st-theme-card.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent), transparent 82%)}.st-theme-card.active .st-theme-name{color:var(--fg-0)}.st-theme-preview{border:1px solid var(--line-soft);border-radius:8px;height:96px;position:relative;overflow:hidden}.st-tp-surface{display:flex;position:absolute;inset:0}.st-theme-preview--split .st-tp-surface+.st-tp-surface{clip-path:polygon(62% 0,100% 0,100% 100%,38% 100%)}.st-theme-light{background:#f4f6f9}.st-theme-dark{background:#181818}.st-theme-slate{background:#161a21}.st-theme-dark-blue{background:#0b1422}.st-tp-sidebar{flex-shrink:0;width:22%;height:100%}.st-theme-light .st-tp-sidebar{background:#fff;border-right:1px solid #e3e7ee}.st-theme-dark .st-tp-sidebar{background:#1f1f1f;border-right:1px solid #303030}.st-theme-slate .st-tp-sidebar{background:#1c212a;border-right:1px solid #2a3040}.st-theme-dark-blue .st-tp-sidebar{background:#111e30;border-right:1px solid #1f3049}.st-tp-content{flex-direction:column;flex:1;gap:6px;min-width:0;padding:8px;display:flex}.st-tp-bar{border-radius:3px;width:55%;height:8px}.st-theme-light .st-tp-bar{background:#d7dde6}.st-theme-dark .st-tp-bar{background:#3b3b3b}.st-theme-slate .st-tp-bar{background:#343b4c}.st-theme-dark-blue .st-tp-bar{background:#2d4260}.st-tp-card{border-radius:5px;flex-direction:column;gap:5px;padding:7px;display:flex}.st-theme-light .st-tp-card{background:#fff;border:1px solid #e7ebf1;box-shadow:0 1px 2px #10182814}.st-theme-dark .st-tp-card{background:#1f1f1f;border:1px solid #303030}.st-theme-slate .st-tp-card{background:#1c212a;border:1px solid #2a3040}.st-theme-dark-blue .st-tp-card{background:#111e30;border:1px solid #1f3049}.st-tp-line{border-radius:2px;height:5px}.st-tp-line-short{width:60%}.st-theme-light .st-tp-line{background:#e3e7ee}.st-theme-dark .st-tp-line{background:#303030}.st-theme-slate .st-tp-line{background:#2a3040}.st-theme-dark-blue .st-tp-line{background:#1f3049}.st-tp-chip{border-radius:999px;width:34%;height:8px}.st-theme-light .st-tp-chip{background:oklch(55% .17 231)}.st-theme-dark .st-tp-chip{background:#257de0}.st-theme-slate .st-tp-chip{background:oklch(74% .15 231)}.st-theme-dark-blue .st-tp-chip{background:linear-gradient(100deg,#5fd3e8,#a596ff)}.st-theme-footer{align-items:flex-start;gap:8px;padding:0 2px;display:flex}.st-theme-radio{border:1.5px solid var(--gray-400);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;margin-top:2px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.st-theme-radio.checked{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--card-bg)}.st-theme-text{flex-direction:column;gap:1px;min-width:0;display:flex}.st-theme-name{color:var(--text-secondary);font-size:12.5px;font-weight:600}.st-theme-desc{color:var(--fg-3);font-size:11.5px}.st-theme-hint{color:var(--fg-3);margin:12px 0 0;font-size:12px}.st-theme-hint strong{color:var(--fg-1);font-weight:600}@media (max-width:640px){.st-theme-cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.st-lang-list{flex-direction:column;gap:4px;max-width:320px;display:flex}.st-lang-item{border:1.5px solid var(--border-color);background:var(--card-bg);cursor:pointer;appearance:none;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;transition:border-color .13s,background .13s;display:flex}.st-lang-item:hover{border-color:var(--gray-300);background:var(--gray-50)}.st-lang-item.active{border-color:var(--primary-500);background:#3b82f61a}.st-lang-flag{font-size:18px;line-height:1}.st-lang-name{color:var(--text-primary);text-align:left;flex:1;font-size:13px;font-weight:500}.st-lang-check{color:var(--primary-600);flex-shrink:0}.st-notif-list{border:1px solid var(--border-color);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.st-notif-row{border-bottom:1px solid var(--border-color);background:var(--card-bg);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.st-notif-row:last-child{border-bottom:none}.st-notif-text{flex-direction:column;gap:2px;display:flex}.st-notif-label{color:var(--text-primary);font-size:13px;font-weight:500}.st-notif-desc{color:var(--text-muted);font-size:12px}.st-notif-row,.pf-tab-nav,.pf-form,.st-aside{background:var(--card-bg)}.pii-add-btn{color:var(--fg-3);border:1px dashed var(--line);cursor:pointer;opacity:0;white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;transition:opacity .15s,border-color .15s,color .15s;display:inline-flex}.pii-add-btn{color:var(--fg-3);border-color:var(--line)}.fields-table tbody tr:hover .pii-add-btn{opacity:1}.pii-add-btn:hover{border-color:var(--accent);color:var(--accent)}.pii-badge{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:10px;align-items:center;max-width:120px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex;overflow:hidden}.pii-badge:hover{opacity:.85}.pii-cat-red{color:#dc2626;background:#ef44441f;border:1px solid #ef444440}.pii-cat-blue{color:#1d4ed8;background:#3b82f61f;border:1px solid #3b82f640}.pii-cat-amber{color:#b45309;background:#f59e0b1f;border:1px solid #f59e0b40}.pii-cat-orange{color:#c2410c;background:#f973161f;border:1px solid #f9731640}.pii-cat-purple{color:#7c3aed;background:#a855f71f;border:1px solid #a855f740}.pii-cat-teal{color:#0f766e;background:#14b8a61f;border:1px solid #14b8a640}.pii-cat-green{color:#15803d;background:#22c55e1f;border:1px solid #22c55e40}.pii-cat-slate{color:#475569;background:#64748b1f;border:1px solid #64748b40}.pii-cat-gray{color:#4b5563;background:#6b72801f;border:1px solid #6b728040}.pii-cat-red{color:light-dark(#b91c1c,#f87171);background:#ef44442e;border-color:#ef444459}.pii-cat-blue{color:light-dark(#1d4ed8,#93c5fd);background:#3b82f62e;border-color:#3b82f659}.pii-cat-amber{color:light-dark(#b45309,#fbbf24);background:#f59e0b2e;border-color:#f59e0b59}.pii-cat-orange{color:light-dark(#c2410c,#fb923c);background:#f973162e;border-color:#f9731659}.pii-cat-purple{color:light-dark(#7e22ce,#c084fc);background:#a855f72e;border-color:#a855f759}.pii-cat-teal{color:light-dark(#0f766e,#2dd4bf);background:#14b8a62e;border-color:#14b8a659}.pii-cat-green{color:light-dark(#15803d,#4ade80);background:#22c55e2e;border-color:#22c55e59}.pii-cat-slate{color:light-dark(#64748b,#94a3b8);background:#64748b2e;border-color:#64748b59}.pii-cat-gray{color:light-dark(#6b7280,#9ca3af);background:#6b72802e;border-color:#6b728059}.pii-picker{z-index:9999;border:1px solid var(--line);background:#fff;background:var(--bg-1);border-color:var(--line);border-radius:8px;width:260px;position:fixed;overflow:hidden;box-shadow:0 8px 24px #0006}.pii-picker-header{border-bottom:1px solid #f0f2f4;border-bottom-color:var(--bg-2);justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.pii-picker-title{color:var(--fg-0);font-size:12px;font-weight:600}.pii-picker-close{cursor:pointer;color:var(--fg-3);background:0 0;border:none;padding:2px 4px;font-size:14px;line-height:1}.pii-picker-close:hover{color:var(--fg-0)}.pii-picker-grid{max-height:280px;padding:8px 10px;overflow-y:auto}.pii-picker-cat-label{letter-spacing:0;text-transform:none;margin-top:4px;padding:4px 2px 2px;font-size:12px;font-weight:600}.pii-picker-cat-row{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.pii-picker-footer{border-top:1px solid #f0f2f4;border-top-color:var(--bg-2);padding:6px 10px 8px}.pii-picker-clear{color:var(--err);cursor:pointer;background:#ef444414;border:1px solid #ef444433;border-radius:4px;padding:3px 10px;font-size:11px}.pii-picker-clear:hover{background:#ef444426}.pii-picker-clear{color:light-dark(#b91c1c,#f87171);background:#ef44441a;border-color:#ef44444d}.fed-pii-btn{cursor:pointer;background:var(--bg-2);color:var(--fg-0);border:1px solid #0000;border-radius:10px;align-items:center;padding:3px 9px;font-size:11px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.fed-pii-btn.active{font-weight:600}.fed-pii-btn{background:var(--bg-2);color:var(--fg-1)}.fed-pii-btn:hover{background:var(--line)}.fed-pii-red.active{color:light-dark(#b91c1c,#f87171);background:#ef44442e;border-color:#ef444466}.fed-pii-blue.active{color:light-dark(#1d4ed8,#93c5fd);background:#3b82f62e;border-color:#3b82f666}.fed-pii-amber.active{color:light-dark(#b45309,#fbbf24);background:#f59e0b2e;border-color:#f59e0b66}.fed-pii-orange.active{color:light-dark(#c2410c,#fb923c);background:#f973162e;border-color:#f9731666}.fed-pii-purple.active{color:light-dark(#7e22ce,#c084fc);background:#a855f72e;border-color:#a855f766}.fed-pii-teal.active{color:light-dark(#0f766e,#2dd4bf);background:#14b8a62e;border-color:#14b8a666}.fed-pii-green.active{color:light-dark(#15803d,#4ade80);background:#22c55e2e;border-color:#22c55e66}.fed-pii-slate.active{color:light-dark(#64748b,#94a3b8);background:#64748b2e;border-color:#64748b66}.fed-pii-gray.active{color:light-dark(#6b7280,#9ca3af);background:#6b72802e;border-color:#6b728066}.fed-pii-grid{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.fed-pii-group{border-top:1px solid var(--line-soft);border-top-color:var(--bg-2);margin-top:4px;padding-top:14px}.field-pii-cell{align-items:center;display:flex}.pim-stats-row{background:#fff;background:var(--bg-1);border:1px solid #e8ecf0;border-color:var(--bg-2);border-radius:10px;align-items:center;gap:0;margin-bottom:20px;padding:14px 24px;display:flex}.pim-stat{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.pim-stat-val{color:var(--fg-0);font-size:22px;font-weight:700;line-height:1.2}.pim-stat-lbl{color:var(--fg-2);text-transform:none;letter-spacing:0;font-size:12px;font-weight:500}.pim-stat-val{color:var(--fg-0)}.pim-stat-lbl{color:var(--fg-2)}.pim-stat-div{background:#e8ecf0;background:var(--bg-2);flex-shrink:0;width:1px;height:32px}.pim-section-label-row{color:var(--fg-0);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.pim-section-label-row svg{color:var(--fg-2);flex-shrink:0}.pim-cat-cell{align-items:center;gap:10px;display:flex}.pim-gdpr-badge{color:light-dark(#7e22ce,#c084fc);white-space:nowrap;background:#a855f71f;border:1px solid #a855f740;border-radius:6px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.pim-count-link{color:var(--accent);cursor:pointer;border-bottom:1px dashed var(--accent);padding-bottom:1px;font-size:13px;font-weight:600}.pim-count-link:hover{opacity:.75}.pim-count-link{color:var(--accent);border-color:var(--accent)}.pim-empty-count{opacity:.4}.pim-filter-active-btn{color:var(--accent)!important;background:#0969da14!important;background:color-mix(in srgb, var(--accent) 12%, transparent)!important;border-color:#0969da4d!important;border-color:color-mix(in srgb, var(--accent) 30%, transparent)!important}.pim-tr-active td{background:#0969da0a!important;background:color-mix(in srgb, var(--accent) 7%, transparent)!important}.pim-active-filter-chip{border:1px solid #0000;border-radius:10px;align-items:center;gap:5px;padding:2px 8px 2px 10px;font-size:11px;font-weight:600;display:inline-flex}.pim-active-filter-chip button{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;align-items:center;padding:0;display:flex}.pim-active-filter-chip button:hover{opacity:1}.pim-cell-stack{flex-direction:column;gap:2px;display:flex}.pim-table-link{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:5px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.pim-table-link:hover{text-decoration:underline}.pim-table-link{color:var(--accent)}.pim-col-name{color:var(--fg-2);padding-left:16px;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:11px}.pim-badge{white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.pim-cat-picker{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.pim-cat-pick-btn{background:var(--bg-2);color:var(--fg-0);cursor:pointer;border:1.5px solid #e4e8ec;border-radius:10px;padding:5px 11px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.pim-cat-pick-btn:hover{background:#e9ebec;border-color:#c8cdd3}.pim-cat-pick-btn.active{font-weight:700}.pim-cat-pick-btn{background:var(--bg-2);border-color:var(--line);color:var(--fg-1)}.pim-cat-pick-btn:hover{background:var(--bg-3)}.pim-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.rm-page-icon{border:none!important}.header-dropdown-item.active{color:var(--accent);background:#f0f6ff;background:color-mix(in srgb, var(--accent) 12%, transparent)}.erd-context-menu{z-index:99999;border:1px solid var(--border-color,#e1e4e8);opacity:0;transform-origin:0 0;pointer-events:none;-webkit-user-select:none;user-select:none;background:#fff;border-radius:10px;flex-direction:column;gap:1px;min-width:220px;padding:5px;transition:opacity .12s,transform .12s;display:none;position:fixed;overflow:visible;transform:scale(.95)translateY(-4px);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}.erd-context-menu.open{opacity:1;pointer-events:auto;animation:.12s forwards ctxMenuIn;display:flex;transform:scale(1)translateY(0)}@keyframes ctxMenuIn{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.ctx-item{cursor:pointer;color:var(--text-primary,var(--fg-0));border-radius:6px;align-items:center;gap:10px;padding:7px 10px;font-size:13px;font-weight:450;transition:background .1s,color .1s;display:flex;position:relative}.ctx-icon{width:20px;height:20px;color:var(--text-secondary,var(--fg-2));flex-shrink:0;justify-content:center;align-items:center;transition:color .1s;display:flex}.ctx-label{flex:1;line-height:1}.ctx-check{width:16px;height:16px;color:var(--accent-color,var(--accent));flex-shrink:0;justify-content:center;align-items:center;transition:opacity .1s;display:flex}.ctx-item.ctx-active .ctx-icon{color:var(--accent-color,var(--accent))}.ctx-item.ctx-active .ctx-label{color:var(--accent-color,var(--accent));font-weight:500}.ctx-separator{background:var(--border-color,#e1e4e8);border-radius:1px;height:1px;margin:3px 0}.ctx-group-label{text-transform:none;letter-spacing:0;color:var(--text-muted,#9ca3af);pointer-events:none;-webkit-user-select:none;user-select:none;padding:6px 10px 2px;font-size:12px;font-weight:700}.ctx-item.ctx-has-sub{position:relative}.ctx-sub-arrow{color:light-dark(#64748b,#94a3b8);flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;margin-left:auto;transition:color .1s,transform .1s;display:flex}.ctx-item.ctx-has-sub:hover .ctx-sub-arrow{color:var(--accent-color,var(--accent))}.ctx-submenu{border:1px solid var(--border-color,#e1e4e8);opacity:0;pointer-events:none;z-index:100000;background:#fff;border-radius:10px;flex-direction:column;gap:1px;min-width:200px;padding:5px;transition:opacity .13s,transform .13s;display:flex;position:absolute;top:-5px;left:calc(100% + 4px);transform:translate(-6px);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}.ctx-item.ctx-has-sub:hover .ctx-submenu{opacity:1;pointer-events:auto;transform:translate(0)}.ctx-subs-left .ctx-submenu{left:auto;right:calc(100% + 4px);transform:translate(6px)}.ctx-subs-left .ctx-item.ctx-has-sub:hover .ctx-submenu{transform:translate(0)}.ctx-subs-left .ctx-sub-arrow{transform:scaleX(-1)}.ctx-item.ctx-has-sub:hover{background:var(--gray-50,var(--bg-2));color:var(--accent-color,var(--accent))}.ctx-item.ctx-has-sub:hover .ctx-icon{color:var(--accent-color,var(--accent))}.ctx-item.ctx-has-sub:after{content:"";width:8px;height:100%;position:absolute;top:0;right:-8px}.ctx-subs-left .ctx-item.ctx-has-sub:after{left:-8px;right:auto}.ctx-submenu,.erd-context-menu{background:var(--bg-1);border-color:var(--line);box-shadow:0 8px 32px #0006,0 2px 8px #00000040}.ctx-item{color:var(--fg-0)}.ctx-item:hover{background:var(--tint-2);color:var(--accent)}.ctx-item:hover .ctx-icon{color:var(--accent)}.ctx-icon{color:var(--fg-2)}.ctx-item.ctx-active .ctx-icon,.ctx-item.ctx-active .ctx-label,.ctx-check{color:var(--accent)}.ctx-group-label{color:var(--fg-3)}.ctx-separator{background:var(--line)}.erd-table-ctx-menu{min-width:200px}.ctx-table-header{color:var(--text-secondary,var(--fg-2));letter-spacing:0;text-transform:none;align-items:center;gap:7px;padding:6px 10px 4px;font-size:12px;font-weight:600;display:flex}.ctx-table-header svg{opacity:.6;flex-shrink:0}.ctx-table-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.ctx-item.ctx-danger,.ctx-item.ctx-danger .ctx-icon{color:var(--err)}.ctx-item.ctx-danger:hover{color:var(--err);background:#cf222e14}.ctx-item.ctx-danger:hover .ctx-icon,.ctx-item.ctx-danger,.ctx-item.ctx-danger .ctx-icon{color:var(--err)}.ctx-item.ctx-danger:hover{background:color-mix(in srgb, var(--err) 12%, transparent);color:var(--err)}.ctx-item.ctx-danger:hover .ctx-icon{color:var(--err)}.erd-bead{cursor:crosshair;opacity:0;pointer-events:none;z-index:6;background:#3b82f6;border:2px solid #fff;border-radius:50%;flex-shrink:0;width:10px;height:10px;transition:opacity .15s,transform .15s,background .15s,box-shadow .15s;position:absolute;top:50%;transform:translateY(-50%)scale(.5);box-shadow:0 0 0 1.5px #3b82f659}.erd-bead-left{left:-5px}.erd-bead-right{right:-5px}.erd-table:hover .erd-bead,.erd-table.bead-active .erd-bead{opacity:1;pointer-events:auto;transform:translateY(-50%)scale(1)}.erd-bead:hover{background:#2563eb;box-shadow:0 0 0 3px #3b82f638,0 2px 8px #3b82f64d;transform:translateY(-50%)scale(1.4)!important}.erd-table.bead-target-hover .erd-bead{opacity:1;pointer-events:auto;background:#14b8a6;transform:translateY(-50%)scale(1);box-shadow:0 0 0 1.5px #14b8a659}.erd-table.bead-target-hover .erd-bead:hover{background:#0f766e;box-shadow:0 0 0 3px #14b8a638,0 2px 8px #14b8a64d}.erd-table.bead-active{box-shadow:0 0 0 2px #3b82f666,0 6px 20px #0000001f}.erd-table.bead-target-hover{box-shadow:0 0 0 2.5px #14b8a680,0 6px 20px #14b8a62e}.erd-drag-active,.erd-drag-active *{cursor:crosshair!important}@keyframes erd-dash-march{to{stroke-dashoffset:-20px}}.erd-preview-line{animation:.45s linear infinite erd-dash-march}.rel-quick-backdrop{z-index:9999;background:0 0;display:none;position:fixed;inset:0}.rel-quick-backdrop.open{display:block}.rel-quick-modal{z-index:10000;background:var(--bg-1);border:1px solid var(--line);box-shadow:var(--shadow-2);border-radius:14px;flex-direction:column;gap:12px;min-width:300px;max-width:360px;padding:16px;display:none;position:fixed}.rel-quick-modal.open{animation:.2s cubic-bezier(.34,1.56,.64,1) both rqm-in;display:flex}@keyframes rqm-in{0%{opacity:0;transform:scale(.88)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.rel-create-modal{border-radius:12px;gap:0;min-width:300px;max-width:340px;padding:0}.rel-cm-header{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:8px;padding:14px 16px 12px;display:flex}.rel-cm-title{color:var(--fg-0);align-items:center;gap:7px;font-size:12.5px;font-weight:700;display:flex}.rel-cm-title svg{color:var(--fg-0);flex-shrink:0}.rel-cm-route{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:6px;align-items:center;gap:3px;min-width:0;padding:4px 8px;display:flex;overflow:hidden}.rel-cm-node{color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:80px;font-size:11.5px;font-weight:700;overflow:hidden}.rel-cm-dot{color:var(--fg-3);flex-shrink:0;font-size:11px}.rel-cm-field{font-family:var(--font-mono);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);white-space:nowrap;text-overflow:ellipsis;border-radius:3px;min-width:0;max-width:70px;padding:1px 4px;font-size:10.5px;font-weight:600;overflow:hidden}.rel-cm-arrow{color:var(--fg-3);flex-shrink:0;align-items:center;margin:0 2px;display:flex}.rel-edit-modal{border-radius:12px;gap:0;min-width:300px;max-width:340px;padding:0;overflow:visible}.rel-edit-modal:before,.rel-edit-modal:after{content:"";top:var(--rqm-arrow-y,50%);pointer-events:none;border:7px solid #0000;position:absolute;transform:translateY(-50%)}.rel-edit-modal.arrow-left:before{border-right-color:var(--line);left:-14px}.rel-edit-modal.arrow-left:after{border-right-color:var(--bg-1);border-width:6px;left:-12px}.rel-edit-modal.arrow-right:before{border-left-color:var(--line);right:-14px}.rel-edit-modal.arrow-right:after{border-left-color:var(--bg-1);border-width:6px;right:-12px}.rel-em-info{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:10px;padding:16px 16px 12px;display:flex}.rel-em-meta{background:var(--bg-0);border:1.5px solid var(--line);border-radius:9px;flex-wrap:wrap;align-items:center;gap:7px;padding:8px 11px;display:flex}.rel-em-type-tag,.rel-em-meta-kind{--tag:var(--accent);background:color-mix(in srgb, var(--tag) 14%, transparent);color:light-dark(color-mix(in oklch, var(--tag), black 18%),var(--tag))}.rel-em-type-tag{font-family:var(--font-mono);letter-spacing:-.3px;border-radius:5px;padding:2px 7px;font-size:11px;font-weight:800}.rel-em-type-tag.c-blue{--tag:var(--accent)}.rel-em-type-tag.c-cyan{--tag:var(--info)}.rel-em-type-tag.c-green{--tag:var(--ok)}.rel-em-type-tag.c-orange{--tag:var(--warn)}.rel-em-meta-lbl{color:var(--fg-2);flex:1;font-size:11.5px;font-weight:500}.rel-em-meta-kind{white-space:nowrap;border:1px solid color-mix(in srgb, var(--tag) 35%, transparent);border-radius:20px;padding:2px 8px;font-size:10.5px;font-weight:700}.rel-em-meta-kind.fk{--tag:var(--accent)}.rel-em-meta-kind.logical{--tag:var(--ok)}.rel-em-desc{color:var(--fg-2);background:var(--bg-0);border-left:3px solid var(--line);border-radius:0 6px 6px 0;margin:0;padding:7px 10px;font-size:11px;line-height:1.65}.rel-em-desc b{color:var(--fg-1);font-weight:600}.rel-em-types{border-bottom:1px solid var(--line-soft);gap:5px;padding:12px 16px;display:flex}.rel-em-type-pill{border:1.5px solid var(--line);background:var(--bg-0);cursor:pointer;height:34px;color:var(--fg-2);border-radius:8px;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;transition:border-color .13s,background .13s,color .13s;display:flex}.rel-em-type-pill:hover{border-color:var(--bg-active);background:var(--bg-2);color:var(--fg-1)}.rel-em-type-pill:focus-visible{box-shadow:0 0 0 3px var(--ring)}.rel-em-type-pill.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.rel-em-pill-sym{font-family:var(--font-mono);letter-spacing:-.5px;font-size:12px;font-weight:800;line-height:1}.rel-em-pill-lbl{letter-spacing:.2px;font-size:8.5px;font-weight:600;line-height:1}.rel-em-actions{align-items:center;gap:6px;padding:10px 16px 12px;display:flex}.rel-em-save{background:var(--btn-primary);height:32px;color:var(--accent-fg);cursor:pointer;border:none;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:5px;font-size:12px;font-weight:600;transition:background .13s;display:flex}.rel-em-save:hover{background:var(--btn-primary-hover)}.rel-em-del{border:1.5px solid color-mix(in srgb, var(--err) 40%, transparent);height:32px;color:var(--err);cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;align-items:center;gap:4px;padding:0 11px;font-size:12px;font-weight:600;transition:background .13s,border-color .13s;display:flex}.rel-em-del:hover{background:color-mix(in srgb, var(--err) 12%, transparent);border-color:color-mix(in srgb, var(--err) 60%, transparent)}.rel-em-cancel{border:1.5px solid var(--line);height:32px;color:var(--fg-2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;padding:0 11px;font-size:12px;transition:background .13s,color .13s}.rel-em-cancel:hover{background:var(--bg-2);color:var(--fg-1)}.erd-group{overflow:visible}.erd-group-rh{border:2px solid var(--grp-border,#94a3b8);pointer-events:all;z-index:6;background:#fff;border-radius:3px;transition:background .12s,transform .12s;display:none;position:absolute;box-shadow:0 1px 4px #0003}.erd-group-rh.visible{display:block}.erd-group-rh:hover{background:var(--grp-border,#94a3b8);transform:scale(1.25)}.erd-group-rh-nw{cursor:nw-resize}.erd-group-rh-ne{cursor:ne-resize}.erd-group-rh-sw{cursor:sw-resize}.erd-group-rh-se{cursor:se-resize}.erd-minimap{background:var(--card-bg);border:1px solid var(--border-color);z-index:99;border-radius:10px;width:220px;height:150px;display:none;position:absolute;bottom:64px;left:20px;overflow:hidden;box-shadow:0 4px 20px #0000001a,0 1px 4px #0000000f}.erd-minimap.open{display:block}.erd-minimap-canvas{width:100%;height:100%;position:relative}.erd-minimap-viewport{border:2px solid var(--primary-color,#3b82f6);background:color-mix(in srgb, var(--primary-color,#3b82f6) 8%, transparent);cursor:grab;z-index:2;border-radius:3px;transition:none;position:absolute}.erd-minimap-viewport:active{cursor:grabbing}.erd-minimap-table{background:var(--primary-color,#3b82f6);opacity:.65;z-index:1;border-radius:2px;min-width:4px;min-height:3px;position:absolute}.erd-minimap-table.is-new{background:#22c55e}.erd-minimap-group{opacity:.18;z-index:0;border-radius:3px;position:absolute}.erd-btn.btn-minimap{position:relative}.erd-btn.btn-minimap.active{color:var(--primary-color,var(--accent));background:color-mix(in srgb, var(--primary-color,var(--accent)) 10%, transparent)}.erd-group.drop-hover{background:color-mix(in srgb, var(--grp-border,#3b82f6) 12%, var(--card-bg,#fff));border-color:var(--grp-border,#3b82f6);box-shadow:0 0 0 4px color-mix(in srgb, var(--grp-border,#3b82f6) 15%, transparent), 0 6px 22px #0000001f;border-style:dashed;border-width:2.5px;transition:background .15s,box-shadow .15s,border-color .15s}body{background:var(--bg-0);color:var(--fg-0)}.main-content,.app-right{background:var(--bg-0)}.header{background:var(--bg-1);border-bottom-color:var(--line)}.logo-img{filter:invert()brightness(.85)}.header-divider{background:var(--line)}.sidebar-toggle-btn,.header-theme-btn,.header-lang-trigger,.header-notif-btn,.header-dropdown-trigger{color:var(--fg-2);border-color:#0000}.sidebar-toggle-btn:hover,.header-theme-btn:hover,.header-lang-trigger:hover,.header-notif-btn:hover,.header-dropdown-trigger:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.header-lang-menu.open .header-lang-trigger,.notification-menu.open .header-notif-btn,.header-dropdown.open .header-dropdown-trigger{background:var(--bg-1);border-color:var(--line);border-bottom-color:var(--bg-1);color:var(--fg-0)}.header-dropdown-menu,.header-lang-dropdown,.notification-dropdown,.user-dropdown{background:var(--bg-1);border-color:var(--line)}.header-dropdown-item,.header-lang-item,.dropdown-item{color:var(--fg-0)}.header-dropdown-item svg,.dropdown-item svg{color:var(--fg-2)}.header-dropdown-item:hover,.header-lang-item:hover,.dropdown-item:hover{background:var(--bg-2)}.user-menu-btn:hover,.user-menu.open .user-menu-btn{background:var(--bg-2);border-color:var(--line)}.user-menu-name{color:var(--fg-0)}.user-menu-chevron{color:var(--fg-3)}.user-avatar{border-color:var(--line)}.dropdown-header{background:linear-gradient(160deg, #1c2433 0%, #181e28 60%, var(--bg-1) 100%);border-bottom-color:var(--line)}.dropdown-header-glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 10%, transparent) 0%, transparent 70%)}.dropdown-divider{background:var(--line)}.dropdown-user-name{color:var(--fg-0)}.dropdown-user-email{color:var(--fg-2)}.dropdown-user-role{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.user-avatar.xlarge{border-color:var(--bg-2);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent), 0 4px 14px #00000059}.dropdown-item.text-danger,.dropdown-item.text-danger svg{color:var(--err)}.dropdown-item.text-danger:hover{background:color-mix(in srgb, var(--err) 10%, transparent)}.header-right-sep{background:var(--line)}.sidebar{background:var(--bg-1);border-right-color:var(--line)}.schemas-header{color:var(--fg-3)}.sidebar-badge{background:var(--bg-2);color:var(--fg-2)}.schema-header{color:var(--fg-1)}.schema-header:hover{color:var(--fg-0);background:#b1bac41a}.schema-header .chevron,.schema-header .schema-icon{color:var(--fg-3)}.sidebar-more-btn:hover,.sidebar-more-btn.active{color:var(--fg-0);background:#b1bac41a}.sidebar-more-menu{background:var(--bg-1);border-color:var(--line)}.sidebar-nav>ul{border-color:var(--line)}.notification-dropdown-header{background:var(--bg-1);border-bottom-color:var(--line)}.notification-dropdown-header h4{color:var(--fg-0)}.btn-mark-all-read{color:var(--fg-2)}.btn-mark-all-read:hover{color:var(--accent);background:var(--bg-2)}.notification-item{border-bottom-color:var(--line)}.notification-item:hover{background:var(--bg-2)}.notification-item.unread{background:color-mix(in oklch, var(--accent), transparent 92%)}.notification-item.unread:hover{background:var(--bg-2)}.notification-text{color:var(--fg-0)}.notification-time,.notification-empty{color:var(--fg-3)}.notification-empty svg{color:var(--line)}.notification-dropdown-footer{background:var(--bg-1);border-top-color:var(--line)}.btn-clear-notifications{color:var(--fg-2)}.btn-clear-notifications:hover{color:var(--err);background:color-mix(in srgb, var(--err) 8%, transparent)}.notification-badge{border-color:var(--bg-1)}.db-card,.table-card,.summary-stat-card,.relation-summary-card{background:var(--bg-1);border-color:var(--line);color:var(--fg-0)}.detail-header{background:var(--bg-1);border-bottom-color:var(--line)}.detail-header h2,.detail-title-section h1,.detail-title-section h2{color:var(--fg-0)}.tdp-header,.field-row{border-bottom-color:var(--line)}.field-row:hover,.field-icon-lg{background:var(--bg-2)}.wiki-section{background:var(--bg-0)}.wiki-card{background:var(--bg-1);border-color:var(--line)}.wiki-card-header{border-bottom-color:var(--line);color:var(--fg-2)}.wiki-card-header svg{color:var(--fg-2)}.wiki-card-header h3{color:var(--fg-0)}.fields-table-container,.table-references{background:var(--bg-1);border-color:var(--line)}.section-header{background:var(--bg-1);border-bottom-color:var(--line);color:var(--fg-2)}.section-header svg{color:var(--fg-2)}.section-header h3{color:var(--fg-0)}.wiki-desc-empty,.wiki-description{background:var(--bg-2);border-color:var(--line)}.wiki-description:hover,.wiki-desc-empty:hover{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:var(--accent)}.wiki-desc-edit-hint{background:var(--bg-1);color:var(--accent);border-color:#388bfd33}.wiki-desc-editor{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.wiki-editor-fmtbar{background:var(--bg-1);border-bottom-color:var(--line)}.wiki-fmt-btn{color:var(--fg-2)}.wiki-fmt-btn:hover{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.wiki-fmt-btn.active{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-color:#388bfd55}.wiki-fmt-divider{background:var(--line)}.wiki-desc-textarea{background:var(--bg-0);color:var(--fg-0)}.wiki-desc-toolbar{background:var(--bg-1);border-top-color:var(--line)}.wiki-desc-hint kbd{background:var(--bg-2);border-color:var(--line);color:var(--fg-2);box-shadow:0 1px 0 var(--line)}.wiki-desc-btn-cancel{background:var(--bg-2);border-color:var(--line);color:var(--fg-2)}.wiki-desc-btn-cancel:hover{background:var(--line);color:var(--fg-0)}.ownership-item{background:var(--bg-2);border-color:var(--line)}.fields-table th{background:var(--bg-2);border-bottom-color:var(--line);color:var(--fg-2)}.fields-table td{border-bottom-color:var(--bg-2);color:var(--fg-0)}.fields-table tr:hover td{background:var(--bg-2)}.btn-edit-wiki{background:var(--bg-2);border-color:var(--line);color:var(--fg-2)}.btn-edit-wiki:hover{background:var(--line);color:var(--fg-0)}.btn-edit-card{border-color:var(--line);color:var(--fg-3);background:0 0}.btn-edit-card:hover{background:var(--line);color:var(--fg-0)}.wiki-card-edit-btn{background:var(--bg-1);color:var(--accent);opacity:0;pointer-events:none;border-color:#388bfd33}.wiki-card:hover .wiki-card-edit-btn,.wiki-card:focus-within .wiki-card-edit-btn{opacity:1;pointer-events:auto}.wiki-card-edit-btn:hover{background:var(--bg-2)}.field-action-btn{background:var(--bg-1);color:var(--accent);opacity:0;pointer-events:none;border-color:#388bfd33}.fields-table tbody tr:hover .field-action-btn{opacity:1;pointer-events:auto}.field-action-btn:hover{background:var(--bg-2)}.field-type-cell{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent)}.type-badge.shared{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.field-badge.pk{color:var(--warn);background:#ffb82426}.field-badge.fk{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.field-badge.nn{background:color-mix(in srgb, var(--err) 15%, transparent);color:var(--err)}.field-badge.uq{color:light-dark(#7e22ce,#c084fc);background:#bc8cff26}.field-badge.ai{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}table{border-color:var(--line)}thead,.table-header-row{background:var(--bg-1);border-bottom-color:var(--line)}th{color:var(--fg-2);border-color:var(--line);background:var(--bg-1)}td{border-color:var(--line);color:var(--fg-0)}tr:hover td{background:var(--bg-2)}.example-table,.mini-table-body{background:var(--bg-1)}.ri-mini-body{background:var(--bg-2)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],textarea,select{border-color:var(--line);color:var(--fg-0)}input::placeholder,textarea::placeholder{color:var(--fg-3)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent);outline:none}.search-input-wrapper{background:var(--bg-0);border-color:var(--line)}.search-input-wrapper:focus-within{background:var(--bg-0);border-color:var(--accent)}.search-input-wrapper input,.sidebar-search input{color:var(--fg-0);background:0 0}label{color:var(--fg-1)}.modal-container{background:var(--bg-1);color:var(--fg-0);box-shadow:0 20px 60px #0009}.sql-modal{background:var(--bg-1)}.sql-modal-body,.info-modal-container{background:var(--bg-1);color:var(--fg-0)}.erd-table-fields{background:var(--bg-1)}.erd-field{border-bottom-color:var(--line)}.erd-field:hover{background:var(--bg-2)}.erd-field-name{color:var(--fg-0)}.erd-legend{background:var(--bg-1);border-color:var(--line)}.erd-legend-table.existing{background:var(--bg-2);border-color:var(--fg-3)}.erd-group{background:color-mix(in srgb, var(--bg-1) 85%, transparent);border-color:var(--line)}.relation-info-drawer,.ch-filters{background:var(--bg-1);border-color:var(--line)}::-webkit-scrollbar-track{background:var(--bg-1)}::-webkit-scrollbar-thumb{background:var(--line)}::-webkit-scrollbar-thumb:hover{background:var(--fg-3)}.sidebar-footer{background:var(--bg-1);border-top-color:var(--line)}.sidebar-version{border-top-color:var(--line);color:var(--fg-3)}.sidebar-version-tag{color:var(--fg-3);background:#b1bac41a}.sidebar-more-menu{background:var(--bg-2);border-color:var(--line);box-shadow:0 -4px 24px #00000080}.sidebar-more-item{color:var(--fg-1)}.sidebar-more-item:hover{background:var(--bg-2);color:var(--fg-0)}.sidebar-more-item svg{color:var(--fg-2)}.sidebar-more-divider{background:var(--line)}.sidebar-more-btn{color:var(--fg-2)}.sidebar-more-btn:hover,.sidebar-more-btn.active{color:var(--fg-0);background:#b1bac41a}.sidebar-more-btn .nav-icon{color:var(--fg-2)}.sidebar-more-btn.active .nav-icon,.sidebar-more-btn:hover .nav-icon{color:var(--fg-0)}.more-btn-chevron{color:var(--fg-3)}.form-select{background:var(--bg-0);border-color:var(--line);color:var(--fg-0);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%238b949e' stroke-width='1.5'/%3E%3C/svg%3E")}.form-select:hover{border-color:var(--accent)}.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.form-select:disabled{background:var(--bg-2);color:var(--fg-3)}.form-input,.form-textarea{background:var(--bg-0);border-color:var(--line);color:var(--fg-0)}.form-input:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.form-input:read-only{background:var(--bg-1);color:var(--fg-3)}.form-group label{color:var(--fg-2)}.btn-secondary{background:var(--bg-2);border-color:var(--line);color:var(--fg-0)}.btn-secondary:hover{background:var(--line);border-color:var(--bg-active)}.btn-outline{border-color:var(--line);color:var(--fg-0);background:0 0}.btn-outline:hover{background:var(--bg-2)}h1,h2,h3,h4,h5{color:var(--fg-0)}.detail-badge{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.detail-schema-badge{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.version-info-item{background:var(--bg-2)}.version-info-value.note-text{background:var(--bg-1);border-color:var(--line);color:var(--fg-1)}.version-info-label{color:var(--fg-2)}.rel-tt-badge.pk{color:light-dark(#a16207,#d4a017);background:#eab30826}.rel-tt-badge.fk{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.rel-tt-badge.uq{color:light-dark(#6d28d9,#a78bfa);background:#8b5cf626}.rel-tt-badge.nn{color:var(--ok);background:#22c55e26}.rel-tt-badge.idx{background:color-mix(in srgb, var(--err) 15%, transparent);color:var(--err)}.rel-tt-badge.ai{background:color-mix(in srgb, var(--ok) 12%, transparent);color:var(--ok)}.ac-panel{background:var(--bg-1);border-left-color:var(--line)}.ac-sidebar{background:light-dark(var(--gray-50),color-mix(in oklch, var(--bg-0) 90%, black));border-right-color:var(--line)}.ac-sidebar-header{border-bottom-color:var(--line)}.ac-sidebar-item{color:var(--fg-1)}.ac-sidebar-item:hover{background:var(--bg-2)}.ac-sidebar-item.active{background:#06b6d41a}.ac-sidebar-new-btn{background:var(--bg-2);border-color:var(--line)}.ac-model-bar{background:light-dark(var(--gray-50),color-mix(in oklch, var(--bg-0) 90%, black));border-bottom-color:var(--line)}.ac-header{border-bottom-color:var(--line)}.ac-msg-ai-bubble{background:var(--bg-2);color:var(--fg-0)}.ac-input-wrap{background:light-dark(var(--gray-50),color-mix(in oklch, var(--bg-0) 90%, black));border-color:var(--line)}.ac-input-wrap:focus-within{border-color:var(--accent)}.ac-input-wrap textarea{color:var(--fg-0);background:0 0}.btn-clear-notifications:hover{background:color-mix(in srgb, var(--err) 10%, transparent);color:var(--err)}.sidebar-search{background:var(--bg-0);border-color:var(--line)}.sidebar-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}.sidebar-search svg{color:var(--fg-3)}.sidebar-search input{color:var(--fg-0)}.sidebar-search input:focus{box-shadow:none;outline:none}.sidebar-search input::placeholder{color:var(--fg-3)}.db-page-header{border-bottom-color:var(--line)}.db-page-icon{background:var(--bg-2);border-color:var(--line);color:var(--fg-2)}.db-page-title{color:var(--fg-0)}.db-page-subtitle{color:var(--fg-2)}.db-current-badge{color:var(--fg-2);background:#b1bac426}.db-stat-card{background:var(--bg-1);border-color:var(--line)}.db-stat-card:hover{border-color:var(--bg-active)}.db-stat-icon,.db-stat-icon.purple,.db-stat-icon.cyan,.db-stat-icon.green,.db-stat-icon.orange{background:var(--bg-2);color:var(--fg-2)}.db-stat-number{color:var(--fg-0)}.db-stat-label{color:var(--fg-2)}.db-card{background:var(--bg-1);border-color:var(--line)}.db-card-header{border-bottom-color:var(--line);color:var(--fg-2)}.db-card-header h3{color:var(--fg-0)}.db-card-badge{color:var(--fg-2);background:#b1bac41f}.db-card-link,.db-card-link:hover{color:var(--accent)}.db-change-item{border-bottom-color:var(--bg-2)}.db-change-badge.added{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.db-change-badge.removed{background:color-mix(in srgb, var(--err) 15%, transparent);color:var(--err)}.db-change-badge.modified{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn)}.db-change-badge.default{background:var(--bg-2);color:var(--fg-2)}.db-mini-stat{background:var(--bg-2);border-color:var(--line)}.db-mini-stat:hover{border-color:var(--bg-active)}.db-mini-stat-num{color:var(--fg-0)}.db-mini-stat-label{color:var(--fg-2)}.db-logins-section{border-top-color:var(--line)}.db-login-item{border-bottom-color:var(--bg-2)}.db-quick-item{background:var(--bg-1);border-color:var(--line);color:var(--fg-1)}.db-quick-item:hover{background:var(--bg-2);border-color:var(--bg-active)}.db-quick-icon,.db-quick-icon.blue,.db-quick-icon.green,.db-quick-icon.purple,.db-quick-icon.orange{background:var(--bg-2);color:var(--fg-2)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--content-bg);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}.app-container{flex-direction:row;height:100vh;display:flex;overflow:hidden}.app-right{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}
