.layout-wrap[data-v-0e5d21bc]{display:flex;width:100%;height:100vh;background:var(--bg-deep);overflow:hidden}.sidebar[data-v-0e5d21bc]{width:240px;height:100%;background:var(--bg-panel);border-right:1px solid var(--border);transition:width .3s ease;flex-shrink:0;display:flex;flex-direction:column}.sidebar.collapse[data-v-0e5d21bc]{width:64px}.logo-box[data-v-0e5d21bc]{height:56px;display:flex;align-items:center;justify-content:center;gap:8px;border-bottom:1px solid #1E293B;flex-shrink:0}.logo-icon[data-v-0e5d21bc]{font-size:20px;color:#60a5fa}.logo-text[data-v-0e5d21bc]{font-size:15px;color:#e2e8f0;font-weight:600;white-space:nowrap}.nav-list[data-v-0e5d21bc]{flex:1;padding:16px 0;overflow-y:auto}.nav-item[data-v-0e5d21bc]{display:flex;align-items:center;height:40px;padding:0 20px;color:#94a3b8;text-decoration:none;transition:all .25s ease;margin:2px 12px;border-radius:8px;gap:12px}.nav-item[data-v-0e5d21bc]:hover{color:#4f8cff;background:#4f8cff14}.nav-item.active[data-v-0e5d21bc]{color:#fff;background:#60a5fa26;box-shadow:0 0 12px #60a5fa33}.nav-icon[data-v-0e5d21bc]{font-size:16px;width:20px;text-align:center;flex-shrink:0}.nav-name[data-v-0e5d21bc]{font-size:14px;white-space:nowrap}.nav-section-label[data-v-0e5d21bc]{font-size:10px;color:#475569;padding:12px 20px 6px;text-transform:uppercase;letter-spacing:.12em;font-weight:600}.nav-section-toggle[data-v-0e5d21bc]{cursor:pointer;-webkit-user-select:none;user-select:none}.nav-section-toggle[data-v-0e5d21bc]:hover{color:#94a3b8}.nav-item-admin[data-v-0e5d21bc]{opacity:.85}.nav-item-admin[data-v-0e5d21bc]:hover{opacity:1}.main-wrap[data-v-0e5d21bc]{flex:1;display:flex;flex-direction:column;overflow:hidden}.layout-header[data-v-0e5d21bc]{height:52px;background:linear-gradient(135deg,var(--bg-panel) 0%,#0d1b2e 100%);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.header-left[data-v-0e5d21bc]{display:flex;align-items:center;gap:20px}.collapse-btn[data-v-0e5d21bc]{color:#94a3b8;cursor:pointer;font-size:18px;-webkit-user-select:none;user-select:none}.header-title[data-v-0e5d21bc]{color:#e2e8f0;font-size:16px;font-weight:600}.header-right[data-v-0e5d21bc]{display:flex;align-items:center;gap:24px}.notice-btn[data-v-0e5d21bc]{color:#94a3b8;font-size:18px;cursor:pointer;transition:.2s}.notice-btn[data-v-0e5d21bc]:hover{color:#4f8cff}.user-info[data-v-0e5d21bc]{display:flex;align-items:center;gap:8px}.user-avatar[data-v-0e5d21bc]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#4f8cff,#3672e9);color:#fff;text-align:center;line-height:32px;font-size:14px}.user-detail[data-v-0e5d21bc]{display:flex;flex-direction:column;line-height:1.3}.user-name[data-v-0e5d21bc]{color:#e2e8f0;font-size:13px}.user-role[data-v-0e5d21bc]{color:#64748b;font-size:11px}.logout-btn[data-v-0e5d21bc]{background:none;border:1px solid #273444;color:#94a3b8;padding:4px 12px;border-radius:6px;cursor:pointer;font-size:12px;transition:.2s}.logout-btn[data-v-0e5d21bc]:hover{color:#ef4444;border-color:#ef4444}.layout-main[data-v-0e5d21bc]{flex:1;overflow-y:auto;padding:var(--space-xl);background:var(--bg-deep);background-image:linear-gradient(rgba(96,165,250,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(96,165,250,.03) 1px,transparent 1px);background-size:30px 30px}.toast[data-v-0e5d21bc]{position:fixed;top:24px;right:24px;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;z-index:2000;animation:fadeInUp-0e5d21bc .3s ease;background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}@keyframes fadeInUp-0e5d21bc{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.sidebar[data-v-0e5d21bc]{display:none!important}.layout-header[data-v-0e5d21bc]{padding:0 12px;height:44px}.header-title[data-v-0e5d21bc]{font-size:14px}.layout-main[data-v-0e5d21bc]{padding:12px 12px 70px}.main-wrap[data-v-0e5d21bc]{width:100%}}.mobile-tabs[data-v-0e5d21bc]{display:none}@media(max-width:768px){.mobile-tabs[data-v-0e5d21bc]{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--bg-panel);border-top:1px solid var(--border);z-index:1000;justify-content:space-around;align-items:center}.mobile-tab[data-v-0e5d21bc]{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--text-muted);font-size:10px;padding:4px 8px;transition:color .2s}.mobile-tab.active[data-v-0e5d21bc]{color:var(--primary)}.mobile-tab-icon[data-v-0e5d21bc]{font-size:20px}.mobile-tab-label[data-v-0e5d21bc]{font-size:10px}}.port-switcher[data-v-0e5d21bc]{display:flex;align-items:center;gap:4px;padding:8px 0;border-top:1px solid var(--border);margin-top:4px}.port-label[data-v-0e5d21bc]{font-size:10px;color:var(--text-muted);margin-right:4px}.port-link[data-v-0e5d21bc]{font-size:11px;padding:3px 8px;border-radius:4px;color:var(--text-secondary);text-decoration:none;transition:.2s}.port-link[data-v-0e5d21bc]:hover{background:#60a5fa26;color:var(--primary)}.port-link.active[data-v-0e5d21bc]{background:#60a5fa33;color:var(--primary);font-weight:600}.g-error-boundary[data-v-77ebf828]{display:flex;align-items:center;justify-content:center;min-height:60vh}.g-error-card[data-v-77ebf828]{text-align:center;padding:48px 32px;background:#1a1d27;border:1px solid #2a2d37;border-radius:12px;max-width:420px}.g-error-icon[data-v-77ebf828]{font-size:48px;margin-bottom:16px}.g-error-card h3[data-v-77ebf828]{color:#e2e8f0;margin:0 0 8px}.g-error-detail[data-v-77ebf828]{color:#94a3b8;font-size:13px;margin:0 0 24px;word-break:break-all}.g-error-retry[data-v-77ebf828],.g-error-home[data-v-77ebf828]{margin:4px;padding:8px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px}.g-error-retry[data-v-77ebf828]{background:#409eff;color:#fff}.g-error-home[data-v-77ebf828]{background:#2a2d37;color:#94a3b8}.g-toast-stack[data-v-8b86044f]{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.g-toast[data-v-8b86044f]{padding:10px 24px;border-radius:8px;color:#fff;font-size:14px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 16px #00000026;cursor:pointer;pointer-events:auto}.g-toast-icon[data-v-8b86044f]{font-size:16px;flex-shrink:0}.g-toast-msg[data-v-8b86044f]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70vw}.toast-fade-enter-active[data-v-8b86044f]{transition:all .3s ease}.toast-fade-leave-active[data-v-8b86044f]{transition:all .25s ease}.toast-fade-enter-from[data-v-8b86044f]{opacity:0;transform:translateY(-12px)}.toast-fade-leave-to[data-v-8b86044f]{opacity:0;transform:translate(20px)}.toast-fade-move[data-v-8b86044f]{transition:transform .3s ease}.gt-undo[data-v-8b86044f]{margin-left:8px;padding:2px 8px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;cursor:pointer;font-size:12px;white-space:nowrap}.gt-undo[data-v-8b86044f]:hover{opacity:.8}.g-loading-overlay[data-v-60f970ae]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:#00000073;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.g-loading-spinner[data-v-60f970ae]{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#409eff;border-radius:50%;animation:spin-60f970ae .8s linear infinite}.g-loading-msg[data-v-60f970ae]{color:#fff;font-size:14px;margin:0}@keyframes spin-60f970ae{to{transform:rotate(360deg)}}.loading-fade-enter-active[data-v-60f970ae],.loading-fade-leave-active[data-v-60f970ae]{transition:opacity .2s}.loading-fade-enter-from[data-v-60f970ae],.loading-fade-leave-to[data-v-60f970ae]{opacity:0}
