:root,[data-theme=light]{--gold-300: #ffd58a;--gold-400: #ffbe4d;--gold-500: #f5a524;--gold-600: #d98e0b;--gold-700: #b45309;--gold-800: #92400e;--teal-400: #5eead4;--teal-500: #35d0ba;--teal-600: #0d9488;--teal-700: #0f766e;--steel-700: #2b3547;--steel-800: #1c2431;--steel-900: #141a25;--steel-950: #0c1017;--bg: #f4f5f7;--surface: #ffffff;--surface-2: #f9fafb;--surface-3: #f3f4f6;--border: #e5e7eb;--border-strong: #d1d5db;--text: #111827;--text-2: #374151;--text-3: #6b7280;--text-4: #9ca3af;--primary: var(--gold-700);--primary-hover: var(--gold-800);--on-primary: #ffffff;--primary-weak: #fbf0dc;--info: var(--teal-600);--info-strong: var(--teal-700);--info-weak: #e2f5f2;--info-border: #8bd8cd;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--up: #dc2626;--down: #16a34a;--sidebar-bg: var(--steel-900);--sidebar-text: #a9b4c4;--sidebar-hover: #232d3f;--sidebar-line: rgba(255, 255, 255, .08);--shadow: 0 2px 10px rgba(17, 24, 39, .06);--mask: rgba(17, 24, 39, .35)}[data-theme=dark]{--bg: #0e1116;--surface: #171b22;--surface-2: #1c222b;--surface-3: #232a35;--border: #2a3140;--border-strong: #3a4354;--text: #e8ecf3;--text-2: #c9d1dd;--text-3: #9aa4b2;--text-4: #7b8595;--primary: var(--gold-500);--primary-hover: var(--gold-400);--on-primary: #261a04;--primary-weak: rgba(245, 165, 36, .15);--info: var(--teal-500);--info-strong: #8bebdc;--info-weak: rgba(53, 208, 186, .14);--info-border: rgba(53, 208, 186, .42);--success: #4ade80;--warning: #fbbf24;--danger: #f87171;--up: #f87171;--down: #4ade80;--sidebar-bg: var(--steel-950);--sidebar-text: #93a1b5;--sidebar-hover: #171e2b;--sidebar-line: rgba(255, 255, 255, .07);--shadow: 0 2px 12px rgba(0, 0, 0, .45);--mask: rgba(0, 0, 0, .6)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);transition:background .18s ease,color .18s ease}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important}}.layout{display:flex;min-height:100vh}.sidebar{width:208px;background:var(--sidebar-bg);color:#fff;display:flex;flex-direction:column}.logo{padding:16px 14px 14px;border-bottom:1px solid var(--sidebar-line);position:relative}.logo:after{content:"";position:absolute;left:14px;bottom:-1px;width:42px;height:2px;background:var(--gold-500, #f5a524);border-radius:2px}.logo-img{display:block;width:100%;max-width:150px;height:30px;object-fit:contain;object-position:left center}.logo-sub{display:block;font-size:11px;color:#8a96a8;margin-top:6px;letter-spacing:2px}nav{flex:1;padding:12px 8px}.nav-item{display:flex;align-items:center;justify-content:space-between;color:var(--sidebar-text);text-decoration:none;padding:9px 11px;border-radius:8px;margin-bottom:2px;font-size:14px;border-left:3px solid transparent;gap:8px}.nav-label{display:flex;align-items:center;gap:10px;min-width:0}.ni{width:17px;height:17px;flex-shrink:0;opacity:.78}.nav-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-item:hover{background:var(--sidebar-hover);color:#e8edf5}.nav-item:hover .ni{opacity:1}.nav-item.router-link-active{background:linear-gradient(90deg,#f5a52429,#f5a5240d);border-left-color:var(--gold-500, #f5a524);color:var(--gold-400, #ffbe4d);font-weight:500}.nav-item.router-link-active .ni{opacity:1}.badge{background:#ef4444;color:#fff;font-size:11px;padding:1px 6px;border-radius:10px}.user-box{padding:12px 12px 14px;border-top:1px solid var(--sidebar-line)}.version-foot{padding:0 16px 10px;font-size:11px;color:var(--sidebar-text);opacity:.65;letter-spacing:.4px}.user-link{display:flex;align-items:center;gap:9px;text-decoration:none;padding:6px;border-radius:8px;margin-bottom:8px}.user-link:hover{background:var(--sidebar-hover)}.avatar{width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:flex;align-items:center;justify-content:center;font-size:13px;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.user-meta{min-width:0}.user-name-text{display:block;font-size:13px;color:#f9fafb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta .role{display:block;font-size:11px;color:var(--text-4);margin-top:2px}.user-actions{display:flex;gap:6px}.icon-btn{width:30px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-strong);color:var(--sidebar-text);border-radius:6px;cursor:pointer}.icon-btn:hover{background:var(--sidebar-hover)}.logout{flex:1;background:transparent;border:1px solid var(--border-strong);color:var(--sidebar-text);padding:6px;border-radius:6px;font-size:12px;cursor:pointer}.logout:hover{background:var(--sidebar-hover)}.content{flex:1;padding:26px 28px;overflow:auto}.card{background:var(--surface);border-radius:14px;padding:20px 22px;margin-bottom:16px;border:1px solid var(--border);color:var(--text);box-shadow:0 1px 2px #11182709}.page-title{font-size:20px;font-weight:600;margin-bottom:6px;color:var(--text);padding-left:11px;position:relative;letter-spacing:.2px}.page-title:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:linear-gradient(180deg,var(--brand, #f5a524),var(--gold-700, #b45309))}.page-desc{font-size:13px;color:var(--text-3);margin-bottom:20px;line-height:1.7;padding-left:11px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:10px 12px;background:var(--surface-2);color:var(--text-3);font-weight:500;border-bottom:1px solid var(--border);letter-spacing:.2px}td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text-2)}tbody tr:hover td{background:var(--surface-2)}tr:last-child td{border-bottom:none}.btn{padding:8px 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);font-size:13px;cursor:pointer;color:var(--text-2);transition:border-color .15s,background .15s,filter .15s}.btn:hover{border-color:var(--text-4)}.btn:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:500}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-sm{padding:5px 10px;font-size:12px}.btn-danger{color:#dc2626;border-color:#fca5a5}.btn:disabled{opacity:.5;cursor:default}input,select,textarea{padding:9px 11px;border:1px solid var(--border-strong);border-radius:8px;font-size:13px;outline:none;font-family:inherit;background:var(--surface);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-4)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 16%,transparent)}.form-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.form-row>*{flex:1;min-width:140px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--text-2);margin-bottom:6px}.field input,.field select,.field textarea{width:100%}.tag{display:inline-block;font-size:12px;padding:2px 8px;border-radius:6px;background:var(--surface-3);color:var(--text-2)}.tag-pending{background:color-mix(in srgb,var(--warning) 15%,transparent);color:color-mix(in srgb,var(--warning) 82%,var(--text))}.tag-approved{background:color-mix(in srgb,var(--success) 15%,transparent);color:color-mix(in srgb,var(--success) 80%,var(--text))}.tag-rejected{background:color-mix(in srgb,var(--danger) 15%,transparent);color:color-mix(in srgb,var(--danger) 80%,var(--text))}.tag-withdrawn{background:var(--surface-3);color:var(--text-3)}.tag-info{background:var(--info-weak);color:var(--info-strong)}.empty{text-align:center;color:var(--text-4);font-size:13px;padding:32px 0}.tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tab{padding:9px 14px;font-size:13px;cursor:pointer;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:0 1px 2px #11182709}.stat .num{font-size:28px;font-weight:600;color:var(--text);line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.3px}.stat .lbl{font-size:12px;color:var(--text-3);margin-top:6px}.stat.clickable{cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s}.stat.clickable:hover{border-color:var(--primary)!important;box-shadow:var(--shadow)}.stat .go{position:absolute;right:12px;top:10px;font-size:11px;color:var(--text-4);opacity:0;transition:opacity .15s}.stat.clickable:hover .go{opacity:1;color:var(--primary)}.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-3);cursor:pointer;background:var(--surface)}.chip.on{background:var(--primary-weak);border-color:var(--primary);color:var(--primary)}.chip-x{font-style:normal;font-size:10px;opacity:.75}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--primary-weak)}.toast-wrap{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{background:#1f2937;color:#fff;font-size:13px;padding:10px 18px;border-radius:8px;max-width:420px}.toast-success{background:#15803d}.toast-error{background:#b91c1c}.mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--mask);display:flex;align-items:center;justify-content:center;z-index:20}.pwd-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--mask);display:flex;align-items:center;justify-content:center;z-index:200}.pwd-box{background:var(--surface);color:var(--text);border-radius:14px;padding:26px;width:420px;max-width:92vw}.pwd-title{font-size:17px;font-weight:500;margin-bottom:8px}.pwd-sub{font-size:12px;color:var(--text-3);line-height:1.8;margin-bottom:18px}.pwd-err{color:#dc2626;font-size:12px;margin-bottom:10px}[data-theme=dark] .card,[data-theme=dark] .stat,[data-theme=dark] .dialog,[data-theme=dark] .w,[data-theme=dark] .pwd-box,[data-theme=dark] .pwd-box input{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text)!important}[data-theme=dark] .dialog h3,[data-theme=dark] .block-title,[data-theme=dark] .sec-head b,[data-theme=dark] .num-val,[data-theme=dark] .num-lbl,[data-theme=dark] .recent-title,[data-theme=dark] .list-title,[data-theme=dark] .panel-title,[data-theme=dark] .detail-title,[data-theme=dark] .head-name,[data-theme=dark] .punch-title,[data-theme=dark] .info-grid>div{color:var(--text)!important}[data-theme=dark] .sub,[data-theme=dark] .hint,[data-theme=dark] .num-sub,[data-theme=dark] .recent-meta,[data-theme=dark] .list-meta,[data-theme=dark] .page-desc,[data-theme=dark] .info-grid span:first-child,[data-theme=dark] .kv td:first-child,[data-theme=dark] .head-sub{color:var(--text-4)!important}[data-theme=dark] td,[data-theme=dark] .row-line,[data-theme=dark] .kv td,[data-theme=dark] .record{color:var(--text-2)!important;border-color:var(--border)!important}[data-theme=dark] th{background:var(--surface-2)!important;color:var(--text-3)!important;border-color:var(--border)!important}[data-theme=dark] .bar-track{background:var(--surface-3)!important}[data-theme=dark] .calc{background:var(--surface-2)!important;border-color:var(--border)!important;color:var(--text-2)!important}[data-theme=dark] .ring circle:first-child{stroke:var(--surface-3)!important}[data-theme=dark] .ring text{fill:var(--text)!important}[data-theme=dark] .btn{background:var(--surface-2);color:var(--text-2);border-color:var(--border-strong)}[data-theme=dark] .btn-primary{background:var(--primary);color:var(--on-primary)}[data-theme=dark] .grid2 input,[data-theme=dark] .form-row input,[data-theme=dark] .form-row select,[data-theme=dark] .field input,[data-theme=dark] .field select,[data-theme=dark] .field textarea{background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--border-strong)!important}[data-theme=dark] .lib-item{background:var(--surface-2)!important;border-color:var(--border)!important;color:var(--text-2)!important}[data-theme=dark] .q-item{background:var(--surface-2);border-color:var(--border);color:var(--text-2)}[data-theme=dark] .pwd-mask,[data-theme=dark] .mask{background:var(--mask)!important}[data-theme=dark] img{opacity:.96}[data-theme=dark] .builder,[data-theme=dark] .zone,[data-theme=dark] .props,[data-theme=dark] .preview,[data-theme=dark] .progress-card,[data-theme=dark] .pal-item,[data-theme=dark] .block,[data-theme=dark] .dialog{background:var(--surface)!important;border-color:var(--border)!important}[data-theme=dark] .palette,[data-theme=dark] .action-item,[data-theme=dark] .provision-box,[data-theme=dark] .dialog-tip,[data-theme=dark] .cred-box,[data-theme=dark] .tip,[data-theme=dark] .leader,[data-theme=dark] .preview-info,[data-theme=dark] .preview-field input,[data-theme=dark] .preview-field select,[data-theme=dark] .preview-field textarea,[data-theme=dark] .day-col.off{background:var(--surface-2)!important;border-color:var(--border)!important;color:var(--text-2)!important}[data-theme=dark] .pal-item,[data-theme=dark] .block,[data-theme=dark] .node,[data-theme=dark] .leader{color:var(--text-2)!important;border-color:var(--border)!important}[data-theme=dark] .name-col{background:var(--surface)!important}[data-theme=dark] thead .name-col{background:var(--surface-2)!important}[data-theme=dark] .node.done{background:#10241a!important;border-color:#1f5138!important;color:#86efac!important}[data-theme=dark] .node.current{background:var(--info-weak)!important;border-color:var(--info-border)!important;color:var(--info-strong)!important}[data-theme=dark] .node.rejected{background:#2a1414!important;border-color:#5b2020!important;color:#fca5a5!important}[data-theme=dark] .rec:hover,[data-theme=dark] .role-item:hover{background:var(--surface-2)!important}
