.install-bar[data-v-0c49ae60]{display:flex;align-items:center;gap:16px;margin:12px 32px 0;padding:12px 16px;border:1px solid var(--color-primary-border);border-radius:var(--radius-md);background:var(--color-primary-light);box-shadow:var(--shadow-sm)}.install-text[data-v-0c49ae60]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.install-text strong[data-v-0c49ae60]{font-size:13.5px;color:var(--color-text)}.install-text span[data-v-0c49ae60]{font-size:12.5px;color:var(--color-text-secondary)}.install-actions[data-v-0c49ae60]{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-install[data-v-0c49ae60],.btn-later[data-v-0c49ae60]{padding:6px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;white-space:nowrap}.btn-install[data-v-0c49ae60]{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.btn-install[data-v-0c49ae60]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-later[data-v-0c49ae60]{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary)}.btn-later[data-v-0c49ae60]:hover{border-color:var(--color-text-muted);color:var(--color-text)}@media(max-width:768px){.install-bar[data-v-0c49ae60]{flex-direction:column;align-items:flex-start;gap:10px;margin:10px 16px 0}.install-actions[data-v-0c49ae60]{width:100%}.btn-install[data-v-0c49ae60],.btn-later[data-v-0c49ae60]{flex:1}}body{margin:0;font-family:var(--font-sans);color:var(--color-text)}#app{display:flex;flex-direction:column;height:auto;min-height:100vh}#app>*{width:100%;flex-shrink:0}.topbar{display:flex;align-items:center;gap:28px;padding:0 32px;height:56px;border-bottom:1px solid var(--color-border-light);background:#ffffffeb;-webkit-backdrop-filter:saturate(1.8) blur(8px);backdrop-filter:saturate(1.8) blur(8px);position:sticky;top:0;z-index:10}.brandbox{display:flex;align-items:center;gap:10px;flex-shrink:0}.brandbox .logo{width:28px;height:28px;border-radius:6px}.brandbox .brandname{font-size:15px;font-weight:700;letter-spacing:.5px;color:var(--color-text)}.topnav{display:flex;align-items:center;flex:1;gap:4px;overflow-x:auto;scrollbar-width:none}.topnav .link{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius-sm);color:var(--color-text-secondary);text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.topnav .link:hover{background:var(--color-bg-hover);color:var(--color-text)}.topnav .link.active{background:var(--color-primary-light);color:var(--color-primary)}.userbox{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-text-secondary);flex-shrink:0}.role-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);font-size:11px;font-weight:600}.logout{display:inline-flex;align-items:center;padding:5px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:13px;cursor:pointer}.logout:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.footer{margin-top:auto;padding:18px 32px 28px;border-top:1px solid var(--color-border-light);text-align:center;font-size:12px;color:var(--color-text-muted);letter-spacing:.4px}.footer p{margin:0}.topnav{-webkit-overflow-scrolling:touch}.topnav::-webkit-scrollbar{display:none}@media(max-width:1024px){.topbar{gap:16px;padding:0 20px}}@media(max-width:768px){.topbar{flex-wrap:wrap;gap:8px;padding:8px 12px;height:auto;min-height:52px}.brandbox{gap:8px}.brandbox .brandname{font-size:14px}.userbox{margin-left:auto}.userbox .uname,.userbox .role-tag{display:none}.topnav{flex-basis:100%;order:3;flex-wrap:wrap;row-gap:2px;overflow-x:visible}.topnav .link{padding:6px 9px;font-size:12.5px}.footer{padding:16px 16px 22px}}@media(max-width:480px){.topbar{gap:8px;padding:0 10px}.brandbox .logo{width:24px;height:24px}.brandbox .brandname{font-size:13px;letter-spacing:.2px}.topnav .link{padding:5px 8px;font-size:12px}.logout{padding:5px 9px;font-size:12px}.footer{padding:14px 12px 20px}}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #eff6ff;--color-primary-border: #bfdbfe;--color-success: #16a34a;--color-success-light: #ecfdf5;--color-success-border: #bbf7d0;--color-warning: #d97706;--color-warning-light: #fffbeb;--color-warning-border: #fde68a;--color-error: #dc2626;--color-error-light: #fef2f2;--color-error-border: #fecaca;--color-text: #1f2937;--color-text-secondary: #4b5563;--color-text-muted: #9ca3af;--color-text-link: #2563eb;--color-bg: #ffffff;--color-bg-subtle: #f8fafc;--color-bg-hover: #f1f5f9;--color-border: #e5e7eb;--color-border-light: #f1f5f9;--color-focus: #3b82f6;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-card: 0 1px 3px rgba(0, 0, 0, .08), 0 4px 6px rgba(0, 0, 0, .04);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;color:var(--color-text);background:var(--color-bg)}body{font-family:var(--font-sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}table{border-collapse:collapse}table th,table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border-light);vertical-align:middle}table th{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;background:var(--color-bg-subtle)}button,input[type=submit],input[type=button]{cursor:pointer;font-family:inherit;font-size:inherit;outline:none;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;outline:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--color-bg);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px #3b82f61f}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}code,pre{font-family:var(--font-mono);font-size:13px}code{background:var(--color-bg-subtle);padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}::selection{background:var(--color-primary);color:#fff}html{max-width:100%}body{max-width:100%;overflow-x:hidden}img,svg,canvas,video{max-width:100%}.table-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.table-scroll>table{min-width:100%}.table-scroll th,.table-scroll td{word-break:break-word}@media(max-width:1024px){body{font-size:13.5px}}@media(max-width:768px){body{font-size:13px}}
