:root{--brand-50: #EFF6FF;--brand-100: #DBEAFE;--brand-500: #3B82F6;--brand-600: #2563EB;--brand-700: #1D4ED8;--success-500: #22C55E;--warning-500: #F59E0B;--error-500: #EF4444;--info-500: #3B82F6;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-700: #374151;--gray-900: #111827;--font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1);--sidebar-width: 240px;--topbar-height: 56px;--content-max-width: 1200px;--drawer-width: 560px;--test-drawer-width: 480px;--modal-width: 480px;--table-row-height: 48px}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-family);font-size:16px;line-height:1.5;color:var(--gray-700);background-color:var(--gray-50)}body{overflow-x:hidden}code,pre,.font-mono{font-family:var(--font-family-mono)}a{color:var(--brand-500);text-decoration:none}a:hover{color:var(--brand-700)}#app{min-height:100vh}[data-theme=app]{--u-primary: #6366F1;--u-primary-strong: #4F46E5;--u-primary-soft: #EEF2FF;--u-success: #10B981;--u-success-soft: #ECFDF5;--u-pink: #EC4899;--u-pink-soft: #FCE7F3;--u-amber: #F59E0B;--u-amber-soft: #FEF3C7;--u-bg: #F6F7FB;--u-surface: #FFFFFF;--u-text: #1E1B4B;--u-text-2: #27243F;--u-text-muted: #8B86A8;--u-th: #A29DB8;--u-th-bg: #FAFAFE;--u-radius: 16px;--u-radius-lg: 18px;--u-radius-pill: 20px;--u-radius-icon: 12px;--u-shadow: 0 6px 20px rgba(17, 24, 39, .05);--u-shadow-brand: 0 10px 28px rgba(79, 70, 229, .28);--u-shadow-card: 0 4px 16px rgba(17, 24, 39, .045);--u-welcome-grad: linear-gradient(120deg, #4F46E5, #6366F1, #818CF8);--u-border: #ECEAF6;--u-hover: #F1F0FB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/plus-jakarta-sans-400-Dhut76fR.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/plus-jakarta-sans-500-Bf-nb4oT.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/plus-jakarta-sans-600-DLTa1BUW.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/plus-jakarta-sans-700-CfpNZvy6.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/plus-jakarta-sans-800-CusIZhrK.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}[data-theme=app]{font-family:Plus Jakarta Sans,PingFang SC,Microsoft YaHei,sans-serif}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:8px 16px;font-size:14px;font-weight:500;border-radius:var(--u-radius-pill, var(--radius-sm));border:1px solid transparent;cursor:pointer;transition:all .2s;line-height:1.5;font-family:inherit;background:transparent}.btn:focus{outline:none;box-shadow:0 0 0 2px var(--u-primary-soft, var(--brand-100))}.btn-primary{background:var(--u-primary, var(--brand-600));color:#fff;border-color:var(--u-primary, var(--brand-600))}.btn-primary:hover{background:var(--u-primary-strong, var(--brand-700));border-color:var(--u-primary-strong, var(--brand-700))}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--u-surface, #fff);color:var(--u-text-2, var(--gray-700));border-color:var(--u-border, var(--gray-200))}.btn-secondary:hover{background:var(--u-hover, var(--gray-50))}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--u-surface, #fff);color:var(--error-500);border-color:var(--u-border, var(--gray-200))}.btn-danger:hover{background:#fef2f2}.btn-sm{padding:4px 12px;font-size:13px}.btn-block{width:100%}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;border-radius:var(--radius-full);line-height:1.5;white-space:nowrap}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef3c7;color:#92400e}.badge-error{background:#fee2e2;color:#991b1b}.badge-info{background:var(--u-primary-soft, var(--brand-50));color:#1e40af}.badge-gray{background:var(--gray-100);color:var(--gray-500)}.table-container{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:12px var(--space-4);font-size:12px;font-weight:500;color:var(--u-th, var(--gray-500));text-transform:uppercase;letter-spacing:.05em;background:var(--u-th-bg, var(--gray-50));border-bottom:1px solid var(--u-border, var(--gray-200))}.data-table td{padding:12px var(--space-4);font-size:14px;color:var(--u-text-2, var(--gray-700));border-bottom:1px solid var(--u-border, var(--gray-100));height:var(--table-row-height);vertical-align:middle}.data-table tr:hover{background:var(--u-hover, var(--gray-50))}.filters{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-bottom:var(--space-4)}.filter-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}.filter-input{width:220px;height:36px;padding:8px 12px;font-size:13px;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-pill, var(--radius-sm));background:var(--u-surface, #fff);color:var(--u-text-2, var(--gray-700));transition:border-color .2s;line-height:1.5;font-family:inherit;box-sizing:border-box}.filter-input::placeholder{color:var(--gray-300)}.filter-input:focus{outline:none;border-color:var(--u-primary, var(--brand-500));box-shadow:0 0 0 2px var(--u-primary-soft, rgba(59, 130, 246, .15))}.filter-select{width:140px;height:36px;padding:8px 32px 8px 12px;font-size:13px;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-pill, var(--radius-sm));background:var(--u-surface, #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 5l3 3 3-3' stroke='%239CA3AF' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--u-text-2, var(--gray-700));-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-family:inherit;box-sizing:border-box}.filter-select:focus{outline:none;border-color:var(--u-primary, var(--brand-500));box-shadow:0 0 0 2px var(--u-primary-soft, rgba(59, 130, 246, .15))}.filter-date{width:260px;height:36px;padding:8px 12px;font-size:13px;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-pill, var(--radius-sm));background:var(--u-surface, #fff);color:var(--u-text-2, var(--gray-700));line-height:1.5;font-family:inherit;box-sizing:border-box}.filter-date.filter-date-single{width:160px}.filter-date:focus{outline:none;border-color:var(--u-primary, var(--brand-500));box-shadow:0 0 0 2px var(--u-primary-soft, rgba(59, 130, 246, .15))}.filter-search-btn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 12px;font-size:13px;font-weight:500;border-radius:var(--u-radius-pill, var(--radius-sm));border:1px solid var(--u-primary, var(--brand-600));background:var(--u-primary, var(--brand-600));color:#fff;cursor:pointer;transition:background .2s;line-height:1;box-sizing:border-box;gap:var(--space-1)}.filter-search-btn:hover{background:var(--u-primary-strong, var(--brand-700));border-color:var(--u-primary-strong, var(--brand-700))}.filter-reset{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 12px;font-size:13px;font-weight:500;border-radius:var(--u-radius-pill, var(--radius-sm));border:1px solid var(--u-border, var(--gray-200));background:var(--u-surface, #fff);color:var(--u-text-muted, var(--gray-500));cursor:pointer;transition:background .2s,color .2s;line-height:1;box-sizing:border-box;font-family:inherit}.filter-reset:hover{background:var(--u-hover, var(--gray-50));color:var(--u-text-2, var(--gray-700))}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-1);margin-top:var(--space-4)}.pagination-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-icon, var(--radius-sm));font-size:14px;color:var(--u-text-muted, var(--gray-500));background:var(--u-surface, #fff);cursor:pointer;transition:all .15s;font-family:inherit}.pagination-btn:hover{background:var(--u-hover, var(--gray-50));color:var(--u-text-2, var(--gray-700))}.pagination-btn.active{background:var(--u-primary, var(--brand-600));color:#fff;border-color:var(--u-primary, var(--brand-600))}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.empty-state{text-align:center;padding:60px 20px;color:var(--u-text-muted, var(--gray-400))}.empty-state svg{width:64px;height:64px;margin-bottom:var(--space-4);color:var(--gray-300)}.empty-state p{font-size:14px;margin-top:var(--space-2)}.filter-card{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3, 12px);flex-wrap:wrap;background:var(--u-surface, #fff);border-radius:var(--u-radius, var(--radius-md));box-shadow:var(--u-shadow-card, var(--shadow-sm));padding:14px 16px;margin-bottom:16px}.n-drawer{border-radius:0!important}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font-size:14px;font-weight:500;color:var(--u-text-2, var(--gray-700));margin-bottom:var(--space-1)}.form-required:after{content:" *";color:var(--error-500)}.form-input{width:100%;padding:8px 12px;font-size:14px;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-pill, var(--radius-sm));background:var(--u-surface, #fff);color:var(--u-text-2, var(--gray-700));transition:border-color .2s;line-height:1.5;font-family:inherit;box-sizing:border-box}.form-input::placeholder{color:var(--gray-300)}.form-input:focus{outline:none;border-color:var(--u-primary, var(--brand-500));box-shadow:0 0 0 2px var(--u-primary-soft, rgba(59, 130, 246, .15))}.form-input.error{border-color:var(--error-500)}.form-textarea{width:100%;padding:8px 12px;font-size:14px;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius, var(--radius-sm));background:var(--u-surface, #fff);color:var(--u-text-2, var(--gray-700));resize:vertical;min-height:80px;font-family:inherit;line-height:1.5;box-sizing:border-box}.form-textarea::placeholder{color:var(--gray-300)}.form-textarea:focus{outline:none;border-color:var(--u-primary, var(--brand-500));box-shadow:0 0 0 2px var(--u-primary-soft, rgba(59, 130, 246, .15))}.form-select{width:100%;padding:8px 32px 8px 12px;font-size:14px;border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-pill, var(--radius-sm));background:var(--u-surface, #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 5l3 3 3-3' stroke='%239CA3AF' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--u-text-2, var(--gray-700));-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-family:inherit;box-sizing:border-box}.form-select:focus{outline:none;border-color:var(--u-primary, var(--brand-500));box-shadow:0 0 0 2px var(--u-primary-soft, rgba(59, 130, 246, .15))}.form-readonly{padding:8px 12px;background:var(--u-hover, var(--gray-50));border:1px solid var(--u-border, var(--gray-200));border-radius:var(--u-radius-pill, var(--radius-sm));font-size:14px;color:var(--u-text-muted, var(--gray-500));line-height:1.5;box-sizing:border-box}.form-help{font-size:12px;color:var(--u-text-muted, var(--gray-400));margin-top:var(--space-1)}.form-error{font-size:12px;color:var(--error-500);margin-top:var(--space-1)}.stat-card{background:var(--u-surface, #fff);border:1px solid transparent;border-radius:var(--u-radius, var(--radius-md));padding:var(--space-5);box-shadow:var(--u-shadow-card, var(--shadow-sm));cursor:pointer;transition:box-shadow .2s,border-color .2s}.stat-card:hover{box-shadow:var(--u-shadow, var(--shadow-md));border-color:transparent}.stat-card-icon{width:36px;height:36px;border-radius:var(--u-radius-icon, var(--radius-md));display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.stat-card-icon svg{width:20px;height:20px}.stat-card-icon.blue{background:var(--u-primary-soft, var(--brand-50));color:var(--u-primary, var(--brand-600))}.stat-card-icon.green{background:#dcfce7;color:#16a34a}.stat-card-icon.purple{background:#f3e8ff;color:#9333ea}.stat-card-label{font-size:14px;color:var(--u-text-muted, var(--gray-500));margin-bottom:var(--space-2)}.stat-card-value{font-size:24px;font-weight:600;color:var(--u-text, var(--gray-900))}.settings-card{background:var(--u-surface, #fff);border:1px solid transparent;border-radius:var(--u-radius, var(--radius-md));box-shadow:var(--u-shadow-card, var(--shadow-sm));margin-bottom:var(--space-5)}.settings-card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--u-border, var(--gray-200));font-size:16px;font-weight:600;color:var(--u-text, var(--gray-900))}.settings-card-body{padding:var(--space-5)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}.info-item-label{font-size:14px;color:var(--u-text-muted, var(--gray-500));margin-bottom:var(--space-1)}.info-item-value{font-size:16px;font-weight:500;color:var(--u-text, var(--gray-900))}.app-card{background:var(--u-surface, #fff);border:1px solid transparent;border-radius:var(--u-radius, var(--radius-md));padding:var(--space-5);box-shadow:var(--u-shadow-card, var(--shadow-sm));cursor:pointer;transition:box-shadow .2s,border-color .2s;text-decoration:none;display:block}.app-card:hover{box-shadow:var(--u-shadow, var(--shadow-md));border-color:transparent}.app-card-icon{width:48px;height:48px;border-radius:var(--u-radius-icon, var(--radius-md));display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3);font-size:24px}.app-card-icon.bg-blue{background:var(--u-primary-soft, var(--brand-50));color:var(--u-primary, var(--brand-600))}.app-card-icon.bg-green{background:#dcfce7;color:#16a34a}.app-card-icon.bg-orange{background:#fef3c7;color:#d97706}.app-card-icon.bg-pink{background:#fce7f3;color:#db2777}.app-card-icon.bg-purple{background:#f3e8ff;color:#9333ea}.app-card-icon.bg-teal{background:#ccfbf1;color:#0d9488}.app-card-icon.bg-red{background:#fee2e2;color:#dc2626}.app-card-icon.bg-indigo{background:#e0e7ff;color:#4f46e5}.app-card-icon.bg-cyan{background:#cffafe;color:#0891b2}.app-card-icon.bg-amber{background:#fef3c7;color:#b45309}.app-card-title{font-size:16px;font-weight:600;color:var(--u-text, var(--gray-900));margin-bottom:var(--space-1)}.app-card-desc{font-size:14px;color:var(--u-text-muted, var(--gray-500));line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cred-mono{font-family:var(--font-family-mono);font-size:13px;letter-spacing:.02em;background:var(--u-hover, var(--gray-50));padding:2px 6px;border-radius:var(--radius-sm);word-break:break-all;color:var(--u-text-2, var(--gray-700))}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}.status-dot.success{background:var(--u-success, var(--success-500))}.status-dot.error{background:var(--error-500)}.status-dot.running,.status-dot.partial{background:var(--u-amber, var(--warning-500))}.status-dot.pending{background:var(--u-text-muted, var(--gray-400))}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.section-title{font-size:16px;font-weight:600;color:var(--u-text, var(--gray-900))}.section-more{font-size:14px;color:var(--u-primary, var(--brand-500));cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.section-more:hover{color:var(--u-primary-strong, var(--brand-700))}.section-more svg{width:14px;height:14px}.switch{position:relative;width:36px;height:20px;display:inline-block}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gray-300);border-radius:var(--radius-full);cursor:pointer;transition:background .2s}.switch-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s}.switch input:checked+.switch-slider{background:var(--u-primary, var(--brand-600))}.switch input:checked+.switch-slider:before{transform:translate(16px)}.switch input:disabled+.switch-slider{opacity:.5;cursor:not-allowed}.foot[data-v-7a6ac7bf]{padding:10px;border-top:1px solid var(--u-border, #eceaf6)}.bal-row[data-v-7a6ac7bf]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 11px;margin-bottom:8px;border-radius:11px;background:var(--u-bg, #f6f7fb);border:1px solid transparent;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.bal-row[data-v-7a6ac7bf]:hover{border-color:var(--u-border, #eceaf6)}.bal-label[data-v-7a6ac7bf]{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--u-text-muted, #8b86a8)}.bal-val[data-v-7a6ac7bf]{font-size:13.5px;font-weight:700;color:var(--u-text, #1e1b4b);font-variant-numeric:tabular-nums}.bal-row.overdue[data-v-7a6ac7bf]{background:var(--u-red-soft, #fff1f3);border-color:#fbe3e8}.bal-row.overdue .bal-label[data-v-7a6ac7bf]{color:#b11140}.bal-row.overdue .bal-val[data-v-7a6ac7bf]{color:var(--u-red, #e11d48)}.ubtn[data-v-7a6ac7bf]{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--u-radius-icon, 12px);background:var(--u-bg, #f6f7fb);border:1px solid transparent;cursor:pointer;width:100%;text-align:left;transition:border-color .18s;font-family:inherit}.ubtn[data-v-7a6ac7bf]:hover,.ubtn.active[data-v-7a6ac7bf]{border-color:var(--u-border, #eceaf6);box-shadow:0 2px 8px #1118270d}.ubtn.collapsed[data-v-7a6ac7bf]{justify-content:center;padding-left:0;padding-right:0;gap:0}.av[data-v-7a6ac7bf]{width:36px;height:36px;border-radius:50%;background:var(--u-primary-soft, #eef2ff);color:var(--u-primary, #6366f1);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;line-height:1}.meta[data-v-7a6ac7bf]{flex:1;min-width:0;display:flex;flex-direction:column}.nm[data-v-7a6ac7bf]{font-size:13.5px;font-weight:600;color:var(--u-text, #1e1b4b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.sub2[data-v-7a6ac7bf]{font-size:11.5px;color:var(--u-text-muted, #8b86a8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.more[data-v-7a6ac7bf]{color:var(--u-text-muted, #8b86a8);display:flex;flex-shrink:0}.pop-card[data-v-7a6ac7bf]{background:var(--u-surface, #fff);border:1px solid var(--u-border, #eceaf6);border-radius:14px;box-shadow:0 14px 40px #11182729;overflow:hidden;min-width:180px}.pop-header[data-v-7a6ac7bf]{display:flex;align-items:center;gap:10px;padding:12px 13px;background:linear-gradient(135deg,#f5f4ff,#fafafe)}.av-lg[data-v-7a6ac7bf]{width:36px;height:36px;font-size:14px}.pop-meta[data-v-7a6ac7bf]{display:flex;flex-direction:column;min-width:0}.pop-nm[data-v-7a6ac7bf]{font-weight:700;font-size:13.5px;color:var(--u-text, #1e1b4b);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pop-ac[data-v-7a6ac7bf]{font-size:11.5px;color:var(--u-text-muted, #8b86a8);line-height:1.3}.pop-list[data-v-7a6ac7bf]{padding:6px}.pi[data-v-7a6ac7bf]{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:#4a4763;font-size:13px;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;font-family:inherit;transition:background .15s}.pi[data-v-7a6ac7bf]:hover{background:var(--u-bg, #f6f7fb)}.pi--danger[data-v-7a6ac7bf]{color:var(--error-500, #ef4444)}.pdiv[data-v-7a6ac7bf]{height:1px;background:var(--u-border, #eceaf6);margin:4px 8px}.svg[data-v-7a6ac7bf]{width:16px;height:16px;flex-shrink:0}.app-sidebar[data-v-cd47ecdc]{width:var(--sidebar-width, 240px);background:var(--u-surface, #fff);border-right:1px solid var(--u-border, var(--gray-200, #e5e7eb));display:flex;flex-direction:column;height:100%;transition:width .2s ease}.app-sidebar.is-collapsed[data-v-cd47ecdc]{width:64px}.app-sidebar__logo[data-v-cd47ecdc]{height:var(--topbar-height, 56px);display:flex;align-items:center;padding:0 var(--space-4, 16px);border-bottom:1px solid var(--u-border, var(--gray-200, #e5e7eb));gap:var(--space-2, 8px);font-weight:600;font-size:16px;color:var(--u-text, var(--gray-900, #111827))}.app-sidebar__logo-mark[data-v-cd47ecdc]{width:32px;height:32px;background:var(--u-primary, var(--brand-600, #6366f1));color:#fff;border-radius:var(--radius-md, 6px);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.app-sidebar__logo-text[data-v-cd47ecdc]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-sidebar__collapse-btn[data-v-cd47ecdc]{margin-left:auto;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-sm, 4px);color:var(--u-text-muted, var(--gray-400, #9ca3af));cursor:pointer;transition:background .15s,color .15s}.app-sidebar__collapse-btn[data-v-cd47ecdc]:hover{background:var(--u-primary-soft, var(--brand-50, #eef2ff));color:var(--u-primary, var(--brand-600, #6366f1))}.app-sidebar.is-collapsed .app-sidebar__logo[data-v-cd47ecdc]{padding:0;justify-content:center}.app-sidebar.is-collapsed .app-sidebar__collapse-btn[data-v-cd47ecdc]{margin-left:0;width:32px;height:32px;display:none}.app-sidebar.is-collapsed .app-sidebar__logo:hover .app-sidebar__logo-mark[data-v-cd47ecdc]{display:none}.app-sidebar.is-collapsed .app-sidebar__logo:hover .app-sidebar__collapse-btn[data-v-cd47ecdc]{display:flex}.app-sidebar__menu[data-v-cd47ecdc]{flex:1;padding:var(--space-3, 12px) 0;overflow-y:auto}.layout-admin[data-v-91ded8df]{display:flex;height:100vh;overflow:hidden;background:var(--u-bg, var(--gray-50, #f9fafb))}.layout-admin__content[data-v-91ded8df]{flex:1;min-width:0;overflow-y:auto;padding:var(--space-4, 16px) var(--space-6, 24px) var(--space-6, 24px)}.user-sidebar[data-v-df18da46]{width:var(--sidebar-width, 240px);background:var(--u-surface, #fff);border-right:1px solid var(--u-border, var(--gray-200, #e5e7eb));display:flex;flex-direction:column;height:100%;transition:width .2s ease}.user-sidebar.is-collapsed[data-v-df18da46]{width:64px}.user-sidebar__logo[data-v-df18da46]{height:var(--topbar-height, 56px);display:flex;align-items:center;padding:0 var(--space-4, 16px);border-bottom:1px solid var(--u-border, var(--gray-200, #e5e7eb));gap:var(--space-2, 8px);font-weight:600;font-size:16px;color:var(--u-text, var(--gray-900, #111827))}.user-sidebar__logo-mark[data-v-df18da46]{width:32px;height:32px;background:var(--u-primary, var(--brand-600, #4f46e5));color:#fff;border-radius:var(--radius-md, 6px);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.user-sidebar__logo-text[data-v-df18da46]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-sidebar__collapse-btn[data-v-df18da46]{margin-left:auto;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;border-radius:var(--radius-sm, 4px);color:var(--u-text-muted, var(--gray-400, #9ca3af));cursor:pointer;transition:background .15s,color .15s}.user-sidebar__collapse-btn[data-v-df18da46]:hover{background:var(--u-primary-soft, var(--brand-50, #eef2ff));color:var(--u-primary, var(--brand-600, #4f46e5))}.user-sidebar.is-collapsed .user-sidebar__logo[data-v-df18da46]{padding:0;justify-content:center}.user-sidebar.is-collapsed .user-sidebar__collapse-btn[data-v-df18da46]{margin-left:0;width:32px;height:32px;display:none}.user-sidebar.is-collapsed .user-sidebar__logo:hover .user-sidebar__logo-mark[data-v-df18da46]{display:none}.user-sidebar.is-collapsed .user-sidebar__logo:hover .user-sidebar__collapse-btn[data-v-df18da46]{display:flex}.user-sidebar__menu[data-v-df18da46]{flex:1;padding:var(--space-3, 12px) 0;overflow-y:auto}.layout-user[data-v-22de3ad6]{display:flex;height:100vh;overflow:hidden;background:var(--u-bg, var(--gray-50, #f9fafb))}.layout-user__content[data-v-22de3ad6]{flex:1;min-width:0;overflow-y:auto;padding:var(--space-4, 16px) var(--space-6, 24px) var(--space-6, 24px)}.login-page[data-v-755bc87c]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--gray-50);padding:20px}.login-card[data-v-755bc87c]{width:100%;max-width:400px;background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);padding:40px 32px}.login-logo[data-v-755bc87c]{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:32px}.login-logo-icon[data-v-755bc87c]{width:40px;height:40px;background:var(--u-primary, #6366f1);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.login-logo-icon svg[data-v-755bc87c]{width:24px;height:24px;color:#fff}.login-logo-text[data-v-755bc87c]{font-size:20px;font-weight:600;color:var(--gray-900)}.login-heading[data-v-755bc87c]{text-align:center;margin-bottom:8px}.login-heading h1[data-v-755bc87c]{font-size:20px;font-weight:600;color:var(--gray-900)}.login-heading p[data-v-755bc87c]{font-size:14px;color:var(--gray-500);margin-top:4px}.login-form[data-v-755bc87c]{margin-top:28px}.login-btn[data-v-755bc87c]{margin-top:8px}.login-footer[data-v-755bc87c]{text-align:center;margin-top:24px;font-size:12px;color:var(--gray-400)}
