.app-layout[data-v-f97eb37f]{min-height:100vh;display:flex;flex-direction:column;background:#f8fbff}.al-inner[data-v-f97eb37f]{width:1440px;max-width:calc(100vw - 40px);margin:0 auto;display:flex;align-items:center;gap:18px;height:64px}.al-header[data-v-f97eb37f]{position:sticky;top:0;z-index:100;background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #E5E6EB;box-shadow:0 2px 8px #00000008}.al-logo[data-v-f97eb37f]{display:flex;align-items:center;gap:8px;text-decoration:none;flex-shrink:0}.al-logo img[data-v-f97eb37f]{width:30px;height:30px}.al-logo span[data-v-f97eb37f]{font-size:15px;font-weight:700;color:#1d2129;letter-spacing:.5px;white-space:nowrap}.al-logo .al-logo-sub[data-v-f97eb37f]{font-weight:400;color:#86909c;font-size:12px;margin-left:4px}.al-nav[data-v-f97eb37f]{flex:1;display:flex;align-items:center;gap:2px}.al-nav-item[data-v-f97eb37f]{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:7px 12px;border-radius:8px;font-size:14px;color:#4e5969;text-decoration:none;cursor:pointer;white-space:nowrap;transition:all .2s ease}.al-nav-item[data-v-f97eb37f]:hover{color:#165ddb;background:#4080ff14}.al-nav-item.on[data-v-f97eb37f]{color:#165ddb;background:#4080ff14;font-weight:600}.al-nav-trigger[data-v-f97eb37f]{border:0;background:transparent;font-family:inherit}.caret[data-v-f97eb37f]{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.5}.al-nav-group[data-v-f97eb37f]{position:relative}.al-nav-group .al-sub[data-v-f97eb37f]{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#fff;border:1px solid #E5E6EB;border-radius:10px;box-shadow:0 14px 32px #1d21291f;padding:6px;min-width:140px;z-index:200;white-space:nowrap;animation:sub-enter-f97eb37f .16s ease-out}.al-nav-group .al-sub[data-v-f97eb37f]:before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}.al-nav-group .al-sub .al-sub-item[data-v-f97eb37f]{display:block;padding:9px 14px;border-radius:7px;font-size:13px;color:#4e5969;text-decoration:none}.al-nav-group .al-sub .al-sub-item[data-v-f97eb37f]:hover{color:#165ddb;background:#eef3fa}.al-nav-group .al-sub .al-sub-item.on[data-v-f97eb37f]{color:#165ddb;background:#4080ff14;font-weight:600}.al-nav-group.open>.al-nav-item[data-v-f97eb37f]{color:#165ddb;background:#4080ff14}@keyframes sub-enter-f97eb37f{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.al-user[data-v-f97eb37f]{display:flex;align-items:center;gap:12px;flex-shrink:0}.al-avatar[data-v-f97eb37f]{display:flex;align-items:center;gap:8px}.al-avatar>span[data-v-f97eb37f]:first-child{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#4080ff,#165ddb);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.al-avatar .al-user-info[data-v-f97eb37f]{display:flex;flex-direction:column;line-height:1.25}.al-avatar .al-user-info strong[data-v-f97eb37f]{font-size:13px;color:#1d2129}.al-avatar .al-user-info em[data-v-f97eb37f]{font-style:normal;font-size:11px;color:#86909c}.al-logout[data-v-f97eb37f]{font-size:12px;color:#86909c;text-decoration:none}.al-logout[data-v-f97eb37f]:hover{color:#f53f3f}.al-main[data-v-f97eb37f]{flex:1;min-width:0}@media (max-width: 1380px){.al-inner[data-v-f97eb37f]{gap:12px}.al-logo-sub[data-v-f97eb37f],.al-user-info[data-v-f97eb37f]{display:none!important}.al-nav-item[data-v-f97eb37f]{padding-inline:9px;font-size:13px}.al-user[data-v-f97eb37f]{gap:8px}}.portal-layout[data-v-6d4d96cd]{min-height:100vh;display:flex;flex-direction:column;background:#f8fbff}.pl-inner[data-v-6d4d96cd]{width:1280px;max-width:94vw;margin:0 auto}.pl-header[data-v-6d4d96cd]{position:sticky;top:0;z-index:100;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #E5E6EB;box-shadow:0 2px 8px #00000008}.pl-header .pl-inner[data-v-6d4d96cd]{display:flex;align-items:center;gap:24px;height:64px}.pl-logo[data-v-6d4d96cd]{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.pl-logo img[data-v-6d4d96cd]{width:36px;height:36px}.pl-logo .pl-logo-text[data-v-6d4d96cd]{display:flex;flex-direction:column}.pl-logo .pl-logo-text strong[data-v-6d4d96cd]{font-size:16px;color:#1d2129;letter-spacing:.5px}.pl-logo .pl-logo-text span[data-v-6d4d96cd]{font-size:9px;color:#86909c;letter-spacing:.3px}.pl-nav[data-v-6d4d96cd]{flex:1;display:flex;align-items:center;gap:2px;overflow-x:auto}.pl-nav[data-v-6d4d96cd]::-webkit-scrollbar{width:4px}.pl-nav[data-v-6d4d96cd]::-webkit-scrollbar-track{background:transparent}.pl-nav[data-v-6d4d96cd]::-webkit-scrollbar-thumb{background:#4080ff26;border-radius:2px}.pl-nav[data-v-6d4d96cd]:hover::-webkit-scrollbar-thumb{background:#4080ff4d}.pl-nav .pl-nav-item[data-v-6d4d96cd]{padding:6px 12px;border-radius:8px;font-size:14px;color:#4e5969;text-decoration:none;white-space:nowrap;transition:all .2s ease}.pl-nav .pl-nav-item[data-v-6d4d96cd]:hover{color:#165ddb;background:#4080ff14}.pl-nav .pl-nav-item.on[data-v-6d4d96cd]{color:#165ddb;background:#4080ff14;font-weight:600}.pl-actions[data-v-6d4d96cd]{display:flex;gap:8px;flex-shrink:0}.pl-main[data-v-6d4d96cd]{flex:1}.pl-footer[data-v-6d4d96cd]{margin-top:40px;padding:24px 0 28px;background:#fff;border-top:1px solid #E5E6EB;font-size:12px;color:#86909c}.pl-footer .pl-footer-links[data-v-6d4d96cd]{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:10px;color:#4e5969}.pl-footer .pl-footer-copy[data-v-6d4d96cd]{display:flex;gap:6px;flex-wrap:wrap}.pl-footer .pl-link[data-v-6d4d96cd]{color:#165ddb;text-decoration:none}.pl-footer .pl-link[data-v-6d4d96cd]:hover{text-decoration:underline}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;min-width:1280px;height:100%;font-family:Microsoft YaHei,PingFang SC,sans-serif;line-height:1.5;color:#1d2129;background:#f8fbff;-webkit-font-smoothing:antialiased}body{overflow:auto}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#4080ff26;border-radius:3px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:#4080ff59}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-width:thin;scrollbar-color:rgba(64,128,255,.2) transparent}@keyframes pulse-glow{0%,to{opacity:1}50%{opacity:.6}}@keyframes scan-line{0%{transform:translateY(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(var(--scan-h, 100%));opacity:0}}@keyframes rotate-360{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}@keyframes page-enter{0%{opacity:0;transform:translateY(6px) scale(.998)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes ai-shine{0%{left:-80%}to{left:130%}}.fade-in-up{animation:fadeInUp .5s ease}.animate-pulse{animation:pulse-glow 2s ease-in-out infinite}.num-card{font-family:DIN Alternate,Eurostile,Bahnschrift,sans-serif;font-weight:700}.tech-grid-bg{background-image:linear-gradient(rgba(64,128,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(64,128,255,.02) 1px,transparent 1px);background-size:40px 40px}.tech-panel{position:relative;background:#fff;border:1px solid #E5E6EB;border-radius:12px;box-shadow:0 2px 8px #0000000a;overflow:hidden}.panel-title{display:flex;align-items:center;gap:8px;padding:12px 16px 8px;font-size:15px;font-weight:600;color:#1d2129;letter-spacing:1px;border-bottom:1px solid #F0F2F5}.panel-title .title-icon{width:6px;height:6px;background:#4080ff;border-radius:50%;flex-shrink:0}.panel-title .title-tag{margin-left:auto;font-size:12px;color:#4080ff;background:#4080ff14;padding:2px 10px;border-radius:10px;border:1px solid rgba(64,128,255,.15)}.page-enter{animation:page-enter .3s ease}.slide-in-left{animation:slide-in-left .4s ease backwards}.slide-in-right{animation:slide-in-right .4s ease backwards}.num-gradient{background:linear-gradient(135deg,#4080ff,#165ddb);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a,button{transition:all .25s ease}button,input,textarea,select{font:inherit}button{color:inherit}input:focus,textarea:focus{outline:none}img{display:block;max-width:100%}:where(a,button,input,textarea,select):focus-visible{outline:2px solid rgba(64,128,255,.55);outline-offset:2px}::selection{background:#4080ff26;color:#165ddb}.se-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:10px;font-size:12px;line-height:18px;white-space:nowrap}.se-tag.blue{color:#165ddb;background:#4080ff1a}.se-tag.green{color:#00a884;background:#00a8841a}.se-tag.orange{color:#ff7d00;background:#ff7d001a}.se-tag.red{color:#f53f3f;background:#f53f3f1a}.se-tag.purple{color:#722ed1;background:#722ed11a}.se-tag.gray{color:#86909c;background:#f2f3f5}.se-tag.gold{color:#b25e00;background:#f0a93b24}.se-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:14px;cursor:pointer;border:1px solid transparent;transition:all .2s ease}.se-btn.primary{background:linear-gradient(135deg,#4080ff,#165ddb);color:#fff;box-shadow:0 4px 10px #165ddb2e}.se-btn.primary:hover{transform:translateY(-1px);box-shadow:0 6px 14px #165ddb42}.se-btn.primary:active{transform:translateY(0)}.se-btn.ghost{background:#fff;color:#4e5969;border-color:#e5e6eb}.se-btn.ghost:hover{color:#165ddb;border-color:#4080ff26;background:#eef3fa}.se-btn.sm{padding:4px 12px;font-size:12px;border-radius:6px}.se-btn:disabled{opacity:.5;cursor:not-allowed}.se-input{height:36px;padding:0 12px;border-radius:8px;border:1px solid #E5E6EB;background:#fff;font-size:14px;color:#1d2129;transition:border-color .2s ease}.se-input:focus{border-color:#4080ff;box-shadow:0 0 0 3px #4080ff14}.se-input::placeholder{color:#c9cdd4}.se-empty{padding:48px 0;text-align:center;color:#86909c;font-size:14px}.se-empty .se-empty-icon{font-size:40px;margin-bottom:12px;opacity:.35}.se-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.se-dot.green{background:#00b42a;box-shadow:0 0 0 3px #00b42a26}.se-dot.orange{background:#ff7d00;box-shadow:0 0 0 3px #ff7d0026}.se-dot.red{background:#f53f3f;box-shadow:0 0 0 3px #f53f3f26}.se-dot.gray{background:#86909c;box-shadow:0 0 0 3px #86909c26}.se-dot.blue{background:#4080ff;box-shadow:0 0 0 3px #4080ff26}.se-table{width:100%;border-collapse:collapse;font-size:13px}.se-table th{background:#f0f5ff;color:#4e5969;font-weight:600;text-align:left;padding:10px 12px;white-space:nowrap;border-bottom:1px solid #E5E6EB}.se-table td{padding:10px 12px;color:#1d2129;border-bottom:1px solid #F0F2F5;white-space:nowrap}.se-table tbody tr{transition:background .2s ease}.se-table tbody tr:hover{background:#eef3fa}.se-pager{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding-top:14px}.se-pager .pg-btn{min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid #E5E6EB;background:#fff;color:#4e5969;font-size:13px;cursor:pointer}.se-pager .pg-btn:hover{color:#165ddb;border-color:#4080ff26}.se-pager .pg-btn.active{background:#4080ff;border-color:#4080ff;color:#fff}.se-pager .pg-btn:disabled{opacity:.4;cursor:not-allowed}.app-layout,.portal-layout,.al-main,.pl-main,.page,.portal-list,.portal-data,.portal-detail,.tech-panel,.p-body{min-width:0}.tech-panel{max-width:100%}.p-title .p-name,.panel-title{min-width:0}.p-title .p-tag,.panel-title .title-tag{flex-shrink:0;white-space:nowrap}.tech-panel:has(>.se-table),.p-body:has(>.se-table),.apply-table,.ev-table,.pd-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.se-table th,.se-table td{vertical-align:middle}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
