.app-sidebar[data-v-3b1dc428]{width:var(--sidebar-width-expanded);background:var(--color-sidebar-expanded-bg);z-index:200;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-collapsed[data-v-3b1dc428]{width:var(--sidebar-width-collapsed);background:var(--color-sidebar-collapsed-bg)}.sidebar-collapsed .nav-group-title[data-v-3b1dc428]{color:var(--color-sidebar-text-collapsed)}.sidebar-collapsed .nav-icon[data-v-3b1dc428]{opacity:.85}.sidebar-collapsed .sidebar-toggle[data-v-3b1dc428]{background:var(--color-sidebar-collapsed-bg);color:var(--color-sidebar-text-collapsed);border-color:#ffffff1f}.sidebar-collapsed .logo-text[data-v-3b1dc428]{color:var(--color-sidebar-text-collapsed)}.sidebar-hover-expand[data-v-3b1dc428]{width:var(--sidebar-width-expanded);box-shadow:var(--shadow-lg)}.sidebar-logo[data-v-3b1dc428]{cursor:pointer;flex-shrink:0;align-items:center;gap:.625rem;padding:.875rem 1rem;display:flex}.logo-icon[data-v-3b1dc428]{background:var(--color-primary);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.logo-c[data-v-3b1dc428]{color:var(--color-text-white);font-size:1.125rem;font-weight:800}.logo-text[data-v-3b1dc428]{font-size:var(--font-lg);color:var(--color-sidebar-text);white-space:nowrap;font-weight:700}.sidebar-collapsed .sidebar-logo[data-v-3b1dc428]{justify-content:center;padding:.875rem 0}.sidebar-nav[data-v-3b1dc428]{flex:1;padding:0 .5rem;overflow:hidden auto}.nav-group[data-v-3b1dc428]{margin-bottom:2px}.nav-group-title[data-v-3b1dc428]{width:100%;color:var(--color-sidebar-text);font-size:var(--font-sm);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:.625rem;padding:.5rem .625rem;font-weight:600;display:flex}.nav-group-title[data-v-3b1dc428]:hover{background:var(--color-sidebar-hover)}.nav-group-title.active[data-v-3b1dc428]{color:var(--color-primary)}.nav-icon[data-v-3b1dc428]{opacity:.7;flex-shrink:0}.nav-label[data-v-3b1dc428]{text-align:left;white-space:nowrap;flex:1}.nav-chevron[data-v-3b1dc428]{opacity:.4;transition:transform var(--transition-fast);flex-shrink:0}.nav-chevron.rotated[data-v-3b1dc428]{transform:rotate(180deg)}.sidebar-collapsed .nav-group-title[data-v-3b1dc428]{justify-content:center;height:40px;padding:.5rem}.nav-submenu[data-v-3b1dc428]{flex-direction:column;padding:2px 0 4px 2.25rem;display:flex}.nav-item[data-v-3b1dc428]{font-size:var(--font-sm);color:var(--color-sidebar-text);border-radius:var(--radius-sm);white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:.375rem;padding:.375rem .75rem;text-decoration:none;display:flex}.nav-item[data-v-3b1dc428]:hover{background:var(--color-sidebar-hover);color:var(--color-primary)}.nav-item.active[data-v-3b1dc428]{background:var(--color-sidebar-active);color:var(--color-primary);font-weight:600}.nav-item-label[data-v-3b1dc428]{text-overflow:ellipsis;flex:1;overflow:hidden}.nav-item.locked[data-v-3b1dc428]{color:var(--color-text-hint)}.nav-item-lock[data-v-3b1dc428]{opacity:.7;color:var(--color-text-hint);flex-shrink:0}.nav-item-tier[data-v-3b1dc428]{font-size:var(--font-xxs);border-radius:var(--radius-sm);background:var(--color-bg-input);color:var(--color-text-hint);flex-shrink:0;padding:.15rem .4rem;font-weight:600;line-height:1}.sidebar-toggle[data-v-3b1dc428]{border:1.5px solid var(--color-border);background:var(--color-bg-card);width:24px;height:24px;color:var(--color-text-hint);cursor:pointer;z-index:10;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex;position:absolute;bottom:80px;right:-12px}.sidebar-toggle[data-v-3b1dc428]:hover{color:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-lg)}.sidebar-collapsed .sidebar-toggle[data-v-3b1dc428]{right:-10px}.sidebar-footer[data-v-3b1dc428]{border-top:1px solid var(--color-sidebar-divider);flex-shrink:0;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.sidebar-user[data-v-3b1dc428]{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.user-avatar[data-v-3b1dc428]{background:var(--color-primary);width:32px;height:32px;color:var(--color-text-white);border-radius:var(--radius-md);font-size:var(--font-sm);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.user-info[data-v-3b1dc428]{min-width:0}.user-name[data-v-3b1dc428]{font-size:var(--font-sm);color:var(--color-sidebar-text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.user-role[data-v-3b1dc428]{font-size:var(--font-xxs);color:var(--color-text-hint)}.sidebar-action[data-v-3b1dc428]{color:var(--color-text-hint);border-radius:var(--radius-md);cursor:pointer;align-items:center;padding:.35rem;transition:all .15s;display:flex}.sidebar-action[data-v-3b1dc428]:hover{color:var(--color-primary);background:var(--color-sidebar-hover)}@media (max-width:768px){.app-sidebar[data-v-3b1dc428]{z-index:300;transform:translate(-100%);width:var(--sidebar-width-expanded)!important}.app-sidebar.sidebar-mobile-open[data-v-3b1dc428]{box-shadow:var(--shadow-xl);transform:translate(0)}.sidebar-mobile-backdrop[data-v-3b1dc428]{background:var(--color-overlay);z-index:299;position:fixed;top:0;bottom:0;left:0;right:0}}.breadcrumb[data-v-fc714f06]{font-size:var(--font-sm);align-items:center;gap:.5rem;display:flex}.breadcrumb-sep[data-v-fc714f06]{color:var(--color-text-hint)}.breadcrumb-link[data-v-fc714f06]{color:var(--color-text-hint);text-decoration:none}.breadcrumb-link[data-v-fc714f06]:hover{color:var(--color-primary)}.breadcrumb-current[data-v-fc714f06]{color:var(--color-text-primary);font-weight:500}.app-topbar[data-v-eb215598]{height:var(--topbar-height);background:var(--color-topbar-bg);padding:0 var(--space-xl);z-index:100;justify-content:space-between;align-items:center;gap:var(--space-lg);display:flex;position:sticky;top:0}.topbar-left[data-v-eb215598]{align-items:center;gap:var(--space-sm);flex:1;min-width:0;display:flex}.topbar-hamburger[data-v-eb215598]{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-topbar-text);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:none}.topbar-hamburger[data-v-eb215598]:hover{background:var(--color-primary-alpha);color:var(--color-primary)}@media (max-width:768px){.topbar-hamburger[data-v-eb215598]{display:flex}}.topbar-right[data-v-eb215598]{align-items:center;gap:var(--space-sm);display:flex}.topbar-btn[data-v-eb215598]{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-topbar-text);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.topbar-btn[data-v-eb215598]:hover,.topbar-btn-active[data-v-eb215598]{background:var(--color-primary-alpha);color:var(--color-primary);border-color:var(--color-primary-alpha-strong)}.topbar-btn[data-v-eb215598]:after{content:attr(data-tooltip);background:var(--color-text-primary,#2c3e50);color:var(--color-text-white,#fff);border-radius:var(--radius-sm,6px);white-space:nowrap;pointer-events:none;opacity:0;z-index:400;padding:4px 10px;font-size:12px;font-weight:500;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-4px)}.topbar-btn[data-v-eb215598]:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.topbar-badge[data-v-eb215598]{background:var(--color-danger);width:16px;height:16px;color:var(--color-text-white);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;top:2px;right:2px}.topbar-user[data-v-eb215598]{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex;position:relative}.topbar-user[data-v-eb215598]:hover{background:var(--color-primary-alpha)}.topbar-avatar[data-v-eb215598]{background:var(--color-primary);width:30px;height:30px;color:var(--color-text-white);border-radius:var(--radius-md);font-size:var(--font-sm);justify-content:center;align-items:center;font-weight:700;display:flex}.topbar-name[data-v-eb215598]{color:var(--color-topbar-text);font-size:var(--font-sm);font-weight:500}.topbar-dropdown[data-v-eb215598]{background:var(--color-bg-card);border-radius:var(--radius-lg);width:220px;box-shadow:var(--shadow-lg);z-index:300;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.dropdown-header[data-v-eb215598]{align-items:center;gap:.75rem;padding:.875rem 1rem;display:flex}.dropdown-avatar[data-v-eb215598]{background:var(--color-primary);width:36px;height:36px;color:var(--color-text-white);border-radius:var(--radius-md);justify-content:center;align-items:center;font-weight:700;display:flex}.dropdown-name[data-v-eb215598]{font-size:var(--font-sm);font-weight:600}.dropdown-email[data-v-eb215598]{font-size:var(--font-xs);color:var(--color-text-hint)}.dropdown-divider[data-v-eb215598]{background:var(--color-divider);height:1px}.dropdown-item[data-v-eb215598]{width:100%;font-size:var(--font-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:.625rem;padding:.625rem 1rem;display:flex}.dropdown-item[data-v-eb215598]:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dropdown-item.danger[data-v-eb215598]:hover{color:var(--color-danger);background:var(--color-danger-alpha)}.dropdown-backdrop[data-v-eb215598]{z-index:99;position:fixed;top:0;bottom:0;left:0;right:0}.aic[data-v-750e3fbf]{border-radius:var(--radius-full);font-size:var(--font-xxs);white-space:nowrap;cursor:default;border:1px solid #0000;align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.aic.llm[data-v-750e3fbf]:not(.configured){color:var(--color-ai-violet);background:#8b5cf614;border-color:#8b5cf633}.aic.llm.configured[data-v-750e3fbf]{color:var(--color-success);background:#27ae6014;border-color:#27ae6033}.aic.rule[data-v-750e3fbf]{color:var(--color-text-hint);background:var(--color-bg-input);border-color:var(--color-border)}.aic.optimization[data-v-750e3fbf]{color:var(--color-primary);background:var(--color-primary-alpha);border-color:#05afb533}.aic.vision[data-v-750e3fbf]:not(.configured){color:var(--color-ai-violet);background:#8b5cf614;border-color:#8b5cf633}.aic.compact[data-v-750e3fbf]{gap:2px;padding:2px 5px}.aic-label[data-v-750e3fbf]{line-height:1}.aic-status-badge[data-v-750e3fbf]{border-radius:var(--radius-sm);color:var(--color-ai-violet);text-transform:uppercase;letter-spacing:.3px;background:#8b5cf626;padding:1px 5px;font-size:8px;font-weight:700}.aic-status-badge.configured[data-v-750e3fbf]{color:var(--color-success);background:#27ae6026}.aic-status-badge.local[data-v-750e3fbf]{background:var(--color-bg-input);color:var(--color-text-hint)}.aic-config-btn[data-v-750e3fbf]{border-radius:var(--radius-sm);border:1px solid var(--color-ai-violet);color:var(--color-ai-violet);cursor:pointer;transition:all var(--transition-fast);background:0 0;margin-left:2px;padding:0 5px;font-family:inherit;font-size:9px;font-weight:600;line-height:1.4}.aic-config-btn[data-v-750e3fbf]:hover{background:var(--color-ai-violet);color:var(--color-text-white)}.global-ai-assistant[data-v-b07948f6]{z-index:9000;position:fixed;bottom:24px;right:24px}.gai-fab[data-v-b07948f6]{background:var(--color-primary);width:52px;height:52px;color:var(--color-text-white);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 6px 20px #05afb559}.gai-fab[data-v-b07948f6]:hover{transform:translateY(-2px);box-shadow:0 8px 26px #05afb573}.gai-panel[data-v-b07948f6]{background:var(--color-bg-card);border-radius:var(--radius-lg);width:380px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 48px);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.gai-pop-enter-active[data-v-b07948f6],.gai-pop-leave-active[data-v-b07948f6]{transition:opacity .2s,transform .2s}.gai-pop-enter-from[data-v-b07948f6],.gai-pop-leave-to[data-v-b07948f6]{opacity:0;transform:translateY(12px)}.gai-header[data-v-b07948f6]{border-bottom:1px solid var(--color-divider);flex-shrink:0;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.gai-brand[data-v-b07948f6]{font-size:var(--font-sm);color:var(--color-text-primary);align-items:center;gap:.5rem;font-weight:700;display:flex}.gai-header-actions[data-v-b07948f6]{align-items:center;gap:.25rem;display:flex}.gai-icon-btn[data-v-b07948f6]{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-hint);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.gai-icon-btn[data-v-b07948f6]:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.gai-body[data-v-b07948f6]{flex-direction:column;flex:1;gap:.625rem;padding:.75rem;display:flex;overflow-y:auto}.gai-msg[data-v-b07948f6]{gap:.5rem;display:flex}.gai-msg.user[data-v-b07948f6]{flex-direction:row-reverse}.gai-avatar[data-v-b07948f6]{background:var(--color-primary);width:28px;height:28px;color:var(--color-text-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.gai-msg-body[data-v-b07948f6]{flex-direction:column;gap:4px;max-width:82%;display:flex}.gai-msg.user .gai-msg-body[data-v-b07948f6]{align-items:flex-end}.gai-bubble[data-v-b07948f6]{border-radius:var(--radius-md);font-size:var(--font-sm);white-space:pre-wrap;word-break:break-word;padding:.55rem .75rem;line-height:1.5}.gai-msg.assistant .gai-bubble[data-v-b07948f6]{background:var(--color-bg-hover);color:var(--color-text-primary)}.gai-msg.user .gai-bubble[data-v-b07948f6]{background:var(--color-primary);color:var(--color-text-white)}.gai-bubble.typing[data-v-b07948f6]{gap:4px;padding:.75rem;display:flex}.gai-bubble.typing span[data-v-b07948f6]{background:var(--color-text-hint);border-radius:50%;width:6px;height:6px;animation:1.2s infinite gai-blink-b07948f6}.gai-bubble.typing span[data-v-b07948f6]:nth-child(2){animation-delay:.2s}.gai-bubble.typing span[data-v-b07948f6]:nth-child(3){animation-delay:.4s}@keyframes gai-blink-b07948f6{0%,80%,to{opacity:.3}40%{opacity:1}}.gai-sources[data-v-b07948f6]{flex-wrap:wrap;align-items:center;gap:.375rem;display:flex}.gai-sources-label[data-v-b07948f6]{color:var(--color-text-hint);font-size:11px}.gai-source-link[data-v-b07948f6]{color:var(--color-primary);cursor:pointer;font-size:11px;text-decoration:underline}.gai-msg-footer[data-v-b07948f6]{align-items:center;gap:.375rem;display:flex}.gai-time[data-v-b07948f6]{color:var(--color-text-hint);font-size:10px}.gai-copy-btn[data-v-b07948f6]{color:var(--color-text-hint);cursor:pointer;background:0 0;border:none;padding:2px;display:flex}.gai-copy-btn[data-v-b07948f6]:hover{color:var(--color-primary)}.gai-suggestions[data-v-b07948f6]{border-top:1px solid var(--color-divider);flex-wrap:wrap;flex-shrink:0;gap:.375rem;padding:.5rem .75rem;display:flex}.gai-sug-btn[data-v-b07948f6]{border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:.25rem .6rem;font-size:11px}.gai-sug-btn[data-v-b07948f6]:hover{border-color:var(--color-primary);color:var(--color-primary)}.gai-input-wrap[data-v-b07948f6]{border-top:1px solid var(--color-divider);flex-shrink:0;align-items:flex-end;gap:.5rem;padding:.625rem .75rem;display:flex}.gai-input[data-v-b07948f6]{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-sm);resize:none;background:var(--color-bg-input);max-height:96px;color:var(--color-text-primary);outline:none;flex:1;padding:.5rem .75rem;font-family:inherit}.gai-input[data-v-b07948f6]:focus{border-color:var(--color-primary)}.gai-send-btn[data-v-b07948f6]{border-radius:var(--radius-md);background:var(--color-primary);width:36px;height:36px;color:var(--color-text-white);cursor:pointer;transition:opacity var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.gai-send-btn[data-v-b07948f6]:disabled{opacity:.4;cursor:not-allowed}.feature-lock[data-v-cf61a15a]{gap:var(--space-lg);flex-direction:column;display:flex}.fl-banner[data-v-cf61a15a]{border-radius:var(--radius-md);background:var(--color-primary-alpha);border:1px solid var(--color-primary);color:var(--color-text-primary);font-size:var(--font-sm);align-items:center;gap:.625rem;padding:.625rem 1rem;display:flex}.fl-banner-icon[data-v-cf61a15a]{color:var(--color-primary);flex-shrink:0}.fl-banner-text[data-v-cf61a15a]{flex:1}.fl-upgrade-btn[data-v-cf61a15a]{border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-white);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0;padding:.375rem .875rem;font-weight:600}.fl-upgrade-btn[data-v-cf61a15a]:hover{background:var(--color-primary-dark)}.fl-body[data-v-cf61a15a]{position:relative}.fl-locked[data-v-cf61a15a]{pointer-events:none}.fl-mask[data-v-cf61a15a]{z-index:20;background:color-mix(in srgb, var(--color-bg-page) 55%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;pointer-events:auto;justify-content:center;align-items:center;min-height:240px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.fl-mask-card[data-v-cf61a15a]{text-align:center;border-radius:var(--radius-lg);background:var(--color-bg-card);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:2rem 2.5rem}.fl-mask-icon[data-v-cf61a15a]{color:var(--color-primary);margin-bottom:.5rem}.fl-mask-title[data-v-cf61a15a]{font-size:var(--font-lg);color:var(--color-text-primary);font-weight:700}.fl-mask-desc[data-v-cf61a15a]{font-size:var(--font-sm);color:var(--color-text-secondary);margin-top:.25rem}.fl-mask-cta[data-v-cf61a15a]{font-size:var(--font-sm);color:var(--color-primary);margin-top:.75rem;font-weight:600;display:inline-block}.blank-layout{min-height:100vh}.impersonate-banner{z-index:11000;background:var(--color-accent-amber);color:#1a1a1a;font-size:var(--font-sm);box-shadow:var(--shadow-lg);justify-content:center;align-items:center;gap:1rem;padding:.6rem 1.5rem;font-weight:600;display:flex;position:fixed;top:0;left:0;right:0}.impersonate-banner-text{letter-spacing:.3px}.impersonate-exit{color:#1a1a1a;font-size:var(--font-sm);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#ffffff80;border:1px solid #00000059;padding:.25rem .9rem;font-family:inherit;font-weight:700}.impersonate-exit:hover{background:#ffffffd9}.app-shell{min-height:100vh;display:flex}.app-main{min-width:0;min-height:100vh;transition:margin-left var(--transition-normal);flex-direction:column;flex:1;display:flex}.app-content{padding:var(--space-xxl);max-width:calc(var(--content-max-width) + var(--space-xxl) * 2);flex:1;width:100%}.toast-container{top:calc(var(--topbar-height) + 1rem);z-index:10000;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;right:1.5rem}.toast-item{background:var(--color-bg-card);color:var(--color-text-primary);border-radius:var(--radius-lg);font-size:var(--font-sm);white-space:nowrap;box-shadow:var(--shadow-lg);pointer-events:auto;align-items:center;gap:.5rem;padding:.75rem 1.25rem;animation:.25s toast-in;display:flex}.toast-success{box-shadow:inset 2px 0 0 0 var(--color-success)}.toast-error{box-shadow:inset 2px 0 0 0 var(--color-danger)}.toast-icon{font-weight:700}.toast-success .toast-icon{color:var(--color-success)}.toast-error .toast-icon{color:var(--color-danger)}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.modal-overlay{background:var(--color-overlay);z-index:10000;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-box{background:var(--color-bg-card);border-radius:var(--radius-xl);width:420px;max-width:90vw;animation:.2s scale-in;overflow:hidden}@keyframes scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.modal-title{font-weight:700;font-size:var(--font-lg);color:var(--color-text-primary);padding:1.5rem 1.5rem .5rem}.modal-content{font-size:var(--font-md);color:var(--color-text-secondary);padding:.5rem 1.5rem 1.5rem;line-height:1.6}.modal-actions{border-top:1px solid var(--color-divider);background:var(--color-bg-input);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.modal-btn{border-radius:var(--radius-md);height:2.25rem;font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);border:none;padding:0 1.25rem;font-weight:600}.modal-btn-cancel{background:var(--color-bg-card);color:var(--color-text-secondary);border:1px solid var(--color-border)}.modal-btn-confirm{background:var(--color-primary);color:var(--color-text-white)}.modal-btn-confirm:hover{background:var(--color-primary-dark)}.loading-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#ffffffd9;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:2.5rem;height:2.5rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--color-text-hint);font-size:var(--font-sm);margin-top:1rem}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .2s,transform .2s}.page-fade-enter-from{opacity:0;transform:translateY(8px)}.page-fade-leave-to{opacity:0;transform:translateY(-4px)}@media (max-width:768px){.app-content{padding:var(--space-lg)}}@media (max-width:480px){.app-content{padding:var(--space-md)}}:root{--color-primary:#05afb5;--color-primary-dark:#047b80;--color-primary-light:#ceeff0;--color-primary-alpha:#05afb514;--color-primary-alpha-strong:#05afb526;--color-accent:#23354f;--color-accent-dark:#1a283a;--color-accent-alpha:#23354f0f;--color-accent-alpha-strong:#23354f1f;--color-danger:#e74c3c;--color-danger-dark:#c0392b;--color-danger-alpha:#e74c3c1a;--color-danger-alpha-strong:#e74c3c4d;--color-warning:#f29c24;--color-warning-dark:#d4890c;--color-warning-alpha:#f29c241a;--color-info:#05afb5;--color-info-alpha:#05afb514;--color-success:#27ae60;--color-success-dark:#219a52;--color-success-alpha:#27ae6014;--color-text-primary:#0d1520;--color-text-secondary:#5a6070;--color-text-hint:#8a90a0;--color-text-white:#fff;--color-text-inverse:#fff;--color-bg-page:#fff;--color-bg-card:#f7f9fa;--color-bg-card-hover:#eef3f4;--color-bg-input:#f2f5f6;--color-bg-hover:#05afb50a;--color-bg-selected:#05afb514;--color-border:#d4dbe0;--color-border-light:#e4e9eb;--color-border-focus:#05afb5;--color-divider:#eef1f2;--color-divider-strong:#e4e9eb;--color-sidebar-expanded-bg:#fff;--color-sidebar-collapsed-bg:#0d1520;--color-sidebar-text:#5a6070;--color-sidebar-text-collapsed:#89a;--color-sidebar-icon:#5a6070;--color-sidebar-hover:#05afb50f;--color-sidebar-active:#05afb51a;--color-sidebar-active-border:#05afb5;--color-sidebar-divider:#0000000f;--color-sidebar-group-label:#8a90a0;--color-topbar-bg:#fff;--color-topbar-border:#e4e9eb;--color-topbar-text:#5a6070;--color-accent-blue:#4766ec;--color-accent-green:#7aa189;--color-accent-amber:#b7893f;--color-accent-red:#bd5f7e;--color-accent-teal:#05afb5;--color-accent-navy:#23354f;--chart-1:#05afb5;--chart-2:#23354f;--chart-3:#f29c24;--chart-4:#4766ec;--chart-5:#27ae60;--chart-6:#bd5f7e;--chart-7:#e74c3c;--chart-8:#7aa189;--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#eee;--gray-300:#e0e0e0;--gray-400:#ccc;--gray-500:#aaa;--gray-600:#999;--gray-700:#888;--gray-800:#757575;--gray-900:#555;--gray-950:#333;--status-success:#2e7d32;--status-success-strong:#1b5e20;--status-success-soft:#e8f5e9;--status-warning:#e67e22;--status-warning-strong:#e65100;--status-warning-soft:#fff3e0;--status-danger:#d32f2f;--status-danger-strong:#c62828;--status-danger-soft:#ffebee;--status-info:#1976d2;--status-info-strong:#1565c0;--status-info-soft:#e3f2fd;--color-data-blue:#4a90d9;--color-data-blue-hover:#3a7bc8;--color-ai-indigo:#667eea;--color-ai-purple:#764ba2;--color-ai-violet:#8b5cf6;--color-flame:#f4a742;--color-flame-light:#ffab40;--color-gold:#f0c060;--color-neon-green:#00e676;--color-mint:#00d4aa;--color-teal-bright:#0fc;--scene-bg:#060a12;--scene-bg-deep:#0a1018;--scene-panel:#1a2130;--scene-panel-alt:#223c4f;--scene-panel-deep:#152030;--scene-text:#d4d8e8;--scene-text-muted:#969fb8;--scene-text-hint:#c8cdd4;--scene-slate:#78909c;--scene-slate-dark:#2c3e50;--scene-border:#abc;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.25rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0d15200a;--shadow-md:0 2px 8px #0d15200f;--shadow-lg:0 4px 20px #0d15201a;--shadow-xl:0 8px 32px #0d152024;--shadow-card:0 1px 4px #0d15200d;--shadow-card-hover:0 4px 16px #0d152014;--shadow-primary:0 2px 12px #05afb559;--shadow-danger:0 2px 12px #e74c3c59;--shadow-success:0 2px 12px #27ae6059;--shadow-warning:0 2px 12px #f29c2459;--color-overlay:#0d152073;--scrollbar-thumb:#0d15201f;--scrollbar-thumb-hover:#0d152038;--font-xxs:.625rem;--font-xs:.6875rem;--font-sm:.8125rem;--font-md:.9375rem;--font-lg:1.0625rem;--font-xl:1.25rem;--font-xxl:1.75rem;--font-xxxl:2.25rem;--font-display:2rem;--font-display-xl:2.75rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-xxl:2rem;--sidebar-width-expanded:240px;--sidebar-width-collapsed:72px;--topbar-height:52px;--content-max-width:1440px;--safe-bottom:env(safe-area-inset-bottom,0);--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s cubic-bezier(.22, .61, .36, 1);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;font-size:var(--font-md);color:var(--color-text-primary);background-color:var(--color-bg-page);line-height:1.5}*,:before,:after{box-sizing:border-box}body{margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}input,select,textarea{font-family:inherit;font-size:var(--font-md);color:var(--color-text-primary);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.5rem .75rem}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}input[type=number]{-moz-appearance:textfield}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}html.presentation-mode{--color-bg-page:#0a0e27;--color-bg-card:#111640;--color-bg-input:#1a2142;--color-bg-hover:#ffffff0d;--color-text-primary:#e8eaed;--color-text-secondary:#b6bcc8;--color-text-hint:#8a90a0;--color-border:#2a3350;--color-divider:#1f2740;--color-divider-strong:#2a3350;--color-topbar-bg:#0d1228;--color-topbar-text:#b6bcc8;font-size:18px}html.presentation-mode .app-sidebar,html.presentation-mode .app-topbar{display:none}html.presentation-mode .app-main{margin-left:0!important}html.presentation-mode .app-content,html.presentation-mode .page{max-width:100%!important}html.high-contrast{--color-text-primary:#000;--color-text-secondary:#1a1a1a;--color-text-hint:#333;--color-border:#000;--color-divider:#c9c9c9;--color-divider-strong:#9a9a9a;--color-bg-page:#fff;--color-bg-card:#f2f2f2}html.reduced-motion *,html.reduced-motion :before,html.reduced-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.flex-row{flex-direction:row;align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-start{align-items:flex-start;display:flex}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-hint{color:var(--color-text-hint);font-size:var(--font-sm)}.text-secondary{color:var(--color-text-secondary)}.text-primary{color:var(--color-primary)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-success{color:var(--color-success)}.text-sm{font-size:var(--font-sm)}.text-xs{font-size:var(--font-xs)}.text-lg{font-size:var(--font-lg)}.text-xl{font-size:var(--font-xl)}.text-xxl{font-size:var(--font-xxl)}.text-bold{font-weight:600}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.ml-sm{margin-left:var(--space-sm)}.mr-sm{margin-right:var(--space-sm)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-card)}.card-flush{border-radius:0;margin-left:0;margin-right:0}.content-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-card);transition:box-shadow var(--transition-fast), transform var(--transition-fast)}.content-card:hover{box-shadow:var(--shadow-md)}.content-card.card-hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.kpi-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.page-section{margin-bottom:var(--space-xxl)}.section-title{font-size:var(--font-lg);color:var(--color-text-primary);margin-bottom:var(--space-lg);align-items:center;gap:var(--space-xs);font-weight:700;display:flex}.section-title:before{content:"";background:var(--color-primary);border-radius:var(--radius-sm);width:.1875rem;height:.875rem}.btn{height:2.5rem;padding:0 var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-md);transition:all var(--transition-fast);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:.375rem;font-weight:600;display:inline-flex}.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{box-shadow:none;transform:translateY(0)}.btn-primary{background:var(--color-primary);color:var(--color-text-white)}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-primary)}.btn-outline{background:var(--color-bg-card);color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-outline:hover{background:var(--color-primary-light);border-color:var(--color-primary-dark)}.btn-danger{background:var(--color-danger);color:var(--color-text-white)}.btn-danger:hover{background:var(--color-danger-dark);box-shadow:var(--shadow-danger)}.btn-ghost{background:var(--color-bg-input);color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-border);color:var(--color-text-primary)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:var(--color-success-dark);box-shadow:var(--shadow-success)}.btn-warning{background:var(--color-warning);color:#fff}.btn-warning:hover{background:var(--color-warning-dark);box-shadow:var(--shadow-warning)}.btn-block{width:100%}.btn-sm{height:2rem;font-size:var(--font-sm);padding:0 var(--space-md)}.btn-lg{height:3rem;font-size:var(--font-lg)}.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none}.icon-btn{border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-hint);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-bg-input);color:var(--color-primary)}.icon-btn:active{background:var(--color-border)}.icon-btn.danger:hover{background:var(--color-danger-alpha);color:var(--color-danger)}.icon-btn.success:hover{background:var(--color-success-alpha);color:var(--color-success)}.icon-btn.primary{color:var(--color-primary)}.action-link{border-radius:var(--radius-sm);color:var(--color-primary);font-size:inherit;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;align-items:center;gap:.25rem;margin:-.25rem -.5rem;padding:.25rem .5rem;font-weight:600;display:inline-flex}.action-link:hover{background:var(--color-primary-alpha)}.action-link:active{background:var(--color-primary-light)}.action-link.secondary{color:var(--color-text-secondary);font-weight:500}.action-link.secondary:hover{color:var(--color-primary)}.pill-toggle{border-radius:var(--radius-full);font-size:var(--font-sm);border:1.5px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:.25rem;padding:.35rem .85rem;font-weight:600;display:inline-flex}.pill-toggle:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-alpha)}.pill-toggle.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tag{border-radius:var(--radius-sm);font-size:var(--font-xs);align-items:center;padding:.125rem .5rem;font-weight:500;display:inline-flex}.tag-green{background:var(--color-success-alpha);color:var(--color-success)}.tag-red{background:var(--color-danger-alpha);color:var(--color-danger)}.tag-orange{background:var(--color-warning-alpha);color:var(--color-warning)}.tag-blue{background:var(--color-info-alpha);color:var(--color-info)}.tag-gray{color:var(--color-text-hint);background:#0000000d}.tag-primary{background:var(--color-primary-alpha);color:var(--color-primary)}.divider{background:var(--color-divider);height:1px;margin:var(--space-md) 0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.45s ease-out fadeIn}.sidebar-transition{transition:width var(--transition-normal)}.safe-bottom{padding-bottom:var(--safe-bottom);min-height:1.25rem}.spacer{height:1.25rem}.input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:2.5rem;font-size:var(--font-md);color:var(--color-text-primary);background:var(--color-bg-card);transition:border-color var(--transition-fast);outline:none;padding:0 .75rem}.input:focus{border-color:var(--color-primary)}.input-field{flex-direction:column;gap:.25rem;display:flex}.input-field label{font-size:var(--font-sm);color:var(--color-text-secondary);font-weight:600}.chip{border-radius:var(--radius-full);font-size:var(--font-xs);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);align-items:center;padding:.25rem .75rem;font-weight:600;display:inline-flex}.chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.chip:hover:not(.active){border-color:var(--color-primary);color:var(--color-primary)}.grid-2{gap:var(--space-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:768px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.chart-row{gap:var(--space-xl);display:flex}@media (max-width:900px){.chart-row{flex-direction:column}}.section-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}@media (max-width:480px){.section-header{flex-direction:column;align-items:flex-start}}@media (max-width:768px){.page-toolbar .toolbar-top{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.page-toolbar .toolbar-actions{width:100%}}.vpp-flow-bar{margin-bottom:var(--space-lg);padding:0 var(--space-lg)}.vpp-flow-bar .pipeline{padding:.75rem 0 .5rem}.btn-next{border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:var(--font-xs);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:.375rem;padding:.45rem 1rem;font-weight:600;display:inline-flex}.btn-next:hover{opacity:.9;box-shadow:var(--shadow-primary)}.vpp-guide-overlay{z-index:1100;background:var(--color-overlay);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.vpp-guide-modal{background:var(--color-bg-card);border-radius:var(--radius-xl);width:100%;max-width:520px;box-shadow:var(--shadow-xl);padding:2rem 2rem 1.5rem}.vpp-guide-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.vpp-guide-header h2{font-size:var(--font-xl);margin:0;font-weight:800}.vpp-guide-header p{font-size:var(--font-sm);color:var(--color-text-hint);margin:.25rem 0 0}.vpp-guide-close{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--color-text-hint);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.vpp-guide-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.vpp-guide-dots{justify-content:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.vpp-guide-dot{background:var(--color-border);width:8px;height:8px;transition:all var(--transition-fast);border-radius:50%}.vpp-guide-dot.active{background:var(--color-primary);transform:scale(1.4)}.vpp-guide-dot.done{background:var(--color-success)}.vpp-guide-step-num{font-size:var(--font-xs);color:var(--color-text-hint);margin-bottom:.5rem;display:block}.vpp-guide-body h3{font-size:var(--font-lg);margin:0 0 .5rem;font-weight:700}.vpp-guide-body p{font-size:var(--font-sm);color:var(--color-text-secondary);margin:0;line-height:1.6}.vpp-guide-footer{border-top:1px solid var(--color-divider);justify-content:space-between;margin-top:1.5rem;padding-top:1rem;display:flex}
