:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--color-brand: #1d4ed8;--color-brand-hover: #1e40af;--color-brand-light: #eff6ff;--color-brand-border: #bfdbfe;--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-raised: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #94a3b8;--color-text-inverse: #f8fafc;--color-success: #10b981;--color-success-light: #ecfdf5;--color-success-border: #a7f3d0;--color-warning: #f59e0b;--color-warning-light: #fffbeb;--color-warning-border: #fde68a;--color-danger: #ef4444;--color-danger-light: #fef2f2;--color-danger-border: #fecaca;--color-info: #6366f1;--color-info-light: #eef2ff;--color-nav-bg: #111827;--color-nav-bg-hover: #1f2937;--color-nav-bg-active: #1e3a5f;--color-nav-text: #9ca3af;--color-nav-text-active: #f8fafc;--color-nav-accent: #60a5fa;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .06), 0 1px 2px -1px rgb(0 0 0 / .04);--shadow-md: 0 4px 8px -2px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .05);--shadow-lg: 0 12px 20px -4px rgb(0 0 0 / .1), 0 4px 8px -4px rgb(0 0 0 / .06);--shadow-focus: 0 0 0 3px rgb(29 78 216 / .12);--text-xs: 11px;--text-sm: 12.5px;--text-base: 13.5px;--text-md: 15px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--leading-tight: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.65;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;--transition-fast: .12s ease;--transition-base: .2s ease}.ods-icon{width:1em;height:1em;flex-shrink:0}.ods-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.ods-button.is-md{height:32px;padding:0 12px;font-size:13px}.ods-button.is-sm{height:28px;padding:0 10px;font-size:12.5px}.ods-button:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-text-primary)}.ods-button:disabled{opacity:.55;cursor:not-allowed}.ods-button.is-primary{border-color:var(--color-brand);background:var(--color-brand);color:#fff}.ods-button.is-primary:hover:not(:disabled){border-color:var(--color-brand-hover);background:var(--color-brand-hover);color:#fff}.ods-button.is-ghost{border-color:transparent;background:transparent}.ods-button.is-danger{border-color:var(--color-danger-border);color:var(--color-danger)}.ods-button.is-danger:hover:not(:disabled){background:var(--color-danger-light);border-color:var(--color-danger-border);color:var(--color-danger)}.ods-button.is-success{border-color:var(--color-success-border);color:var(--color-success)}.ods-button.is-success:hover:not(:disabled){background:var(--color-success-light);border-color:var(--color-success-border);color:var(--color-success)}.ods-button.is-warning{border-color:var(--color-warning-border);color:var(--color-warning)}.ods-button.is-warning:hover:not(:disabled){background:var(--color-warning-light);border-color:var(--color-warning-border);color:var(--color-warning)}.ods-button-spinner,.btn-spinner,.btn-spinner-sm{width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ods-spin .7s linear infinite}@keyframes ods-spin{to{transform:rotate(360deg)}}.ods-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-7)}.ods-page-heading h1{margin:0 0 4px;color:var(--color-text-primary);font-size:22px;font-weight:700}.ods-page-heading p{margin:0;color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.ods-page-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.ods-segmented-tabs{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised)}.ods-segmented-tab{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:0;border-radius:5px;background:transparent;color:var(--color-text-secondary);font-size:12.5px;font-weight:600;cursor:pointer}.ods-segmented-tab:hover{color:var(--color-text-primary)}.ods-segmented-tab.active{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.ods-tab-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--color-surface-raised);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:10.5px}.ods-status-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font-size:11.5px;font-weight:700;white-space:nowrap}.ods-status-dot{width:6px;height:6px;border-radius:50%;background:var(--color-text-tertiary)}.ods-status-badge.is-success{color:#047857;background:var(--color-success-light);border-color:var(--color-success-border)}.ods-status-badge.is-success .ods-status-dot{background:var(--color-success)}.ods-status-badge.is-warning{color:#92400e;background:var(--color-warning-light);border-color:var(--color-warning-border)}.ods-status-badge.is-warning .ods-status-dot{background:var(--color-warning);animation:status-pulse 2s ease-in-out infinite}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.35}}.ods-status-badge.is-danger{color:#b91c1c;background:var(--color-danger-light);border-color:var(--color-danger-border)}.ods-status-badge.is-danger .ods-status-dot{background:var(--color-danger)}.ods-status-badge.is-info{color:#3730a3;background:var(--color-info-light);border-color:#c7d2fe}.ods-status-badge.is-info .ods-status-dot{background:var(--color-info)}.ods-status-badge.is-sm{height:18px;padding:0 6px;font-size:10.5px;gap:4px}.ods-status-badge.is-sm .ods-status-dot{width:5px;height:5px}.ods-inline-metric{display:flex;flex-direction:column;gap:2px}.ods-inline-metric-value{font-size:13px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.ods-inline-metric-value.is-mono{font-family:var(--font-mono)}.ods-inline-metric-value.is-success{color:var(--color-success)}.ods-inline-metric-value.is-warning{color:var(--color-warning)}.ods-inline-metric-value.is-danger{color:var(--color-danger)}.ods-inline-metric-label{font-size:11px;color:var(--color-text-tertiary);font-weight:500}.ods-form-section{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.ods-form-section-title{color:var(--color-text-secondary);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-left:3px solid var(--color-brand);padding-left:8px;display:flex;align-items:center;justify-content:space-between}.ods-form-section-title.is-collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.ods-form-section-title.is-collapsible:hover{color:var(--color-text-primary)}.ods-form-section-chevron{width:14px;height:14px;color:var(--color-text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.ods-form-section-chevron.is-open{transform:rotate(180deg)}.ods-form-section-body{display:flex;flex-direction:column;gap:var(--space-3)}.ods-empty-state{display:flex;min-height:280px;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-8);color:var(--color-text-tertiary);text-align:center}.ods-empty-mark{width:48px;height:48px;display:flex;align-items:center;justify-content:center}.ods-empty-title{color:var(--color-text-secondary);font-size:15px;font-weight:600}.ods-empty-desc{margin:0;max-width:360px;color:var(--color-text-tertiary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.ods-table-shell{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.ods-table-scroll{overflow:auto}.ods-data-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;font-size:var(--text-base)}.ods-data-table th{position:sticky;top:0;z-index:1;height:34px;padding:0 12px;border-bottom:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text-tertiary);font-size:11px;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.ods-data-table td{height:44px;padding:7px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle}.ods-data-table tbody tr:hover td{background:var(--color-surface-raised)}.ods-data-table tbody tr:last-child td{border-bottom:0}.ods-table-loading,.ods-table-empty{display:flex;min-height:180px;align-items:center;justify-content:center;color:var(--color-text-tertiary);font-size:13px}.ods-search-input{display:inline-flex;align-items:center;gap:7px;width:280px;height:32px;padding:0 9px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-tertiary)}.ods-search-input input{min-width:0;flex:1;border:0;outline:none;background:transparent;color:var(--color-text-primary);font-size:13px}.ods-search-input button{display:inline-flex;padding:0;border:0;background:transparent;color:var(--color-text-tertiary);cursor:pointer}.ods-filter-select{height:32px;min-width:160px;padding:0 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-size:13px}.ods-section{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.ods-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:12px 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.ods-section-header h2{margin:0;color:var(--color-text-primary);font-size:var(--text-md);font-weight:700}.ods-section-header span{color:var(--color-text-tertiary);font-size:12px;font-weight:600}.ods-section-actions{display:flex;align-items:center;gap:var(--space-2)}.ods-kv-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--color-border);border-left:1px solid var(--color-border)}.ods-kv-item{display:grid;gap:4px;min-width:0;padding:11px 12px;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.ods-kv-item span{color:var(--color-text-tertiary);font-size:11.5px;font-weight:700}.ods-kv-item strong{min-width:0;overflow:hidden;color:var(--color-text-primary);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.ods-kv-item strong.mono{font-family:var(--font-mono);font-size:12px}.ods-drawer-footer{display:flex;justify-content:flex-end;gap:var(--space-2)}.ods-status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font-size:11.5px;font-weight:600;white-space:nowrap}.ods-status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-text-tertiary)}.ods-status-pill.is-success{color:#047857;background:var(--color-success-light);border-color:var(--color-success-border)}.ods-status-pill.is-success:before{background:var(--color-success)}.ods-status-pill.is-warning{color:#92400e;background:var(--color-warning-light);border-color:var(--color-warning-border)}.ods-status-pill.is-warning:before{background:var(--color-warning)}.ods-status-pill.is-danger{color:#b91c1c;background:var(--color-danger-light);border-color:var(--color-danger-border)}.ods-status-pill.is-danger:before{background:var(--color-danger)}.ods-object-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:11px;font-weight:700}.ods-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:5px 11px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.ods-action-btn:hover{border-color:var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-text-primary)}.ods-action-btn.is-primary{border-color:var(--color-brand);background:var(--color-brand);color:#fff}.ods-action-btn.is-primary:hover{border-color:var(--color-brand-hover);background:var(--color-brand-hover);color:#fff}.ods-muted{color:var(--color-text-tertiary)}.el-message{z-index:100000!important}.el-pagination{--el-pagination-font-size: 13px;--el-pagination-bg-color: var(--color-surface);--el-pagination-text-color: var(--color-text-secondary);--el-pagination-border-radius: var(--radius-sm);--el-pagination-button-color: var(--color-text-secondary);--el-pagination-hover-color: var(--color-brand)}.el-tree{--el-tree-node-hover-bg-color: var(--color-surface-raised);--el-tree-text-color: var(--color-text-primary);--el-tree-expand-icon-color: var(--color-text-tertiary);font-size:13px;background:transparent}.el-tree-node__content{height:28px;border-radius:var(--radius-sm)}.el-dialog{--el-dialog-border-radius: var(--radius-lg);--el-dialog-title-font-size: 15px;--el-dialog-padding-primary: 20px}.el-select .el-input__wrapper{border-radius:var(--radius-sm);font-size:13px}.el-input__wrapper{border-radius:var(--radius-sm)}.el-button{border-radius:var(--radius-sm);font-size:13px}.el-form-item__label{font-size:12.5px;color:var(--color-text-secondary)}.el-table{--el-table-header-bg-color: var(--color-surface-raised);--el-table-header-text-color: var(--color-text-tertiary);--el-table-row-hover-bg-color: var(--color-surface-raised);--el-table-border-color: var(--color-border);font-size:12.5px}.el-table th.el-table__cell{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.el-tabs__item{font-size:13px}.el-carousel__indicators{bottom:4px}.el-carousel__button{width:6px;height:6px;border-radius:50%;background:var(--color-border-strong)}.el-carousel__indicator.is-active .el-carousel__button{background:var(--color-brand)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ods-skeleton-table{padding:0}.ods-skeleton-header{height:34px;background:var(--color-surface-raised);border-bottom:1px solid var(--color-border)}.ods-skeleton-row{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-bottom:1px solid var(--color-border)}.ods-skeleton-row:last-child{border-bottom:0}.ods-skeleton-cell{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--color-surface-raised) 0%,var(--color-border) 50%,var(--color-surface-raised) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;flex-shrink:0}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.app-shell[data-v-d0c9032d]{display:flex;width:100%;min-height:100vh;background:var(--color-bg)}.app-boot[data-v-d0c9032d]{display:grid;min-height:100vh;place-items:center;background:var(--color-bg)}.boot-panel[data-v-d0c9032d]{display:inline-flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.boot-mark[data-v-d0c9032d]{display:grid;width:36px;height:36px;flex-shrink:0;place-items:center;border-radius:8px;background:linear-gradient(135deg,#1d4ed8,#3b82f6)}.boot-copy[data-v-d0c9032d]{display:grid;gap:2px}.boot-copy strong[data-v-d0c9032d]{color:var(--color-text-primary);font-size:14px;font-weight:700}.boot-copy span[data-v-d0c9032d]{color:var(--color-text-secondary);font-size:12.5px}.sidebar[data-v-d0c9032d]{display:flex;flex-direction:column;width:56px;min-height:100vh;background:var(--color-nav-bg);flex-shrink:0;transition:width var(--transition-base);position:sticky;top:0;height:100vh;overflow:hidden}.sidebar.expanded[data-v-d0c9032d]{width:220px}.sidebar-header[data-v-d0c9032d]{display:flex;align-items:center;gap:10px;padding:18px 14px 14px;border-bottom:1px solid rgb(255 255 255 / .06);flex-shrink:0}.sidebar:not(.expanded) .sidebar-header[data-v-d0c9032d]{justify-content:center;padding:14px 8px 12px}.sidebar:not(.expanded) .logo-mark[data-v-d0c9032d]{display:none}.logo-mark[data-v-d0c9032d]{width:28px;height:28px;background:linear-gradient(135deg,#1d4ed8,#3b82f6);border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-text[data-v-d0c9032d]{font-size:16px;font-weight:800;color:var(--color-text-inverse);letter-spacing:.06em;white-space:nowrap;flex:1}.toggle-btn[data-v-d0c9032d]{width:24px;height:24px;background:none;border:none;cursor:pointer;color:var(--color-nav-text);padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0;transition:color var(--transition-fast),background var(--transition-fast)}.toggle-btn.is-collapsed[data-v-d0c9032d]{width:40px;height:40px;border:1px solid rgb(96 165 250 / .46);background:#2563eb33;color:var(--color-nav-text-active);box-shadow:inset 0 0 0 1px #ffffff0d}.toggle-btn[data-v-d0c9032d]:hover{color:var(--color-nav-text-active);background:var(--color-nav-bg-hover)}.toggle-btn.is-collapsed[data-v-d0c9032d]:hover{border-color:#93c5fdb8;background:#2563eb52}.toggle-btn svg[data-v-d0c9032d]{width:16px;height:16px}.nav-list[data-v-d0c9032d]{list-style:none;margin:0;padding:4px 8px;flex:1}.nav-list li[data-v-d0c9032d]{margin:0;padding:0}.nav-item[data-v-d0c9032d]{display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;background:none;border:none;cursor:pointer;border-radius:var(--radius-sm);color:var(--color-nav-text);font-size:13.5px;font-weight:500;text-align:left;transition:color var(--transition-fast),background var(--transition-fast);position:relative;white-space:nowrap}.nav-item[data-v-d0c9032d]:hover{color:var(--color-nav-text-active);background:var(--color-nav-bg-hover)}.nav-item.active[data-v-d0c9032d]{color:var(--color-nav-text-active);background:#ffffff1a;font-weight:600}.nav-item.active .nav-icon[data-v-d0c9032d]{color:var(--color-nav-accent)}.nav-icon[data-v-d0c9032d]{width:18px;height:18px;flex-shrink:0}.nav-label[data-v-d0c9032d]{flex:1}.nav-chevron[data-v-d0c9032d]{width:14px;height:14px;flex-shrink:0;transition:transform var(--transition-fast)}.nav-chevron.expanded[data-v-d0c9032d]{transform:rotate(180deg)}.nav-sub-list[data-v-d0c9032d]{list-style:none;margin:2px 0 6px;padding:0 0 0 16px}.nav-sub-item[data-v-d0c9032d]{padding-left:10px;font-size:13px}.nav-sub-icon[data-v-d0c9032d]{width:16px;height:16px}.sidebar-footer[data-v-d0c9032d]{padding:12px 10px;border-top:1px solid rgb(255 255 255 / .06);flex-shrink:0}.user-summary[data-v-d0c9032d]{display:grid;gap:6px}.user-summary span[data-v-d0c9032d]{overflow:hidden;color:var(--color-nav-text-active);font-size:12.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.user-summary button[data-v-d0c9032d],.logout-icon[data-v-d0c9032d]{height:26px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-nav-text);cursor:pointer;font-size:12px;text-align:left}.user-summary button[data-v-d0c9032d]:hover,.logout-icon[data-v-d0c9032d]:hover{background:var(--color-nav-bg-hover);color:var(--color-nav-text-active)}.logout-icon[data-v-d0c9032d]{display:grid;place-items:center;width:36px}.logout-icon svg[data-v-d0c9032d]{width:18px;height:18px}.app-main[data-v-d0c9032d]{flex:1;min-width:0;padding:var(--space-8);overflow:auto}
