@charset "UTF-8";:root{--oct-primary: #2563eb;--oct-primary-dark: #1d4ed8;--oct-primary-light: #3b82f6;--oct-primary-soft: #eef4ff;--oct-accent: #0ea5e9;--oct-accent-soft: #e6f6fe;--oct-gradient: linear-gradient(135deg, #2563eb 0%, #6366f1 50%, #8b5cf6 100%);--oct-gradient-accent: linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%);--oct-gradient-soft: linear-gradient(135deg, #eef2ff 0%, #f0edff 100%);--oct-glow-primary: 0 4px 14px rgba(99, 102, 241, .3);--oct-glow-primary-lg: 0 8px 24px rgba(99, 102, 241, .42);--oct-border-glow: rgba(99, 102, 241, .1);--oct-success: #10b981;--oct-success-soft: #e8f8f2;--oct-warning: #f59e0b;--oct-warning-soft: #fdf3e3;--oct-danger: #ef4444;--oct-danger-soft: #fdecec;--oct-info: #64748b;--oct-info-soft: #f1f4f9;--oct-text-1: #0f172a;--oct-text-2: #475569;--oct-text-3: #94a3b8;--oct-text-4: #cbd5e1;--oct-border: #e2e8f0;--oct-border-soft: #eef2f7;--oct-bg-page: #f6f8fc;--oct-bg-card: #ffffff;--oct-bg-hover: #f1f5fd;--oct-bg-subtle: #f8fafd;--oct-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--oct-shadow: 0 4px 16px rgba(15, 23, 42, .06);--oct-shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--oct-shadow-lg: 0 16px 40px rgba(15, 23, 42, .12);--oct-radius-sm: 6px;--oct-radius: 8px;--oct-radius-lg: 12px;--oct-radius-xl: 16px;--oct-radius-pill: 999px;--oct-gap-xs: 8px;--oct-gap-sm: 12px;--oct-gap: 16px;--oct-gap-lg: 24px;--oct-gap-xl: 32px;--oct-card-pad: 24px;--oct-fs-page: 24px;--oct-fs-module: 18px;--oct-fs-body: 14px;--oct-fs-help: 12px;--oct-fs-number: 30px;--oct-sidebar-w: 240px;--oct-sidebar-w-collapsed: 64px;--oct-navbar-h: 60px;--oct-content-pad-x: 24px;--oct-content-pad-y: 20px;--el-color-primary: var(--oct-primary);--el-color-primary-light-3: #5b8def;--el-color-primary-light-5: #93b4f5;--el-color-primary-light-7: #c3d5fa;--el-color-primary-light-8: #dbe6fd;--el-color-primary-light-9: var(--oct-primary-soft);--el-color-primary-dark-2: var(--oct-primary-dark);--el-color-success: var(--oct-success);--el-color-warning: var(--oct-warning);--el-color-danger: var(--oct-danger);--el-color-error: var(--oct-danger);--el-color-info: var(--oct-info);--el-border-radius-base: 8px;--el-component-size: 40px;--el-font-family: "Inter", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{font-family:var(--el-font-family);color:var(--oct-text-1);background:var(--oct-bg-page);font-size:var(--oct-fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--oct-primary);text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#ccd6e4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#aab8cc}::-webkit-scrollbar-track{background:transparent}.page{padding:0}.oct-fade{animation:oct-fade-in .24s ease}.page-card{background:var(--oct-bg-card);border:1px solid var(--oct-border-glow);border-radius:var(--oct-radius-lg);box-shadow:var(--oct-shadow-sm);padding:var(--oct-card-pad);transition:box-shadow .18s ease,border-color .18s ease}.page-card:hover{box-shadow:var(--oct-shadow);border-color:#6366f13d}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:var(--oct-gap);gap:var(--oct-gap-sm);flex-wrap:wrap}.page-title{font-size:var(--oct-fs-page);font-weight:700;letter-spacing:.2px;line-height:1.25;margin:0;color:var(--oct-text-1);display:flex;align-items:center;gap:10px}.page-title .el-icon{color:var(--oct-primary)}.page-subtitle{color:var(--oct-text-3);font-size:13px;margin:6px 0 0}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:var(--oct-gap-sm)}.toolbar .spacer{flex:1}.filter-bar{background:var(--oct-bg-card);border:1px solid var(--oct-border-glow);border-radius:var(--oct-radius-lg);box-shadow:var(--oct-shadow-sm);padding:16px 20px 4px;margin-bottom:var(--oct-gap)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:var(--oct-gap);margin-bottom:var(--oct-gap)}.stat-card{position:relative;background:var(--oct-bg-card);border:1px solid var(--oct-border-glow);border-radius:var(--oct-radius-lg);padding:var(--oct-card-pad);box-shadow:var(--oct-shadow-sm);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px #6366f124;border-color:#6366f147}.stat-card .stat-label{color:var(--oct-text-3);font-size:13px;margin-bottom:10px}.stat-card .stat-value{font-size:var(--oct-fs-number);font-weight:700;line-height:1.1;letter-spacing:.2px;color:var(--oct-text-1);background:var(--oct-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-card .stat-foot{margin-top:10px;font-size:var(--oct-fs-help);color:var(--oct-text-3)}.stat-card .stat-icon{position:absolute;right:18px;top:18px;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--oct-primary);background:var(--oct-primary-soft)}.stat-card.is-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;color:#fff;box-shadow:0 10px 26px #2563eb3d}.stat-card.is-primary .stat-label,.stat-card.is-primary .stat-foot{color:#ffffffd6}.stat-card.is-primary .stat-value{color:#fff;background:none;-webkit-text-fill-color:#fff}.stat-card.is-primary .stat-icon{background:#ffffff2e;color:#fff}.stat-card.is-accent{background:linear-gradient(135deg,#10b981,#059669);border:none;color:#fff;box-shadow:0 10px 26px #10b98138}.stat-card.is-accent .stat-label,.stat-card.is-accent .stat-foot{color:#ffffffdb}.stat-card.is-accent .stat-value{color:#fff;background:none;-webkit-text-fill-color:#fff}.stat-card.is-accent .stat-icon{background:#ffffff2e;color:#fff}.c-up{color:var(--oct-success)}.c-down{color:var(--oct-danger)}.c-warn{color:var(--oct-warning)}.c-muted{color:var(--oct-text-3)}.big-number{font-size:46px;font-weight:800;line-height:1.05;letter-spacing:-1px;background:linear-gradient(120deg,#2563eb,#4f7ef7 45%,#0ea5e9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.section-title{font-size:var(--oct-fs-module);font-weight:650;letter-spacing:.1px;margin:0 0 16px;padding-left:11px;position:relative;color:var(--oct-text-1)}.section-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;border-radius:2px;background:var(--oct-gradient)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-head .section-title{margin:0}.oct-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--oct-radius-pill);font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.oct-badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.oct-badge.is-success{color:var(--oct-success);background:var(--oct-success-soft)}.oct-badge.is-warning{color:var(--oct-warning);background:var(--oct-warning-soft)}.oct-badge.is-danger{color:var(--oct-danger);background:var(--oct-danger-soft)}.oct-badge.is-primary{color:var(--oct-primary);background:var(--oct-primary-soft)}.oct-badge.is-info{color:var(--oct-info);background:var(--oct-info-soft)}.oct-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:44px 20px;gap:6px}.oct-empty .oe-icon{width:64px;height:64px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--oct-primary);background:var(--oct-primary-soft);margin-bottom:10px}.oct-empty .oe-title{font-size:15px;font-weight:650;color:var(--oct-text-1)}.oct-empty .oe-desc{font-size:13px;color:var(--oct-text-3);line-height:1.7;max-width:360px}.oct-empty .oe-action{margin-top:14px}.el-table{--el-table-border-color: var(--oct-border-soft);--el-table-header-bg-color: var(--oct-bg-subtle);--el-table-row-hover-bg-color: var(--oct-bg-hover)}.el-table th.el-table__cell{height:50px;background:var(--oct-bg-subtle);color:var(--oct-text-2);font-weight:600}.el-table td.el-table__cell{height:56px}.el-table__inner-wrapper:before{display:none}.el-tag{border-radius:var(--oct-radius-pill);font-weight:600}.el-card,.el-dialog,.el-drawer{border-radius:var(--oct-radius-lg)}.el-dialog__header{margin-right:0;padding-bottom:16px;border-bottom:1px solid var(--oct-border-soft);margin-bottom:18px}.el-dialog__title{font-size:var(--oct-fs-module);font-weight:650;color:var(--oct-text-1)}.el-empty__description p{color:var(--oct-text-3);font-size:13px}.el-button--primary{background:var(--oct-gradient);border:none;box-shadow:var(--oct-glow-primary);transition:box-shadow .2s ease,transform .2s ease}.el-button--primary:hover,.el-button--primary:focus{background:var(--oct-gradient);box-shadow:var(--oct-glow-primary-lg);transform:translateY(-1px)}.el-button--primary.is-loading{background:var(--oct-gradient)}.el-pagination{margin-top:var(--oct-gap);justify-content:flex-end}@keyframes oct-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-slide-enter-active,.fade-slide-leave-active{transition:opacity .22s ease,transform .22s ease}.fade-slide-enter-from{opacity:0;transform:translateY(8px)}.fade-slide-leave-to{opacity:0;transform:translateY(-6px)}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media (prefers-reduced-motion: reduce){*,.page{animation:none!important;transition:none!important}}@media (max-width: 1440px){:root{--oct-content-pad-x: 24px}}@media (max-width: 1280px){:root{--oct-content-pad-x: 18px;--oct-content-pad-y: 16px;--oct-card-pad: 20px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(208px,1fr))}}@media (max-width: 1024px){:root{--oct-content-pad-x: 14px;--oct-content-pad-y: 14px;--oct-card-pad: 18px;--oct-fs-page: 21px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.big-number{font-size:36px}}@media (max-width: 768px){:root{--oct-content-pad-x: 12px;--oct-content-pad-y: 12px;--oct-card-pad: 14px;--oct-fs-page: 19px;--oct-fs-module: 16px;--oct-fs-number: 24px;--oct-sidebar-w: 0px;--el-component-size: 44px;--el-component-size-large: 48px}.page-header{flex-direction:column;align-items:flex-start!important;gap:10px}.page-header .header-actions{width:100%;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.page-header .header-actions .el-input,.page-header .header-actions .el-select{width:100%!important;max-width:100%}.toolbar,.filter-bar{flex-wrap:wrap;gap:8px}.toolbar .el-input,.toolbar .el-select,.filter-bar .el-input,.filter-bar .el-select{width:100%!important;max-width:100%}.el-table{font-size:13px}.el-table .cell{padding:0 8px}.el-table .el-table__cell{padding:8px 0}.el-dialog{width:100%!important;max-width:calc(100vw - 16px);margin-top:4vh!important;border-radius:var(--oct-radius-lg)}.el-drawer.rtl,.el-drawer.ltr{width:88vw!important}.el-message-box{width:calc(100vw - 32px)!important;max-width:420px}.el-form.el-form--label-left{--oct-form-gap: 14px}.form-grid-2{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.el-descriptions__table{font-size:13px}.el-pagination{justify-content:center;flex-wrap:wrap;gap:6px}.el-pagination .el-pagination__sizes,.el-pagination .el-pagination__jump{display:none}.el-button-group{flex-wrap:wrap}.el-tabs__header{overflow-x:auto}.nav-crumb{display:none}input,select,textarea{font-size:16px!important}.el-dialog .el-row{display:flex;flex-wrap:wrap}.el-dialog .el-row>.el-col{flex:0 0 100%;max-width:100%}.el-dialog .el-input,.el-dialog .el-select,.el-dialog .el-date-editor,.el-dialog .el-input-number,.el-dialog .el-cascader,.el-dialog .el-textarea{width:100%!important}.el-dialog .el-form-item__label{float:none;display:block;text-align:left;padding:0 0 4px}.el-dialog .el-form-item__content{margin-left:0!important}.el-drawer .el-input,.el-drawer .el-select,.el-drawer .el-date-editor{width:100%!important}.cp-sel,.rv-sel,.tk-sel,.g-sel2,.kw,.toolbar .el-date-editor,.filter-bar .el-date-editor{width:100%!important;max-width:100%}.dim-grid,.rv-stats,.g-issue-grid,.stat-row,.crm-expense .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.funnel-row,.wf-step{grid-template-columns:minmax(0,1fr) auto!important;row-gap:4px}.funnel-row>:first-child,.wf-step>:first-child{grid-column:1/-1}.layout.is-mobile .content{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))}}@media (max-width: 480px){:root{--oct-fs-page: 17px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dim-grid,.rv-stats,.g-issue-grid,.stat-row{grid-template-columns:minmax(0,1fr)!important}}.text-right{text-align:right}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}:root{--tech-bg: #f4f7fd;--tech-bg-glow: radial-gradient(680px 420px at 8% -6%, rgba(124, 92, 252, .1), transparent 62%), radial-gradient(620px 400px at 96% 4%, rgba(56, 132, 246, .1), transparent 60%), radial-gradient(700px 480px at 60% 104%, rgba(34, 211, 238, .06), transparent 66%);--tech-surface: #ffffff;--tech-surface-glass: rgba(255, 255, 255, .72);--tech-blur: saturate(150%) blur(16px);--tech-nav-bg: linear-gradient(178deg, #221e52 0%, #1a1b45 46%, #161a3c 100%);--tech-nav-item: rgba(255, 255, 255, .66);--tech-nav-item-hover: #ffffff;--tech-nav-item-hover-bg: rgba(255, 255, 255, .08);--tech-nav-active-bg: linear-gradient(135deg, #7c5cfc 0%, #6366f1 100%);--tech-nav-active-text: #ffffff;--tech-nav-divider: rgba(255, 255, 255, .1);--tech-metric-blue: #3b82f6;--tech-metric-blue-soft: #e8f1fe;--tech-metric-violet: #8b5cf6;--tech-metric-violet-soft: #f0eafe;--tech-metric-cyan: #22d3ee;--tech-metric-cyan-soft: #e2f8fc;--tech-metric-amber: #fb923c;--tech-metric-amber-soft: #fdeee1;--tech-ai-bg: linear-gradient(150deg, #2b3480 0%, #1e2a63 52%, #17204d 100%);--tech-ai-text: #ffffff;--tech-ai-text-dim: rgba(255, 255, 255, .72);--tech-ai-chip: rgba(255, 255, 255, .14);--tech-ai-ring: rgba(125, 170, 255, .34);--tech-ai-accent: #60a5fa;--tech-series-100: #dbe4fb;--tech-series-200: #c7d5fa;--tech-series-300: #a9bff7;--tech-series-400: #8aa6f3;--tech-series-500: #6d8cef;--tech-series-600: #4f6ee8;--tech-series-700: #3d5ce0;--tech-area-fill: linear-gradient(180deg, rgba(61, 92, 224, .22) 0%, rgba(61, 92, 224, 0) 100%);--tech-border: rgba(124, 92, 252, .1);--tech-border-hover: rgba(124, 92, 252, .28);--tech-border-active: rgba(124, 92, 252, .45);--tech-shadow-card: 0 1px 2px rgba(16, 24, 64, .04), 0 8px 24px rgba(16, 24, 64, .05);--tech-shadow-hover: 0 2px 4px rgba(16, 24, 64, .05), 0 16px 40px rgba(16, 24, 64, .09);--tech-shadow-ai: 0 12px 32px rgba(30, 42, 99, .24), 0 2px 8px rgba(30, 42, 99, .12);--tech-radius-card: 16px;--tech-radius-inner: 10px;--tech-radius-chip: 8px;--tech-fs-metric: 28px;--tech-fs-metric-unit: 13px;--tech-fs-title: 15px;--tech-fs-label: 12px;--tech-ease: cubic-bezier(.22, .61, .36, 1);--tech-dur-fast: .16s;--tech-dur-base: .22s;--tech-focus-ring: 0 0 0 2px rgba(124, 92, 252, .42)}.tech-page{min-height:100%;background-color:var(--tech-bg);background-image:var(--tech-bg-glow);background-attachment:fixed}.tech-card{background:var(--tech-surface);border:.5px solid var(--tech-border);border-radius:var(--tech-radius-card);box-shadow:var(--tech-shadow-card)}.tech-card--hover{transition:border-color var(--tech-dur-fast) var(--tech-ease),box-shadow var(--tech-dur-fast) var(--tech-ease),transform var(--tech-dur-fast) var(--tech-ease)}.tech-card--hover:hover{border-color:var(--tech-border-hover);box-shadow:var(--tech-shadow-hover);transform:translateY(-2px)}.tech-card--hover:active{transform:translateY(0);box-shadow:var(--tech-shadow-card)}@media (prefers-reduced-motion: reduce){.tech-card,.tech-card--hover{transition:none}.tech-card--hover:hover{transform:none}}.tech-card--glass{background:var(--tech-surface-glass);-webkit-backdrop-filter:var(--tech-blur);backdrop-filter:var(--tech-blur)}.tech-metric{display:flex;flex-direction:column;gap:6px;padding:18px 20px}.tech-metric__icon{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex:none}.tech-metric__value{font-size:var(--tech-fs-metric);font-weight:500;line-height:1.15;letter-spacing:-.4px;color:var(--oct-text-1)}.tech-metric__value small{font-size:var(--tech-fs-metric-unit);font-weight:400;color:var(--oct-text-3);margin-left:4px;letter-spacing:0}.tech-metric__label{font-size:var(--tech-fs-label);color:var(--oct-text-3)}.tech-metric__delta{font-size:var(--tech-fs-label);color:var(--oct-success)}.tech-metric--blue .tech-metric__icon{background:var(--tech-metric-blue)}.tech-metric--violet .tech-metric__icon{background:var(--tech-metric-violet)}.tech-metric--cyan .tech-metric__icon{background:var(--tech-metric-cyan)}.tech-metric--amber .tech-metric__icon{background:var(--tech-metric-amber)}.tech-ai-panel{background:var(--tech-ai-bg);border:.5px solid var(--tech-ai-ring);border-radius:var(--tech-radius-card);box-shadow:var(--tech-shadow-ai);color:var(--tech-ai-text);padding:20px}.tech-ai-panel__title{font-size:var(--tech-fs-title);font-weight:500;margin:0 0 6px}.tech-ai-panel__desc{font-size:var(--tech-fs-label);color:var(--tech-ai-text-dim);line-height:1.6;margin:0}.tech-ai-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--tech-radius-chip);background:var(--tech-ai-chip);color:var(--tech-ai-text);font-size:var(--tech-fs-label);border:.5px solid var(--tech-ai-ring);cursor:pointer}.tech-tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:6px;font-size:var(--tech-fs-label);line-height:1;white-space:nowrap}.tech-tag--chance{background:var(--tech-metric-violet-soft);color:#6d28d9}.tech-tag--risk{background:#fdecec;color:#b91c1c}.tech-tag--advice{background:var(--tech-metric-blue-soft);color:#1d4ed8}.tech-tag--warn{background:var(--tech-metric-amber-soft);color:#c2410c}.tech-tag__dot{width:5px;height:5px;border-radius:50%;background:currentColor}.tech-nav{background:var(--tech-nav-bg);color:var(--tech-nav-item)}.tech-nav__item{display:flex;align-items:center;gap:10px;height:42px;padding:0 14px;border-radius:var(--tech-radius-inner);color:var(--tech-nav-item);font-size:14px;transition:background .18s ease,color .18s ease}.tech-nav__item:hover{background:var(--tech-nav-item-hover-bg);color:var(--tech-nav-item-hover)}.tech-nav__item.is-active{background:var(--tech-nav-active-bg);color:var(--tech-nav-active-text);box-shadow:0 4px 14px #6366f157}.tech-nav__divider{height:1px;background:var(--tech-nav-divider);margin:10px 14px}
