@charset "UTF-8";:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out, var(--el-transition-duration) padding-left ease-in-out, var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-overlay{z-index:2000;background-color:var(--el-overlay-color-lighter);height:100%;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.el-overlay .el-overlay-root{height:0}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color);position:fixed;top:0;left:0}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);max-width:var(--el-messagebox-width);width:100%;padding:var(--el-messagebox-padding-primary);vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-messagebox-box-shadow);text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;overflow-wrap:break-word;display:inline-block;position:relative;overflow:hidden}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{text-align:center;padding:16px;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.is-message-box .el-overlay-message-box:after{content:"";vertical-align:middle;width:0;height:100%;display:inline-block}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size,16px))}.el-message-box__title{font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height);color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{width:40px;height:40px;font-size:var(--el-message-close-size,16px);cursor:pointer;background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;gap:12px;display:flex}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{min-width:0;margin:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{padding-top:var(--el-messagebox-padding-primary);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.el-message-box--center .el-message-box__title{justify-content:center;align-items:center;gap:6px;display:flex}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.el-message-box-parent--hidden{overflow:hidden}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0,0)}}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);white-space:nowrap;cursor:pointer;height:32px;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;line-height:1;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);outline:none;justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:8px 15px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";border-radius:inherit;background-color:var(--el-mask-color-extra-light);position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-dashed{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary);border-style:dashed}.el-button.is-circle{border-radius:50%;width:32px;padding:8px}.el-button.is-text{color:var(--el-button-text-color);background-color:#0000;border:0 solid #0000}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{color:var(--el-button-text-color);background:0 0;border-color:#0000;height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button.is-link:not(.is-disabled):hover{background-color:#0000;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);background-color:#0000;border-color:#0000}.el-button--text{color:var(--el-color-primary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);background-color:#0000;border-color:#0000}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);background-color:#0000;border-color:#0000}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--primary.is-dashed{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-text-color:var(--el-color-primary-dark-2);--el-button-active-bg-color:var(--el-color-primary-light-9);--el-button-active-border-color:var(--el-color-primary-dark-2)}.el-button--primary.is-dashed.is-disabled,.el-button--primary.is-dashed.is-disabled:hover,.el-button--primary.is-dashed.is-disabled:focus,.el-button--primary.is-dashed.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--success.is-dashed{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-success);--el-button-hover-bg-color:var(--el-color-success-light-9);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-text-color:var(--el-color-success-dark-2);--el-button-active-bg-color:var(--el-color-success-light-9);--el-button-active-border-color:var(--el-color-success-dark-2)}.el-button--success.is-dashed.is-disabled,.el-button--success.is-dashed.is-disabled:hover,.el-button--success.is-dashed.is-disabled:focus,.el-button--success.is-dashed.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--warning.is-dashed{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-warning);--el-button-hover-bg-color:var(--el-color-warning-light-9);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-text-color:var(--el-color-warning-dark-2);--el-button-active-bg-color:var(--el-color-warning-light-9);--el-button-active-border-color:var(--el-color-warning-dark-2)}.el-button--warning.is-dashed.is-disabled,.el-button--warning.is-dashed.is-disabled:hover,.el-button--warning.is-dashed.is-disabled:focus,.el-button--warning.is-dashed.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--danger.is-dashed{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-danger);--el-button-hover-bg-color:var(--el-color-danger-light-9);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-text-color:var(--el-color-danger-dark-2);--el-button-active-bg-color:var(--el-color-danger-light-9);--el-button-active-border-color:var(--el-color-danger-dark-2)}.el-button--danger.is-dashed.is-disabled,.el-button--danger.is-dashed.is-disabled:hover,.el-button--danger.is-dashed.is-disabled:focus,.el-button--danger.is-dashed.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--info.is-dashed{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-info);--el-button-hover-bg-color:var(--el-color-info-light-9);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-text-color:var(--el-color-info-dark-2);--el-button-active-bg-color:var(--el-color-info-light-9);--el-button-active-border-color:var(--el-color-info-dark-2)}.el-button--info.is-dashed.is-disabled,.el-button--info.is-dashed.is-disabled:hover,.el-button--info.is-dashed.is-disabled:focus,.el-button--info.is-dashed.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:5px 11px;font-size:12px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}
.hq-mask[data-v-e4c97b58] { position: fixed; inset: 0; background: rgba(6,10,24,.65); z-index: 200; display: flex; align-items: center; justify-content: center;
}
.hq-batch-card[data-v-e4c97b58] { width: 420px; max-height: 70vh; overflow-y: auto; padding: 16px;
}
.fail-list[data-v-e4c97b58] { max-height: 220px; overflow-y: auto;
}
.fail-row[data-v-e4c97b58] { display: flex; gap: 10px; padding: 6px 0; border-bottom: 1px dashed #2a3450; font-size: 12px; align-items: center;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box; }
.hq-card {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px; }
.hq-row { display: flex; gap: 12px; flex-wrap: wrap; }
.hq-flex1 { flex: 1; min-width: 0; }
.hq-btn {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn:hover { background: rgba(0, 102, 204, 0.32); }
.hq-btn-danger { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55); }
.hq-btn-danger:hover { background: rgba(245, 63, 63, 0.3); }
.hq-btn-ghost { background: transparent; color: #8899b4; border-color: #2a3450; }
.hq-input, .hq-select {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input:focus, .hq-select:focus { border-color: #0066CC; }
.hq-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; }
.hq-muted { color: #8899b4; font-size: 12px; }
.hq-empty-state { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px; }

/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
.hq-blink { animation: hq-blink 1.2s ease-in-out infinite; }
/* LIVE 呼吸灯 */
@keyframes hq-breathe { 0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7); } 50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25); } }
.hq-live-dot { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe 2s ease-in-out infinite; }

/* 事件类型颜色规范 */
.hq-ev-gmv { color: #0066CC; }
.hq-ev-risk { color: #f53f3f; }
.hq-ev-agent { color: #00b42a; }
.hq-ev-strategy { color: #722ed1; }
.hq-ev-logistics { color: #ff7d00; }
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-f8444293] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-f8444293] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-f8444293] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-f8444293] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-f8444293] { flex: 1; min-width: 0;
}
.hq-btn[data-v-f8444293] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-f8444293]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-f8444293] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-f8444293]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-f8444293] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-f8444293], .hq-select[data-v-f8444293] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-f8444293]:focus, .hq-select[data-v-f8444293]:focus { border-color: #0066CC;
}
.hq-tag[data-v-f8444293] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-f8444293] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-f8444293] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-f8444293 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-f8444293] { animation: hq-blink-f8444293 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-f8444293 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-f8444293] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-f8444293 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-f8444293] { color: #0066CC;
}
.hq-ev-risk[data-v-f8444293] { color: #f53f3f;
}
.hq-ev-agent[data-v-f8444293] { color: #00b42a;
}
.hq-ev-strategy[data-v-f8444293] { color: #722ed1;
}
.hq-ev-logistics[data-v-f8444293] { color: #ff7d00;
}
.hq-breadcrumb[data-v-f8444293] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-f8444293] { font-size: 20px; color: #e0e6f0; margin: 0 0 16px;
}
.task-table[data-v-f8444293] { font-size: 12px;
}
.task-head[data-v-f8444293], .task-row[data-v-f8444293] { display: flex; gap: 10px; align-items: center; padding: 8px 6px;
}
.task-head[data-v-f8444293] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.task-row[data-v-f8444293] { border-bottom: 1px dashed #2a3450;
}

.hq-empty-state[data-v-706015fb] { text-align: center; padding: 40px 16px;
}
.hq-empty-icon[data-v-706015fb] { font-size: 34px; opacity: .6;
}
.hq-empty-text[data-v-706015fb] { color: #5b6b8c; font-size: 13px; margin: 8px 0 4px;
}
.hq-empty-sub[data-v-706015fb] { color: #3d4b6e; font-size: 12px; margin: 0;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-3359532b] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-3359532b] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-3359532b] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-3359532b] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-3359532b] { flex: 1; min-width: 0;
}
.hq-btn[data-v-3359532b] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-3359532b]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-3359532b] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-3359532b]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-3359532b] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-3359532b], .hq-select[data-v-3359532b] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-3359532b]:focus, .hq-select[data-v-3359532b]:focus { border-color: #0066CC;
}
.hq-tag[data-v-3359532b] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-3359532b] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-3359532b] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-3359532b {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-3359532b] { animation: hq-blink-3359532b 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-3359532b {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-3359532b] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-3359532b 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-3359532b] { color: #0066CC;
}
.hq-ev-risk[data-v-3359532b] { color: #f53f3f;
}
.hq-ev-agent[data-v-3359532b] { color: #00b42a;
}
.hq-ev-strategy[data-v-3359532b] { color: #722ed1;
}
.hq-ev-logistics[data-v-3359532b] { color: #ff7d00;
}
.hq-breadcrumb[data-v-3359532b] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-3359532b] { font-size: 20px; color: #e0e6f0; margin: 0 0 16px;
}
.timeline[data-v-3359532b] { font-size: 12px;
}
.tl-item[data-v-3359532b] { display: flex; gap: 12px; padding: 10px 6px; border-bottom: 1px dashed #2a3450;
}
.tl-dot[data-v-3359532b] { width: 10px; height: 10px; border-radius: 50%; margin-top: 4px; flex-shrink: 0;
}
.tl-body[data-v-3359532b] { flex: 1; min-width: 0;
}
.hq-mask[data-v-3359532b] { position: fixed; inset: 0; background: rgba(6,10,24,.65); z-index: 200; display: flex; align-items: center; justify-content: center;
}
.progress-bar[data-v-3359532b] { height: 8px; background: #232c49; border-radius: 4px; overflow: hidden; margin-top: 10px;
}
.progress-fill[data-v-3359532b] { height: 100%; background: #0066CC; transition: width .3s;
}

.conn-badge[data-v-1cbceb2a] { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.conn-badge .dot[data-v-1cbceb2a] { width: 7px; height: 7px; border-radius: 50%;
}
.conn-badge.connected[data-v-1cbceb2a] { background: rgba(0,180,42,.12); color: #37d26a;
}
.conn-badge.connected .dot[data-v-1cbceb2a] { background: #00b42a;
}
.conn-badge.polling[data-v-1cbceb2a] { background: rgba(255,125,0,.15); color: #ffa04d;
}
.conn-badge.polling .dot[data-v-1cbceb2a] { background: #ff7d00; animation: conn-pulse-1cbceb2a 1.6s ease-in-out infinite;
}
.conn-badge.reconnecting[data-v-1cbceb2a] { background: rgba(245,63,63,.15); color: #ff7a7a;
}
.conn-badge.reconnecting .dot[data-v-1cbceb2a] { background: #f53f3f; animation: conn-pulse-1cbceb2a .8s ease-in-out infinite;
}
@keyframes conn-pulse-1cbceb2a {
50% { opacity: .3;
}
}

.hq-float[data-v-abda0031] {
  position: fixed; right: 16px; bottom: 16px; width: 300px; max-height: 320px;
  background: #171D36; border: 1px solid #2a3450; border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.45); z-index: 100; display: flex; flex-direction: column;
}
.hq-float-head[data-v-abda0031] { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; cursor: pointer; user-select: none; border-bottom: 1px solid #2a3450;
}
.hq-float-title[data-v-abda0031] { font-size: 12px; font-weight: 600; color: #7d8db3;
}
.hq-float-toggle[data-v-abda0031] { font-size: 11px; color: #8899b4;
}
.hq-float-body[data-v-abda0031] { overflow-y: auto; padding: 8px 12px; font-size: 12px;
}
.hq-float.minimized[data-v-abda0031] { max-height: none;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-7b39ba04] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-7b39ba04] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-7b39ba04] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-7b39ba04] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-7b39ba04] { flex: 1; min-width: 0;
}
.hq-btn[data-v-7b39ba04] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-7b39ba04]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-7b39ba04] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-7b39ba04]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-7b39ba04] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-7b39ba04], .hq-select[data-v-7b39ba04] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-7b39ba04]:focus, .hq-select[data-v-7b39ba04]:focus { border-color: #0066CC;
}
.hq-tag[data-v-7b39ba04] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-7b39ba04] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-7b39ba04] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-7b39ba04 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-7b39ba04] { animation: hq-blink-7b39ba04 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-7b39ba04 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-7b39ba04] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-7b39ba04 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-7b39ba04] { color: #0066CC;
}
.hq-ev-risk[data-v-7b39ba04] { color: #f53f3f;
}
.hq-ev-agent[data-v-7b39ba04] { color: #00b42a;
}
.hq-ev-strategy[data-v-7b39ba04] { color: #722ed1;
}
.hq-ev-logistics[data-v-7b39ba04] { color: #ff7d00;
}
.hq-breadcrumb[data-v-7b39ba04] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-7b39ba04] { font-size: 20px; color: #e0e6f0; margin: 0 0 16px;
}
.task-table[data-v-7b39ba04] { font-size: 12px;
}
.task-head[data-v-7b39ba04], .task-row[data-v-7b39ba04] { display: flex; gap: 10px; align-items: center; padding: 8px 6px;
}
.task-head[data-v-7b39ba04] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.task-row[data-v-7b39ba04] { border-bottom: 1px dashed #2a3450;
}
.log-box[data-v-7b39ba04] { max-height: 200px; overflow-y: auto;
}
.log-line[data-v-7b39ba04] { display: flex; gap: 8px; padding: 3px 0; font-size: 11px; color: #8899b4; border-bottom: 1px dashed #232c49;
}
.log-err[data-v-7b39ba04] { color: #ff7a7a;
}
.param-list[data-v-7b39ba04] { font-size: 12px;
}
.param-row[data-v-7b39ba04] { display: flex; gap: 10px; align-items: center; padding: 8px 6px; border-bottom: 1px dashed #2a3450;
}
.param-slider[data-v-7b39ba04] { flex: 1; accent-color: #0066CC;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-031a2419] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-031a2419] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-031a2419] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-031a2419] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-031a2419] { flex: 1; min-width: 0;
}
.hq-btn[data-v-031a2419] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-031a2419]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-031a2419] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-031a2419]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-031a2419] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-031a2419], .hq-select[data-v-031a2419] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-031a2419]:focus, .hq-select[data-v-031a2419]:focus { border-color: #0066CC;
}
.hq-tag[data-v-031a2419] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-031a2419] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-031a2419] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-031a2419 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-031a2419] { animation: hq-blink-031a2419 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-031a2419 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-031a2419] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-031a2419 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-031a2419] { color: #0066CC;
}
.hq-ev-risk[data-v-031a2419] { color: #f53f3f;
}
.hq-ev-agent[data-v-031a2419] { color: #00b42a;
}
.hq-ev-strategy[data-v-031a2419] { color: #722ed1;
}
.hq-ev-logistics[data-v-031a2419] { color: #ff7d00;
}
.hq-breadcrumb[data-v-031a2419] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-031a2419] { font-size: 20px; color: #e0e6f0; margin: 0 0 16px;
}
.graph-box[data-v-031a2419] { height: 360px; width: 100%;
}
.task-table[data-v-031a2419] { font-size: 12px;
}
.task-head[data-v-031a2419], .task-row[data-v-031a2419] { display: flex; gap: 10px; align-items: center; padding: 8px 6px;
}
.task-head[data-v-031a2419] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.task-row[data-v-031a2419] { border-bottom: 1px dashed #2a3450;
}
.log-box[data-v-031a2419] { max-height: 200px; overflow-y: auto;
}
.log-line[data-v-031a2419] { display: flex; gap: 8px; padding: 3px 0; font-size: 11px; color: #8899b4; border-bottom: 1px dashed #232c49;
}
.log-warn[data-v-031a2419] { color: #ffa04d;
}
.log-err[data-v-031a2419] { color: #ff7a7a;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-480c36ab] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-480c36ab] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-480c36ab] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-480c36ab] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-480c36ab] { flex: 1; min-width: 0;
}
.hq-btn[data-v-480c36ab] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-480c36ab]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-480c36ab] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-480c36ab]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-480c36ab] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-480c36ab], .hq-select[data-v-480c36ab] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-480c36ab]:focus, .hq-select[data-v-480c36ab]:focus { border-color: #0066CC;
}
.hq-tag[data-v-480c36ab] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-480c36ab] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-480c36ab] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-480c36ab {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-480c36ab] { animation: hq-blink-480c36ab 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-480c36ab {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-480c36ab] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-480c36ab 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-480c36ab] { color: #0066CC;
}
.hq-ev-risk[data-v-480c36ab] { color: #f53f3f;
}
.hq-ev-agent[data-v-480c36ab] { color: #00b42a;
}
.hq-ev-strategy[data-v-480c36ab] { color: #722ed1;
}
.hq-ev-logistics[data-v-480c36ab] { color: #ff7d00;
}
.hq-breadcrumb[data-v-480c36ab] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-480c36ab] { font-size: 20px; color: #e0e6f0; margin: 0 0 16px;
}
.task-table[data-v-480c36ab] { font-size: 12px;
}
.task-head[data-v-480c36ab], .task-row[data-v-480c36ab] { display: flex; gap: 10px; align-items: center; padding: 8px 6px;
}
.task-head[data-v-480c36ab] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.task-row[data-v-480c36ab] { border-bottom: 1px dashed #2a3450;
}
.log-box[data-v-480c36ab] { max-height: 200px; overflow-y: auto;
}
.log-line[data-v-480c36ab] { display: flex; gap: 8px; padding: 3px 0; font-size: 11px; color: #8899b4; border-bottom: 1px dashed #232c49;
}
.log-err[data-v-480c36ab] { color: #ff7a7a;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-454e160f] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-454e160f] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-454e160f] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-454e160f] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-454e160f] { flex: 1; min-width: 0;
}
.hq-btn[data-v-454e160f] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-454e160f]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-454e160f] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-454e160f]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-454e160f] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-454e160f], .hq-select[data-v-454e160f] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-454e160f]:focus, .hq-select[data-v-454e160f]:focus { border-color: #0066CC;
}
.hq-tag[data-v-454e160f] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-454e160f] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-454e160f] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-454e160f {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-454e160f] { animation: hq-blink-454e160f 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-454e160f {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-454e160f] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-454e160f 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-454e160f] { color: #0066CC;
}
.hq-ev-risk[data-v-454e160f] { color: #f53f3f;
}
.hq-ev-agent[data-v-454e160f] { color: #00b42a;
}
.hq-ev-strategy[data-v-454e160f] { color: #722ed1;
}
.hq-ev-logistics[data-v-454e160f] { color: #ff7d00;
}
.hq-breadcrumb[data-v-454e160f] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-454e160f] { font-size: 20px; color: #e0e6f0; margin: 0 0 14px;
}
/* ── 顶部 KPI（2026-09-02 批次）：5 卡固定高 100px，图标+数值24px+标签12px，
     与下方内容 16px 间距；页面顶部补 padding 防截断 ── */
.hq-page[data-v-454e160f] { padding-top: 20px;
}
.kpi-row[data-v-454e160f] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 16px;
}
@media (max-width: 1400px) {
.kpi-row[data-v-454e160f] { grid-template-columns: repeat(3, 1fr);
}
}
.kpi[data-v-454e160f] { height: 100px; padding: 12px 16px; display: flex; flex-direction: column; justify-content: center; gap: 6px; box-sizing: border-box;
}
.kpi-head[data-v-454e160f] { display: flex; align-items: center; gap: 6px;
}
.kpi-ico[data-v-454e160f] { font-size: 16px; line-height: 1;
}
.kpi-label[data-v-454e160f] { font-size: 12px; color: #8899b4;
}
.kpi-v[data-v-454e160f] { font-size: 24px; font-weight: 700; color: #e0e6f0; line-height: 1.2;
}
/* ── 布局对齐（2026-09-02 优化批次）：三列等高平行 ——
     左「预算分配模拟器」/ 右「预估收益结果」/ 中「环形图+渠道条形图」列高一致(620px)，
     上下边缘严格平行；条形图卡撑满剩余列高，图表自适应且不超过 280px。 ── */
.main-grid[data-v-454e160f] { display: grid; grid-template-columns: 330px minmax(0, 1fr) 320px; gap: 12px; align-items: stretch; height: 620px;
}
.sim-panel[data-v-454e160f], .est-panel[data-v-454e160f] { height: 100%; min-height: 0; display: flex; flex-direction: column;
}
.center-col[data-v-454e160f] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0;
}
.center-col > .hq-card[data-v-454e160f]:first-child { flex-shrink: 0;
}
/* 环形图卡：固定内容高（原样保留） */
.center-col > .hq-card[data-v-454e160f]:last-child { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
/* 条形图卡：撑满列高 */
@media (max-width: 1200px) {
.main-grid[data-v-454e160f] { grid-template-columns: 1fr; height: auto;
}
.sim-panel[data-v-454e160f], .est-panel[data-v-454e160f], .center-col[data-v-454e160f] { height: auto;
}
.sim-panel[data-v-454e160f], .est-panel[data-v-454e160f] { max-height: 620px;
}
}
.scroll-area[data-v-454e160f] { overflow: auto; flex: 1; min-height: 0; padding-right: 4px;
}
.scroll-area[data-v-454e160f]::-webkit-scrollbar { width: 6px;
}
.scroll-area[data-v-454e160f]::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 3px;
}
.sim-block[data-v-454e160f] { margin-bottom: 12px;
}
.sim-label[data-v-454e160f] { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: #7d8db3; margin-bottom: 4px;
}
.slider[data-v-454e160f] { width: 100%; accent-color: #0066CC;
}
.slider.slim[data-v-454e160f] { flex: 1; height: 4px;
}
.sim-slider-row[data-v-454e160f] { display: flex; align-items: center; gap: 8px; padding: 2px 0;
}
.sim-name[data-v-454e160f] { width: 74px; font-size: 11px; color: #b8c4dd; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sim-val[data-v-454e160f] { width: 44px; text-align: right; font-size: 11px;
}
.ck[data-v-454e160f] { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #b8c4dd; margin: 6px 0;
}
.hq-input.mini[data-v-454e160f] { width: 90px; padding: 3px 8px;
}
.sim-actions[data-v-454e160f] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px;
}
.chart-box[data-v-454e160f] { height: 280px;
}
.chart-box-flex[data-v-454e160f] { flex: 1; min-height: 120px; max-height: 280px;
}
/* 条形图：随卡片自适应，图表最大高度 280px 约束继续生效 */
.est-big[data-v-454e160f] { display: flex; flex-direction: column; gap: 8px;
}
.est-item[data-v-454e160f] { background: rgba(15, 20, 35, 0.6); border: 1px solid #232b48; border-radius: 6px; padding: 8px 10px; display: flex; justify-content: space-between; align-items: center;
}
.est-item b[data-v-454e160f] { font-size: 15px; color: #e0e6f0;
}
.d-sub[data-v-454e160f] { font-size: 12px; color: #7d8db3; margin: 10px 0 6px;
}
.warn-list[data-v-454e160f] { border: 1px solid rgba(255, 125, 0, 0.35); background: rgba(255, 125, 0, 0.06); border-radius: 6px; padding: 6px 10px;
}
.warn-item[data-v-454e160f] { font-size: 11px; color: #ffa04d; padding: 2px 0; line-height: 1.5;
}
.d-table[data-v-454e160f] { font-size: 11px;
}
.dt-row[data-v-454e160f] { display: flex; gap: 6px; align-items: center; padding: 4px 0; border-bottom: 1px dashed #232b48;
}
.dt-row b[data-v-454e160f] { width: 34px; text-align: right;
}
.task-table[data-v-454e160f] { font-size: 12px;
}
.task-head[data-v-454e160f], .task-row[data-v-454e160f] { display: flex; gap: 10px; align-items: center; padding: 8px 6px;
}
.task-head[data-v-454e160f] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.task-row[data-v-454e160f] { border-bottom: 1px dashed #2a3450;
}
.c-blue[data-v-454e160f] { color: #4da3ff;
}
.c-green[data-v-454e160f] { color: #37d26a;
}
.c-red[data-v-454e160f] { color: #ff7a7a;
}
.mini-btn[data-v-454e160f] { background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5); border-radius: 4px; font-size: 10px; padding: 2px 8px; cursor: pointer;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-3b28f859] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-3b28f859] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-3b28f859] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-3b28f859] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-3b28f859] { flex: 1; min-width: 0;
}
.hq-btn[data-v-3b28f859] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-3b28f859]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-3b28f859] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-3b28f859]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-3b28f859] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-3b28f859], .hq-select[data-v-3b28f859] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-3b28f859]:focus, .hq-select[data-v-3b28f859]:focus { border-color: #0066CC;
}
.hq-tag[data-v-3b28f859] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-3b28f859] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-3b28f859] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-3b28f859 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-3b28f859] { animation: hq-blink-3b28f859 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-3b28f859 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-3b28f859] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-3b28f859 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-3b28f859] { color: #0066CC;
}
.hq-ev-risk[data-v-3b28f859] { color: #f53f3f;
}
.hq-ev-agent[data-v-3b28f859] { color: #00b42a;
}
.hq-ev-strategy[data-v-3b28f859] { color: #722ed1;
}
.hq-ev-logistics[data-v-3b28f859] { color: #ff7d00;
}
.hq-breadcrumb[data-v-3b28f859] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-3b28f859] { font-size: 20px; color: #e0e6f0; margin: 0 0 12px;
}
.model-bar[data-v-3b28f859] { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; flex-wrap: wrap;
}
.model-btn[data-v-3b28f859] { background: transparent; color: #8899b4; border: 1px solid #2a3450; border-radius: 6px; padding: 5px 12px; font-size: 12px; cursor: pointer;
}
.model-btn.active[data-v-3b28f859] { background: rgba(0, 102, 204, 0.2); color: #4da3ff; border-color: #0066CC;
}
.model-btn.disabled[data-v-3b28f859] { opacity: 0.5; cursor: not-allowed;
}
.kpi-row[data-v-3b28f859] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 14px;
}
@media (max-width: 1400px) {
.kpi-row[data-v-3b28f859] { grid-template-columns: repeat(3, 1fr);
}
}
.kpi[data-v-3b28f859] { padding: 10px 14px;
}
.kpi-v[data-v-3b28f859] { font-size: 20px; font-weight: 700; color: #e0e6f0; margin-top: 4px;
}
/* ── 布局对齐（2026-09-02 优化批次）：三列等高平行 ——
     左「渠道贡献排行」/ 右「渠道详情」/ 中「桑基图+路径明细」列高一致(640px)，
     上下边缘严格平行；路径明细卡撑满剩余列高，内容区内部滚动。 ── */
.main-grid[data-v-3b28f859] { display: grid; grid-template-columns: 280px minmax(0, 1fr) 300px; gap: 12px; align-items: stretch; height: 640px;
}
.side-list[data-v-3b28f859], .side-detail[data-v-3b28f859] { height: 100%; min-height: 0; display: flex; flex-direction: column;
}
.center-col[data-v-3b28f859] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0;
}
.center-col > .hq-card[data-v-3b28f859]:first-child { flex-shrink: 0;
}
/* 桑基图卡：固定内容高 */
.center-col > .hq-card[data-v-3b28f859]:last-child { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
/* 路径明细卡：撑满列高 */
@media (max-width: 1200px) {
.main-grid[data-v-3b28f859] { grid-template-columns: 1fr; height: auto;
}
.side-list[data-v-3b28f859], .side-detail[data-v-3b28f859], .center-col[data-v-3b28f859] { height: auto;
}
.side-list[data-v-3b28f859], .side-detail[data-v-3b28f859] { max-height: 600px;
}
}
.scroll-area[data-v-3b28f859] { overflow: auto; flex: 1; min-height: 0;
}
.scroll-area[data-v-3b28f859]::-webkit-scrollbar { width: 6px;
}
.scroll-area[data-v-3b28f859]::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 3px;
}
.ch-row[data-v-3b28f859] { display: flex; align-items: center; gap: 8px; padding: 8px; border-bottom: 1px dashed #2a3450; cursor: pointer; border-radius: 6px;
}
.ch-row[data-v-3b28f859]:hover { background: rgba(0, 102, 204, 0.08);
}
.ch-row.selected[data-v-3b28f859] { background: rgba(0, 102, 204, 0.18);
}
.rank[data-v-3b28f859] { width: 24px; font-size: 12px; font-weight: 700;
}
.ch-main[data-v-3b28f859] { flex: 1; min-width: 0;
}
.ch-name[data-v-3b28f859] { font-size: 12px; color: #e0e6f0; display: flex; gap: 4px; align-items: center;
}
.ch-bar[data-v-3b28f859] { height: 4px; background: #232b48; border-radius: 2px; margin-top: 4px;
}
.ch-bar i[data-v-3b28f859] { display: block; height: 4px; border-radius: 2px;
}
.ch-right[data-v-3b28f859] { display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
}
.ch-right b[data-v-3b28f859] { font-size: 13px; color: #e0e6f0;
}
.chart-box[data-v-3b28f859] { height: 280px;
}
.chart-box-sm[data-v-3b28f859] { height: 140px;
}
.path-area[data-v-3b28f859] { flex: 1; min-height: 0;
}
/* 路径明细列表：随卡片撑满并内部滚动（点击连线筛选逻辑不动） */
.path-row[data-v-3b28f859] { display: flex; justify-content: space-between; gap: 10px; padding: 7px 8px; border-bottom: 1px dashed #2a3450; cursor: pointer; font-size: 12px;
}
.path-row[data-v-3b28f859]:hover { background: rgba(0, 102, 204, 0.08);
}
.path-flow[data-v-3b28f859] { color: #b8c4dd;
}
.d-head[data-v-3b28f859] { font-size: 16px; font-weight: 700; color: #e0e6f0; display: flex; justify-content: space-between; align-items: center;
}
.d-sub[data-v-3b28f859] { font-size: 12px; color: #7d8db3; margin: 10px 0 6px;
}
.model-cmp[data-v-3b28f859] { border: 1px solid #232b48; border-radius: 6px; overflow: hidden;
}
.mc-row[data-v-3b28f859] { display: flex; gap: 8px; padding: 6px 10px; font-size: 12px; border-bottom: 1px dashed #232b48; align-items: center;
}
.mc-row[data-v-3b28f859]:last-child { border-bottom: none;
}
.mc-row.cur[data-v-3b28f859] { background: rgba(0, 102, 204, 0.14);
}
.mc-name[data-v-3b28f859] { width: 76px; color: #b8c4dd;
}
.mc-row b[data-v-3b28f859] { margin-left: auto;
}
.collab-wrap[data-v-3b28f859] { line-height: 1.8;
}
.c-green[data-v-3b28f859] { color: #37d26a;
}
.c-red[data-v-3b28f859] { color: #ff7a7a;
}
.mini-btn[data-v-3b28f859] { background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5); border-radius: 4px; font-size: 10px; padding: 1px 6px; cursor: pointer;
}
.collab-float[data-v-3b28f859] { position: fixed; right: 16px; bottom: 16px; width: 240px; background: rgba(23, 29, 54, 0.95); border: 1px solid #2a3450; border-radius: 10px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5); z-index: 500;
}
.collab-head[data-v-3b28f859] { display: flex; align-items: center; padding: 10px 12px; cursor: pointer; color: #b78bff; font-size: 13px; font-weight: 600;
}
.collab-body[data-v-3b28f859] { padding: 0 12px 12px;
}
.collab-item[data-v-3b28f859] { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 12px;
}
.collab-item .rcode[data-v-3b28f859] { width: 86px; color: #e0e6f0;
}
.ci-bar[data-v-3b28f859] { flex: 1; height: 6px; background: #232b48; border-radius: 3px;
}
.ci-bar i[data-v-3b28f859] { display: block; height: 6px; background: linear-gradient(90deg, #722ed1, #b78bff); border-radius: 3px;
}
.collab-item b[data-v-3b28f859] { color: #b78bff;
}
.modal-mask[data-v-3b28f859] { position: fixed; inset: 0; background: rgba(5, 8, 18, 0.6); z-index: 900; display: flex; align-items: center; justify-content: center;
}
.modal-card[data-v-3b28f859] { width: 380px; background: #171D36; border: 1px solid #2a3450; border-radius: 10px; padding: 18px;
}
.modal-title[data-v-3b28f859] { font-size: 15px; font-weight: 700; color: #e0e6f0;
}
.modal-body[data-v-3b28f859] { color: #b8c4dd; font-size: 13px; line-height: 1.7; margin: 10px 0;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-eb2e3974] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-eb2e3974] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-eb2e3974] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-eb2e3974] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-eb2e3974] { flex: 1; min-width: 0;
}
.hq-btn[data-v-eb2e3974] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-eb2e3974]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-eb2e3974] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-eb2e3974]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-eb2e3974] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-eb2e3974], .hq-select[data-v-eb2e3974] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-eb2e3974]:focus, .hq-select[data-v-eb2e3974]:focus { border-color: #0066CC;
}
.hq-tag[data-v-eb2e3974] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-eb2e3974] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-eb2e3974] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-eb2e3974 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-eb2e3974] { animation: hq-blink-eb2e3974 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-eb2e3974 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-eb2e3974] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-eb2e3974 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-eb2e3974] { color: #0066CC;
}
.hq-ev-risk[data-v-eb2e3974] { color: #f53f3f;
}
.hq-ev-agent[data-v-eb2e3974] { color: #00b42a;
}
.hq-ev-strategy[data-v-eb2e3974] { color: #722ed1;
}
.hq-ev-logistics[data-v-eb2e3974] { color: #ff7d00;
}
.hq-breadcrumb[data-v-eb2e3974] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-eb2e3974] { font-size: 20px; color: #e0e6f0; margin: 0 0 14px;
}
.kpi-row[data-v-eb2e3974] { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin-bottom: 14px;
}
@media (max-width: 1400px) {
.kpi-row[data-v-eb2e3974] { grid-template-columns: repeat(4, 1fr);
}
}
.kpi[data-v-eb2e3974] { padding: 10px 14px;
}
.kpi-v[data-v-eb2e3974] { font-size: 20px; font-weight: 700; color: #e0e6f0; margin-top: 4px;
}
/* ── 布局对齐（2026-09-02 优化批次）：三列等高平行 ——
     左「站点列表」/ 右「站点详情」/ 中「趋势图+对比工具」列高一致(600px)，
     上下边缘严格平行；内容溢出只在内部滚动，不撑开外层盒子。 ── */
.main-grid[data-v-eb2e3974] { display: grid; grid-template-columns: 260px minmax(0, 1fr) 300px; gap: 12px; align-items: stretch; height: 600px;
}
.side-list[data-v-eb2e3974], .side-detail[data-v-eb2e3974] { height: 100%; min-height: 0; display: flex; flex-direction: column;
}
.center-col[data-v-eb2e3974] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0;
}
.center-col > .hq-card[data-v-eb2e3974]:first-child { flex-shrink: 0;
}
/* 趋势图卡：固定内容高 */
.center-col > .hq-card[data-v-eb2e3974]:last-child { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
/* 对比工具卡：撑满列高 */
@media (max-width: 1200px) {
.main-grid[data-v-eb2e3974] { grid-template-columns: 1fr; height: auto;
}
.side-list[data-v-eb2e3974], .side-detail[data-v-eb2e3974], .center-col[data-v-eb2e3974] { height: auto;
}
.side-list[data-v-eb2e3974], .side-detail[data-v-eb2e3974] { max-height: 560px;
}
}
.scroll-area[data-v-eb2e3974] { overflow: auto; flex: 1; min-height: 0;
}
.scroll-area[data-v-eb2e3974]::-webkit-scrollbar { width: 6px;
}
.scroll-area[data-v-eb2e3974]::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 3px;
}
.region-row[data-v-eb2e3974] { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-bottom: 1px dashed #2a3450; cursor: pointer; border-radius: 6px;
}
.region-row[data-v-eb2e3974]:hover { background: rgba(0, 102, 204, 0.08);
}
.region-row.selected[data-v-eb2e3974] { background: rgba(0, 102, 204, 0.18); border: 1px solid rgba(0, 102, 204, 0.5); border-bottom: 1px solid rgba(0, 102, 204, 0.5);
}
.dot[data-v-eb2e3974] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.rcode[data-v-eb2e3974] { width: 62px; color: #e0e6f0; font-size: 12px;
}
.rroi[data-v-eb2e3974] { width: 44px; font-weight: 700; font-size: 13px;
}
.rdelta[data-v-eb2e3974] { width: 66px; font-size: 11px; text-align: right;
}
.mini-btn[data-v-eb2e3974] { background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5); border-radius: 4px; font-size: 10px; padding: 1px 6px; cursor: pointer;
}
.chart-box[data-v-eb2e3974] { height: 280px;
}
.chart-box-sm[data-v-eb2e3974] { height: 150px;
}
.event-strip[data-v-eb2e3974] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px;
}
.ev-tag[data-v-eb2e3974] { font-size: 11px; border-radius: 4px; padding: 2px 8px; cursor: pointer;
}
/* ── 时间范围切换胶囊按钮组（选中态 #3B82F6 白字 / 未选中透明 #9CA3AF）── */
.range-group[data-v-eb2e3974] { display: flex; gap: 8px;
}
.range-btn[data-v-eb2e3974] { background: transparent; color: #9CA3AF; border: 1px solid #2a3450; border-radius: 999px; padding: 3px 12px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.range-btn[data-v-eb2e3974]:hover { border-color: #3B82F6; color: #c8d4ee;
}
.range-btn.active[data-v-eb2e3974] { background: #3B82F6; color: #fff; border-color: #3B82F6;
}
.cmp-row[data-v-eb2e3974] { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; flex-shrink: 0;
}
.cmp-row .hq-select[data-v-eb2e3974] { flex: 1;
}
.cmp-table[data-v-eb2e3974] { font-size: 12px; flex: 1; min-height: 0; overflow: auto;
}
/* 对比表格区域内部滚动，不撑开外层盒子 */
.cmp-head[data-v-eb2e3974], .cmp-row[data-v-eb2e3974] { display: flex; gap: 8px; padding: 7px 6px;
}
.cmp-head[data-v-eb2e3974] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.cmp-row[data-v-eb2e3974] { border-bottom: 1px dashed #2a3450;
}
.cmp-row span[data-v-eb2e3974] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.hl-a[data-v-eb2e3974] { color: #37d26a; font-weight: 700;
}
.hl-b[data-v-eb2e3974] { color: #ff7a7a; font-weight: 700;
}
.d-head[data-v-eb2e3974] { font-size: 16px; font-weight: 700; color: #e0e6f0; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: center;
}
.d-grid[data-v-eb2e3974] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px;
}
.d-item[data-v-eb2e3974] { background: rgba(15, 20, 35, 0.6); border: 1px solid #232b48; border-radius: 6px; padding: 8px;
}
.d-item b[data-v-eb2e3974] { display: block; font-size: 14px; color: #e0e6f0; margin-top: 2px;
}
.d-sub[data-v-eb2e3974] { font-size: 12px; color: #7d8db3; margin: 8px 0 4px;
}
.c-green[data-v-eb2e3974] { color: #37d26a;
}
.c-yellow[data-v-eb2e3974] { color: #ffa04d;
}
.c-red[data-v-eb2e3974] { color: #ff7a7a;
}
.alarm-float[data-v-eb2e3974] { position: fixed; right: 16px; bottom: 16px; width: 250px; background: rgba(23, 29, 54, 0.95); border: 1px solid rgba(245, 63, 63, 0.45); border-radius: 10px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5); z-index: 500;
}
.alarm-head[data-v-eb2e3974] { display: flex; align-items: center; gap: 8px; padding: 10px 12px; cursor: pointer; color: #ff7a7a; font-size: 13px; font-weight: 600;
}
.alarm-head .hq-muted[data-v-eb2e3974] { margin-left: auto;
}
.alarm-body[data-v-eb2e3974] { padding: 0 12px 12px; max-height: 220px; overflow: auto;
}
.alarm-item[data-v-eb2e3974] { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px dashed #2a3450; font-size: 12px;
}
.alarm-item .rcode[data-v-eb2e3974] { flex: 1;
}
.modal-mask[data-v-eb2e3974] { position: fixed; inset: 0; background: rgba(5, 8, 18, 0.6); z-index: 900; display: flex; align-items: center; justify-content: center;
}
.modal-card[data-v-eb2e3974] { width: 380px; background: #171D36; border: 1px solid #2a3450; border-radius: 10px; padding: 18px;
}
.modal-title[data-v-eb2e3974] { font-size: 15px; font-weight: 700; color: #e0e6f0;
}
.modal-body[data-v-eb2e3974] { color: #b8c4dd; font-size: 13px; line-height: 1.6; margin: 10px 0 14px;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-aac928f8] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-aac928f8] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-aac928f8] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-aac928f8] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-aac928f8] { flex: 1; min-width: 0;
}
.hq-btn[data-v-aac928f8] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-aac928f8]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-aac928f8] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-aac928f8]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-aac928f8] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-aac928f8], .hq-select[data-v-aac928f8] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-aac928f8]:focus, .hq-select[data-v-aac928f8]:focus { border-color: #0066CC;
}
.hq-tag[data-v-aac928f8] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-aac928f8] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-aac928f8] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-aac928f8 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-aac928f8] { animation: hq-blink-aac928f8 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-aac928f8 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-aac928f8] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-aac928f8 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-aac928f8] { color: #0066CC;
}
.hq-ev-risk[data-v-aac928f8] { color: #f53f3f;
}
.hq-ev-agent[data-v-aac928f8] { color: #00b42a;
}
.hq-ev-strategy[data-v-aac928f8] { color: #722ed1;
}
.hq-ev-logistics[data-v-aac928f8] { color: #ff7d00;
}
.hq-breadcrumb[data-v-aac928f8] { font-size: 12px; color: #8899b4; margin-bottom: 4px;
}
.hq-title[data-v-aac928f8] { font-size: 20px; color: #e0e6f0; margin: 0 0 14px;
}
.kpi-row[data-v-aac928f8] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px;
}
@media (max-width: 1400px) {
.kpi-row[data-v-aac928f8] { grid-template-columns: repeat(3, 1fr);
}
}
.kpi[data-v-aac928f8] { padding: 10px 14px;
}
.kpi-v[data-v-aac928f8] { font-size: 20px; font-weight: 700; color: #e0e6f0; margin-top: 4px;
}
/* ── 布局对齐（2026-09-02 优化批次）：三列等高平行 ——
     左「选择策略」/ 右「策略详情」/ 中「对比卡片+AI报告」列高一致(660px)，
     上下边缘严格平行；AI 报告卡撑满剩余列高，报告文本区内部滚动。 ── */
.main-grid[data-v-aac928f8] { display: grid; grid-template-columns: 240px minmax(0, 1fr) 320px; gap: 12px; align-items: stretch; height: 660px;
}
.side-list[data-v-aac928f8], .side-detail[data-v-aac928f8] { height: 100%; min-height: 0; display: flex; flex-direction: column;
}
.center-col[data-v-aac928f8] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0;
}
.center-col > .hq-card[data-v-aac928f8]:first-child { flex-shrink: 0;
}
/* 对比卡片卡：固定内容高（原样保留） */
.center-col > .hq-card[data-v-aac928f8]:last-child { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
/* AI 报告卡：撑满列高 */
@media (max-width: 1200px) {
.main-grid[data-v-aac928f8] { grid-template-columns: 1fr; height: auto;
}
.side-list[data-v-aac928f8], .side-detail[data-v-aac928f8], .center-col[data-v-aac928f8] { height: auto;
}
.side-list[data-v-aac928f8], .side-detail[data-v-aac928f8] { max-height: 640px;
}
}
.scroll-area[data-v-aac928f8] { overflow: auto; flex: 1; min-height: 0;
}
.scroll-area[data-v-aac928f8]::-webkit-scrollbar { width: 6px;
}
.scroll-area[data-v-aac928f8]::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 3px;
}
.pick-row[data-v-aac928f8] { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-bottom: 1px dashed #2a3450; cursor: pointer; font-size: 12px; border-radius: 6px;
}
.pick-row[data-v-aac928f8]:hover { background: rgba(0, 102, 204, 0.08);
}
.pick-row.picked[data-v-aac928f8] { background: rgba(0, 102, 204, 0.16);
}
.pick-name[data-v-aac928f8] { flex: 1; color: #e0e6f0; display: flex; align-items: center; gap: 4px; flex-wrap: wrap;
}
.pick-row b[data-v-aac928f8] { font-size: 12px;
}
.card-grid[data-v-aac928f8] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; overflow: auto; max-height: 300px;
}
/* 内容超高时卡片区内部滚动，不挤压下方报告卡 */
@media (max-width: 1400px) {
.card-grid[data-v-aac928f8] { grid-template-columns: 1fr;
}
}
.strat-card[data-v-aac928f8] { background: rgba(15, 20, 35, 0.6); border: 1px solid #2a3450; border-radius: 8px; padding: 12px; cursor: pointer; transition: border-color 0.15s;
}
.strat-card[data-v-aac928f8]:hover { border-color: #0066CC;
}
.strat-card.active[data-v-aac928f8] { border-color: #0066CC; box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.4);
}
.strat-card.best[data-v-aac928f8] { border-color: #ffd04d; box-shadow: 0 0 12px rgba(255, 208, 77, 0.25);
}
.sc-head[data-v-aac928f8] { display: flex; gap: 4px; align-items: center; margin-bottom: 8px;
}
.sc-name[data-v-aac928f8] { flex: 1; color: #e0e6f0; font-weight: 600; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sc-roi[data-v-aac928f8] { font-size: 26px; font-weight: 700;
}
.sc-metrics[data-v-aac928f8] { display: flex; flex-direction: column; gap: 3px; margin: 8px 0; font-size: 12px; color: #b8c4dd;
}
.sc-diff[data-v-aac928f8] { font-size: 12px; padding-top: 6px; border-top: 1px dashed #2a3450;
}
.d-head[data-v-aac928f8] { font-size: 15px; font-weight: 700; color: #e0e6f0; margin-bottom: 8px;
}
.d-grid[data-v-aac928f8] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 6px;
}
.d-item[data-v-aac928f8] { background: rgba(15, 20, 35, 0.6); border: 1px solid #232b48; border-radius: 6px; padding: 8px;
}
.d-item b[data-v-aac928f8] { display: block; font-size: 12px; color: #e0e6f0; margin-top: 2px; word-break: break-all;
}
.d-sub[data-v-aac928f8] { font-size: 12px; color: #7d8db3; margin: 10px 0 6px;
}
.cfg-list[data-v-aac928f8] { background: #0F1423; border: 1px solid #232b48; border-radius: 6px; padding: 8px 10px; overflow: auto; max-height: 110px;
}
.cfg-row[data-v-aac928f8] { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; font-size: 12px; border-bottom: 1px dashed #232b48;
}
.cfg-row[data-v-aac928f8]:last-child { border-bottom: none;
}
.cfg-key[data-v-aac928f8] { color: #9CA3AF;
}
.cfg-val[data-v-aac928f8] { color: #e0e6f0; font-weight: 600;
}
/* ── AI 报告关键差异对比表（2026-09-02 批次）：深色底、表头 #9CA3AF、数据白、涨绿跌红 ── */
.diff-table[data-v-aac928f8] { margin-top: 16px; border: 1px solid #232b48; border-radius: 6px; overflow: hidden; background: #0F1423; flex-shrink: 0;
}
.dt-head[data-v-aac928f8], .dt-line[data-v-aac928f8] { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 8px; padding: 7px 10px; font-size: 12px; align-items: center;
}
.dt-head[data-v-aac928f8] { background: rgba(255, 255, 255, 0.03); color: #9CA3AF; border-bottom: 1px solid #2a3450;
}
.dt-line[data-v-aac928f8] { color: #e0e6f0; border-bottom: 1px dashed #232b48;
}
.dt-line[data-v-aac928f8]:last-child { border-bottom: none;
}
.dt-metric[data-v-aac928f8] { color: #9CA3AF;
}
.c-up[data-v-aac928f8] { color: #22C55E; font-style: normal;
}
.c-down[data-v-aac928f8] { color: #EF4444; font-style: normal;
}
.chart-box-sm[data-v-aac928f8] { height: 130px;
}
.report-body[data-v-aac928f8] { white-space: pre-line; line-height: 1.8; font-size: 13px; color: #b8c4dd; border-left: 3px solid #0066CC; padding: 4px 12px; background: rgba(0, 102, 204, 0.05); border-radius: 0 6px 6px 0; flex: 1; min-height: 0; overflow: auto;
}
/* 报告文本区内部滚动 */
.disabled-btn[data-v-aac928f8] { opacity: 0.5; cursor: not-allowed;
}
.c-green[data-v-aac928f8] { color: #37d26a;
}
.c-yellow[data-v-aac928f8] { color: #ffd04d;
}
.c-red[data-v-aac928f8] { color: #ff7a7a;
}

.hq-vlist[data-v-15504e8d] {
  overflow-y: auto;
  position: relative;
  scrollbar-width: thin;
  scrollbar-color: #2a3450 transparent;
}
.hq-vlist-inner[data-v-15504e8d] { position: relative; width: 100%;
}
.hq-vlist-window[data-v-15504e8d] { position: absolute; top: 0; left: 0; right: 0; will-change: transform;
}
.hq-vlist-grid[data-v-15504e8d] { display: grid; gap: 10px;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-16b2eb39] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-16b2eb39] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-16b2eb39] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-16b2eb39] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-16b2eb39] { flex: 1; min-width: 0;
}
.hq-btn[data-v-16b2eb39] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-16b2eb39]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-16b2eb39] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-16b2eb39]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-16b2eb39] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-16b2eb39], .hq-select[data-v-16b2eb39] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-16b2eb39]:focus, .hq-select[data-v-16b2eb39]:focus { border-color: #0066CC;
}
.hq-tag[data-v-16b2eb39] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-16b2eb39] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-16b2eb39] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-16b2eb39 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-16b2eb39] { animation: hq-blink-16b2eb39 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-16b2eb39 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-16b2eb39] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-16b2eb39 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-16b2eb39] { color: #0066CC;
}
.hq-ev-risk[data-v-16b2eb39] { color: #f53f3f;
}
.hq-ev-agent[data-v-16b2eb39] { color: #00b42a;
}
.hq-ev-strategy[data-v-16b2eb39] { color: #722ed1;
}
.hq-ev-logistics[data-v-16b2eb39] { color: #ff7d00;
}
.kpi-row[data-v-16b2eb39] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
}
.kpi-card[data-v-16b2eb39] { cursor: pointer; transition: transform 0.15s;
}
.kpi-card[data-v-16b2eb39]:hover { transform: translateY(-2px);
}
.kpi-label[data-v-16b2eb39] { font-size: 12px; color: #8899b4;
}
.kpi-value[data-v-16b2eb39] { font-size: 22px; font-weight: 700; color: #fff; margin: 4px 0;
}
.kpi-delta[data-v-16b2eb39] { font-size: 11px;
}
.delta-up[data-v-16b2eb39] { color: #00b42a;
}
.delta-down[data-v-16b2eb39] { color: #f53f3f;
}
.warn-item[data-v-16b2eb39] { display: flex; align-items: center; gap: 8px; padding: 0 4px; height: 40px; box-sizing: border-box; border-bottom: 1px dashed #2a3450; font-size: 12px; cursor: pointer;
}
.chart-empty[data-v-16b2eb39] { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #5b6b8c; font-size: 13px; pointer-events: none;
}
.warn-dot[data-v-16b2eb39] { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; background: #0066CC;
}
.warn-dot.hq-ev-risk[data-v-16b2eb39] { background: #f53f3f;
}
.warn-dot.hq-ev-logistics[data-v-16b2eb39] { background: #ff7d00;
}
.warn-content[data-v-16b2eb39] { flex: 1; color: #c0c8d8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.warn-time[data-v-16b2eb39] { flex-shrink: 0;
}
.warn-ignore[data-v-16b2eb39] { flex-shrink: 0; padding: 2px 8px;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-c615c87b] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-c615c87b] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-c615c87b] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-c615c87b] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-c615c87b] { flex: 1; min-width: 0;
}
.hq-btn[data-v-c615c87b] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-c615c87b]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-c615c87b] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-c615c87b]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-c615c87b] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-c615c87b], .hq-select[data-v-c615c87b] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-c615c87b]:focus, .hq-select[data-v-c615c87b]:focus { border-color: #0066CC;
}
.hq-tag[data-v-c615c87b] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-c615c87b] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-c615c87b] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-c615c87b {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-c615c87b] { animation: hq-blink-c615c87b 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-c615c87b {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-c615c87b] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-c615c87b 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-c615c87b] { color: #0066CC;
}
.hq-ev-risk[data-v-c615c87b] { color: #f53f3f;
}
.hq-ev-agent[data-v-c615c87b] { color: #00b42a;
}
.hq-ev-strategy[data-v-c615c87b] { color: #722ed1;
}
.hq-ev-logistics[data-v-c615c87b] { color: #ff7d00;
}
.tab-bar[data-v-c615c87b] { display: flex; gap: 8px; align-items: center;
}
.tab-btn[data-v-c615c87b] { background: transparent; border: 1px solid #2a3450; color: #8899b4; border-radius: 6px; padding: 6px 16px; font-size: 12px; cursor: pointer;
}
.tab-btn.active[data-v-c615c87b] { background: rgba(0, 102, 204, 0.18); border-color: #0066CC; color: #4da3ff;
}
.tab-badge[data-v-c615c87b] { display: inline-block; background: #f53f3f; color: #fff; border-radius: 8px; font-size: 10px; padding: 0 6px; margin-left: 6px;
}
.task-list[data-v-c615c87b] { max-height: 520px; overflow-y: auto;
}
.task-item[data-v-c615c87b] { padding: 10px; border: 1px solid #2a3450; border-radius: 6px; margin-bottom: 8px; cursor: pointer;
}
.task-item.active[data-v-c615c87b] { border-color: #0066CC; background: rgba(0, 102, 204, 0.08);
}
.task-item.insufficient[data-v-c615c87b] { opacity: 0.4;
}
/* 不可裁决任务整体降透明 0.4 */
.meta-lines[data-v-c615c87b] { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; font-size: 11px; color: #8899b4;
}
.state-tag[data-v-c615c87b] { align-self: flex-start; border-radius: 4px; padding: 1px 6px; font-size: 10px;
}
.state-ok[data-v-c615c87b] { background: rgba(0, 180, 42, 0.14); color: #00b42a;
}
.state-warn[data-v-c615c87b] { background: rgba(255, 189, 0, 0.12); color: #e8c33a;
}
.ab-row[data-v-c615c87b] { display: flex; gap: 12px;
}
.ab-panel[data-v-c615c87b] { flex: 1; background: rgba(15, 20, 35, 0.6); border: 1px solid #2a3450; border-radius: 8px; padding: 12px;
}
.ab-title[data-v-c615c87b] { font-size: 13px; font-weight: 600; margin-bottom: 8px;
}
.metric-line[data-v-c615c87b] { display: flex; justify-content: space-between; font-size: 12px; padding: 5px 0; border-bottom: 1px dashed #2a3450;
}
.metric-line b[data-v-c615c87b] { color: #fff;
}
.stat-line[data-v-c615c87b] { margin-top: 8px; font-size: 12px; color: #8899b4;
}
.warn-text[data-v-c615c87b] { color: #e8c33a;
}
/* 显著性/风险警告淡黄 */
.insufficient-block[data-v-c615c87b] { padding: 60px 20px; text-align: center;
}
.chart-legend-note[data-v-c615c87b] { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: #8899b4;
}
.chart-legend-note i[data-v-c615c87b] { font-style: normal;
}
.dialog-mask[data-v-c615c87b] { position: fixed; inset: 0; background: rgba(6, 9, 18, 0.7); z-index: 1000; display: flex;
}
.audit-dialog[data-v-c615c87b] { margin: auto; width: 560px; max-height: 80vh; overflow-y: auto;
}
.audit-body[data-v-c615c87b] { font-size: 13px; color: #c0c8d8;
}
.audit-body p[data-v-c615c87b] { margin: 6px 0;
}
.threshold-form[data-v-c615c87b] { display: flex; gap: 10px; align-items: center;
}
.threshold-form .hq-input[data-v-c615c87b] { width: 100px;
}
.audit-table[data-v-c615c87b] { font-size: 12px;
}
.audit-row[data-v-c615c87b] { display: flex; gap: 8px; align-items: center; padding: 8px 4px; border-bottom: 1px dashed #2a3450; color: #c0c8d8;
}
.audit-head[data-v-c615c87b] { color: #5b6b8c; border-bottom: 1px solid #2a3450;
}
.mini-btn[data-v-c615c87b] { padding: 2px 8px; font-size: 11px;
}
.snapshot[data-v-c615c87b] { background: #0F1423; border: 1px solid #2a3450; border-radius: 6px; padding: 10px; font-size: 11px; color: #8899b4; max-height: 260px; overflow: auto;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-ea2c809b] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-ea2c809b] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-ea2c809b] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-ea2c809b] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-ea2c809b] { flex: 1; min-width: 0;
}
.hq-btn[data-v-ea2c809b] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-ea2c809b]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-ea2c809b] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-ea2c809b]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-ea2c809b] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-ea2c809b], .hq-select[data-v-ea2c809b] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-ea2c809b]:focus, .hq-select[data-v-ea2c809b]:focus { border-color: #0066CC;
}
.hq-tag[data-v-ea2c809b] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-ea2c809b] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-ea2c809b] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-ea2c809b {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-ea2c809b] { animation: hq-blink-ea2c809b 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-ea2c809b {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-ea2c809b] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-ea2c809b 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-ea2c809b] { color: #0066CC;
}
.hq-ev-risk[data-v-ea2c809b] { color: #f53f3f;
}
.hq-ev-agent[data-v-ea2c809b] { color: #00b42a;
}
.hq-ev-strategy[data-v-ea2c809b] { color: #722ed1;
}
.hq-ev-logistics[data-v-ea2c809b] { color: #ff7d00;
}
.stat-row[data-v-ea2c809b] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px;
}
.stat-card[data-v-ea2c809b] { cursor: pointer; text-align: center;
}
.stat-label[data-v-ea2c809b] { font-size: 12px; color: #8899b4;
}
.stat-value[data-v-ea2c809b] { font-size: 22px; font-weight: 700; color: #fff; margin-top: 4px;
}
.scheme-card[data-v-ea2c809b] {
  height: 140px; background: rgba(15, 20, 35, 0.6); border: 1px solid #2a3450;
  border-radius: 8px; padding: 10px; cursor: pointer; transition: border-color 0.2s;
}
.scheme-actions[data-v-ea2c809b] { display: flex; gap: 6px; margin-top: 8px;
}
.mini-btn[data-v-ea2c809b] { padding: 2px 8px; font-size: 11px;
}
.scheme-card[data-v-ea2c809b]:hover { border-color: #0066CC;
}
.scheme-card.st-running[data-v-ea2c809b] { border-color: rgba(0, 102, 204, 0.7); box-shadow: 0 0 10px rgba(0, 102, 204, 0.25);
}
.scheme-card.st-failed[data-v-ea2c809b] { border-color: rgba(245, 63, 63, 0.8); box-shadow: 0 0 10px rgba(245, 63, 63, 0.3);
}
.scheme-card.st-done[data-v-ea2c809b] { border-color: rgba(0, 180, 42, 0.6);
}
.scheme-head[data-v-ea2c809b] { display: flex; gap: 6px; align-items: center;
}
.scheme-id[data-v-ea2c809b] { color: #5b6b8c; font-size: 11px;
}
.scheme-name[data-v-ea2c809b] { flex: 1; color: #fff; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.scheme-status[data-v-ea2c809b] { font-size: 11px; color: #4da3ff;
}
.scheme-tags[data-v-ea2c809b] { margin: 8px 0 4px;
}
.scheme-metrics[data-v-ea2c809b] { display: flex; justify-content: space-between; font-size: 12px; color: #8899b4;
}
.scheme-metrics b[data-v-ea2c809b] { color: #e0e6f0;
}
.progress-bar[data-v-ea2c809b] { margin-top: 8px; height: 4px; background: #2a3450; border-radius: 2px; overflow: hidden;
}
.progress-fill[data-v-ea2c809b] { height: 100%; background: linear-gradient(90deg, #0066CC, #4da3ff);
}
.dialog-mask[data-v-ea2c809b], .drawer-mask[data-v-ea2c809b] { position: fixed; inset: 0; background: rgba(6, 9, 18, 0.7); z-index: 1000; display: flex;
}
.dialog[data-v-ea2c809b] { margin: auto; width: 420px;
}
.drawer-mask[data-v-ea2c809b] { justify-content: flex-end;
}
/* 修复：抽屉从顶部导航栏下方开始（顶部安全内边距），时间线第一条节点完整可见 */
.drawer[data-v-ea2c809b] {
  width: 420px; height: calc(100% - 68px); margin-top: 68px;
  border-radius: 0; overflow-y: auto; box-sizing: border-box;
}
.hq-btn[data-v-ea2c809b]:disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none;
}
.form-col[data-v-ea2c809b] { display: flex; flex-direction: column; gap: 10px;
}
.timeline[data-v-ea2c809b] { border-left: 2px solid #2a3450; padding-left: 14px;
}
.tl-node[data-v-ea2c809b] { display: flex; align-items: center; gap: 8px; padding: 6px 0; color: #5b6b8c;
}
.tl-node.done[data-v-ea2c809b] { color: #c0c8d8;
}
.tl-dot[data-v-ea2c809b] { width: 8px; height: 8px; border-radius: 50%; background: #2a3450; flex-shrink: 0;
}
.tl-node.done .tl-dot[data-v-ea2c809b] { background: #0066CC;
}
.tl-label[data-v-ea2c809b] { min-width: 48px;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-15c94773] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-15c94773] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-15c94773] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-15c94773] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-15c94773] { flex: 1; min-width: 0;
}
.hq-btn[data-v-15c94773] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-15c94773]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-15c94773] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-15c94773]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-15c94773] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-15c94773], .hq-select[data-v-15c94773] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-15c94773]:focus, .hq-select[data-v-15c94773]:focus { border-color: #0066CC;
}
.hq-tag[data-v-15c94773] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-15c94773] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-15c94773] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-15c94773 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-15c94773] { animation: hq-blink-15c94773 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-15c94773 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-15c94773] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-15c94773 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-15c94773] { color: #0066CC;
}
.hq-ev-risk[data-v-15c94773] { color: #f53f3f;
}
.hq-ev-agent[data-v-15c94773] { color: #00b42a;
}
.hq-ev-strategy[data-v-15c94773] { color: #722ed1;
}
.hq-ev-logistics[data-v-15c94773] { color: #ff7d00;
}
.skeleton[data-v-15c94773] { display: flex; flex-direction: column; gap: 12px;
}
.live-bar[data-v-15c94773] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.live-text[data-v-15c94773] { font-weight: 700; color: #f53f3f; letter-spacing: 2px;
}
.live-text.paused[data-v-15c94773] { color: #8899b4;
}
.hq-live-dot.paused[data-v-15c94773] { background: #8899b4; animation: none; box-shadow: none;
}
/* Bug4：暂停圆点置灰 */
.pause-badge[data-v-15c94773] { background: #f53f3f; color: #fff; border-radius: 8px; font-size: 10px; padding: 1px 8px;
}
.ev-item[data-v-15c94773] { display: flex; align-items: center; gap: 8px; padding: 0 4px; height: 46px; box-sizing: border-box; border-bottom: 1px dashed #2a3450; font-size: 12px; cursor: pointer; transition: background 0.12s;
}
.ev-item[data-v-15c94773]:hover { background: rgba(0, 102, 204, 0.07);
}
.ev-item.risk-tint[data-v-15c94773] { background: rgba(245, 63, 63, 0.07);
}
.ev-item.unread-flash[data-v-15c94773] { animation: hq-blink-15c94773 1.6s ease-in-out 3; background: rgba(245, 63, 63, 0.14);
}
.status-dot[data-v-15c94773] { flex-shrink: 0; font-size: 11px;
}
.ev-time[data-v-15c94773] { color: #5b6b8c; flex-shrink: 0; font-size: 11px; width: 132px;
}
.ev-tag[data-v-15c94773] { flex-shrink: 0; font-weight: 600;
}
.ev-level[data-v-15c94773] { flex-shrink: 0; font-size: 11px; color: #8899b4;
}
.ev-content[data-v-15c94773] { flex: 1; color: #c0c8d8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.type-legend[data-v-15c94773] { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px;
}
.legend-dot[data-v-15c94773] { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px;
}
.legend-active[data-v-15c94773] { border-color: #0066CC !important;
}
.filter-pop[data-v-15c94773] { position: relative;
}
/* 面板已 Teleport 到 body（fixed 定位由 panelStyle 计算），此处仅保留视觉样式 */
.filter-panel[data-v-15c94773] { background: #171D36; border: 1px solid #2a3450; border-radius: 8px; padding: 8px; display: flex; flex-direction: column; gap: 6px; min-width: 120px; max-height: 300px; overflow-y: auto; box-shadow: 0 8px 24px rgba(0,0,0,.55);
}
.filter-opt[data-v-15c94773] { display: flex; gap: 6px; align-items: center; font-size: 12px; cursor: pointer;
}
.filter-count[data-v-15c94773] { background: #0066CC; color: #fff; border-radius: 8px; font-size: 10px; padding: 0 6px; margin-left: 4px;
}
/* Bug3 修复：抽屉层抬到最上层（遮罩 2000 / 抽屉 2001），保证内部按钮可点击 */
.drawer-mask[data-v-15c94773] { position: fixed; inset: 0; background: rgba(6, 9, 18, 0.35); z-index: 2000; display: flex; justify-content: flex-end;
}
/* Bug2 修复：抽屉从顶部导航栏下方开始，标题固定、内容区独立滚动 */
.drawer[data-v-15c94773] {
  position: relative; z-index: 2001;
  width: 440px; margin-top: var(--layout-header-height, 64px);
  height: calc(100% - var(--layout-header-height, 64px));
  border-radius: 0; box-sizing: border-box; display: flex; flex-direction: column;
}
.drawer-head[data-v-15c94773] { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid #2a3450; flex-shrink: 0;
}
.drawer-body[data-v-15c94773] { flex: 1; overflow-y: auto; padding: 14px 16px;
}
.detail-field[data-v-15c94773] { margin-bottom: 12px; font-size: 13px; color: #c0c8d8;
}
.detail-field > .hq-muted[data-v-15c94773] { display: block; font-size: 11px; margin-bottom: 4px;
}
.detail-text[data-v-15c94773], .suggest-text[data-v-15c94773] { margin: 0; font-size: 13px; line-height: 1.6;
}
.suggest-text[data-v-15c94773] { color: #e8c33a;
}
.dialog-mask[data-v-15c94773] { position: fixed; inset: 0; background: rgba(6, 9, 18, 0.7); z-index: 1000; display: flex;
}
.history-dialog[data-v-15c94773] { margin: auto; width: 760px; max-height: 82vh;
}
.hist-row[data-v-15c94773] { display: flex; gap: 8px; align-items: center; height: 40px; box-sizing: border-box; border-bottom: 1px dashed #2a3450; font-size: 12px; cursor: pointer;
}
.hist-row[data-v-15c94773]:hover { background: rgba(0, 102, 204, 0.07);
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-5d381f55] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-5d381f55] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-5d381f55] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-5d381f55] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-5d381f55] { flex: 1; min-width: 0;
}
.hq-btn[data-v-5d381f55] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-5d381f55]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-5d381f55] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-5d381f55]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-5d381f55] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-5d381f55], .hq-select[data-v-5d381f55] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-5d381f55]:focus, .hq-select[data-v-5d381f55]:focus { border-color: #0066CC;
}
.hq-tag[data-v-5d381f55] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-5d381f55] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-5d381f55] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-5d381f55 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-5d381f55] { animation: hq-blink-5d381f55 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-5d381f55 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-5d381f55] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-5d381f55 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-5d381f55] { color: #0066CC;
}
.hq-ev-risk[data-v-5d381f55] { color: #f53f3f;
}
.hq-ev-agent[data-v-5d381f55] { color: #00b42a;
}
.hq-ev-strategy[data-v-5d381f55] { color: #722ed1;
}
.hq-ev-logistics[data-v-5d381f55] { color: #ff7d00;
}
.health-line[data-v-5d381f55] { margin-top: 6px; text-align: center; font-size: 13px; color: #c0c8d8;
}
.fuse-big[data-v-5d381f55] {
  width: 80%; padding: 18px 0; font-size: 17px; font-weight: 700; color: #fff;
  background: linear-gradient(135deg, #f53f3f, #b32020); border: none; border-radius: 10px; cursor: pointer;
  box-shadow: 0 0 18px rgba(245, 63, 63, 0.4); margin-top: 14px;
}
.fuse-big[data-v-5d381f55]:disabled { opacity: 0.5; cursor: not-allowed;
}
.fuse-big[data-v-5d381f55]:hover:not(:disabled) { filter: brightness(1.12);
}
.fuse-recover[data-v-5d381f55] { background: linear-gradient(135deg, #00b42a, #0a7a1f); box-shadow: 0 0 18px rgba(0, 180, 42, 0.4);
}
.rule-row[data-v-5d381f55] { display: flex; gap: 8px; align-items: center; margin-bottom: 8px;
}
.switch[data-v-5d381f55] { position: relative; width: 34px; height: 18px; display: inline-block;
}
.switch-slider[data-v-5d381f55] { position: absolute; inset: 0; background: #2a3450; border-radius: 9px; cursor: pointer; transition: 0.2s;
}
.switch input:checked + .switch-slider[data-v-5d381f55] { background: #0066CC;
}
.switch-slider[data-v-5d381f55]::after { content: ''; position: absolute; width: 14px; height: 14px; border-radius: 50%; background: #fff; top: 2px; left: 2px; transition: 0.2s;
}
.switch input:checked + .switch-slider[data-v-5d381f55]::after { left: 18px;
}
.site-row[data-v-5d381f55] { display: flex; align-items: center; gap: 8px; height: 40px; box-sizing: border-box; border-bottom: 1px dashed #2a3450; font-size: 12px;
}
.site-dot[data-v-5d381f55] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: #00b42a;
}
.site-dot.site-warn[data-v-5d381f55] { background: #ff7d00;
}
.site-dot.site-fused[data-v-5d381f55] { background: #f53f3f;
}
.site-row.site-fused[data-v-5d381f55] { background: rgba(245, 63, 63, 0.06);
}
.site-row.site-highlight[data-v-5d381f55] { box-shadow: inset 0 0 0 1px #4da3ff; background: rgba(0, 102, 204, 0.12);
}
.log-row[data-v-5d381f55] { display: flex; align-items: center; gap: 6px; height: 40px; box-sizing: border-box; border-bottom: 1px dashed #2a3450; font-size: 12px;
}
/* fix4 模块6：仪表盘骨架屏 + 深色滚动条适配 #0F1423 */
.gauge-skeleton[data-v-5d381f55] {
  position: absolute; inset: 0; border-radius: 8px;
  background: linear-gradient(90deg, rgba(23,29,54,0.4) 25%, rgba(42,52,80,0.55) 37%, rgba(23,29,54,0.4) 63%);
  background-size: 400% 100%; animation: sk-shimmer-5d381f55 1.4s ease infinite;
}
@keyframes sk-shimmer-5d381f55 {
0% { background-position: 100% 0;
}
100% { background-position: -100% 0;
}
}
.hq-card[data-v-5d381f55] ::-webkit-scrollbar { width: 6px; height: 6px;
}
.hq-card[data-v-5d381f55] ::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 3px;
}
.hq-card[data-v-5d381f55] ::-webkit-scrollbar-thumb:hover { background: #3a4a6e;
}
.hq-card[data-v-5d381f55] ::-webkit-scrollbar-track { background: #0F1423;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-2430100b] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-2430100b] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-2430100b] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-2430100b] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-2430100b] { flex: 1; min-width: 0;
}
.hq-btn[data-v-2430100b] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-2430100b]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-2430100b] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-2430100b]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-2430100b] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-2430100b], .hq-select[data-v-2430100b] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-2430100b]:focus, .hq-select[data-v-2430100b]:focus { border-color: #0066CC;
}
.hq-tag[data-v-2430100b] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-2430100b] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-2430100b] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-2430100b {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-2430100b] { animation: hq-blink-2430100b 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-2430100b {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-2430100b] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-2430100b 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-2430100b] { color: #0066CC;
}
.hq-ev-risk[data-v-2430100b] { color: #f53f3f;
}
.hq-ev-agent[data-v-2430100b] { color: #00b42a;
}
.hq-ev-strategy[data-v-2430100b] { color: #722ed1;
}
.hq-ev-logistics[data-v-2430100b] { color: #ff7d00;
}
.kpi-card[data-v-2430100b] { flex: 1; cursor: pointer; padding: 12px 16px;
}
.kpi-card.kpi-active[data-v-2430100b] { border-color: #0066CC;
}
.kpi-num[data-v-2430100b] { font-size: 22px; font-weight: 700;
}
/* 主体三栏：列表 | 时间轴 | 新增任务 —— flex:1 等宽；三卡统一 padding 保证边框盒严格等宽；
   高度锁 320（min=max），内部溢出走局部滚动，不允许某一卡片被撑开过高 */
.evolve-timer-grid[data-v-2430100b] { margin-top: 12px; display: flex; align-items: stretch; gap: 12px;
}
.evolve-timer-grid > .hq-card[data-v-2430100b] { flex: 1 1 0px; min-width: 0; min-height: 320px; max-height: 320px; box-sizing: border-box;
}
.list-card[data-v-2430100b] { display: flex; flex-direction: column; padding: 14px 20px 12px;
}
.clock-card[data-v-2430100b] { display: flex; flex-direction: column; padding: 14px 20px;
}
.config-card[data-v-2430100b] { display: flex; flex-direction: column; padding: 14px 20px 12px; overflow-y: auto;
}
/* 调度任务列表表格：内容溢出时局部滚动（横向+纵向），不撑开外部等高布局 */
.task-table-wrap[data-v-2430100b] { flex: 1; min-height: 0; overflow: auto;
}
.task-table-wrap[data-v-2430100b]::-webkit-scrollbar { width: 8px; height: 8px;
}
.task-table-wrap[data-v-2430100b]::-webkit-scrollbar-track { background: #0F1423; border-radius: 4px;
}
.task-table-wrap[data-v-2430100b]::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 4px;
}
.task-table[data-v-2430100b] { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 11px;
}
.task-table th[data-v-2430100b] { text-align: left; color: #5b6b8c; font-weight: 600; padding: 9px 8px; border-bottom: 1px solid #2a3450; white-space: nowrap; position: sticky; top: 0; background: #171D36;
}
.task-table td[data-v-2430100b] { padding: 9px 8px; border-bottom: 1px dashed #232b47; color: #c0c8d8; white-space: nowrap;
}
.task-table tbody tr[data-v-2430100b] { cursor: pointer;
}
.task-table tbody tr:hover td[data-v-2430100b] { background: rgba(0, 102, 204, .07);
}
.row-op[data-v-2430100b] { display: inline-block; font-size: 11px; color: #4da3ff; cursor: pointer; padding: 2px 4px; border-radius: 4px; margin-right: 4px;
}
.row-op[data-v-2430100b]:hover { background: rgba(0, 102, 204, .16);
}
.row-op-danger[data-v-2430100b] { color: #ff7a7a;
}
.row-op-danger[data-v-2430100b]:hover { background: rgba(245, 63, 63, .14);
}
/* 24h 时间轴卡片：最大高度 320px；图例置顶右上，不占画布空间 */
.clock-head[data-v-2430100b] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px;
}
.clock-legend[data-v-2430100b] { display: flex; align-items: center; gap: 12px; font-size: 11px; flex-shrink: 0;
}
/* 时间轴容器：固定 260px，横向滚动，内容溢出时滚轮平移（卡片左右 20px padding 已保证不贴边框） */
.clock-scroll[data-v-2430100b] { flex: 0 0 260px; min-height: 0; height: 260px; overflow-x: auto; overflow-y: hidden; padding: 0 0 4px;
}
.clock-scroll[data-v-2430100b]::-webkit-scrollbar { height: 8px;
}
.clock-scroll[data-v-2430100b]::-webkit-scrollbar-track { background: #0F1423; border-radius: 4px;
}
.clock-scroll[data-v-2430100b]::-webkit-scrollbar-thumb { background: #2a3450; border-radius: 4px;
}
.clock-scroll[data-v-2430100b]::-webkit-scrollbar-thumb:hover { background: #3a4a75;
}
/* 画布最小宽度 24h×60px，保证任务条最小宽度与横向可滑动 */
.clock-canvas[data-v-2430100b] { position: relative; display: flex; min-width: 1450px; background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 10px 4px 12px;
}
/* 24 小时全部保留垂直分隔线；仅偶数小时渲染数字文本 */
.hour-cell[data-v-2430100b] { flex: 1; min-width: 60px; display: flex; flex-direction: column; align-items: stretch; gap: 4px; border-left: 1px solid #232b47;
}
.hour-cell[data-v-2430100b]:first-child { border-left: none;
}
.hour-label[data-v-2430100b] { align-self: center; font-size: 11px; height: 14px; line-height: 14px;
}
.hour-slot[data-v-2430100b] { width: 100%; min-height: 46px; display: flex; flex-direction: column; gap: 2px; align-items: stretch;
}
/* 任务条：同刻垂直分层（≤4行）；左上角状态小色块；保留三色类型配色 */
.task-bar[data-v-2430100b] { display: flex; align-items: center; gap: 3px; border: 1px solid; border-radius: 3px; padding: 1px 3px; font-size: 9px; cursor: pointer; overflow: hidden; width: 100%; min-width: 60px; box-sizing: border-box; transition: box-shadow 0.15s;
}
.task-bar[data-v-2430100b]:hover { box-shadow: 0 0 8px rgba(0, 102, 204, .45);
}
.bar-status[data-v-2430100b] { width: 8px; height: 8px; border-radius: 2px; flex-shrink: 0;
}
.bar-name[data-v-2430100b] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.task-more[data-v-2430100b] { font-size: 10px; color: #4da3ff; text-align: center; cursor: pointer; border: 1px dashed #2a3450; border-radius: 3px; padding: 1px 2px;
}
.task-more[data-v-2430100b]:hover { background: rgba(0, 102, 204, .12);
}
.hour-now .hour-label[data-v-2430100b] { color: #0066CC; font-weight: 700;
}
/* 当前时间指示线：加粗 + 半透明背景带，浮于任务条之上 */
.now-line[data-v-2430100b] { position: absolute; top: 0; bottom: 0; width: 3px; background: #0066CC; box-shadow: 0 0 8px rgba(0, 102, 204, .75); pointer-events: none; z-index: 5;
}
.now-band[data-v-2430100b] { position: absolute; left: 50%; transform: translateX(-50%); width: 16px; top: 0; bottom: 0; background: rgba(0, 102, 204, .12);
}
.lg-dot[data-v-2430100b] { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 4px;
}
/* 新增定时任务：快捷 cron + 预览 */
.preset-row[data-v-2430100b] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px;
}
.preset-chip[data-v-2430100b] { padding: 3px 10px; font-size: 11px;
}
.preview-line[data-v-2430100b] { font-size: 11px; color: #00b42a; background: rgba(0, 180, 42, .08); border: 1px dashed #2a3450; border-radius: 6px; padding: 6px 8px; margin-bottom: 8px;
}
.preview-line.preview-invalid[data-v-2430100b] { color: #f53f3f; background: rgba(245, 63, 63, .08);
}
/* 任务详情弹窗 */
.modal-mask[data-v-2430100b] { position: fixed; inset: 0; background: rgba(6, 9, 18, .55); z-index: 2000; display: flex; align-items: center; justify-content: center;
}
.modal[data-v-2430100b] { position: relative; z-index: 2001; width: 520px; max-width: 92vw; max-height: 78vh; display: flex; flex-direction: column; padding: 0; overflow: hidden;
}
.modal-head[data-v-2430100b] { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid #2a3450; flex-shrink: 0;
}
.modal-body[data-v-2430100b] { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 16px;
}
.modal-foot[data-v-2430100b] { display: flex; gap: 8px; align-items: center; padding: 12px 16px; border-top: 1px solid #2a3450; flex-shrink: 0;
}
.kv[data-v-2430100b] { display: flex; gap: 8px; font-size: 12px; color: #c0c8d8; margin-bottom: 4px;
}
.kv .hq-muted[data-v-2430100b] { width: 90px; flex-shrink: 0;
}
.sec-title[data-v-2430100b] { color: #4da3ff; font-size: 12px; margin: 10px 0 6px;
}
.json-box[data-v-2430100b] { background: #0F1423; border: 1px solid #2a3450; border-radius: 6px; padding: 8px; font-size: 11px; color: #9fd0ff; overflow-x: auto; max-height: 120px;
}
.phase2[data-v-2430100b] { opacity: .55;
}
/* 小屏：主体行纵向堆叠，不重叠不错乱 */
@media (max-width: 900px) {
.evolve-timer-grid[data-v-2430100b] { flex-direction: column;
}
.clock-card[data-v-2430100b] { max-height: none;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-2ce72dac] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-2ce72dac] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-2ce72dac] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-2ce72dac] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-2ce72dac] { flex: 1; min-width: 0;
}
.hq-btn[data-v-2ce72dac] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-2ce72dac]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-2ce72dac] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-2ce72dac]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-2ce72dac] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-2ce72dac], .hq-select[data-v-2ce72dac] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-2ce72dac]:focus, .hq-select[data-v-2ce72dac]:focus { border-color: #0066CC;
}
.hq-tag[data-v-2ce72dac] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-2ce72dac] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-2ce72dac] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-2ce72dac {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-2ce72dac] { animation: hq-blink-2ce72dac 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-2ce72dac {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-2ce72dac] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-2ce72dac 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-2ce72dac] { color: #0066CC;
}
.hq-ev-risk[data-v-2ce72dac] { color: #f53f3f;
}
.hq-ev-agent[data-v-2ce72dac] { color: #00b42a;
}
.hq-ev-strategy[data-v-2ce72dac] { color: #722ed1;
}
.hq-ev-logistics[data-v-2ce72dac] { color: #ff7d00;
}
/* ===== 视口局部滚动：页面填满内容区，仅时间轴区域内部滚动 ===== */
.page-fill[data-v-2ce72dac] { display: flex; flex-direction: column; height: 100%; overflow: hidden;
}
.phase2-row[data-v-2ce72dac] { flex-shrink: 0; display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 12px;
}
/* ① KPI 统计行：固定不滚动 */
.kpi-row[data-v-2ce72dac] { flex-shrink: 0; display: flex; flex-wrap: wrap; gap: 12px;
}
.kpi-card[data-v-2ce72dac] { flex: 1; min-width: 0; cursor: pointer; padding: 12px 16px;
}
.kpi-card.kpi-active[data-v-2ce72dac] { border-color: #0066CC;
}
.kpi-num[data-v-2ce72dac] { font-size: 22px; font-weight: 700;
}
/* ②③ 主体双栏：两张卡片 stretch 严格等高（禁止写死 px 高度） */
.main-area[data-v-2ce72dac] { flex: 1; min-height: 0; margin-top: 12px; display: flex; align-items: stretch; gap: 12px;
}
/* 左侧筛选面板：外层与右侧时间轴卡片上下边框完全对齐，内容溢出时内部滚动 */
.filter-panel[data-v-2ce72dac] { width: 220px; flex-shrink: 0; min-height: 0; display: flex; flex-direction: column; padding: 14px 14px 12px;
}
.filter-body[data-v-2ce72dac] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.filter-body .hq-input[data-v-2ce72dac] { width: 100%; margin-bottom: 8px; box-sizing: border-box;
}
.filter-foot[data-v-2ce72dac] { flex-shrink: 0; margin-top: 10px; padding-top: 10px; border-top: 1px solid #2a3450;
}
.filter-foot .hq-btn[data-v-2ce72dac] { width: 100%;
}
/* 右侧时间轴卡片：顶部对比工具（固定） + 时间轴列表（唯一内部滚动区） */
.timeline-card[data-v-2ce72dac] { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; padding: 14px 18px 12px;
}
/* ② 版本快照对比工具：时间轴正上方，固定不滚动 */
.compare-section[data-v-2ce72dac] { flex-shrink: 0;
}
.compare-bar[data-v-2ce72dac] { display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
}
.compare-label[data-v-2ce72dac] { font-size: 13px; font-weight: 600; color: #7d8db3; letter-spacing: 0.5px;
}
.compare-bar .hq-input[data-v-2ce72dac] { width: 230px;
}
.compare-result[data-v-2ce72dac] { margin-top: 10px; display: flex; gap: 12px; align-items: flex-start; max-height: 180px; overflow-y: auto;
}
.compare-result > div[data-v-2ce72dac] { flex: 1; min-width: 0;
}
.tl-divider[data-v-2ce72dac] { flex-shrink: 0; height: 1px; background: #2a3450; margin: 12px 0 10px;
}
/* ③ 时间轴：标题固定，列表滚动，分页在滚动容器内部底部 */
.timeline-head[data-v-2ce72dac] { flex-shrink: 0; margin-bottom: 10px;
}
.timeline-scroll[data-v-2ce72dac] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 4px;
}
.tl-item[data-v-2ce72dac] { display: flex; gap: 12px; padding: 8px 10px; border: 1px solid transparent; border-radius: 8px; transition: all 0.22s ease;
}
.tl-item[data-v-2ce72dac]:hover { border-color: rgba(0, 102, 204, 0.45); background: rgba(0, 102, 204, 0.07); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
}
.tl-axis[data-v-2ce72dac] { position: relative; width: 16px; flex-shrink: 0;
}
.tl-axis[data-v-2ce72dac]::before { content: ''; position: absolute; left: 7px; top: 14px; bottom: -12px; width: 2px; background: #2a3450;
}
.tl-item:last-child .tl-axis[data-v-2ce72dac]::before { display: none;
}
.tl-dot[data-v-2ce72dac] { position: relative; z-index: 1; display: inline-block; width: 14px; height: 14px; border-radius: 50%; margin-top: 6px; border: 2px solid #0F1423; box-shadow: 0 0 0 1px #2a3450;
}
.tl-body[data-v-2ce72dac] { flex: 1; min-width: 0;
}
.tl-head[data-v-2ce72dac] { display: flex; align-items: center; gap: 6px; cursor: pointer; flex-wrap: wrap;
}
.tl-summary[data-v-2ce72dac] { font-size: 12px; margin-top: 2px; cursor: pointer;
}
.pager-row[data-v-2ce72dac] { flex-shrink: 0; display: flex; justify-content: center; align-items: center; gap: 8px; padding-top: 10px; margin-top: 6px; border-top: 1px solid #2a3450;
}
/* Loading 骨架屏 */
.skel-item[data-v-2ce72dac] { display: flex; gap: 12px; padding: 10px 10px;
}
.skel-dot[data-v-2ce72dac] { width: 14px; height: 14px; border-radius: 50%; background: #232b4d; margin-top: 6px; flex-shrink: 0;
}
.skel-lines[data-v-2ce72dac] { flex: 1; display: flex; flex-direction: column; gap: 9px; padding-top: 4px;
}
.skel-line[data-v-2ce72dac] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2442 25%, #2a3359 50%, #1d2442 75%); background-size: 200% 100%; animation: skel-shine-2ce72dac 1.3s ease infinite;
}
.skel-line.short[data-v-2ce72dac] { width: 45%;
}
@keyframes skel-shine-2ce72dac {
0% { background-position: 180% 0;
}
100% { background-position: -80% 0;
}
}
/* 空状态 */
.empty-wrap[data-v-2ce72dac] { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 52px 0 60px;
}
.empty-icon[data-v-2ce72dac] { width: 46px; height: 46px; border-radius: 50%; background: rgba(0, 102, 204, 0.08); border: 1px dashed #2a3450; position: relative; flex-shrink: 0;
}
.empty-icon[data-v-2ce72dac]::before { content: ''; position: absolute; left: 13px; top: 11px; width: 16px; height: 16px; border: 2px solid #4da3ff; border-radius: 50%;
}
.empty-icon[data-v-2ce72dac]::after { content: ''; position: absolute; right: 10px; bottom: 11px; width: 8px; height: 2px; background: #4da3ff; border-radius: 2px; transform: rotate(45deg);
}
/* 抽屉（保留原样） */
.drawer-mask[data-v-2ce72dac] { position: fixed; inset: 0; background: rgba(6, 9, 18, .35); z-index: 2000; display: flex; justify-content: flex-end;
}
.drawer[data-v-2ce72dac] { position: relative; z-index: 2001; width: 460px; margin-top: var(--layout-header-height, 64px); height: calc(100% - var(--layout-header-height, 64px)); border-radius: 0; display: flex; flex-direction: column;
}
.drawer-head[data-v-2ce72dac] { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid #2a3450;
}
.drawer-body[data-v-2ce72dac] { flex: 1; overflow-y: auto; padding: 14px 16px;
}
.sec-title[data-v-2ce72dac] { color: #4da3ff; font-size: 12px; margin: 12px 0 6px;
}
.kv[data-v-2ce72dac] { display: flex; gap: 8px; font-size: 12px; color: #c0c8d8; margin-bottom: 4px;
}
.kv .hq-muted[data-v-2ce72dac] { width: 110px; flex-shrink: 0;
}
.json-box[data-v-2ce72dac] { background: #0F1423; border: 1px solid #2a3450; border-radius: 6px; padding: 8px; font-size: 11px; color: #9fd0ff; overflow-x: auto; max-height: 160px;
}
.gene-effect[data-v-2ce72dac] { display: flex; flex-wrap: wrap; gap: 4px;
}
.cmp-row[data-v-2ce72dac] { display: flex; gap: 8px; font-size: 12px; margin-bottom: 4px; align-items: center;
}
.cmp-row .hq-muted[data-v-2ce72dac] { width: 90px; flex-shrink: 0;
}
.up[data-v-2ce72dac] { color: #00b42a;
}
.phase2[data-v-2ce72dac] { opacity: .55;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-b1a2fbae] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-b1a2fbae] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-b1a2fbae] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-b1a2fbae] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-b1a2fbae] { flex: 1; min-width: 0;
}
.hq-btn[data-v-b1a2fbae] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-b1a2fbae]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-b1a2fbae] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-b1a2fbae]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-b1a2fbae] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-b1a2fbae], .hq-select[data-v-b1a2fbae] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-b1a2fbae]:focus, .hq-select[data-v-b1a2fbae]:focus { border-color: #0066CC;
}
.hq-tag[data-v-b1a2fbae] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-b1a2fbae] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-b1a2fbae] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-b1a2fbae {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-b1a2fbae] { animation: hq-blink-b1a2fbae 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-b1a2fbae {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-b1a2fbae] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-b1a2fbae 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-b1a2fbae] { color: #0066CC;
}
.hq-ev-risk[data-v-b1a2fbae] { color: #f53f3f;
}
.hq-ev-agent[data-v-b1a2fbae] { color: #00b42a;
}
.hq-ev-strategy[data-v-b1a2fbae] { color: #722ed1;
}
.hq-ev-logistics[data-v-b1a2fbae] { color: #ff7d00;
}
/* ── 页面固定层级：KPI/筛选/操作栏/分页固定视口，仅卡片网格局部滚动 ── */
.page-fill[data-v-b1a2fbae] { display: flex; flex-direction: column; height: calc(100vh - var(--layout-header-height, 64px) - 20px); overflow: hidden;
}
.kpi-row[data-v-b1a2fbae] { flex-shrink: 0;
}
.mid-row[data-v-b1a2fbae] { flex: 1; min-height: 0;
}
.right-col[data-v-b1a2fbae] { min-width: 0;
}
.grid-card[data-v-b1a2fbae] { flex: 1; min-height: 0; overflow-y: auto; position: relative; padding: 12px;
}
/* KPI 卡片：hover 高亮浮起，明确可点击（0.22s ease 柔和过渡） */
.kpi-card[data-v-b1a2fbae] { flex: 1; cursor: pointer; padding: 12px 16px; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.kpi-card[data-v-b1a2fbae]:hover { border-color: #0066CC; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, .4);
}
.kpi-card.kpi-active[data-v-b1a2fbae] { border-color: #0066CC; background: rgba(0, 102, 204, .08);
}
.kpi-num[data-v-b1a2fbae] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
/* 筛选面板：与右侧容器等高平行（父级 align-items:stretch 拉伸，不写死高度）；内部溢出局部滚动；重置按钮钉底 */
.filter-panel[data-v-b1a2fbae] { width: 220px; padding: 12px; display: flex; flex-direction: column;
}
.filter-body[data-v-b1a2fbae] { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; padding-right: 2px;
}
.filter-panel .hq-input[data-v-b1a2fbae] { width: 100%; flex-shrink: 0;
}
.reset-btn[data-v-b1a2fbae] { flex-shrink: 0; margin-top: 8px; align-self: center;
}
/* 批量操作栏：上移同行、自适应弹性、选中计数 */
.action-bar[data-v-b1a2fbae] { flex-shrink: 0; margin-bottom: 12px; padding: 10px 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.action-bar .hq-btn[data-v-b1a2fbae] { min-width: 92px;
}
.selected-count[data-v-b1a2fbae] { font-size: 12px; margin-left: 6px; white-space: nowrap;
}
/* 卡片网格：等高卡片、长参数局部滚动、hover 统一浮起 */
.gene-grid[data-v-b1a2fbae] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; padding-bottom: 8px;
}
.gene-card[data-v-b1a2fbae] { display: flex; flex-direction: column; height: 224px; padding: 12px; cursor: pointer; overflow: hidden; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.gene-card[data-v-b1a2fbae]:hover { border-color: #0066CC; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 0, 0, .42);
}
.gene-card.gene-selected[data-v-b1a2fbae] { border-color: #0066CC;
}
.gene-head[data-v-b1a2fbae] { display: flex; align-items: center; gap: 6px; flex-shrink: 0;
}
.gene-head b[data-v-b1a2fbae] { flex: 1; font-size: 14px; color: #e8ecf5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gene-meta[data-v-b1a2fbae] { font-size: 11px; flex-shrink: 0; margin: 4px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.gene-params[data-v-b1a2fbae] { flex: 1; min-height: 0; overflow: auto; font-size: 12px; color: #c0c8d8; margin: 6px 0; padding-right: 4px;
}
.gene-effect[data-v-b1a2fbae] { display: flex; flex-wrap: wrap; gap: 4px; flex-shrink: 0; margin-bottom: 6px;
}
.eff-tag[data-v-b1a2fbae] { background: rgba(0, 102, 204, .14); color: #4da3ff;
}
.eff-tag.up[data-v-b1a2fbae] { background: rgba(0, 180, 42, .14); color: #00b42a;
}
.eff-tag.down[data-v-b1a2fbae] { background: rgba(245, 63, 63, .14); color: #f53f3f;
}
.gene-actions[data-v-b1a2fbae] { display: flex; gap: 6px; flex-shrink: 0;
}
/* 骨架屏 */
.skeleton[data-v-b1a2fbae] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px;
}
.skel-card[data-v-b1a2fbae] { height: 224px; border-radius: 10px; background: linear-gradient(100deg, rgba(42, 52, 80, .35) 30%, rgba(42, 52, 80, .7) 50%, rgba(42, 52, 80, .35) 70%); background-size: 200% 100%; animation: skel-shine-b1a2fbae 1.4s infinite;
}
@keyframes skel-shine-b1a2fbae {
0% { background-position: 120% 0;
}
100% { background-position: -80% 0;
}
}
/* 分页行：置于滚动容器底部，跟随卡片列表一起滚动 */
.pag-row[data-v-b1a2fbae] { justify-content: center; gap: 8px; padding: 12px 0 4px; margin-top: 12px; border-top: 1px solid #2a3450;
}
/* 对比浮窗：跟随卡片容器（grid-card 相对定位），不跟随 body */
.compare-float[data-v-b1a2fbae] { position: absolute; right: 20px; bottom: 16px; width: 340px; z-index: 10; padding: 12px; box-shadow: 0 10px 28px rgba(0, 0, 0, .5);
}
.cmp-row[data-v-b1a2fbae] { display: flex; gap: 8px; font-size: 12px; margin-bottom: 4px; align-items: center;
}
.cmp-row .hq-muted[data-v-b1a2fbae] { width: 90px; flex-shrink: 0;
}
.up[data-v-b1a2fbae] { color: #00b42a;
}
.down[data-v-b1a2fbae] { color: #f53f3f;
}
/* 抽屉/弹窗 */
.drawer-mask[data-v-b1a2fbae] { position: fixed; inset: 0; background: rgba(6, 9, 18, .35); z-index: 2000; display: flex; justify-content: flex-end;
}
.drawer[data-v-b1a2fbae] { position: relative; z-index: 2001; width: 460px; margin-top: var(--layout-header-height, 64px); height: calc(100% - var(--layout-header-height, 64px)); border-radius: 0; display: flex; flex-direction: column;
}
.drawer-head[data-v-b1a2fbae] { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid #2a3450;
}
.drawer-body[data-v-b1a2fbae] { flex: 1; overflow-y: auto; padding: 14px 16px;
}
.sec-title[data-v-b1a2fbae] { color: #4da3ff; font-size: 12px; margin: 12px 0 6px;
}
.kv[data-v-b1a2fbae] { display: flex; gap: 8px; font-size: 12px; color: #c0c8d8; margin-bottom: 4px;
}
.kv .hq-muted[data-v-b1a2fbae] { width: 110px; flex-shrink: 0;
}
.json-box[data-v-b1a2fbae] { background: #0F1423; border: 1px solid #2a3450; border-radius: 6px; padding: 8px; font-size: 11px; color: #9fd0ff; overflow-x: auto; max-height: 180px;
}
.dialog-mask[data-v-b1a2fbae] { position: fixed; inset: 0; background: rgba(6, 9, 18, .7); z-index: 2100; display: flex;
}
.form-dialog[data-v-b1a2fbae] { margin: auto; width: 480px; padding: 16px;
}
.phase2[data-v-b1a2fbae] { opacity: .55;
}
/* 小屏自适应：按钮紧凑、筛选面板收窄 */
@media (max-width: 1100px) {
.action-bar .hq-btn[data-v-b1a2fbae] { min-width: 76px; padding: 0 10px;
}
.filter-panel[data-v-b1a2fbae] { width: 190px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-457628cb] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-457628cb] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-457628cb] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-457628cb] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-457628cb] { flex: 1; min-width: 0;
}
.hq-btn[data-v-457628cb] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-457628cb]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-457628cb] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-457628cb]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-457628cb] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-457628cb], .hq-select[data-v-457628cb] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-457628cb]:focus, .hq-select[data-v-457628cb]:focus { border-color: #0066CC;
}
.hq-tag[data-v-457628cb] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-457628cb] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-457628cb] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-457628cb {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-457628cb] { animation: hq-blink-457628cb 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-457628cb {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-457628cb] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-457628cb 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-457628cb] { color: #0066CC;
}
.hq-ev-risk[data-v-457628cb] { color: #f53f3f;
}
.hq-ev-agent[data-v-457628cb] { color: #00b42a;
}
.hq-ev-strategy[data-v-457628cb] { color: #722ed1;
}
.hq-ev-logistics[data-v-457628cb] { color: #ff7d00;
}
.kpi-card[data-v-457628cb] { flex: 1; padding: 12px 16px;
}
.kpi-num[data-v-457628cb] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.up[data-v-457628cb] { color: #00b42a;
}
.down[data-v-457628cb] { color: #f53f3f;
}
/* 两行主体：同行 stretch 等高；选择/对比图/AI报告三块统一固定容器高度 440px，横向完全平行对齐 */
.pc-row[data-v-457628cb] { margin-top: 12px; display: flex; gap: 12px; align-items: stretch;
}
.select-card[data-v-457628cb] { width: 260px; flex-shrink: 0; min-height: 440px; max-height: 440px; display: flex; flex-direction: column;
}
.chart-card[data-v-457628cb], .report-card[data-v-457628cb] { flex: 1; min-width: 0; min-height: 440px; max-height: 440px; display: flex; flex-direction: column; overflow: hidden;
}
.report-card .ai-report[data-v-457628cb] { flex: 1; min-height: 0; overflow-y: auto;
}
.record-list[data-v-457628cb] { flex: 1; min-height: 0; overflow-y: auto;
}
@media (max-width: 900px) {
.pc-row[data-v-457628cb] { flex-direction: column;
}
.select-card[data-v-457628cb], .chart-card[data-v-457628cb], .report-card[data-v-457628cb] { width: 100%; min-height: 0; max-height: none;
}
}
.record-item[data-v-457628cb] { padding: 8px 4px; border-bottom: 1px dashed #2a3450; cursor: pointer;
}
.record-item[data-v-457628cb]:hover, .record-item.record-active[data-v-457628cb] { background: rgba(0, 102, 204, .07);
}
.metric-row[data-v-457628cb] { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-bottom: 8px;
}
.metric-row .hq-muted[data-v-457628cb] { width: 70px;
}
.metric-row b[data-v-457628cb] { color: #e8ecf5;
}
.diff-tag[data-v-457628cb] { font-size: 11px; margin-left: auto;
}
.ai-report[data-v-457628cb] { font-size: 13px; color: #c0c8d8; line-height: 1.7; margin: 0;
}
.rank-float[data-v-457628cb] { position: fixed; right: 16px; bottom: 16px; width: 300px; z-index: 1500; padding: 12px;
}
.rank-list[data-v-457628cb] { max-height: 260px; overflow-y: auto;
}
.rank-item[data-v-457628cb] { display: flex; gap: 8px; align-items: center; padding: 6px 4px; border-bottom: 1px dashed #2a3450; cursor: pointer;
}
.rank-no[data-v-457628cb] { width: 20px; height: 20px; border-radius: 50%; background: #232b47; color: #8899b4; font-size: 11px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rank-no.top[data-v-457628cb] { background: rgba(0, 102, 204, .3); color: #4da3ff;
}
.phase2[data-v-457628cb] { opacity: .55;
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-4cd09194] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-4cd09194] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-4cd09194] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-4cd09194] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-4cd09194] { flex: 1; min-width: 0;
}
.hq-btn[data-v-4cd09194] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-4cd09194]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-4cd09194] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-4cd09194]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-4cd09194] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-4cd09194], .hq-select[data-v-4cd09194] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-4cd09194]:focus, .hq-select[data-v-4cd09194]:focus { border-color: #0066CC;
}
.hq-tag[data-v-4cd09194] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-4cd09194] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-4cd09194] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-4cd09194 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-4cd09194] { animation: hq-blink-4cd09194 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-4cd09194 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-4cd09194] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-4cd09194 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-4cd09194] { color: #0066CC;
}
.hq-ev-risk[data-v-4cd09194] { color: #f53f3f;
}
.hq-ev-agent[data-v-4cd09194] { color: #00b42a;
}
.hq-ev-strategy[data-v-4cd09194] { color: #722ed1;
}
.hq-ev-logistics[data-v-4cd09194] { color: #ff7d00;
}
/* —— 页面最外层：显式 padding-top，确保顶部 KPI 卡片完整可见、不被截断 —— */
.sand-root[data-v-4cd09194] { padding-top: 20px;
}
/* —— 顶部 KPI 行：图标+数值+标签；卡片高度 90px；与下方内容间距 16px —— */
.kpi-row[data-v-4cd09194] { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px;
}
.kpi-card[data-v-4cd09194] { flex: 1 1 150px; height: 90px; display: flex; align-items: center; gap: 12px; padding: 0 16px;
}
.kpi-ico[data-v-4cd09194] { font-size: 22px; flex-shrink: 0;
}
.kpi-main[data-v-4cd09194] { min-width: 0;
}
.kpi-num[data-v-4cd09194] { font-size: 24px; font-weight: 700; color: #e8ecf5; line-height: 1.2;
}
.kpi-label[data-v-4cd09194] { font-size: 12px; color: #8899b4; margin-top: 2px;
}
/* —— 二期占位行 —— */
.phase2-row[data-v-4cd09194] { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 12px;
}
.phase2[data-v-4cd09194] { opacity: .55;
}
/* —— 主内容区：左列(参数配置+推演历史 上下各半拉满)｜右区(合并卡+风险 / 趋势图 / AI总结) —— */
/* 行高由右区自然内容驱动；左列 grid stretch 拉满后内部两卡 flex:1 各占 50%，中间不留空白 */
.row-main[data-v-4cd09194] { display: grid; grid-template-columns: 1fr 3fr; gap: 12px; margin-top: 12px; align-items: stretch;
}
.left-column[data-v-4cd09194] { display: flex; flex-direction: column; gap: 12px; min-width: 0; min-height: 0;
}
.left-column .g-params[data-v-4cd09194], .left-column .g-history[data-v-4cd09194] { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column;
}
.right-column[data-v-4cd09194] { display: flex; flex-direction: column; gap: 12px; min-width: 0;
}
.row-core-right[data-v-4cd09194] { display: grid; grid-template-columns: 2fr 1fr; gap: 12px; align-items: stretch;
}
.g-merge[data-v-4cd09194], .g-risk[data-v-4cd09194] { min-height: 0; overflow: hidden; display: flex; flex-direction: column; min-width: 0;
}
/* —— 参数配置卡：内容自然高度，按钮沉底 —— */
.param-body[data-v-4cd09194] { flex: 1; min-height: 0;
}
.param-label[data-v-4cd09194] { display: block; font-size: 11px; margin-bottom: 4px;
}
.param-label .param-val[data-v-4cd09194] { color: #4da3ff; font-weight: 600;
}
.param-ctl[data-v-4cd09194] { width: 100%; margin-bottom: 10px;
}
.slider[data-v-4cd09194] { width: 100%; margin: 4px 0 12px; accent-color: #0066CC;
}
.param-foot[data-v-4cd09194] { flex-shrink: 0; margin-top: auto; padding-top: 8px;
}
.param-foot-row[data-v-4cd09194] { display: flex; gap: 6px; margin-top: 8px;
}
/* —— 合并卡：左右双栏 + 中间 1px 暗色细分隔线 —— */
.merge-head[data-v-4cd09194] { flex-shrink: 0; display: flex; align-items: center;
}
.merge-body[data-v-4cd09194] { flex: 1; min-height: 0; display: flex; align-items: stretch;
}
.merge-col[data-v-4cd09194] { flex: 1; min-width: 0; display: flex; flex-direction: column;
}
.merge-col-title[data-v-4cd09194] { flex-shrink: 0; font-size: 11px; color: #5b6b8c; letter-spacing: 0.5px; margin-bottom: 8px;
}
.merge-col-title.sim[data-v-4cd09194] { color: #4da3ff;
}
.merge-col-body[data-v-4cd09194] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 4px;
}
.merge-divider[data-v-4cd09194] { flex-shrink: 0; width: 1px; background: #2a3450; margin: 0 16px;
}
/* 指标行：标签 12px / 数值 16px；左栏灰色调，右栏蓝色调+涨跌色 */
.metric-row[data-v-4cd09194] { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px;
}
.metric-label[data-v-4cd09194] { width: 64px; font-size: 12px; color: #8899b4; flex-shrink: 0;
}
.metric-row b[data-v-4cd09194] { font-size: 16px; font-weight: 600;
}
.base-val[data-v-4cd09194] { color: #9aa8c4;
}
.sim-val[data-v-4cd09194] { color: #4da3ff;
}
.diff-tag[data-v-4cd09194] { font-size: 11px; margin-left: auto; flex-shrink: 0;
}
.delta-up[data-v-4cd09194] { color: #00b42a;
}
.delta-down[data-v-4cd09194] { color: #f53f3f;
}
/* —— 风险提示：等级颜色区分（高红/中橙/低绿），条目间距 12px，内部局部滚动 —— */
.risk-item[data-v-4cd09194] { display: flex; gap: 8px; align-items: flex-start; border: 1px solid; border-radius: 6px; padding: 8px 10px; margin-bottom: 12px;
}
.risk-item[data-v-4cd09194]:last-child { margin-bottom: 0;
}
.risk-ico[data-v-4cd09194] { font-size: 14px; line-height: 18px; flex-shrink: 0;
}
.risk-main[data-v-4cd09194] { flex: 1; min-width: 0;
}
.risk-line[data-v-4cd09194] { display: flex; align-items: center; gap: 8px; margin-bottom: 4px;
}
.risk-tag[data-v-4cd09194] { font-size: 11px; font-weight: 600; border-radius: 4px; padding: 1px 8px;
}
.risk-impact[data-v-4cd09194] { font-size: 11px; color: #8899b4; margin-left: auto;
}
.risk-desc[data-v-4cd09194] { font-size: 12px; color: #c0c8d8; line-height: 1.6;
}
/* —— 趋势图：横跨右区全区，高度固定 280px（不撑开页面、不受左列布局影响） —— */
.g-chart[data-v-4cd09194] { flex: 0 0 auto; min-width: 0;
}
.trend-chart[data-v-4cd09194] { height: 280px; max-height: 280px;
}
/* —— AI 总结：右区剩余高度拉满，内部局部滚动，不撑开卡片 —— */
.g-summary[data-v-4cd09194] { flex: 1; min-width: 0; min-height: 0; overflow: hidden; display: flex; flex-direction: column;
}
.history-list[data-v-4cd09194] { flex: 1; min-height: 0; overflow-y: auto;
}
.hist-item[data-v-4cd09194] { display: flex; gap: 6px; align-items: center; padding: 7px 4px; border-bottom: 1px dashed #2a3450; cursor: pointer;
}
.hist-item[data-v-4cd09194]:hover, .hist-item.hist-active[data-v-4cd09194] { background: rgba(0, 102, 204, .07);
}
/* —— AI 总结：4-5 段完整文本，内部局部滚动不撑开卡片 —— */
.ai-summary[data-v-4cd09194] { font-size: 13px; color: #c0c8d8; line-height: 1.7;
}
.ai-summary p[data-v-4cd09194] { margin: 0 0 6px;
}
.ai-summary p.blank-line[data-v-4cd09194] { margin: 0 0 4px;
}
.summary-foot[data-v-4cd09194] { flex-shrink: 0; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px;
}
/* 卡片内部内容溢出时开启局部滚动条：文字完整可见、不截断、不溢出卡片外部 */
.card-body[data-v-4cd09194] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
/* —— 小屏适配：不出现模块错乱/重叠 —— */
@media (max-width: 1100px) {
.row-main[data-v-4cd09194] { grid-template-columns: 1fr;
}
.left-column[data-v-4cd09194] { flex-direction: row;
} /* 参数配置+推演历史 左右并排 */
.left-column .g-params[data-v-4cd09194], .left-column .g-history[data-v-4cd09194] { flex: 1;
}
.row-core-right[data-v-4cd09194] { grid-template-columns: 1fr;
}
}
@media (max-width: 640px) {
.left-column[data-v-4cd09194] { flex-direction: column;
}
.kpi-card[data-v-4cd09194] { flex-basis: calc(50% - 6px);
}
}
/* ==================================================================
   蛋哥AI — 全局 Element Plus Table 最高权重深色主题 (v3-final)
   每一条规则均带 !important，覆盖 Element Plus 内置默认样式
   主底: #141824 / 表头: #1c2130 / 悬浮: #1f2638 / 边框: #2d3346
   ================================================================== */

/* ── 表格容器 ── */
.el-table,
.el-table__header-wrapper,
.el-table__body-wrapper,
.el-table__footer-wrapper,
.el-table__inner-wrapper {
  background: #141824 !important;
  width: 100% !important;
}

/* ── 全局列宽自适应 + 文字强制横向排版 ── */
.el-table__body td,
.el-table__body th,
.el-table__header th {
  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: break-word !important;
  min-width: 0 !important;
}

/* Element Plus 内部 .cell 包裹层 — 文字真正所在 */
.el-table__body td .cell,
.el-table__header th .cell {
  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: break-word !important;
  line-height: 1.5 !important;
  min-width: 0 !important;
}

/* ── 表头 ── */
.el-table__header th,
.el-table__header tr {
  background: #1c2130 !important;
  color: #e5e7eb !important;
  border-bottom: 1px solid #2d3346 !important;
  border-right: 1px solid #2d3346 !important;
  font-weight: 600 !important;
}
.el-table__header th:last-child { border-right: none !important; }

/* ── 表体 ── */
.el-table__body td {
  background: #141824 !important;
  color: #d1d5db !important;
  border-bottom: 1px solid #2d3346 !important;
  border-right: 1px solid #2d3346 !important;
}
.el-table__body td:last-child { border-right: none !important; }
.el-table__body tr { background: #141824 !important; }

/* ── 行悬浮 ── */
.el-table__body tr:hover > td { background: #1f2638 !important; }
.el-table__body tr:hover { background: #1f2638 !important; }

/* ── 禁用所有形式的斑马纹 ── */
.el-table__row--striped td,
.el-table--striped .el-table__body tr.el-table__row--striped td {
  background: #141824 !important;
}

/* ── 空数据 / 加载 ── */
.el-table__empty-block,
.el-table__empty-text {
  background: #141824 !important;
  color: #8b949e !important;
}

/* ── 分页 ── */
.el-pagination { background: #141824 !important; }
.el-pagination button,
.el-pagination .el-pager li {
  background: #1c2130 !important;
  color: #d1d5db !important;
  border-color: #2d3346 !important;
}
.el-pagination .el-pager li.active {
  background: #3b82f6 !important;
  color: #e5e7eb !important;
}
.el-pagination .el-pager li:hover:not(.active) {
  background: #1f2638 !important;
}

/* ── 滚动条 ── */
.el-table__body-wrapper::-webkit-scrollbar { width: 6px !important; height: 6px !important; }
.el-table__body-wrapper::-webkit-scrollbar-track { background: #141824 !important; }
.el-table__body-wrapper::-webkit-scrollbar-thumb { background: #2d3346 !important; border-radius: 3px !important; }
.el-table__body-wrapper::-webkit-scrollbar-thumb:hover { background: #3d4456 !important; }
.el-table__body-wrapper { scrollbar-color: #2d3346 #141824 !important; scrollbar-width: thin !important; }

/* ── 边框 ── */
.el-table,
.el-table__body,
.el-table__header { border-color: #2d3346 !important; }
.el-table td,
.el-table th { border-color: #2d3346 !important; }

/* ── 固定列 ── */
.el-table__fixed-right-patch,
.el-table__fixed,
.el-table__fixed-body-wrapper {
  background: #141824 !important;
}
.el-table__fixed-header-wrapper th,
.el-table__fixed-body-wrapper td {
  background: #141824 !important;
  white-space: normal !important;
  word-break: break-all !important;
}

/* ── 展开行 / 选择框 / 排序图标 ── */
.el-table__expand-icon,
.el-table__indent { background: #141824 !important; }
.el-table th > .cell .caret-wrapper { color: #8b949e !important; }

/* ── 代码块全局深色 ── */
.code-block { background: #0d1117 !important; border: 1px solid #2d3346 !important; }
.cb-head { background: #1c2130 !important; color: #8b949e !important; border-bottom: 1px solid #2d3346 !important; }

/* ==================================================================
   ComfyUI 工作流模板 — 全局下拉选择框深色主题
   覆盖所有 Element Plus popper 下拉菜单
   ================================================================== */

/* ── 下拉选择框面板 ── */
.wf-dark-popper,
.el-popper.is-pure,
.el-select-dropdown {
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
}

.wf-dark-popper .el-select-dropdown__item,
.el-select-dropdown .el-select-dropdown__item {
  background: #1c2130 !important;
  color: #d1d5db !important;
  font-size: 13px !important;
  height: 36px !important;
  line-height: 36px !important;
}

.wf-dark-popper .el-select-dropdown__item.hover,
.wf-dark-popper .el-select-dropdown__item:hover,
.el-select-dropdown .el-select-dropdown__item.hover,
.el-select-dropdown .el-select-dropdown__item:hover {
  background: #1f2638 !important;
  color: #e5e7eb !important;
}

.wf-dark-popper .el-select-dropdown__item.selected,
.el-select-dropdown .el-select-dropdown__item.selected {
  background: #1f2638 !important;
  color: #60a5fa !important;
  font-weight: 600 !important;
}

/* 下拉框空数据 */
.wf-dark-popper .el-select-dropdown__empty,
.el-select-dropdown .el-select-dropdown__empty {
  background: #1c2130 !important;
  color: #6b7280 !important;
}

/* ── 全局复选框深色 ── */
.el-checkbox__inner {
  background: #1c2130 !important;
  border: 1px solid #4b5563 !important;
  border-radius: 3px !important;
}

.el-checkbox__input.is-checked .el-checkbox__inner {
  background: #3b82f6 !important;
  border-color: #3b82f6 !important;
}

.el-checkbox__input.is-indeterminate .el-checkbox__inner {
  background: #3b82f6 !important;
  border-color: #3b82f6 !important;
}

.el-checkbox__label {
  color: #d1d5db !important;
  font-size: 13px !important;
}

/* ── 全局输入框深色覆盖 ── */
.el-input__wrapper {
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  box-shadow: none !important;
}

.el-input__inner {
  color: #d1d5db !important;
}

.el-input__inner::placeholder {
  color: #6b7280 !important;
}

/* ── 全局文本域深色 ── */
.el-textarea__inner {
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  color: #d1d5db !important;
}

.el-textarea__inner::placeholder {
  color: #6b7280 !important;
}

/* ── 全局数字输入框深色 ── */
.el-input-number .el-input__wrapper {
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
}

.el-input-number__decrease,
.el-input-number__increase {
  background: #2a3147 !important;
  color: #d1d5db !important;
  border-color: #2d3346 !important;
}

.el-input-number__decrease:hover,
.el-input-number__increase:hover {
  background: #333c54 !important;
  color: #e5e7eb !important;
}

/* ── 全局对话框深色覆盖 ── */
.el-dialog {
  --el-dialog-bg-color: #141824 !important;
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
}

.el-dialog__header {
  background: #1c2130 !important;
  border-bottom: 1px solid #2d3346 !important;
}

.el-dialog__title {
  color: #e5e7eb !important;
}

.el-dialog__body {
  background: #141824 !important;
  color: #d1d5db !important;
}

.el-dialog__footer {
  background: #141824 !important;
  border-top: 1px solid #2d3346 !important;
}

/* ── 全局空状态深色 ── */
.el-empty__description {
  color: #6b7280 !important;
}

.el-empty__image svg {
  fill: #1c2130 !important;
}

/* ── 全局描述列表深色 ── */
.el-descriptions {
  --el-descriptions-table-border: 1px solid #2d3346 !important;
}

.el-descriptions__label {
  background: #1c2130 !important;
  color: #9ca3af !important;
}

.el-descriptions__content {
  background: #141824 !important;
  color: #d1d5db !important;
}

/* ── 全局确认框深色覆盖 ── */
.el-message-box {
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
}

.el-message-box__title {
  color: #e5e7eb !important;
}

.el-message-box__message {
  color: #d1d5db !important;
}

.el-message-box__header {
  background: #1c2130 !important;
  border-bottom: 1px solid #2d3346 !important;
}

.el-message-box__content {
  color: #d1d5db !important;
}

/* ── 全局标签深色重置（将被组件级样式覆盖，此处为 fallback）── */
.el-tag {
  --el-tag-bg-color: #2a3147 !important;
  --el-tag-border-color: #3d4456 !important;
  --el-tag-text-color: #d1d5db !important;
}

/* ── 全局按钮组间距 ── */
.el-button + .el-button {
  margin-left: 8px !important;
}

/* ── 骨架屏/加载深色 ── */
.el-loading-mask {
  background: rgba(20, 24, 36, 0.85) !important;
}

.el-loading-text {
  color: #6b7280 !important;
}

/* ── 全局进度条深色 ── */
.el-progress-bar__outer {
  background: #1c2130 !important;
}

/* ── ComfyUI select 专用 popper 钩子 ── */
.wf-dark-popper .el-select-dropdown__item.hover,
.wf-dark-popper .el-select-dropdown__item:hover {
  background: #1f2638 !important;
}

/* ── 确保所有 popper 箭头深色 ── */
.el-popper__arrow::before {
  background: #1c2130 !important;
  border-color: #2d3346 !important;
}
/* ============================================================================
   Hermes Headquarters — Dark Theme Variables
   全局深色主题锁定：页面底色 #0F1423，卡片容器 #171D36
   ============================================================================ */

:root {
  /* ── Page & Card Backgrounds ── */
  --hermes-page-bg: #0F1423;
  --hermes-card-bg: #171D36;
  --hermes-card-bg-hover: #1C2340;
  --hermes-card-border: #1E2745;

  /* ── Text Colors ── */
  --hermes-text-primary: #E4E7F0;
  --hermes-text-secondary: #8B93B0;
  --hermes-text-muted: #5C6480;

  /* ── Accent Colors ── */
  --hermes-accent-blue: #3b82f6;
  --hermes-accent-green: #10b981;
  --hermes-accent-orange: #f59e0b;
  --hermes-accent-red: #ef4444;
  --hermes-accent-cyan: #06b6d4;

  /* ── Status Colors ── */
  --hermes-status-normal: #10b981;
  --hermes-status-warning: #f59e0b;
  --hermes-status-fusing: #f97316;
  --hermes-status-fault: #ef4444;
  --hermes-status-archived: #5C6480;

  /* ── Stat Card ── */
  --hermes-stat-bg: linear-gradient(135deg, rgba(23,29,54,0.95) 0%, rgba(15,20,35,0.98) 100%);
  --hermes-stat-glow: linear-gradient(90deg, transparent, rgba(59,130,246,0.3), transparent);

  /* ── Charts (ECharts) ── */
  --hermes-chart-bg: transparent;
  --hermes-chart-grid: #1E2745;
  --hermes-chart-axis-label: #8B93B0;
  --hermes-chart-axis-line: #1E2745;

  /* ── Form Controls ── */
  --hermes-input-bg: #0F1423;
  --hermes-input-border: #1E2745;
  --hermes-input-focus-border: #3b82f6;
  --hermes-input-text: #E4E7F0;
  --hermes-input-placeholder: #5C6480;

  /* ── Table ── */
  --hermes-table-header-bg: #171D36;
  --hermes-table-row-hover: rgba(59,130,246,0.06);
  --hermes-table-border: #1E2745;
  --hermes-table-stripe: rgba(255,255,255,0.02);

  /* ── Tags / Badges ── */
  --hermes-tag-normal-bg: rgba(16,185,129,0.15);
  --hermes-tag-normal-text: #10b981;
  --hermes-tag-warning-bg: rgba(245,158,11,0.15);
  --hermes-tag-warning-text: #f59e0b;
  --hermes-tag-danger-bg: rgba(239,68,68,0.15);
  --hermes-tag-danger-text: #ef4444;
  --hermes-tag-info-bg: rgba(59,130,246,0.15);
  --hermes-tag-info-text: #3b82f6;
}

.page-fade-enter-active,
.page-fade-leave-active {
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.page-fade-enter-from {
  opacity: 0;
  transform: translateY(8px);
}
.page-fade-leave-to {
  opacity: 0;
  transform: translateY(-4px);
}
.search-overlay[data-v-e688ac9b] {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: flex;
  justify-content: center;
  padding-top: 15vh;
  background: rgba(0, 0, 0, 0.55);
}
.search-dialog[data-v-e688ac9b] {
  width: 560px;
  max-height: 60vh;
  display: flex;
  flex-direction: column;
  align-self: flex-start;
}
.search-results[data-v-e688ac9b] {
  margin-top: 8px;
  background: #1d2028;
  border: 1px solid #2a2d35;
  border-radius: 8px;
  overflow-y: auto;
  max-height: 320px;
}
.no-results[data-v-e688ac9b] {
  padding: 24px;
  text-align: center;
  color: #6b7280;
  font-size: 13px;
}
.result-item[data-v-e688ac9b] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  cursor: pointer;
  color: #b0b8c8;
}
.result-item.active[data-v-e688ac9b], .result-item[data-v-e688ac9b]:hover {
  background: rgba(64, 158, 255, 0.12);
}
.result-info[data-v-e688ac9b] {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.result-zone[data-v-e688ac9b] {
  font-size: 11px;
  color: #6b7280;
}
.result-label[data-v-e688ac9b] {
  font-size: 13px;
  color: #e0e4ec;
}.insight-bar[data-v-783d0cf9] {
  background: rgba(20, 23, 30, 0.95);
  border-bottom: 1px solid #1e222b;
  overflow: hidden;
  flex-shrink: 0;
}
.insight-bar.has-p0[data-v-783d0cf9] {
  border-left: 3px solid #f56c6c;
}
.insight-inner[data-v-783d0cf9] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  min-height: 0;
}
.insight-p0-tag[data-v-783d0cf9] {
  background: #f56c6c;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 2px;
  letter-spacing: 1px;
  flex-shrink: 0;
  animation: p0Pulse-783d0cf9 1.5s ease infinite;
}
@keyframes p0Pulse-783d0cf9 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.6;
}
}
.insight-scroll[data-v-783d0cf9] {
  flex: 1;
  display: flex;
  gap: 24px;
  overflow-x: auto;
  padding: 10px 0;
  scrollbar-width: thin;
}
.insight-scroll[data-v-783d0cf9]::-webkit-scrollbar {
  height: 3px;
}
.insight-scroll[data-v-783d0cf9]::-webkit-scrollbar-thumb {
  background: #2a2d35;
  border-radius: 2px;
}
.insight-item[data-v-783d0cf9] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  font-size: 13px;
  white-space: nowrap;
  padding: 4px 10px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.03);
}
.insight-item.P0[data-v-783d0cf9] {
  border-left: 2px solid #f56c6c;
}
.insight-item.P1[data-v-783d0cf9] {
  border-left: 2px solid #ffb800;
}
.insight-icon[data-v-783d0cf9] {
  flex-shrink: 0;
}
.insight-title[data-v-783d0cf9] {
  font-weight: 600;
  color: #e8ecf2;
}
.insight-desc[data-v-783d0cf9] {
  color: #8892a4;
  max-width: 360px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.insight-actions[data-v-783d0cf9] {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}
.insight-btn[data-v-783d0cf9] {
  font-size: 11px;
  padding: 2px 10px;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  font-weight: 600;
  transition: background 0.15s;
}
.insight-btn.isolate[data-v-783d0cf9] {
  background: rgba(64, 158, 255, 0.15);
  color: #409eff;
}
.insight-btn.isolate[data-v-783d0cf9]:hover {
  background: rgba(64, 158, 255, 0.25);
}
.insight-btn.ignore[data-v-783d0cf9] {
  background: rgba(255, 255, 255, 0.06);
  color: #8892a4;
}
.insight-btn.ignore[data-v-783d0cf9]:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #c0c6d0;
}
.insight-close[data-v-783d0cf9] {
  flex-shrink: 0;
  background: none;
  border: none;
  color: #5a6270;
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  transition: color 0.15s, background 0.15s;
}
.insight-close[data-v-783d0cf9]:hover {
  color: #e8ecf2;
  background: rgba(255, 255, 255, 0.06);
}

/* Transition */
.insight-slide-enter-active[data-v-783d0cf9],
.insight-slide-leave-active[data-v-783d0cf9] {
  transition: all 0.3s ease;
  max-height: 60px;
}
.insight-slide-enter-from[data-v-783d0cf9],
.insight-slide-leave-to[data-v-783d0cf9] {
  max-height: 0;
  opacity: 0;
}
/* ======================================================================
   Shell — 全屏容器
   ====================================================================== */
.dashboard-shell[data-v-aa07bcd8] {
  width: 100%;
  min-height: 100vh;
  background: #0D1117;
}

/* ======================================================================
   Header — 64px 固定顶栏
   ====================================================================== */
.app-header[data-v-aa07bcd8] {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  background: #001529;
  border-bottom: 1px solid #30363D;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);
  z-index: 200;
  box-sizing: border-box;
}
.header-left[data-v-aa07bcd8] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.logo-img[data-v-aa07bcd8] {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  object-fit: contain;
  flex-shrink: 0;
}
.system-name[data-v-aa07bcd8] {
  font-size: 20px;
  font-weight: 600;
  color: #FFFFFF;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  white-space: nowrap;
}
.header-right[data-v-aa07bcd8] {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* breadcrumb — 深灰 #333 清晰可见 */
[data-v-aa07bcd8] .el-breadcrumb__inner {
  color: #FFFFFF !important;
  font-weight: 400;
}
[data-v-aa07bcd8] .el-breadcrumb__inner.is-link:hover {
  color: #FFFFFF !important;
}
[data-v-aa07bcd8] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #FFFFFF !important;
  font-weight: 600;
}
[data-v-aa07bcd8] .el-breadcrumb__separator {
  color: #999 !important;
}
.header-actions[data-v-aa07bcd8] {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #666;
  cursor: pointer;
}
.header-actions .el-icon[data-v-aa07bcd8] {
  transition: color 0.15s;
}
.header-actions .el-icon[data-v-aa07bcd8]:hover {
  color: #FFFFFF;
}

/* ======================================================================
   Body — 顶部固定 Header 之下的 Flex 横向分栏容器（2026-09-05 布局整改：
   侧边栏不再 fixed 浮层覆盖全屏，改为 flex 子项；页面滚动全部收敛到右侧 main）
   ====================================================================== */
.dashboard-body[data-v-aa07bcd8] {
  display: flex;
  margin-top: 64px;
  height: calc(100vh - 64px);
  overflow: hidden;
}

/* ======================================================================
   Aside — 264px 侧边栏（flex 子项，固定宽度，取消 fixed 脱离文档流）
   侧边栏内部独立滚动：菜单超长仅侧边栏内部滚动，位置固定不动
   ====================================================================== */
.app-aside[data-v-aa07bcd8] {
  width: 264px;
  height: 100%;
  flex-shrink: 0;
  display: flex;
  overflow: hidden;
  background: #171D36;
  border-right: 1px solid #30363D;
}

/* ----- 左 64px 图标列（内部独立滚动） ----- */
.aside-icons[data-v-aa07bcd8] {
  width: 64px;
  min-width: 64px;
  max-width: 64px;
  height: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow-y: auto;
  overflow-x: hidden;
  background: #0F1423;
  border-right: 1px solid #30363D;
}
.aside-brand-placeholder[data-v-aa07bcd8] {
  width: 100%;
  height: 80px;
  flex-shrink: 0;
  background: #0D1117;
}
.nav-icon[data-v-aa07bcd8] {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  cursor: pointer;
  color: #8B949E;
  margin-top: 6px;
  transition: color 0.15s, background 0.15s;
}
.nav-icon[data-v-aa07bcd8]:hover {
  background: rgba(31, 107, 158, 0.1);
  color: #FFFFFF;
}
.nav-icon.active[data-v-aa07bcd8] {
  background: rgba(31, 107, 158, 0.15);
  color: #FFFFFF;
}

/* ----- 中 200px 菜单列（内部独立滚动） ----- */
.aside-menu[data-v-aa07bcd8] {
  width: 200px;
  min-width: 200px;
  max-width: 200px;
  height: 100%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  background: #171D36;
}
.middle-title[data-v-aa07bcd8] {
  height: 56px;
  min-height: 56px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 600;
  color: #FFFFFF;
  border-bottom: 1px solid #30363D;
  background: #171D36;
}

/* ----- el-menu 亮色主题 + 主次视觉分级 ----- */
.tree-menu[data-v-aa07bcd8] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 0;
  border-right: none !important;
  /* ——— 二级分组标题 ——— */
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu__title {
  height: 40px;
  line-height: 40px;
  padding-left: 16px !important;
  font-size: 13px;
  font-weight: 400;
  color: #8B949E;
  opacity: 0.88;
  transition: opacity 0.15s, color 0.15s, background 0.15s;
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu__title:hover {
  color: #FFFFFF;
  background: rgba(31, 107, 158, 0.06);
  opacity: 1;
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu__title .el-icon {
  margin-right: 6px;
  flex-shrink: 0;
}
.tree-menu[data-v-aa07bcd8] {
  /* 主模块标题（全域指挥舱 / 监控中心）→ 更高字重、更高不透明度 */
}
.tree-menu[data-v-aa07bcd8] .primary-group > .el-sub-menu__title {
  font-weight: 600;
  opacity: 1;
  color: #8B949E;
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu.is-opened > .el-sub-menu__title {
  color: #FFFFFF;
  font-weight: 600;
  opacity: 1;
  /* 展开时箭头旋转 90deg */
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu.is-opened > .el-sub-menu__title .el-sub-menu__icon-arrow {
  transform: rotate(90deg);
  transition: transform 0.3s ease;
}
.tree-menu[data-v-aa07bcd8] {
  /* 折叠时箭头恢复 */
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu > .el-sub-menu__title .el-sub-menu__icon-arrow {
  transform: rotate(0deg);
  transition: transform 0.3s ease;
}
.tree-menu[data-v-aa07bcd8] {
  /* ——— 菜单标题文字截断 ——— */
}
.tree-menu .menu-title-text[data-v-aa07bcd8] {
  display: inline-block;
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
.tree-menu[data-v-aa07bcd8] {
  /* ——— 三级叶子菜单项 ——— */
}
.tree-menu[data-v-aa07bcd8] .el-menu-item {
  height: 36px;
  line-height: 36px;
  margin: 1px 8px;
  border-radius: 6px;
  font-size: 12px;
  padding-left: 20px !important;
  border-left: 3px solid transparent;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.tree-menu[data-v-aa07bcd8] .el-menu-item:hover {
  background: rgba(31, 107, 158, 0.1) !important;
  color: #FFFFFF !important;
}
.tree-menu[data-v-aa07bcd8] .el-menu-item.is-active {
  background: rgba(31, 107, 158, 0.15) !important;
  color: #58a6ff !important;
  font-weight: 600;
  border-left-color: #58a6ff;
}
.tree-menu[data-v-aa07bcd8] {
  /* 二级分组内的子菜单向右缩进，形成树状层级 */
}
.tree-menu[data-v-aa07bcd8] .el-sub-menu .el-menu .el-menu-item {
  padding-left: 38px !important;
}
.tree-menu .menu-leaf-icon[data-v-aa07bcd8] {
  margin-right: 6px;
  flex-shrink: 0;
}
.tree-menu .menu-leaf-text[data-v-aa07bcd8] {
  display: inline-block;
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}
.tree-menu[data-v-aa07bcd8] .el-menu {
  background: transparent !important;
}

/* ======================================================================
   Main — 右侧内容区（flex:1 自适应剩余宽度，业务页面滚动限定在本区）
   ====================================================================== */
.main-content[data-v-aa07bcd8] {
  flex: 1;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #0f172a;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.content-view[data-v-aa07bcd8] {
  height: 100%;
  min-height: 100%;
  box-sizing: border-box;
}

/* ——— IAM 停用租户横幅 ——— */
.suspended-banner[data-v-aa07bcd8] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 16px;
  padding: 8px 16px;
  background: rgba(245, 108, 108, 0.08);
  border: 1px solid rgba(245, 108, 108, 0.25);
  border-radius: 6px;
  font-size: 13px;
  color: #f56c6c;
}
.suspended-icon[data-v-aa07bcd8] {
  font-size: 16px;
  flex-shrink: 0;
}
.suspended-text[data-v-aa07bcd8] {
  flex: 1;
  min-width: 0;
}
.suspended-dismiss[data-v-aa07bcd8] {
  flex-shrink: 0;
  color: #f56c6c !important;
}

/* 菜单徽标 — 告警计数 + 跳动动画 */
.menu-badge[data-v-aa07bcd8] {
  margin-left: auto;
}
.menu-badge[data-v-aa07bcd8] .el-badge__content {
  font-size: 10px;
  font-weight: 700;
}
.menu-badge[data-v-aa07bcd8] {
  /* 超过99条时跳动动画 */
}
.menu-badge[data-v-aa07bcd8]:has( .el-badge__content.is-fixed) {
  animation: badgePulse-aa07bcd8 0.6s ease infinite;
}
@keyframes badgePulse-aa07bcd8 {
0%, 100% {
    transform: scale(1);
}
50% {
    transform: scale(1.15);
}
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  overflow: hidden;
  background: #0A0F1E !important;
  color: #E8ECF1;
  font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size: 14px;
  line-height: 1.6;
}

#app {
  height: 100%;
  background: #0A0F1E !important;
}

/* ═══ 数字等宽字体全局应用 ═══ */
[data-mono], .mono, .score-value, .kpi-val, .data-num, .stat-value {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-variant-numeric: tabular-nums;
}

/* ======================================================================
   深色科技风 Token — 店铺矩阵 & 全局可用
   ====================================================================== */
:root {
  /* ═══ 背景色 (极夜黑 + 深海蓝体系) ═══ */
  --bg-primary: #0A0F1E;
  --bg-secondary: #141B31;
  --bg-card: #141B31;
  --bg-card-hover: #1A2340;
  --bg-hover: #1A2340;
  --bg-overlay: rgba(10, 15, 30, 0.85);
  /* ═══ 品牌色 ═══ */
  --brand-blue: #3b82f6;
  --brand-green: #00C48C;
  --brand-orange: #FFA726;
  --brand-red: #FF4D4F;
  --brand-cyan: #00D4FF;
  /* ═══ 状态色 (新三色体系) ═══ */
  --status-pass: #00C48C;
  --status-optimize: #FFA726;
  --status-eliminate: #FF4D4F;
  --status-highlight: #00D4FF;
  /* ═══ 文字色 ═══ */
  --text-primary: #E8ECF1;
  --text-secondary: #8899AA;
  --text-muted: #556677;
  --text-disabled: #3A4556;
  /* ═══ 边框 ═══ */
  --border-color: rgba(255, 255, 255, 0.06);
  --border-light: rgba(255, 255, 255, 0.04);
  /* ═══ 圆角 ═══ */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  /* ═══ 间距 ═══ */
  --gap-xs: 8px;
  --gap-sm: 12px;
  --gap-md: 16px;
  --gap-lg: 24px;
  /* ═══ 字体 ═══ */
  --font-title: 20px;
  --font-body: 14px;
  --font-data: 24px;
  --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
}

/* ======================================================================
   品牌 CSS 变量 — 主色 #1A3E72 (原有)
   ====================================================================== */
:root {
  --brand-primary: #1A3E72;
  --brand-primary-hover: #254f8e;
  --brand-primary-light: rgba(26, 62, 114, 0.08);
  --brand-primary-bg: rgba(26, 62, 114, 0.15);
  --el-color-primary: #1A3E72;
  --el-color-primary-light-3: #254f8e;
  --el-color-primary-light-5: #3a629e;
  --el-color-primary-light-7: #6a8db8;
  --el-color-primary-light-9: #d0dae8;
  --el-color-primary-dark-2: #15325c;
  /* —— 三色状态系统 (红 / 黄 / 绿) —— */
  --el-color-success: #00C48C;
  --el-color-success-light-3: #33d0a3;
  --el-color-success-light-5: #66dbb9;
  --el-color-success-light-7: #99e8d0;
  --el-color-success-light-9: #ccf3e7;
  --el-color-success-dark-2: #009d70;
  --el-color-warning: #FFA726;
  --el-color-warning-light-3: #ffb951;
  --el-color-warning-light-5: #ffca7d;
  --el-color-warning-light-7: #ffdca8;
  --el-color-warning-light-9: #ffedd4;
  --el-color-warning-dark-2: #cc861e;
  --el-color-danger: #FF4D4F;
  --el-color-danger-light-3: #ff7172;
  --el-color-danger-light-5: #ff9495;
  --el-color-danger-light-7: #ffb8b8;
  --el-color-danger-light-9: #ffdbdc;
  --el-color-danger-dark-2: #cc3e3f;
  /* Element Plus 也使用 --el-color-error 别名 */
  --el-color-error: var(--el-color-danger);
  --el-color-error-light-3: var(--el-color-danger-light-3);
  --el-color-error-light-5: var(--el-color-danger-light-5);
  --el-color-error-light-7: var(--el-color-danger-light-7);
  --el-color-error-light-9: var(--el-color-danger-light-9);
  --el-color-error-dark-2: var(--el-color-danger-dark-2);
  --el-bg-color: #0A0F1E;
  --el-bg-color-overlay: #141B31;
  --el-border-color: rgba(255,255,255,0.06);
  --el-border-color-light: rgba(255,255,255,0.04);
  --el-text-color-primary: #E8ECF1;
  --el-text-color-regular: #C8D0D8;
  --el-text-color-secondary: #8899AA;
  --el-fill-color: #141B31;
  --el-fill-color-light: #1A2340;
}

/* Override ElMessage/ElMessageBox z-index stacking */
.el-message {
  z-index: 3000 !important;
}

.el-message-box {
  z-index: 3000 !important;
}

/* Scrollbar styling — 深色融合 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #1E293B;
}

::-webkit-scrollbar-thumb {
  background: #334155;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #475569;
}

/* ======================================================================
   全局弹窗表单样式规范（最终设计稿）
   涵盖：店铺矩阵 / AI 作战 / 特工中心 所有弹窗
   ====================================================================== */
/* 1. 弹窗容器 */
.el-dialog,
.el-dialog__wrapper {
  background-color: #141B31 !important;
}

/* 2. 弹窗标题栏 */
.el-dialog__header {
  background-color: #1A2340 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 15px 20px !important;
}

/* 3. 弹窗内容区 */
.el-dialog__body {
  background-color: #141B31 !important;
  padding: 20px !important;
  color: #E8ECF1 !important;
}

/* 4. 输入框/下拉框/文本域 */
.el-input__wrapper,
.el-select__wrapper,
.el-textarea__wrapper {
  background-color: #141B31 !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  height: 36px !important;
  line-height: 36px !important;
}

/* 5. 输入框内部文字 */
.el-input__inner,
.el-select__input,
.el-textarea__inner {
  color: #E8ECF1 !important;
  font-size: 14px !important;
}

/* 6. 占位符 */
.el-input__inner::placeholder {
  color: #94a3b8 !important;
}

/* 7. 主要按钮（确认/保存/新增） — 天蓝 */
.el-button--primary {
  background-color: #1f6b9e !important;
  border-color: #1f6b9e !important;
  color: #FFFFFF !important;
  border-radius: 4px !important;
  padding: 8px 16px !important;
}

.el-button--primary:hover {
  background-color: #2580b8 !important;
  border-color: #2580b8 !important;
}

/* 8. 次要按钮（取消） — 深灰蓝（核弹级覆盖） */
.el-button--default,
.el-dialog .el-button--default,
.el-dialog__wrapper .el-button--default,
.el-dialog .el-button:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger),
.modal-footer .el-button--default,
.modal-footer .btn-secondary,
.modal-footer .btn-cancel {
  background-color: #1A1D29 !important;
  border: 1px solid #30363D !important;
  color: #FFFFFF !important;
  border-radius: 4px !important;
  padding: 8px 16px !important;
}

.el-button--default:hover,
.el-dialog .el-button--default:hover,
.modal-footer .btn-secondary:hover {
  background-color: #30363D !important;
  border-color: #3b82f6 !important;
  color: #FFFFFF !important;
}

/* 17. ElMessageBox 弹窗深色按钮覆盖（召回确认等场景） */
.el-message-box {
  background-color: #161B22 !important;
  border: 1px solid #30363D !important;
}

.el-message-box__header {
  background-color: #1A1D29 !important;
  border-bottom: 1px solid #30363d !important;
}

.el-message-box__title {
  color: #E8ECF1 !important;
}

.el-message-box__content {
  color: #E8ECF1 !important;
}

.el-message-box__message {
  color: #E8ECF1 !important;
}

/* ElMessageBox Cancel / non-primary 按钮 — 深灰，严禁白色 */
.el-message-box .el-button:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger) {
  background-color: #21262d !important;
  border: 1px solid #30363D !important;
  color: #E8ECF1 !important;
}

.el-message-box .el-button:not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger):hover {
  background-color: #30363d !important;
  border-color: #58a6ff !important;
  color: #E8ECF1 !important;
}

/* ElMessageBox 主按钮保持深蓝品牌色 */
.el-message-box .el-button--primary {
  background-color: #1f6b9e !important;
  border-color: #1f6b9e !important;
  color: #FFFFFF !important;
}

/* ── 全局深灰次按钮（幽灵风格 — 透明底 + 细边框）── */
.btn-gray, .el-button.btn-gray {
  background: #21262D !important;
  border: 1px solid #30363D !important;
  color: #E8ECF1 !important;
}

.btn-gray:hover, .el-button.btn-gray:hover {
  background: #30363D !important;
  border-color: #3b82f6 !important;
  color: #1f6b9e !important;
}

/* ── 表单必填星号 & 占位符统一 ── */
.el-form-item.is-required .el-form-item__label::before {
  color: #ff7b72 !important;
}

.el-input__inner::placeholder,
.el-textarea__inner::placeholder {
  color: #6e7681 !important;
}

/* 9. 下拉选项 */
.el-select-dropdown__item {
  background-color: #141B31 !important;
  color: #E2E8F0 !important;
}

.el-select-dropdown__item.selected {
  background-color: #1890FF !important;
  color: #FFFFFF !important;
}

/* 10. 弹窗标题 */
.el-dialog__title {
  color: #FFFFFF !important;
}

/* 11. 弹窗遮罩 */
.el-overlay {
  background: rgba(10, 15, 30, 0.75) !important;
}

/* 12. 表单标签 */
.el-form-item__label {
  color: #FFFFFF !important;
}

/* 13. 展示区保护 — 卡片/表格行/抽屉/列表 */
.el-card {
  background-color: #141B31 !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  color: #E8ECF1 !important;
}

.el-drawer {
  background-color: #161B22 !important;
  color: #E8ECF1 !important;
}

.el-table__row,
.el-table tbody tr td {
  background-color: #161B22 !important;
  color: #E8ECF1 !important;
  border-bottom: 1px solid #30363D !important;
}

.el-list-item {
  background-color: #161B22 !important;
  border-bottom: 1px solid #30363D !important;
}

.el-menu-item.is-active {
  background-color: #161B22 !important;
  color: #E8ECF1 !important;
  font-weight: 700 !important;
}

.el-dialog .dt-section {
  border-bottom: 1px solid #30363D !important;
  padding-bottom: 12px;
  margin-bottom: 12px;
}

/* 14. 代理与指纹展示区 — 表格宽度 */
.proxy-fingerprint-table {
  width: 100% !important;
  overflow-x: auto;
}

.proxy-fingerprint-table .el-table {
  width: 100% !important;
}

/* 15. 描述列表 */
.el-descriptions {
  --el-descriptions-table-border: 1px solid #334155;
  --el-descriptions-item-bordered-label-background: #F5F7FA;
}

/* 16. 任务详情弹窗底部按钮 — 全局兜底 */
.task-detail-footer .btn-restart,
.modal-footer .btn-restart {
  background-color: #52C41A !important;
  color: #FFFFFF !important;
}

.task-detail-footer .btn-stop,
.modal-footer .btn-stop {
  background-color: #FAAD14 !important;
  color: #000000 !important;
}

.task-detail-footer .btn-close,
.modal-footer .btn-close {
  background-color: #8C8C8C !important;
  color: #FFFFFF !important;
}

.task-detail-footer .btn-reassign,
.modal-footer .btn-reassign {
  background-color: #1890FF !important;
  color: #FFFFFF !important;
}

.el-radio-button__inner {
  background: #21262D !important;
  border-color: #30363D !important;
  color: #8B949E !important;
}

.el-radio-button.is-active .el-radio-button__inner {
  background: #1f6b9e !important;
  border-color: #1f6b9e !important;
  color: #FFFFFF !important;
}

/* ======================================================================
   表格紧凑模式 — 仅在 .table-compact 包裹内生效
   ====================================================================== */
.table-compact .el-table td.el-table__cell {
  padding: 12px 0 !important;
  line-height: 1.5 !important;
}
.table-compact .el-table__row {
  height: auto !important;
}

/* ======================================================================
   表格排版规范化 — 时间右对齐 / 数字右对齐 / 长文本截断 / 暗色底色
   ====================================================================== */
/* ——— 列对齐工具类 ——— */
.col-time,
.col-num {
  font-variant-numeric: tabular-nums;
}

.col-time .cell,
.col-num .cell {
  text-align: right;
  padding-right: 12px;
}

/* ——— 长文本截断 + 强制 tooltip 兜底 ——— */
.col-long-text .cell {
  max-width: 280px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ——— 暗色主题表格（显式 opt-in） ——— */
/* 方式1：在 el-table 上直接加 class="el-table--dark" */
/* 方式2：在包裹卡片上加 class="table-dark-wrapper"，内部所有表格自动适配 */
.el-table--dark,
.table-dark-wrapper .el-table {
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: rgba(255, 255, 255, 0.04);
  --el-table-border-color: #2a2d35;
  --el-table-text-color: #c0c6d0;
  --el-table-header-text-color: #8892a0;
  --el-table-row-hover-bg-color: rgba(255, 255, 255, 0.05);
}

.el-table--dark .el-table__header-wrapper th,
.table-dark-wrapper .el-table .el-table__header-wrapper th {
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}

.el-table--dark .el-table__body-wrapper tr,
.table-dark-wrapper .el-table .el-table__body-wrapper tr {
  transition: background 0.15s;
}

.el-table--dark.el-table--striped .el-table__body tr.el-table__row--striped td,
.table-dark-wrapper .el-table--striped .el-table__body tr.el-table__row--striped td {
  background: rgba(255, 255, 255, 0.02);
}

/* ——— 全局 el-table 单元格字体等宽数字 ——— */
.el-table .el-table__cell .cell {
  font-variant-numeric: tabular-nums;
}

/* ======================================================================
   三色状态直接覆写 — 确保 Tag/Button/Badge 绝对生效
   解决 Element Plus 内部样式优先级覆盖 CSS 变量的问题
   ====================================================================== */
.el-tag--success {
  --el-tag-bg-color: #e1f3d8 !important;
  --el-tag-border-color: #a4db89 !important;
  --el-tag-text-color: #529b2e !important;
}

.el-tag--warning {
  --el-tag-bg-color: #faecd8 !important;
  --el-tag-border-color: #f0c78a !important;
  --el-tag-text-color: #b88230 !important;
}

.el-tag--danger {
  --el-tag-bg-color: #fde2e2 !important;
  --el-tag-border-color: #f9a7a7 !important;
  --el-tag-text-color: #c45656 !important;
}

.el-button--success {
  --el-button-bg-color: #67c23a !important;
  --el-button-border-color: #67c23a !important;
  --el-button-hover-bg-color: #85ce61 !important;
  --el-button-hover-border-color: #85ce61 !important;
  --el-button-active-bg-color: #529b2e !important;
  --el-button-active-border-color: #529b2e !important;
}

.el-button--warning {
  --el-button-bg-color: #e6a23c !important;
  --el-button-border-color: #e6a23c !important;
  --el-button-hover-bg-color: #ebb563 !important;
  --el-button-hover-border-color: #ebb563 !important;
  --el-button-active-bg-color: #b88230 !important;
  --el-button-active-border-color: #b88230 !important;
}

.el-button--danger {
  --el-button-bg-color: #FF4D4F !important;
  --el-button-border-color: #FF4D4F !important;
  --el-button-text-color: #FFFFFF !important;
  --el-button-hover-bg-color: #DC2626 !important;
  --el-button-hover-border-color: #DC2626 !important;
  --el-button-hover-text-color: #FFFFFF !important;
  --el-button-active-bg-color: #B91C1C !important;
  --el-button-active-border-color: #B91C1C !important;
  --el-button-active-text-color: #FFFFFF !important;
  background-color: #FF4D4F !important;
  border-color: #FF4D4F !important;
  color: #FFFFFF !important;
}
.el-button--danger:hover {
  background-color: #DC2626 !important;
  border-color: #DC2626 !important;
  color: #FFFFFF !important;
}
.el-button--danger:active {
  background-color: #B91C1C !important;
  border-color: #B91C1C !important;
  color: #FFFFFF !important;
}

/* Plain danger variant */
.el-button--danger.is-plain {
  --el-button-bg-color: rgba(255,77,79,0.1) !important;
  --el-button-border-color: rgba(255,77,79,0.4) !important;
  --el-button-text-color: #FF4D4F !important;
  background-color: rgba(255, 77, 79, 0.1) !important;
  border-color: rgba(255, 77, 79, 0.4) !important;
  color: #FF4D4F !important;
}
.el-button--danger.is-plain:hover {
  background-color: rgba(255, 77, 79, 0.2) !important;
  color: #FFFFFF !important;
}

.ai-stock-page .el-button--primary {
  background: #0066CC !important;
  border-color: #0066CC !important;
  color: #fff !important;
}
.ai-stock-page .el-button--primary:hover {
  background: #0052a3 !important;
}
.ai-stock-page .el-button--default,
.ai-stock-page .el-button:not(.el-button--primary):not(.el-button--danger):not(.el-button--success):not(.el-button--warning) {
  background: #38405c !important;
  border-color: #38405c !important;
  color: #fff !important;
}
.ai-stock-page .el-button--default:hover,
.ai-stock-page .el-button:not(.el-button--primary):not(.el-button--danger):not(.el-button--success):not(.el-button--warning):hover {
  background: #4a5577 !important;
}
.ai-stock-page .el-button--danger {
  background: #c43636 !important;
  border-color: #c43636 !important;
  color: #fff !important;
}
.ai-stock-page .el-button--danger:hover {
  background: #a02d2d !important;
}
.ai-stock-page .el-button--success {
  background: #1a7a3a !important;
  border-color: #1a7a3a !important;
  color: #fff !important;
}
.ai-stock-page .el-button.is-text,
.ai-stock-page .el-button--text {
  background: transparent !important;
  border-color: transparent !important;
  color: #58a6ff !important;
}
.ai-stock-page .card-container {
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 8px;
  padding: 16px;
}
.ai-stock-page .stat-card {
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
}
.ai-stock-page .stat-card .stat-value {
  font-size: 28px;
  font-weight: 700;
  color: #58a6ff;
}
.ai-stock-page .stat-card .stat-label {
  font-size: 13px;
  color: #8b949e;
  margin-top: 4px;
}
.ai-stock-page .page-content {
  margin-top: 16px;
}
.ai-stock-page .page-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-top: 16px;
}
.ai-stock-page .page-footer .total-info {
  font-size: 13px;
  color: #8b949e;
  margin-right: 16px;
}

.el-dialog {
  background: #141c2b !important;
  border: 1px solid #2a3450 !important;
}

.el-dialog__header {
  background: transparent !important;
  border-bottom: 1px solid #2a3450 !important;
}

.el-dialog__body {
  background: transparent !important;
  color: #c0c6d0 !important;
}

.el-dialog__footer {
  background: transparent !important;
  border-top: 1px solid #2a3450 !important;
}

.el-drawer {
  background: #141c2b !important;
}

.el-drawer__header {
  background: transparent !important;
  border-bottom: 1px solid #2a3450 !important;
  color: #e0e6f0 !important;
}

.el-drawer__body {
  background: transparent !important;
}

.el-card {
  background: #141c2b !important;
  border-color: #2a3450 !important;
  color: #c0c6d0 !important;
}

.el-popover {
  background: #141c2b !important;
  border: 1px solid #2a3450 !important;
  color: #c0c6d0 !important;
}

.el-dropdown-menu {
  background: #141c2b !important;
  border: 1px solid #2a3450 !important;
}

.el-dropdown-menu__item {
  color: #c0c6d0 !important;
}

.el-dropdown-menu__item:hover {
  background: rgba(0, 102, 204, 0.1) !important;
}

.el-select-dropdown {
  background: #141c2b !important;
  border: 1px solid #2a3450 !important;
}

.el-select-dropdown__item {
  color: #c0c6d0 !important;
}

.el-select-dropdown__item.hover, .el-select-dropdown__item:hover {
  background: rgba(0, 102, 204, 0.1) !important;
}

.el-message-box {
  background: #141c2b !important;
  border: 1px solid #2a3450 !important;
}

.el-message-box__title {
  color: #e0e6f0 !important;
}

.el-message-box__message {
  color: #c0c6d0 !important;
}

.el-form-item__label {
  color: #8899b4 !important;
}

.el-descriptions {
  background: transparent !important;
}

.el-descriptions__label {
  background: rgba(0, 0, 0, 0.2) !important;
  color: #8899b4 !important;
}

.el-descriptions__content {
  background: rgba(0, 0, 0, 0.1) !important;
  color: #c0c6d0 !important;
}

.el-tabs__item {
  color: #8899b4 !important;
}

.el-tabs__item.is-active {
  color: #0066CC !important;
}

.el-collapse-item__header {
  background: transparent !important;
  border-color: #2a3450 !important;
  color: #c0c6d0 !important;
}

.el-collapse-item__wrap {
  background: transparent !important;
  border-color: #2a3450 !important;
}

.el-collapse-item__content {
  color: #c0c6d0 !important;
}

.el-input__wrapper {
  background: rgba(0, 0, 0, 0.2) !important;
  box-shadow: none !important;
  border: 1px solid #2a3450 !important;
}

.el-input__inner {
  color: #e0e6f0 !important;
}

.el-textarea__inner {
  background: rgba(0, 0, 0, 0.2) !important;
  border: 1px solid #2a3450 !important;
  color: #e0e6f0 !important;
}

.el-select .el-input__wrapper {
  background: rgba(0, 0, 0, 0.2) !important;
}

.el-pagination button {
  background: rgba(0, 0, 0, 0.2) !important;
  color: #c0c6d0 !important;
}

.el-pager li {
  background: rgba(0, 0, 0, 0.2) !important;
  color: #c0c6d0 !important;
}

.el-pager li.is-active {
  background: #0066CC !important;
}

.el-table {
  background: transparent !important;
  --el-table-bg-color:transparent!important;
  --el-table-tr-bg-color:transparent!important;
}

.el-table th.el-table__cell {
  background: rgba(0, 0, 0, 0.3) !important;
  color: #8899b4 !important;
  border-color: #2a3450 !important;
}

.el-table td.el-table__cell {
  background: transparent !important;
  border-color: rgba(42, 52, 80, 0.3) !important;
}

.el-table__body tr:hover > td {
  background: rgba(0, 102, 204, 0.05) !important;
}

.el-breadcrumb__inner {
  color: #8899b4 !important;
}

.el-breadcrumb__inner.is-link:hover {
  color: #0066CC !important;
}

.el-tag--default {
  background: rgba(0, 0, 0, 0.2) !important;
  border-color: #2a3450 !important;
  color: #c0c6d0 !important;
}

.el-checkbox__label {
  color: #c0c6d0 !important;
}

.el-radio__label {
  color: #c0c6d0 !important;
}

.el-switch__label {
  color: #8899b4 !important;
}

.el-slider__runway {
  background: rgba(0, 0, 0, 0.3) !important;
}

.el-slider__bar {
  background: #0066CC !important;
}

.ae-return-btn {
  display: inline-block !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 999 !important;
  font-size: 13px;
  color: #60a5fa;
  text-decoration: none;
  font-weight: 500;
  white-space: nowrap;
  padding: 4px 12px;
  border: 1px solid #334155;
  border-radius: 5px;
  flex-shrink: 0;
  background: transparent;
  line-height: 1.5;
}
.ae-return-btn:hover {
  color: #93c5fd;
  text-decoration: underline;
  border-color: #60a5fa;
  background: rgba(59, 130, 246, 0.06);
}
/* ======================================================================
   支援中心专属样式微调（纯视觉，不动逻辑）
   适配 Element Plus 深色主题
   ====================================================================== */
/* ── [1] 输入框 / 选择器 / 文本域 — 聚焦发光效果 ── */
.support-page .el-input__inner:focus,
.support-page .el-textarea__inner:focus {
  border-color: #4096ff !important;
  box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.18) !important;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.support-page .el-select .el-input.is-focus .el-input__wrapper {
  box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.18) !important;
  transition: box-shadow 0.2s;
}
.support-page .el-input__wrapper:focus-within {
  box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.18) !important;
}
.support-page {
  /* ── [4] 必填红星微调 ── */
}
.support-page .el-form-item.is-required > .el-form-item__label::before {
  margin-right: 4px !important;
  color: #ff6b6b !important;
}

/* ── [2] 表单间距收紧（vertical 布局） ── */
.support-form-compact .el-form-item {
  margin-bottom: 18px;
}
.support-form-compact .el-form-item__label {
  margin-bottom: 4px;
  font-weight: 500;
  color: rgba(224, 228, 236, 0.85);
}
.support-form-compact .el-radio-group {
  margin-top: 2px;
}

/* ── [3] 统计页卡片呼吸感 ── */
.ticket-stats-page .stat-card {
  padding: 20px 24px 16px;
}
.ticket-stats-page .chart-card {
  padding: 20px 24px 16px;
}
.ticket-stats-page .chart-box {
  min-height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
}.page[data-v-bf3d4413] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-bf3d4413] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-bf3d4413] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-bf3d4413] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.filter-card[data-v-bf3d4413] {
  margin-bottom: 16px;
}.page[data-v-9dff5c68] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-9dff5c68] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
.page-title[data-v-9dff5c68] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.header-actions[data-v-9dff5c68] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.card[data-v-9dff5c68] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
  margin-bottom: 16px;
}
.card[data-v-9dff5c68] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card-title[data-v-9dff5c68] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.desc-text[data-v-9dff5c68] {
  color: #9ca3b2;
  font-size: 14px;
  line-height: 1.8;
  white-space: pre-wrap;
  padding: 8px 0;
}
.loading-box[data-v-9dff5c68] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  gap: 12px;
  color: #8892a0;
}
.loading-icon[data-v-9dff5c68] {
  animation: spin-9dff5c68 1s linear infinite;
}
@keyframes spin-9dff5c68 {
from {
    transform: rotate(0deg);
}
to {
    transform: rotate(360deg);
}
}
.empty-box[data-v-9dff5c68] {
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}.page[data-v-0c00fb41] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-0c00fb41] {
  margin-bottom: 24px;
}
.page-title[data-v-0c00fb41] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-0c00fb41] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.form-card[data-v-0c00fb41] {
  max-width: 720px;
}
.upload-tip[data-v-0c00fb41] {
  font-size: 12px;
  color: #6b7280;
  margin-left: 12px;
}
.page[data-v-d61a9b2e] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-d61a9b2e] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.page-title[data-v-d61a9b2e] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-d61a9b2e] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}

/* ── 筛选栏 ── */
.filter-card[data-v-d61a9b2e] {
  margin-bottom: 16px;
}
.filter-card[data-v-d61a9b2e] .el-card__body {
  padding: 14px 20px;
}
.filter-items[data-v-d61a9b2e] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}
.filter-item[data-v-d61a9b2e] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.filter-label[data-v-d61a9b2e] {
  font-size: 13px;
  color: #8892a0;
  white-space: nowrap;
  flex-shrink: 0;
}
.filter-datepicker[data-v-d61a9b2e] {
  width: 280px;
  min-width: 240px;
  max-width: 100%;
}
.filter-select[data-v-d61a9b2e] {
  width: 140px;
}
.filter-actions[data-v-d61a9b2e] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── 响应式 ── */
@media (max-width: 768px) {
.filter-items[data-v-d61a9b2e] {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}
.filter-item[data-v-d61a9b2e] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
}
.filter-datepicker[data-v-d61a9b2e],
  .filter-select[data-v-d61a9b2e] {
    width: 100% !important;
    min-width: unset;
}
.filter-actions[data-v-d61a9b2e] {
    justify-content: flex-start;
    margin-top: 4px;
}
}
@media (max-width: 576px) {
.page[data-v-d61a9b2e] {
    padding: 12px;
}
.filter-card[data-v-d61a9b2e] .el-card__body {
    padding: 10px 12px;
}
.filter-datepicker[data-v-d61a9b2e] .el-input__inner {
    font-size: 12px;
}
}
/* ── 统计卡片 ── */
.stat-row[data-v-d61a9b2e] {
  margin-bottom: 16px;
}
.stat-card[data-v-d61a9b2e] {
  text-align: center;
  padding: 8px 0;
}
.stat-label[data-v-d61a9b2e] {
  font-size: 13px;
  color: #8892a0;
  margin-bottom: 6px;
}
.stat-value[data-v-d61a9b2e] {
  font-size: 32px;
  font-weight: 700;
  color: #e0e4ec;
}
.card--warning .stat-value[data-v-d61a9b2e] {
  color: #e6a23c;
}
.card--info .stat-value[data-v-d61a9b2e] {
  color: #409eff;
}
.card--success .stat-value[data-v-d61a9b2e] {
  color: #67c23a;
}

/* ── 图表区 ── */
.chart-row[data-v-d61a9b2e] {
  margin-bottom: 16px;
}
.chart-card[data-v-d61a9b2e] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.chart-card[data-v-d61a9b2e] .el-card__body {
  padding: 16px 24px 20px;
}
.chart-title[data-v-d61a9b2e] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.chart-box[data-v-d61a9b2e] {
  width: 100%;
  min-height: 280px;
}
.chart-box--lg[data-v-d61a9b2e] {
  min-height: 320px;
}.page[data-v-446ccb5d] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-446ccb5d] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-446ccb5d] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-446ccb5d] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.filter-card[data-v-446ccb5d] {
  margin-bottom: 16px;
}
.faq-answer[data-v-446ccb5d] {
  color: #9ca3b2;
  font-size: 13px;
  line-height: 1.7;
  margin-bottom: 10px;
  padding: 10px 14px;
  background: rgba(0, 217, 255, 0.03);
  border-radius: 6px;
}
.faq-meta[data-v-446ccb5d] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.faq-time[data-v-446ccb5d] {
  font-size: 12px;
  color: #6b7280;
}.page[data-v-dd98416f] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-dd98416f] {
  margin-bottom: 20px;
}
.page-title[data-v-dd98416f] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-dd98416f] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.card[data-v-dd98416f] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card[data-v-dd98416f] .el-card__body {
  padding: 16px 18px;
}
.card-title[data-v-dd98416f] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.card-title-row[data-v-dd98416f] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.split-layout[data-v-dd98416f] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: start;
}
.feedback-item .feedback-title[data-v-dd98416f] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.feedback-title-text[data-v-dd98416f] {
  font-size: 14px;
  color: #e0e4ec;
}
.feedback-reply[data-v-dd98416f] {
  margin-top: 8px;
}
.page[data-v-934a0826] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-934a0826] {
  margin-bottom: 24px;
}
.page-title[data-v-934a0826] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-934a0826] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.card[data-v-934a0826] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card-title[data-v-934a0826] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}

/* ── 无权限 ── */
.no-permission[data-v-934a0826] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  text-align: center;
}
.no-permission-icon[data-v-934a0826] {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.6;
}
.no-permission h3[data-v-934a0826] {
  font-size: 20px;
  color: #e0e4ec;
  margin: 0 0 8px;
}
.no-permission p[data-v-934a0826] {
  color: #8892a0;
  margin: 0 0 20px;
}

/* ── 入口卡片 ── */
.entry-row[data-v-934a0826] {
  margin-bottom: 20px;
}
.entry-card[data-v-934a0826] {
  cursor: pointer;
  text-align: center;
  padding: 20px 0;
  transition: all 0.2s;
}
.entry-card[data-v-934a0826]:hover {
  border-color: rgba(0, 217, 255, 0.3);
  transform: translateY(-2px);
}
.entry-card .entry-icon[data-v-934a0826] {
  font-size: 40px;
  margin-bottom: 12px;
}
.entry-card .entry-title[data-v-934a0826] {
  font-size: 16px;
  font-weight: 600;
  color: #e0e4ec;
  margin-bottom: 8px;
}
.entry-card .entry-desc[data-v-934a0826] {
  font-size: 13px;
  color: #8892a0;
  line-height: 1.5;
}
.entry-card--disabled[data-v-934a0826] {
  cursor: not-allowed;
  opacity: 0.5;
}
.entry-card--disabled[data-v-934a0826]:hover {
  transform: none;
  border-color: #2a2d35;
}
.entry-card--disabled .coming-tag[data-v-934a0826] {
  margin-top: 8px;
}
.overview-card[data-v-934a0826] {
  margin-top: 0;
}.page[data-v-9920c5b1] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-9920c5b1] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-9920c5b1] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-9920c5b1] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.no-permission[data-v-9920c5b1] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  text-align: center;
}
.no-permission-icon[data-v-9920c5b1] {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.6;
}
.no-permission h3[data-v-9920c5b1] {
  font-size: 20px;
  color: #e0e4ec;
  margin: 0 0 8px;
}
.no-permission p[data-v-9920c5b1] {
  color: #8892a0;
  margin: 0 0 20px;
}.page[data-v-376adb50] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-376adb50] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-376adb50] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-376adb50] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.filter-card[data-v-376adb50] {
  margin-bottom: 16px;
}
.form-tip[data-v-376adb50] {
  font-size: 12px;
  color: #6b7280;
  margin-top: 4px;
}
.form-tip code[data-v-376adb50] {
  color: #00D9FF;
  background: rgba(0, 217, 255, 0.08);
  padding: 1px 5px;
  border-radius: 3px;
}
.no-permission[data-v-376adb50] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 400px;
  text-align: center;
}
.no-permission-icon[data-v-376adb50] {
  font-size: 64px;
  margin-bottom: 16px;
  opacity: 0.6;
}
.no-permission h3[data-v-376adb50] {
  font-size: 20px;
  color: #e0e4ec;
  margin: 0 0 8px;
}
.no-permission p[data-v-376adb50] {
  color: #8892a0;
  margin: 0 0 20px;
}.page[data-v-8ff2b129] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-8ff2b129] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-8ff2b129] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-8ff2b129] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-eb68a7e2] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-eb68a7e2] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-eb68a7e2] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-eb68a7e2] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.faq-answer[data-v-eb68a7e2] {
  color: #9ca3b2;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 8px;
}
.faq-meta[data-v-eb68a7e2] {
  display: flex;
  align-items: center;
}.status-tag[data-v-cd557409] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.3px;
}
.status-dot[data-v-cd557409] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.status-dot--success[data-v-cd557409] {
  background: #67c23a;
  box-shadow: 0 0 4px rgba(103, 194, 58, 0.5);
}
.status-dot--danger[data-v-cd557409] {
  background: #f56c6c;
  box-shadow: 0 0 4px rgba(245, 108, 108, 0.5);
}
.status-dot--warning[data-v-cd557409] {
  background: #e6a23c;
  box-shadow: 0 0 4px rgba(230, 162, 60, 0.5);
  animation: pulse-warn-cd557409 1.5s ease-in-out infinite;
}
.status-dot--info[data-v-cd557409] {
  background: #909399;
}
@keyframes pulse-warn-cd557409 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.4;
}
}
.page[data-v-b72cd82b] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-b72cd82b] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-b72cd82b] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}

/* ═══ Split Layout ═══ */
.split-layout[data-v-b72cd82b] {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 18px;
  align-items: start;
}
.card[data-v-b72cd82b] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.card[data-v-b72cd82b] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card[data-v-b72cd82b] .el-card__body {
  padding: 16px 18px;
}
.card-title[data-v-b72cd82b] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.card-title-row[data-v-b72cd82b] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ═══ Left: Search ═══ */
.search-results[data-v-b72cd82b] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 12px;
  max-height: calc(100vh - 250px);
  overflow-y: auto;
}
.search-empty[data-v-b72cd82b], .search-placeholder[data-v-b72cd82b] {
  padding: 24px 0;
  text-align: center;
  color: #6b7280;
  font-size: 13px;
}
.tenant-card[data-v-b72cd82b] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #2a2d35;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}
.tenant-card[data-v-b72cd82b]:hover {
  border-color: rgba(0, 217, 255, 0.25);
  background: rgba(0, 217, 255, 0.02);
}
.tenant-card--selected[data-v-b72cd82b] {
  border-color: #409eff;
  background: rgba(64, 158, 255, 0.06);
}
.tenant-card-left[data-v-b72cd82b] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tenant-name[data-v-b72cd82b] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.tenant-id[data-v-b72cd82b] {
  font-size: 10px;
  color: #6b7280;
  font-family: "SF Mono", "Consolas", monospace;
}

/* ═══ Right: User Table ═══ */
.last-login[data-v-b72cd82b] {
  font-size: 12px;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}
.no-tenant-hint[data-v-b72cd82b] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 260px;
  color: #6b7280;
  font-size: 14px;
  text-align: center;
}
.no-tenant-hint .no-tenant-icon[data-v-b72cd82b] {
  font-size: 40px;
  margin-bottom: 12px;
  opacity: 0.4;
}

/* ═══ Confirm Dialog ═══ */
.confirm-body[data-v-b72cd82b] {
  text-align: center;
}
.confirm-warn-icon[data-v-b72cd82b] {
  font-size: 40px;
  margin-bottom: 12px;
}
.confirm-summary[data-v-b72cd82b] {
  font-size: 14px;
  color: #c0c6d0;
  margin: 0 0 10px;
  line-height: 1.6;
}
.confirm-summary strong[data-v-b72cd82b] {
  color: #e0e4ec;
}
.confirm-desc[data-v-b72cd82b] {
  font-size: 13px;
  color: #8892a0;
  margin: 0 0 10px;
  line-height: 1.6;
}
.confirm-desc strong[data-v-b72cd82b] {
  color: #e6a23c;
}
.confirm-callout[data-v-b72cd82b] {
  font-size: 12px;
  color: #f56c6c;
  margin: 0;
  padding: 8px 12px;
  background: rgba(245, 108, 108, 0.06);
  border-radius: 4px;
}

/* ═══ Result Dialog ═══ */
.result-body[data-v-b72cd82b] {
  text-align: center;
}
.result-warn-icon[data-v-b72cd82b] {
  font-size: 36px;
  margin-bottom: 10px;
}
.result-label[data-v-b72cd82b] {
  font-size: 13px;
  color: #8892a0;
  margin: 0 0 12px;
}
.result-pwd-box[data-v-b72cd82b] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px;
  background: rgba(0, 217, 255, 0.04);
  border: 1px solid rgba(0, 217, 255, 0.15);
  border-radius: 6px;
}
.result-pwd[data-v-b72cd82b] {
  font-size: 20px;
  font-weight: 700;
  color: #00D9FF;
  font-family: "SF Mono", "Consolas", monospace;
  letter-spacing: 2px;
  user-select: all;
}.login-page[data-v-46ee4d81] {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1a1d25;
}
.login-card[data-v-46ee4d81] {
  width: 420px;
  padding: 40px;
  background: #1d2028;
  border: 1px solid #2a2d35;
  border-radius: 12px;
}
.login-title[data-v-46ee4d81] {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  color: #e0e4ec;
  margin: 0 0 8px;
  letter-spacing: 2px;
}
.login-subtitle[data-v-46ee4d81] {
  text-align: center;
  font-size: 13px;
  color: #6b7280;
  margin: 0 0 32px;
}
.login-footer[data-v-46ee4d81] {
  text-align: center;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #2a2d35;
}
.login-hint[data-v-46ee4d81] {
  font-size: 11px;
  color: #6b7280;
  line-height: 1.5;
}
.login-hint strong[data-v-46ee4d81] {
  color: #8892a0;
  font-weight: 600;
}.page[data-v-dd77b676] {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1a1d25;
}
.card[data-v-dd77b676] {
  width: 440px;
  padding: 40px;
  background: #1d2028;
  border: 1px solid #2a2d35;
  border-radius: 12px;
}
.card-header[data-v-dd77b676] {
  text-align: center;
  margin-bottom: 28px;
}
.warn-icon[data-v-dd77b676] {
  font-size: 36px;
  margin-bottom: 10px;
}
.title[data-v-dd77b676] {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 700;
  color: #e0e4ec;
}
.subtitle[data-v-dd77b676] {
  margin: 0;
  font-size: 13px;
  color: #8892a0;
  line-height: 1.6;
}
.form .el-form-item[data-v-dd77b676] {
  margin-bottom: 20px;
}

/* Password strength (same as TenantCreate) */
.pwd-strength-wrap[data-v-dd77b676] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  margin-top: -12px;
}
.pwd-strength-bar[data-v-dd77b676] {
  display: flex;
  gap: 4px;
  flex: 1;
}
.pwd-strength-seg[data-v-dd77b676] {
  height: 4px;
  flex: 1;
  border-radius: 2px;
  background: #2a2d35;
  transition: background 0.25s;
}
.pwd-strength-seg.lv0[data-v-dd77b676] {
  background: #2a2d35;
}
.pwd-strength-seg.lv1[data-v-dd77b676] {
  background: #f56c6c;
}
.pwd-strength-seg.lv2[data-v-dd77b676] {
  background: #e6a23c;
}
.pwd-strength-seg.lv3[data-v-dd77b676] {
  background: #409eff;
}
.pwd-strength-seg.lv4[data-v-dd77b676] {
  background: #67c23a;
}
.pwd-strength-text[data-v-dd77b676] {
  font-size: 11px;
  font-weight: 600;
  min-width: 48px;
  text-align: right;
}
.pwd-strength-text.lv1-text[data-v-dd77b676] {
  color: #f56c6c;
}
.pwd-strength-text.lv2-text[data-v-dd77b676] {
  color: #e6a23c;
}
.pwd-strength-text.lv3-text[data-v-dd77b676] {
  color: #409eff;
}
.pwd-strength-text.lv4-text[data-v-dd77b676] {
  color: #67c23a;
}
.footer-hint[data-v-dd77b676] {
  text-align: center;
  font-size: 11px;
  color: #6b7280;
  line-height: 1.5;
}
/* ======================================================================
   Variables
   ====================================================================== */
/* ======================================================================
   Shell
   ====================================================================== */
.ceo-page[data-v-accbd1df] {
  min-height: 100%;
  box-sizing: border-box;
  background: #050A12;
  padding: 10px 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
}

/* ======================================================================
   Emergency Banner
   ====================================================================== */
.emergency-banner[data-v-accbd1df] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  background: linear-gradient(90deg, rgba(245, 34, 45, 0.3) 0%, rgba(245, 34, 45, 0.12) 100%);
  border: 1px solid rgba(245, 34, 45, 0.45);
  border-radius: 6px;
  animation: banner-pulse-accbd1df 1.5s ease-in-out infinite;
}
@keyframes banner-pulse-accbd1df {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.85;
}
}
.emergency-icon[data-v-accbd1df] {
  font-size: 20px;
  flex-shrink: 0;
}
.emergency-text[data-v-accbd1df] {
  font-size: 14px;
  font-weight: 700;
  color: #F5222D;
  flex: 1;
}
.emergency-action[data-v-accbd1df] {
  font-size: 12px;
  color: rgba(245, 34, 45, 0.8);
  padding: 2px 10px;
  border-radius: 10px;
  background: rgba(245, 34, 45, 0.15);
  border: 1px solid rgba(245, 34, 45, 0.3);
  flex-shrink: 0;
}

/* ======================================================================
   Alert Ticker
   ====================================================================== */
.alert-ticker[data-v-accbd1df] {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 32px;
  min-height: 32px;
  background: rgba(11, 36, 71, 0.4);
  border: 1px solid rgba(0, 217, 255, 0.2);
  border-radius: 6px;
  padding: 0 12px;
  overflow: hidden;
}
.ticker-label[data-v-accbd1df] {
  font-size: 11px;
  font-weight: 700;
  color: #00D9FF;
  flex-shrink: 0;
  letter-spacing: 1px;
}
.ticker-track[data-v-accbd1df] {
  flex: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.ticker-content[data-v-accbd1df] {
  display: flex;
  gap: 28px;
  white-space: nowrap;
  animation: ticker-accbd1df 18s linear infinite;
}
.ticker-empty[data-v-accbd1df] {
  font-size: 12px;
  color: #8C9CB5;
  font-style: italic;
}
@keyframes ticker-accbd1df {
0% {
    transform: translateX(100%);
}
100% {
    transform: translateX(-100%);
}
}
.ticker-item[data-v-accbd1df] {
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}
.ticker-item.ticker-critical[data-v-accbd1df] {
  color: #F5222D;
  font-weight: 600;
}
.ticker-item.ticker-warn[data-v-accbd1df] {
  color: #FAAD14;
}
.ticker-item.ticker-info[data-v-accbd1df] {
  color: #8C9CB5;
}
.ticker-dot[data-v-accbd1df] {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ticker-critical .ticker-dot[data-v-accbd1df] {
  background: #F5222D;
  box-shadow: 0 0 5px rgba(245, 34, 45, 0.5);
}
.ticker-warn .ticker-dot[data-v-accbd1df] {
  background: #FAAD14;
  box-shadow: 0 0 5px rgba(250, 173, 20, 0.5);
}
.ticker-info .ticker-dot[data-v-accbd1df] {
  background: #8C9CB5;
}
.ticker-throttle[data-v-accbd1df] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  color: #FAAD14;
  background: rgba(250, 173, 20, 0.1);
  padding: 2px 8px;
  border-radius: 8px;
  border: 1px solid rgba(250, 173, 20, 0.25);
}
.throttle-pulse[data-v-accbd1df] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #FAAD14;
  box-shadow: 0 0 6px rgba(250, 173, 20, 0.5);
  animation: blink-accbd1df 1s ease-in-out infinite;
}
@keyframes blink-accbd1df {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.3;
}
}
/* ======================================================================
   KPI Row
   ====================================================================== */
.kpi-row[data-v-accbd1df] {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 12px;
}
.kpi-card[data-v-accbd1df] {
  background: rgba(11, 36, 71, 0.4);
  border: 1px solid rgba(0, 217, 255, 0.2);
  border-radius: 8px;
  padding: 14px 18px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
}
.kpi-card[data-v-accbd1df]::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 217, 255, 0.3), transparent);
  pointer-events: none;
}
.kpi-card-label[data-v-accbd1df] {
  font-size: 12px;
  color: #8C9CB5;
  margin-bottom: 6px;
  letter-spacing: 1px;
}
.kpi-card-value[data-v-accbd1df] {
  font-size: 26px;
  font-weight: 700;
  color: #FFFFFF;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
  font-variant-numeric: tabular-nums;
}
.kpi-card-value.placeholder[data-v-accbd1df] {
  color: #8C9CB5;
  font-size: 20px;
}
.big-num[data-v-accbd1df] {
  font-size: 26px;
  font-weight: 700;
  color: #FFFFFF;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
}
.big-num.placeholder[data-v-accbd1df] {
  color: #8C9CB5;
  font-size: 20px;
}
.kpi-card-sub[data-v-accbd1df] {
  margin-top: 6px;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.trend.up[data-v-accbd1df] {
  color: #2ECC71;
  font-weight: 600;
}
.trend.muted[data-v-accbd1df] {
  color: #8C9CB5;
}

/* GMV digit roller */
.gmv-digits[data-v-accbd1df] {
  display: flex;
  align-items: center;
}
.gmv-currency[data-v-accbd1df] {
  font-size: 18px;
  color: #FFD700;
  font-weight: 600;
  margin-right: 3px;
  align-self: flex-start;
  margin-top: 5px;
}
.gmv-digit-col[data-v-accbd1df] {
  width: 19px;
  height: 44px;
  overflow: hidden;
  display: inline-block;
  margin: 0 1px;
}
.gmv-digit-col.comma[data-v-accbd1df] {
  width: 10px;
  height: auto;
  overflow: visible;
}
.gmv-comma[data-v-accbd1df] {
  font-size: 26px;
  font-weight: 700;
  color: #FFFFFF;
  line-height: 44px;
  font-family: "DIN Alternate", "Arial", sans-serif;
}
.gmv-digit-roller[data-v-accbd1df] {
  display: flex;
  flex-direction: column;
  transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.gmv-digit-item[data-v-accbd1df] {
  height: 44px;
  line-height: 44px;
  text-align: center;
  font-size: 28px;
  font-weight: 700;
  color: #FFFFFF;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
}

/* Agent pool bar */
.agent-pool-row[data-v-accbd1df] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.agent-pool-bar[data-v-accbd1df] {
  display: flex;
  flex: 1;
  height: 6px;
  border-radius: 3px;
  overflow: hidden;
  gap: 2px;
}
.pool-seg[data-v-accbd1df] {
  border-radius: 3px;
}
.pool-seg.alive[data-v-accbd1df] {
  background: #2ECC71;
  box-shadow: 0 0 6px rgba(46, 204, 113, 0.5);
}
.pool-seg.degraded[data-v-accbd1df] {
  background: #FAAD14;
  box-shadow: 0 0 6px rgba(250, 173, 20, 0.5);
}
.pool-seg.dead[data-v-accbd1df] {
  background: #F5222D;
  box-shadow: 0 0 6px rgba(245, 34, 45, 0.5);
}
.agent-dots[data-v-accbd1df] {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  margin-left: 8px;
}
.mini-dot[data-v-accbd1df] {
  width: 5px;
  height: 5px;
  border-radius: 50%;
}
.mini-dot.alive[data-v-accbd1df] {
  background: #2ECC71;
}
.mini-dot.degraded[data-v-accbd1df] {
  background: #FAAD14;
}
.mini-dot.dead[data-v-accbd1df] {
  background: #F5222D;
}

/* ======================================================================
   Empty Chart Placeholder
   ====================================================================== */
.empty-chart-placeholder[data-v-accbd1df] {
  flex: 1;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #8C9CB5;
}
.empty-icon[data-v-accbd1df] {
  font-size: 28px;
  opacity: 0.5;
}
.empty-text[data-v-accbd1df] {
  font-size: 13px;
  color: #8C9CB5;
  font-weight: 500;
}

/* ======================================================================
   Main Grid — 左脑 60% + 右眼 40%
   ====================================================================== */
.main-grid[data-v-accbd1df] {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 12px;
}

/* ======================================================================
   Panel Card (Shared)
   ====================================================================== */
.panel-card[data-v-accbd1df] {
  background: rgba(11, 36, 71, 0.4);
  border: 1px solid rgba(0, 217, 255, 0.2);
  border-radius: 8px;
  padding: 12px 14px;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}
.panel-card[data-v-accbd1df]::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 217, 255, 0.25), transparent);
  pointer-events: none;
}
.panel-head[data-v-accbd1df] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  flex-shrink: 0;
}
.panel-title[data-v-accbd1df] {
  font-size: 13px;
  font-weight: 600;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 6px;
}
.panel-badge[data-v-accbd1df] {
  font-size: 10px;
  padding: 1px 8px;
  border-radius: 8px;
  background: rgba(0, 217, 255, 0.1);
  color: #8C9CB5;
}
.panel-badge.ok[data-v-accbd1df] {
  background: rgba(46, 204, 113, 0.12);
  color: #2ECC71;
}
.panel-badge.warn[data-v-accbd1df] {
  background: rgba(250, 173, 20, 0.12);
  color: #FAAD14;
}
.panel-badge.danger[data-v-accbd1df] {
  background: rgba(245, 34, 45, 0.15);
  color: #F5222D;
  animation: blink-accbd1df 1s ease-in-out infinite;
}
.chart-body[data-v-accbd1df] {
  flex: 1;
  min-height: 0;
  width: 100%;
}

/* ======================================================================
   Agent Matrix — 蜂巢战情拓扑
   ====================================================================== */
.agent-matrix-panel[data-v-accbd1df] {
  overflow-y: auto;
}
.agent-matrix-panel[data-v-accbd1df]::-webkit-scrollbar {
  width: 4px;
}
.agent-matrix-panel[data-v-accbd1df]::-webkit-scrollbar-thumb {
  background: rgba(0, 217, 255, 0.15);
  border-radius: 2px;
}
.agent-matrix[data-v-accbd1df] {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.zone-group[data-v-accbd1df] {
  border: 1px solid rgba(0, 217, 255, 0.08);
  border-radius: 8px;
  padding: 12px;
  background: rgba(0, 217, 255, 0.02);
}
.zone-header[data-v-accbd1df] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.zone-name[data-v-accbd1df] {
  font-size: 13px;
  font-weight: 700;
  color: #00D9FF;
}
.zone-tally[data-v-accbd1df] {
  font-size: 12px;
  color: #8C9CB5;
}
.zone-tally .alive[data-v-accbd1df] {
  color: #2ECC71;
  font-weight: 700;
}
.zone-tally .total[data-v-accbd1df] {
  color: #8C9CB5;
}
.zone-sep[data-v-accbd1df] {
  margin: 0 1px;
  color: #8C9CB5;
}
.zone-mini-dots[data-v-accbd1df] {
  display: flex;
  gap: 3px;
  margin-left: auto;
  flex-wrap: wrap;
}
.mini-hex[data-v-accbd1df] {
  width: 10px;
  height: 10px;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.mini-hex.alive[data-v-accbd1df] {
  background: #2ECC71;
  box-shadow: 0 0 4px rgba(46, 204, 113, 0.6);
}
.mini-hex.degraded[data-v-accbd1df] {
  background: #FAAD14;
  box-shadow: 0 0 4px rgba(250, 173, 20, 0.6);
  animation: blink-accbd1df 1s ease-in-out infinite;
}
.mini-hex.dead[data-v-accbd1df] {
  background: #F5222D;
  box-shadow: 0 0 4px rgba(245, 34, 45, 0.6);
}

/* Zone agent grid */
.zone-grid[data-v-accbd1df] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 6px;
}
.agent-hex-cell[data-v-accbd1df] {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.25s;
}
.agent-hex-cell.alive[data-v-accbd1df] {
  background: rgba(46, 204, 113, 0.08);
  border: 1px solid rgba(46, 204, 113, 0.25);
}
.agent-hex-cell.degraded[data-v-accbd1df] {
  background: rgba(250, 173, 20, 0.08);
  border: 1px solid rgba(250, 173, 20, 0.25);
}
.agent-hex-cell.dead[data-v-accbd1df] {
  background: rgba(245, 34, 45, 0.08);
  border: 1px solid rgba(245, 34, 45, 0.25);
}
.agent-hex-cell[data-v-accbd1df]:hover {
  transform: scale(1.08);
}
.agent-hex-cell:hover.alive[data-v-accbd1df] {
  background: rgba(46, 204, 113, 0.18);
  box-shadow: 0 0 12px rgba(46, 204, 113, 0.3);
}
.agent-hex-cell:hover.degraded[data-v-accbd1df] {
  background: rgba(250, 173, 20, 0.18);
  box-shadow: 0 0 12px rgba(250, 173, 20, 0.3);
}
.agent-hex-cell:hover.dead[data-v-accbd1df] {
  background: rgba(245, 34, 45, 0.18);
  box-shadow: 0 0 12px rgba(245, 34, 45, 0.3);
}
.hex-inner[data-v-accbd1df] {
  text-align: center;
  z-index: 1;
}
.agent-hex-id[data-v-accbd1df] {
  display: block;
  font-size: 11px;
  font-weight: 700;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
}
.alive .agent-hex-id[data-v-accbd1df] {
  color: #2ECC71;
}
.degraded .agent-hex-id[data-v-accbd1df] {
  color: #FAAD14;
}
.dead .agent-hex-id[data-v-accbd1df] {
  color: #F5222D;
}
.agent-hex-store[data-v-accbd1df] {
  display: block;
  font-size: 10px;
  color: #8C9CB5;
  margin-top: 2px;
  max-width: 70px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hex-glow[data-v-accbd1df] {
  position: absolute;
  inset: -2px;
  border-radius: 6px;
  pointer-events: none;
}
.alive .hex-glow[data-v-accbd1df] {
  box-shadow: inset 0 0 8px rgba(46, 204, 113, 0.15);
}
.degraded .hex-glow[data-v-accbd1df] {
  box-shadow: inset 0 0 8px rgba(250, 173, 20, 0.15);
}
.dead .hex-glow[data-v-accbd1df] {
  box-shadow: inset 0 0 8px rgba(245, 34, 45, 0.2);
}

/* ======================================================================
   Right Panels Stack
   ====================================================================== */
.right-panels[data-v-accbd1df] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  overflow-y: auto;
}
.right-panels[data-v-accbd1df]::-webkit-scrollbar {
  width: 4px;
}
.right-panels[data-v-accbd1df]::-webkit-scrollbar-thumb {
  background: rgba(0, 217, 255, 0.15);
  border-radius: 2px;
}
.funnel-card .chart-body[data-v-accbd1df] {
  height: 170px;
  min-height: 170px;
}
.traffic-card .chart-body[data-v-accbd1df] {
  height: 150px;
  min-height: 150px;
}
.heatmap-card .chart-body[data-v-accbd1df] {
  height: 150px;
  min-height: 150px;
}

/* ======================================================================
   Breach Overlay
   ====================================================================== */
.breach-overlay[data-v-accbd1df] {
  position: absolute;
  inset: 0;
  z-index: 10;
  background: rgba(245, 34, 45, 0.1);
  border: 2px solid rgba(245, 34, 45, 0.4);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  backdrop-filter: blur(2px);
  pointer-events: none;
}
.breach-icon[data-v-accbd1df] {
  font-size: 24px;
  animation: pulse-breach-accbd1df 0.6s ease-in-out infinite;
}
@keyframes pulse-breach-accbd1df {
0%, 100% {
    transform: scale(1);
    opacity: 1;
}
50% {
    transform: scale(1.4);
    opacity: 0.5;
}
}
.breach-text[data-v-accbd1df] {
  font-size: 16px;
  font-weight: 700;
  color: #F5222D;
  letter-spacing: 2px;
}
.breach-reason[data-v-accbd1df] {
  font-size: 11px;
  color: rgba(245, 34, 45, 0.8);
  text-align: center;
  max-width: 80%;
}
.breached[data-v-accbd1df] {
  opacity: 0.9;
}

/* ======================================================================
   Breaker List
   ====================================================================== */
.breaker-list[data-v-accbd1df] {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
}
.breaker-row[data-v-accbd1df] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid transparent;
  transition: all 0.3s;
}
.breaker-row[data-v-accbd1df]:hover {
  background: rgba(255, 255, 255, 0.03);
}
.breaker-row.tripped[data-v-accbd1df] {
  background: rgba(245, 34, 45, 0.06);
  border-color: rgba(245, 34, 45, 0.25);
  animation: tripped-pulse-accbd1df 1.5s ease-in-out infinite;
}
@keyframes tripped-pulse-accbd1df {
0%, 100% {
    background: rgba(245, 34, 45, 0.06);
}
50% {
    background: rgba(245, 34, 45, 0.12);
}
}
.breaker-status-ring[data-v-accbd1df] {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 2px solid;
}
.breaker-status-ring.good[data-v-accbd1df] {
  border-color: rgba(46, 204, 113, 0.4);
  box-shadow: 0 0 8px rgba(46, 204, 113, 0.2);
}
.breaker-status-ring.good .breaker-dot[data-v-accbd1df] {
  background: #2ECC71;
}
.breaker-status-ring.bad[data-v-accbd1df] {
  border-color: rgba(245, 34, 45, 0.4);
  box-shadow: 0 0 12px rgba(245, 34, 45, 0.3);
  animation: pulse-bad-accbd1df 1s ease-in-out infinite;
}
.breaker-status-ring.bad .breaker-dot[data-v-accbd1df] {
  background: #F5222D;
}
@keyframes pulse-bad-accbd1df {
0%, 100% {
    box-shadow: 0 0 12px rgba(245, 34, 45, 0.3);
}
50% {
    box-shadow: 0 0 22px rgba(245, 34, 45, 0.6);
}
}
.breaker-dot[data-v-accbd1df] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.breaker-info[data-v-accbd1df] {
  flex: 1;
  min-width: 0;
}
.breaker-name[data-v-accbd1df] {
  font-size: 12px;
  font-weight: 600;
  color: #FFFFFF;
}
.breaker-desc[data-v-accbd1df] {
  font-size: 10px;
  color: #8C9CB5;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.breaker-value[data-v-accbd1df] {
  font-size: 14px;
  font-weight: 700;
  font-family: "DIN Alternate", "SF Mono", monospace;
  flex-shrink: 0;
}
.breaker-value.good[data-v-accbd1df] {
  color: #2ECC71;
}
.breaker-value.bad[data-v-accbd1df] {
  color: #F5222D;
}

/* ======================================================================
   Throttle Bar
   ====================================================================== */
.throttle-bar[data-v-accbd1df] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  margin-top: 6px;
  border-radius: 5px;
  background: rgba(250, 173, 20, 0.06);
  border: 1px solid rgba(250, 173, 20, 0.18);
  font-size: 10px;
  color: #FAAD14;
  flex-shrink: 0;
}
.command-page[data-v-a0d36266] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* ======================================================================
   卡片
   ====================================================================== */
.cmd-card[data-v-a0d36266] {
  background: #fff;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.cmd-card[data-v-a0d36266] .el-card__header {
  padding: 16px 20px 12px;
  border-bottom: 1px solid #eef0f4;
}
.cmd-card[data-v-a0d36266] .el-card__body {
  padding: 20px;
}
.card-title[data-v-a0d36266] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #1a1d25;
}

/* ======================================================================
   表单
   ====================================================================== */
.cmd-form[data-v-a0d36266] {
  max-width: 640px;
}
.priority-tags[data-v-a0d36266] {
  display: flex;
  gap: 10px;
}
.priority-tag[data-v-a0d36266] {
  padding: 5px 16px;
  border-radius: 16px;
  font-size: 13px;
  cursor: pointer;
  border: 1px solid #d0d5dd;
  color: #7c8a9e;
  background: #fafbfc;
  transition: all 0.15s;
  user-select: none;
}
.priority-tag[data-v-a0d36266]:hover {
  border-color: #1A3E72;
  color: #1A3E72;
}
.priority-tag.active.low[data-v-a0d36266] {
  background: #e8f5e9;
  border-color: #4caf50;
  color: #2e7d32;
}
.priority-tag.active.medium[data-v-a0d36266] {
  background: #e3f2fd;
  border-color: #2196f3;
  color: #1565c0;
}
.priority-tag.active.high[data-v-a0d36266] {
  background: #fff3e0;
  border-color: #ff9800;
  color: #e65100;
}
.priority-tag.active.critical[data-v-a0d36266] {
  background: #fce4ec;
  border-color: #e53935;
  color: #b71c1c;
  font-weight: 600;
}
.form-actions[data-v-a0d36266] {
  display: flex;
  gap: 12px;
}
.btn-execute[data-v-a0d36266] {
  background: #1A3E72 !important;
  border-color: #1A3E72 !important;
  font-weight: 600;
}
.btn-execute[data-v-a0d36266]:hover {
  background: #254f8e !important;
  border-color: #254f8e !important;
}
.btn-save[data-v-a0d36266] {
  border-color: #d0d5dd;
  color: #4a5568;
}
.btn-save[data-v-a0d36266]:hover {
  border-color: #1A3E72;
  color: #1A3E72;
}

/* ======================================================================
   历史表格
   ====================================================================== */
.history-card[data-v-a0d36266] {
  flex: 1;
  min-height: 0;
}
.history-card[data-v-a0d36266] .el-card__body {
  padding: 0;
}
.compact-table[data-v-a0d36266] .el-table__header th {
  background: #f5f7fa;
  font-weight: 600;
  color: #4a5568;
}
.priority-label[data-v-a0d36266] {
  font-size: 12px;
  font-weight: 500;
}
.priority-label.low[data-v-a0d36266] {
  color: #4caf50;
}
.priority-label.medium[data-v-a0d36266] {
  color: #2196f3;
}
.priority-label.high[data-v-a0d36266] {
  color: #ff9800;
}
.priority-label.critical[data-v-a0d36266] {
  color: #e53935;
  font-weight: 700;
}

/* ======================================================================
   复盘数据调取 — 自然语言查询
   ====================================================================== */
.card-subtitle[data-v-a0d36266] {
  font-size: 12px;
  font-weight: 400;
  color: #94a3b8;
  margin-left: 8px;
}
.nl-input-row[data-v-a0d36266] {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
}
.nl-input-row .nl-input[data-v-a0d36266] {
  flex: 1;
}
.nl-input-row .btn-query[data-v-a0d36266] {
  flex-shrink: 0;
  background: #1A3E72 !important;
  border-color: #1A3E72 !important;
  font-weight: 600;
  height: 40px;
}
.nl-input-row .btn-query[data-v-a0d36266]:hover {
  background: #254f8e !important;
  border-color: #254f8e !important;
}
.nl-quick-chips[data-v-a0d36266] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.nl-quick-chips .chips-label[data-v-a0d36266] {
  font-size: 12px;
  color: #94a3b8;
  flex-shrink: 0;
}
.nl-quick-chips .chip[data-v-a0d36266] {
  cursor: pointer;
  font-size: 12px;
  background: #f0f4ff;
  border-color: #c7d2fe;
  color: #3730a3;
}
.nl-quick-chips .chip[data-v-a0d36266]:hover {
  background: #e0e7ff;
  border-color: #a5b4fc;
}
.nl-output[data-v-a0d36266] {
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}
.nl-markdown[data-v-a0d36266] {
  background: #fafbfc;
  padding: 16px 20px;
}
.nl-markdown pre[data-v-a0d36266] {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: "SF Mono", "Fira Code", "Menlo", monospace;
  font-size: 13px;
  line-height: 1.7;
  color: #1a1d25;
}
.nl-error[data-v-a0d36266] {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: #fef2f2;
  padding: 16px 20px;
  color: #991b1b;
}
.nl-error .el-icon[data-v-a0d36266] {
  flex-shrink: 0;
  margin-top: 1px;
}
.nl-error pre[data-v-a0d36266] {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: "SF Mono", "Fira Code", "Menlo", monospace;
  font-size: 13px;
  line-height: 1.6;
  color: #991b1b;
}
/* ======================================================================
   Page Shell — 深色指挥舱
   ====================================================================== */
.live-page[data-v-038fea7d] {
  padding: 20px 24px;
  min-height: 100%;
  box-sizing: border-box;
  background: #0D1117;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* ======================================================================
   Stats Bar
   ====================================================================== */
.live-stats[data-v-038fea7d] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.live-stat[data-v-038fea7d] {
  background: linear-gradient(135deg, rgba(22, 27, 34, 0.9) 0%, rgba(13, 17, 23, 0.95) 100%);
  border: 1px solid #21262d;
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
.live-stat[data-v-038fea7d]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(26, 62, 114, 0.4), transparent);
}
.live-stat-label[data-v-038fea7d] {
  font-size: 13px;
  color: #7c8a9e;
  font-weight: 500;
}
.live-stat-value[data-v-038fea7d] {
  font-size: 22px;
  font-weight: 700;
  color: #e8eaef;
  font-variant-numeric: tabular-nums;
  font-family: "SF Mono", "JetBrains Mono", "Consolas", monospace;
}

/* ======================================================================
   Body — 左右分栏
   ====================================================================== */
.live-body[data-v-038fea7d] {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 16px;
  flex: 1;
  min-height: 0;
}
.feed-panel[data-v-038fea7d],
.brief-panel[data-v-038fea7d] {
  background: linear-gradient(135deg, rgba(22, 27, 34, 0.9) 0%, rgba(13, 17, 23, 0.95) 100%);
  border: 1px solid #21262d;
  border-radius: 10px;
  padding: 16px 18px;
  position: relative;
  display: flex;
  flex-direction: column;
}
.feed-panel[data-v-038fea7d]::before,
.brief-panel[data-v-038fea7d]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(26, 62, 114, 0.4), transparent);
}
.panel-title[data-v-038fea7d] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #c0c6d0;
  margin-bottom: 12px;
  flex-shrink: 0;
}
.live-dot[data-v-038fea7d] {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e53935;
  margin-left: auto;
  animation: status-blink-038fea7d 1s ease-in-out infinite;
}
@keyframes status-blink-038fea7d {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.3;
}
}
/* ======================================================================
   Feed Container — 实时订单滚动
   ====================================================================== */
.feed-container[data-v-038fea7d] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}
.feed-container[data-v-038fea7d]::-webkit-scrollbar {
  width: 4px;
}
.feed-container[data-v-038fea7d]::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
}
.feed-inner[data-v-038fea7d] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.feed-item[data-v-038fea7d] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid transparent;
  transition: all 0.3s ease;
}
.feed-item[data-v-038fea7d]:hover {
  background: rgba(26, 62, 114, 0.1);
  border-color: rgba(26, 62, 114, 0.3);
}
.feed-shop-logo[data-v-038fea7d] {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(26, 62, 114, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #6a8db8;
  flex-shrink: 0;
}
.feed-info[data-v-038fea7d] {
  flex: 1;
  min-width: 0;
}
.feed-shop-name[data-v-038fea7d] {
  font-size: 13px;
  font-weight: 600;
  color: #e8eaef;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.feed-time[data-v-038fea7d] {
  font-size: 11px;
  color: #5a6270;
  margin-top: 2px;
}
.feed-amount[data-v-038fea7d] {
  font-size: 15px;
  font-weight: 700;
  color: #4caf50;
  font-variant-numeric: tabular-nums;
  font-family: "SF Mono", "JetBrains Mono", "Consolas", monospace;
  flex-shrink: 0;
}

/* Feed transition */
.feed-enter-active[data-v-038fea7d] {
  transition: all 0.5s ease;
}
.feed-enter-from[data-v-038fea7d] {
  opacity: 0;
  transform: translateY(20px);
}

/* ======================================================================
   Brief Panel — 战区态势简报
   ====================================================================== */
.brief-list[data-v-038fea7d] {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  overflow-y: auto;
}
.brief-list[data-v-038fea7d]::-webkit-scrollbar {
  width: 4px;
}
.brief-list[data-v-038fea7d]::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
}
.brief-item[data-v-038fea7d] {
  padding: 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid transparent;
  transition: all 0.2s ease;
}
.brief-item[data-v-038fea7d]:hover {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.06);
}
.brief-meta[data-v-038fea7d] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
}
.brief-tag[data-v-038fea7d] {
  font-size: 10px;
  font-weight: 600;
  padding: 1px 8px;
  border-radius: 8px;
}
.brief-tag.tag-critical[data-v-038fea7d] {
  background: rgba(229, 57, 53, 0.15);
  color: #e53935;
}
.brief-tag.tag-warning[data-v-038fea7d] {
  background: rgba(255, 152, 0, 0.15);
  color: #ff9800;
}
.brief-tag.tag-info[data-v-038fea7d] {
  background: rgba(26, 62, 114, 0.2);
  color: #6a8db8;
}
.brief-time[data-v-038fea7d] {
  font-size: 11px;
  color: #5a6270;
}
.brief-title[data-v-038fea7d] {
  font-size: 13px;
  font-weight: 600;
  color: #e8eaef;
  margin-bottom: 4px;
}
.brief-desc[data-v-038fea7d] {
  font-size: 12px;
  color: #7c8a9e;
  line-height: 1.5;
}.history-page[data-v-c5fb1ea7] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-c5fb1ea7] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-c5fb1ea7] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.history-card[data-v-c5fb1ea7] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.overview-page[data-v-50a3562f] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
  animation: fadeIn-50a3562f 0.3s ease;
  --card-bg: #141820;
  --card-border: #1e222b;
  --text-primary: #e8ecf2;
  --text-secondary: #8892a4;
  --text-muted: #5a6270;
}
@keyframes fadeIn-50a3562f {
from {
    opacity: 0;
    transform: translateY(6px);
}
to {
    opacity: 1;
    transform: translateY(0);
}
}
.page-header[data-v-50a3562f] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}
.page-title[data-v-50a3562f] {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: 1px;
}
.page-sub[data-v-50a3562f] {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--text-muted);
}
.header-actions[data-v-50a3562f] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--text-secondary);
}
.live-dot[data-v-50a3562f] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00e676;
  animation: pulse-50a3562f 1.5s ease infinite;
}
.live-text[data-v-50a3562f] {
  color: #00e676;
  font-weight: 700;
  letter-spacing: 2px;
  font-size: 11px;
}
.update-time[data-v-50a3562f] {
  color: var(--text-muted);
}
@keyframes pulse-50a3562f {
0%, 100% {
    box-shadow: 0 0 0 0 rgba(0, 230, 118, 0.5);
}
50% {
    box-shadow: 0 0 0 8px rgba(0, 230, 118, 0);
}
}
.kpi-row[data-v-50a3562f] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.kpi-card[data-v-50a3562f] {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 4px;
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
  overflow: hidden;
}
.kpi-card[data-v-50a3562f]:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.kpi-card.critical[data-v-50a3562f] {
  border-color: rgba(245, 108, 108, 0.35);
  box-shadow: inset 0 0 30px rgba(245, 108, 108, 0.04);
}
.kpi-icon[data-v-50a3562f] {
  width: 42px;
  height: 42px;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.kpi-body[data-v-50a3562f] {
  flex: 1;
  min-width: 0;
}
.kpi-value[data-v-50a3562f] {
  display: block;
  font-size: 26px;
  font-weight: 700;
  font-family: "DIN", "Roboto Mono", monospace;
  line-height: 1.1;
}
.kpi-label[data-v-50a3562f] {
  display: block;
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.kpi-trend[data-v-50a3562f] {
  font-size: 12px;
  font-weight: 600;
  flex-shrink: 0;
}
.kpi-trend.up[data-v-50a3562f] {
  color: #00e676;
}
.kpi-trend.down[data-v-50a3562f] {
  color: #f56c6c;
}
.content-grid[data-v-50a3562f] {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: auto auto;
  gap: 14px;
}
.panel[data-v-50a3562f] {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.panel--gmv[data-v-50a3562f] {
  grid-row: 1/3;
}
.panel-header[data-v-50a3562f] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid var(--card-border);
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.panel-body[data-v-50a3562f] {
  flex: 1;
  min-height: 0;
  position: relative;
}
.panel-footer[data-v-50a3562f] {
  display: flex;
  gap: 16px;
  padding: 10px 18px;
  border-top: 1px solid var(--card-border);
  flex-wrap: wrap;
}
.region-tag[data-v-50a3562f] {
  font-size: 11px;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 4px;
}
.region-dot[data-v-50a3562f] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.health-score[data-v-50a3562f] {
  font-size: 20px;
  font-weight: 700;
  font-family: "DIN", "Roboto Mono", monospace;
}
.health-score.excellent[data-v-50a3562f] {
  color: #00e676;
}
.health-score.good[data-v-50a3562f] {
  color: #ffb800;
}
.health-score.poor[data-v-50a3562f] {
  color: #f56c6c;
}

/* Empty state */
.empty-chart[data-v-50a3562f] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 12px;
}
.empty-ring[data-v-50a3562f] {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.06);
  border-top-color: rgba(255, 255, 255, 0.12);
}
.empty-text[data-v-50a3562f] {
  font-size: 14px;
  color: #5a6270;
}
.empty-list[data-v-50a3562f] {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 14px;
  color: #5a6270;
}

/* Alert feed */
.alert-feed-wrap[data-v-50a3562f] {
  overflow: hidden;
  position: relative;
}
.alert-feed[data-v-50a3562f] {
  animation: alertScroll-50a3562f 20s linear infinite;
}
.alert-feed.paused[data-v-50a3562f] {
  animation-play-state: paused;
}
.alert-feed-inner[data-v-50a3562f] {
  display: flex;
  flex-direction: column;
}
.alert-feed-item[data-v-50a3562f] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.03);
  font-size: 13px;
  transition: background 0.15s;
}
.alert-feed-item[data-v-50a3562f]:hover {
  background: rgba(255, 255, 255, 0.03);
}
.alert-feed-item.critical[data-v-50a3562f] {
  border-left: 2px solid #f56c6c;
}
.alert-feed-item.warning[data-v-50a3562f] {
  border-left: 2px solid #ffb800;
}
.alert-feed-item.info[data-v-50a3562f] {
  border-left: 2px solid #448aff;
}
.afi-dot[data-v-50a3562f] {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.afi-dot.critical[data-v-50a3562f] {
  background: #f56c6c;
  box-shadow: 0 0 6px rgba(245, 108, 108, 0.6);
}
.afi-dot.warning[data-v-50a3562f] {
  background: #ffb800;
  box-shadow: 0 0 6px rgba(255, 184, 0, 0.6);
}
.afi-dot.info[data-v-50a3562f] {
  background: #448aff;
}
.afi-tag[data-v-50a3562f] {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 2px;
  flex-shrink: 0;
}
.critical .afi-tag[data-v-50a3562f] {
  background: rgba(245, 108, 108, 0.15);
  color: #f56c6c;
}
.warning .afi-tag[data-v-50a3562f] {
  background: rgba(255, 184, 0, 0.12);
  color: #ffb800;
}
.info .afi-tag[data-v-50a3562f] {
  background: rgba(68, 138, 255, 0.12);
  color: #448aff;
}
.afi-title[data-v-50a3562f] {
  flex: 1;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.afi-source[data-v-50a3562f] {
  font-size: 11px;
  color: var(--text-muted);
  flex-shrink: 0;
}
@keyframes alertScroll-50a3562f {
0% {
    transform: translateY(0);
}
100% {
    transform: translateY(-50%);
}
}
@media (max-width: 1400px) {
.content-grid[data-v-50a3562f] {
    grid-template-columns: 1fr;
}
.panel--gmv[data-v-50a3562f] {
    grid-row: auto;
}
}.skeleton-card[data-v-70c3fe8e] {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  background: var(--el-fill-color, #1d2028);
  border: 1px solid var(--el-border-color, #2a2d35);
}
.skeleton-shimmer[data-v-70c3fe8e] {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.04) 50%, transparent 60%);
  animation: shimmer-70c3fe8e 1.8s ease-in-out infinite;
}
@keyframes shimmer-70c3fe8e {
0% {
    transform: translateX(-100%);
}
100% {
    transform: translateX(100%);
}
}.root-cause-card[data-v-a395bebc] {
  background: rgba(245, 108, 108, 0.06);
  border: 1px solid rgba(245, 108, 108, 0.18);
  border-left: 4px solid #f56c6c;
  border-radius: 4px;
  padding: 16px 20px;
  margin-bottom: 14px;
}
.rc-header[data-v-a395bebc] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.rc-icon[data-v-a395bebc] {
  font-size: 16px;
}
.rc-badge[data-v-a395bebc] {
  font-size: 13px;
  font-weight: 700;
  color: #e8ecf2;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.rc-severity[data-v-a395bebc] {
  font-size: 10px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 2px;
}
.rc-severity.P0[data-v-a395bebc] {
  background: rgba(245, 108, 108, 0.2);
  color: #f56c6c;
}
.rc-body[data-v-a395bebc] {
  margin-bottom: 12px;
}
.rc-title[data-v-a395bebc] {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 600;
  color: #e8ecf2;
}
.rc-desc[data-v-a395bebc] {
  margin: 0;
  font-size: 13px;
  color: #8892a4;
  line-height: 1.6;
}
.rc-chain[data-v-a395bebc] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.chain-label[data-v-a395bebc] {
  font-size: 11px;
  color: #5a6270;
  flex-shrink: 0;
}
.chain-steps[data-v-a395bebc] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.chain-node[data-v-a395bebc] {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.04);
  color: #c0c6d0;
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.chain-node.error[data-v-a395bebc] {
  background: rgba(245, 108, 108, 0.1);
  border-color: rgba(245, 108, 108, 0.25);
  color: #f56c6c;
}
.chain-arrow[data-v-a395bebc] {
  color: #5a6270;
  font-weight: 600;
}
.rc-footer[data-v-a395bebc] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.rc-time[data-v-a395bebc] {
  margin-left: auto;
  font-size: 11px;
  color: #5a6270;
}.alerts-page[data-v-6cbb20cb] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
  animation: fadeIn-6cbb20cb 0.3s ease;
}
@keyframes fadeIn-6cbb20cb {
from {
    opacity: 0;
    transform: translateY(6px);
}
to {
    opacity: 1;
    transform: translateY(0);
}
}
.page-header[data-v-6cbb20cb] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.page-title[data-v-6cbb20cb] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.header-right[data-v-6cbb20cb] {
  display: flex;
  align-items: center;
  gap: 16px;
}
.alert-summary[data-v-6cbb20cb] {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: #888;
}
.sum-dot[data-v-6cbb20cb] {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 2px;
}
.sum-dot.critical[data-v-6cbb20cb] {
  background: #f56c6c;
}
.sum-dot.warning[data-v-6cbb20cb] {
  background: #e6a23c;
}
.sum-dot.info[data-v-6cbb20cb] {
  background: #409eff;
}
.toolbar[data-v-6cbb20cb] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  gap: 12px;
  flex-wrap: wrap;
}
.toolbar-left[data-v-6cbb20cb] {
  display: flex;
  gap: 10px;
}
.toolbar-right[data-v-6cbb20cb] {
  display: flex;
  gap: 8px;
}
.empty-state[data-v-6cbb20cb] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
  gap: 12px;
  color: #5a6270;
  font-size: 14px;
}
.priority-badge[data-v-6cbb20cb] {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
}
.priority-badge.critical[data-v-6cbb20cb] {
  background: rgba(245, 108, 108, 0.15);
  color: #f56c6c;
  border: 1px solid rgba(245, 108, 108, 0.3);
}
.priority-badge.warning[data-v-6cbb20cb] {
  background: rgba(230, 162, 60, 0.15);
  color: #e6a23c;
  border: 1px solid rgba(230, 162, 60, 0.3);
}
.priority-badge.info[data-v-6cbb20cb] {
  background: rgba(64, 158, 255, 0.12);
  color: #409eff;
  border: 1px solid rgba(64, 158, 255, 0.25);
}
.status-block[data-v-6cbb20cb] {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
}
.status-block.open[data-v-6cbb20cb] {
  background: rgba(245, 108, 108, 0.12);
  color: #f56c6c;
}
.status-block.processing[data-v-6cbb20cb] {
  background: rgba(230, 162, 60, 0.12);
  color: #e6a23c;
}
.status-block.resolved[data-v-6cbb20cb] {
  background: rgba(103, 194, 58, 0.12);
  color: #67c23a;
}
.resolved-text[data-v-6cbb20cb] {
  font-size: 12px;
  color: #67c23a;
}
.skeleton-rows[data-v-6cbb20cb] {
  padding: 0;
}
.table-wrap[data-v-6cbb20cb] {
  background: #1d2028;
  border: 1px solid #2a2d35;
  border-radius: 10px;
  overflow: hidden;
}
[data-v-6cbb20cb] .el-table {
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: rgba(255,255,255,0.03);
  --el-table-border-color: #2a2d35;
  --el-table-text-color: #c0c6d0;
  --el-table-header-text-color: #888;
  --el-table-row-hover-bg-color: rgba(255,255,255,0.04);
}
[data-v-6cbb20cb] .el-table__body tr {
  transition: background 0.15s;
}.risk-page[data-v-dc6dde60] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
  animation: fadeIn-dc6dde60 0.3s ease;
}
@keyframes fadeIn-dc6dde60 {
from {
    opacity: 0;
    transform: translateY(6px);
}
to {
    opacity: 1;
    transform: translateY(0);
}
}
.page-header[data-v-dc6dde60] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.page-title[data-v-dc6dde60] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.header-right[data-v-dc6dde60] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.scan-info[data-v-dc6dde60] {
  font-size: 12px;
  color: #888;
}
.toolbar[data-v-dc6dde60] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  gap: 12px;
  flex-wrap: wrap;
}
.toolbar-left[data-v-dc6dde60] {
  display: flex;
  gap: 10px;
  align-items: center;
}
.toolbar-right[data-v-dc6dde60] {
  display: flex;
  gap: 8px;
}
.empty-state[data-v-dc6dde60] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
  gap: 12px;
  color: #5a6270;
  font-size: 14px;
}
.priority-badge[data-v-dc6dde60] {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
}
.priority-badge.critical[data-v-dc6dde60] {
  background: rgba(245, 108, 108, 0.15);
  color: #f56c6c;
  border: 1px solid rgba(245, 108, 108, 0.3);
}
.priority-badge.warning[data-v-dc6dde60] {
  background: rgba(230, 162, 60, 0.15);
  color: #e6a23c;
  border: 1px solid rgba(230, 162, 60, 0.3);
}
.priority-badge.info[data-v-dc6dde60] {
  background: rgba(64, 158, 255, 0.12);
  color: #409eff;
  border: 1px solid rgba(64, 158, 255, 0.25);
}
.status-block[data-v-dc6dde60] {
  display: inline-block;
  padding: 3px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
}
.status-block.open[data-v-dc6dde60] {
  background: rgba(245, 108, 108, 0.12);
  color: #f56c6c;
}
.status-block.processing[data-v-dc6dde60] {
  background: rgba(230, 162, 60, 0.12);
  color: #e6a23c;
}
.status-block.resolved[data-v-dc6dde60] {
  background: rgba(103, 194, 58, 0.12);
  color: #67c23a;
}
.skeleton-rows[data-v-dc6dde60] {
  padding: 0;
}
.table-wrap[data-v-dc6dde60] {
  background: #1d2028;
  border: 1px solid #2a2d35;
  border-radius: 10px;
  overflow: hidden;
}
[data-v-dc6dde60] .el-table {
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: rgba(255,255,255,0.03);
  --el-table-border-color: #2a2d35;
  --el-table-text-color: #c0c6d0;
  --el-table-header-text-color: #888;
  --el-table-row-hover-bg-color: rgba(255,255,255,0.04);
}
[data-v-dc6dde60] .el-table__body tr {
  transition: background 0.15s;
}.monitor-page[data-v-d6ad4559] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
  animation: fadeIn-d6ad4559 0.3s ease;
  --card-bg: #141820;
  --card-border: #1e222b;
  --text-primary: #e8ecf2;
  --text-secondary: #8892a4;
  --text-muted: #5a6270;
}
@keyframes fadeIn-d6ad4559 {
from {
    opacity: 0;
    transform: translateY(6px);
}
to {
    opacity: 1;
    transform: translateY(0);
}
}
.page-header[data-v-d6ad4559] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 20px;
}
.page-title[data-v-d6ad4559] {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: 1px;
}
.page-sub[data-v-d6ad4559] {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--text-muted);
}
.header-right[data-v-d6ad4559] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.live-indicator[data-v-d6ad4559] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #00e676;
}
.live-dot[data-v-d6ad4559] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00e676;
  animation: pulse-d6ad4559 1.5s ease infinite;
}
@keyframes pulse-d6ad4559 {
0%, 100% {
    box-shadow: 0 0 0 0 rgba(0, 230, 118, 0.5);
}
50% {
    box-shadow: 0 0 0 8px rgba(0, 230, 118, 0);
}
}
.topo-panel[data-v-d6ad4559] {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 4px;
  margin-bottom: 16px;
  overflow: hidden;
}
.topo-header[data-v-d6ad4559] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid var(--card-border);
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.topo-body[data-v-d6ad4559] {
  position: relative;
}
.topo-legend[data-v-d6ad4559] {
  display: flex;
  gap: 16px;
  font-size: 11px;
  color: var(--text-secondary);
  font-weight: 400;
}
.legend-item[data-v-d6ad4559] {
  display: flex;
  align-items: center;
  gap: 4px;
}
.legend-line[data-v-d6ad4559] {
  width: 16px;
  height: 2px;
  background: #3a3d45;
  display: inline-block;
  border-radius: 1px;
}
.legend-line.error[data-v-d6ad4559] {
  background: #f56c6c;
  animation: blink-d6ad4559 1.2s ease infinite;
}
@keyframes blink-d6ad4559 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.3;
}
}
.empty-chart[data-v-d6ad4559] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 340px;
  gap: 12px;
}
.empty-ring[data-v-d6ad4559] {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.06);
  border-top-color: rgba(255, 255, 255, 0.12);
}
.empty-text[data-v-d6ad4559] {
  font-size: 14px;
  color: #5a6270;
}
.empty-state[data-v-d6ad4559] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
  gap: 12px;
  color: #5a6270;
  font-size: 14px;
}
.table-panel[data-v-d6ad4559] {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 4px;
  overflow: hidden;
}
.status-light[data-v-d6ad4559] {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
.status-light.healthy[data-v-d6ad4559] {
  background: #00e676;
  box-shadow: 0 0 6px rgba(0, 230, 118, 0.5);
}
.status-light.degraded[data-v-d6ad4559] {
  background: #ffb800;
  box-shadow: 0 0 6px rgba(255, 184, 0, 0.5);
}
.status-light.error[data-v-d6ad4559] {
  background: #f56c6c;
  box-shadow: 0 0 6px rgba(245, 108, 108, 0.5);
  animation: blink-d6ad4559 1.2s ease infinite;
}
.status-tag[data-v-d6ad4559] {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 2px;
  font-size: 11px;
  font-weight: 600;
}
.status-tag.healthy[data-v-d6ad4559] {
  background: rgba(0, 230, 118, 0.1);
  color: #00e676;
}
.status-tag.degraded[data-v-d6ad4559] {
  background: rgba(255, 184, 0, 0.1);
  color: #ffb800;
}
.status-tag.error[data-v-d6ad4559] {
  background: rgba(245, 108, 108, 0.1);
  color: #f56c6c;
}
.svc-type[data-v-d6ad4559] {
  font-size: 11px;
  color: var(--text-muted);
}
.text-danger[data-v-d6ad4559] {
  color: #f56c6c;
  font-weight: 600;
}
[data-v-d6ad4559] .el-table {
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: rgba(255,255,255,0.02);
  --el-table-border-color: var(--card-border);
  --el-table-text-color: var(--text-secondary);
  --el-table-header-text-color: var(--text-muted);
  --el-table-row-hover-bg-color: rgba(255,255,255,0.03);
}
[data-v-d6ad4559] .el-table__body tr {
  transition: background 0.15s;
}.approve-page[data-v-dad7175a] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.cmd-card[data-v-dad7175a] {
  background: #fff;
  border: 1px solid #e8ecf1;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.cmd-card[data-v-dad7175a] .el-card__header {
  padding: 16px 20px 12px;
  border-bottom: 1px solid #eef0f4;
}
.cmd-card[data-v-dad7175a] .el-card__body {
  padding: 0;
}
.card-title[data-v-dad7175a] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #1a1d25;
}
.compact-table[data-v-dad7175a] .el-table__header th {
  background: #f5f7fa;
  font-weight: 600;
  color: #4a5568;
}
.action-btns[data-v-dad7175a] {
  display: flex;
  gap: 6px;
}.page[data-v-62cc71d6] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-62cc71d6] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-62cc71d6] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-62cc71d6] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-3bb2d288] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-3bb2d288] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-3bb2d288] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-3bb2d288] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-3bec634e] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-3bec634e] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-3bec634e] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-3bec634e] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.empty-list[data-v-3bec634e] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 48px 0;
}
.empty-icon[data-v-3bec634e] {
  font-size: 28px;
  opacity: 0.5;
}
.empty-text[data-v-3bec634e] {
  font-size: 13px;
  color: #7c8a9e;
}.page[data-v-e53361a9] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-e53361a9] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-e53361a9] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-e53361a9] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.empty-list[data-v-e53361a9] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 48px 0;
}
.empty-icon[data-v-e53361a9] {
  font-size: 28px;
  opacity: 0.5;
}
.empty-text[data-v-e53361a9] {
  font-size: 13px;
  color: #7c8a9e;
}.empty-state[data-v-bf2ec281] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  min-height: 260px;
  text-align: center;
}
.empty-icon-wrapper[data-v-bf2ec281] {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: rgba(0, 217, 255, 0.04);
  border: 1px solid rgba(0, 217, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: #8892a0;
}
.empty-title[data-v-bf2ec281] {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 600;
  color: #c0c6d0;
}
.empty-description[data-v-bf2ec281] {
  margin: 0 0 20px;
  font-size: 13px;
  color: #6b7280;
  max-width: 320px;
  line-height: 1.6;
}
.page[data-v-6abf23ce] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-6abf23ce] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.page-title[data-v-6abf23ce] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}

/* ─── 操作提示 ─── */
.hint-bar[data-v-6abf23ce] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  margin-bottom: 20px;
  background: rgba(64, 158, 255, 0.06);
  border: 1px solid rgba(64, 158, 255, 0.15);
  border-radius: 6px;
  font-size: 12px;
  color: #8892a0;
}

/* ─── Package Grid ─── */
.package-grid[data-v-6abf23ce] {
  min-height: 300px;
}
.grid-summary[data-v-6abf23ce] {
  margin-bottom: 16px;
}
.summary-text[data-v-6abf23ce] {
  font-size: 13px;
  color: #8892a0;
}
.grid-cards[data-v-6abf23ce] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

/* ─── Card ─── */
.p-card[data-v-6abf23ce] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
  transition: opacity 0.25s, box-shadow 0.25s;
  display: flex;
  flex-direction: column;
}
.p-card[data-v-6abf23ce] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.p-card[data-v-6abf23ce] .el-card__body {
  padding: 12px 18px 16px;
  flex: 1;
}
.p-card[data-v-6abf23ce]:hover {
  border-color: rgba(0, 217, 255, 0.3);
}
.p-card--inactive[data-v-6abf23ce] {
  opacity: 0.55;
}
.p-card--inactive[data-v-6abf23ce]:hover {
  opacity: 0.75;
}
.p-header[data-v-6abf23ce] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.p-header-right[data-v-6abf23ce] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.p-name[data-v-6abf23ce] {
  font-weight: 600;
  color: #e8eaef;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.inactive-tag[data-v-6abf23ce] {
  font-size: 11px;
}
.p-body[data-v-6abf23ce] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.p-price-row[data-v-6abf23ce] {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin-bottom: 4px;
}
.p-price[data-v-6abf23ce] {
  font-size: 24px;
  font-weight: 700;
  color: #409eff;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
  font-variant-numeric: tabular-nums;
}
.p-price-unit[data-v-6abf23ce] {
  font-size: 13px;
  color: #6b7280;
}
.p-info[data-v-6abf23ce] {
  display: flex;
  gap: 16px;
  font-size: 13px;
}
.info-item[data-v-6abf23ce] {
  display: flex;
  gap: 3px;
}
.info-label[data-v-6abf23ce] {
  color: #6b7280;
}
.info-value[data-v-6abf23ce] {
  color: #c0c6d0;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.text-warn[data-v-6abf23ce] {
  color: #e6a23c;
}
.p-feat[data-v-6abf23ce] {
  font-size: 12px;
  color: #6b7280;
  line-height: 1.5;
}
.p-footer[data-v-6abf23ce] {
  display: flex;
  justify-content: space-between;
  margin-top: 4px;
}
.p-date[data-v-6abf23ce] {
  font-size: 11px;
  color: #505560;
  font-variant-numeric: tabular-nums;
}

/* ─── Dialog Form ─── */
.create-form .el-form-item[data-v-6abf23ce] {
  margin-bottom: 18px;
}
.price-preview-inline[data-v-6abf23ce] {
  background: rgba(0, 217, 255, 0.03);
  border: 1px solid rgba(0, 217, 255, 0.1);
  border-radius: 8px;
  padding: 14px 16px;
  margin-top: 4px;
}
.preview-title[data-v-6abf23ce] {
  font-size: 12px;
  color: #8892a0;
  margin-bottom: 10px;
  font-weight: 600;
}
.preview-items[data-v-6abf23ce] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.preview-item[data-v-6abf23ce] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.preview-cycle[data-v-6abf23ce] {
  width: 36px;
  font-size: 12px;
  color: #8892a0;
}
.preview-val[data-v-6abf23ce] {
  font-size: 14px;
  font-weight: 700;
  color: #e0e4ec;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
  font-variant-numeric: tabular-nums;
  min-width: 90px;
}.page[data-v-ea0a42c6] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-ea0a42c6] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-ea0a42c6] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-ea0a42c6] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-3f4aa8bb] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-3f4aa8bb] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-3f4aa8bb] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-3f4aa8bb] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.page-wrap[data-v-f9188d59] { padding: 24px; color: #f0f6fc;
}
.page-header[data-v-f9188d59] { display: flex; align-items: center; justify-content: space-between; margin: 16px 0 24px;
}
.page-header h2[data-v-f9188d59] { margin: 0; font-size: 20px; font-weight: 600;
}
.header-actions[data-v-f9188d59] { display: flex; gap: 8px;
}
.low-balance-banner[data-v-f9188d59] { background: rgba(234,179,8,0.12); border: 1px solid rgba(234,179,8,0.3); border-radius: 8px; padding: 10px 16px; margin-bottom: 20px; color: #eab308; font-size: 13px; cursor: pointer; transition: background .15s;
}
.low-balance-banner[data-v-f9188d59]:hover { background: rgba(234,179,8,0.2);
}
.err-state[data-v-f9188d59] { display: flex; flex-direction: column; align-items: center; padding: 80px 0; color: #8b949e;
}

/* responsive grid — auto-fill with center alignment */
.model-grid[data-v-f9188d59] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 280px));
  gap: 16px 20px;
  justify-content: center;
}

/* skeleton */
.sk-card[data-v-f9188d59] { background: #1f2937; border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 16px; animation: pulse-f9188d59 1.5s infinite;
}
.sk-h[data-v-f9188d59] { height: 20px; background: rgba(255,255,255,0.08); border-radius: 4px; margin-bottom: 12px; width: 60%;
}
.sk-d[data-v-f9188d59] { height: 14px; background: rgba(255,255,255,0.05); border-radius: 4px; margin-bottom: 8px;
}
.sk-d.short[data-v-f9188d59] { width: 40%;
}
.sk-btn[data-v-f9188d59] { height: 28px; width: 80px; background: rgba(59,130,246,0.15); border-radius: 4px; margin-top: 12px;
}
@keyframes pulse-f9188d59 {
0%,100% { opacity: 1
}
50% { opacity: .6
}
}

/* card */
.model-card[data-v-f9188d59] {
  background: #1f2937; border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 16px;
  cursor: pointer; transition: transform .2s, border-color .2s, box-shadow .2s;
}
.model-card[data-v-f9188d59]:hover { border-color: #3b82f6; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(59,130,246,0.15);
}
.model-card[data-v-f9188d59]:active { transform: translateY(0);
}
.card-top[data-v-f9188d59] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px;
}
.card-top h3[data-v-f9188d59] { margin: 0; font-size: 16px;
}
.card-desc[data-v-f9188d59] { color: #8b949e; font-size: 13px; margin-bottom: 12px; min-height: 36px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.card-bot[data-v-f9188d59] { display: flex; justify-content: space-between; align-items: center;
}
.price[data-v-f9188d59] { color: #22c55e; font-weight: 600; font-size: 15px;
}
.price small[data-v-f9188d59] { font-weight: 400; color: #8b949e; font-size: 12px;
}
.trial-top[data-v-f9188d59] { display: flex; align-items: center; gap: 12px;
}
.price-tip[data-v-f9188d59] { color: #22c55e; font-size: 14px;
}

/* 修复: 深色主题 textarea 文字可见性 */
.trial-textarea[data-v-f9188d59] .el-textarea__inner {
  background-color: #0d1117 !important;
  color: #e6edf3 !important;
  border-color: #374151 !important;
}
.trial-textarea[data-v-f9188d59] .el-textarea__inner::placeholder {
  color: #6e7681 !important;
}
.trial-textarea[data-v-f9188d59] .el-textarea__inner:focus {
  border-color: #3b82f6 !important;
}
.trial-result[data-v-f9188d59] { margin-top: 12px;
}
.result-head[data-v-f9188d59] { font-weight: 600; margin-bottom: 8px;
}
.result-body[data-v-f9188d59] { background: #0d1117; border: 1px solid #374151; border-radius: 6px; padding: 12px; max-height: 300px; overflow-y: auto;
}
.result-body pre[data-v-f9188d59] { margin: 0; white-space: pre-wrap; font-size: 13px; color: #e6edf3;
}

.page-wrap[data-v-ced361d6]{padding:24px;color:#f0f6fc}.page-header[data-v-ced361d6]{margin:16px 0 20px}.page-header h2[data-v-ced361d6]{margin:0;font-size:20px;font-weight:600}
.balance-card[data-v-ced361d6]{display:flex;align-items:center;justify-content:space-between;background:#1f2937;border:1px solid rgba(255,255,255,0.1);border-radius:8px;padding:20px 24px;margin-bottom:24px}
.bl[data-v-ced361d6]{color:#8b949e;font-size:14px;margin-right:12px}.bv[data-v-ced361d6]{color:#3b82f6;font-size:28px;font-weight:700;margin-right:12px}.bl2[data-v-ced361d6]{color:#8b949e;font-size:13px}
.section-head[data-v-ced361d6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-head h3[data-v-ced361d6]{margin:0;font-size:16px;font-weight:500}
.pkg-grid[data-v-ced361d6]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pkg-card[data-v-ced361d6]{display:flex;flex-direction:column;justify-content:space-between;background:#1f2937;border:2px solid rgba(255,255,255,0.1);border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:border-color .2s,transform .15s;height:180px}
.pkg-card[data-v-ced361d6]:hover{border-color:#3b82f6;transform:translateY(-2px)}.pkg-card[data-v-ced361d6]:active{transform:translateY(0)}.pkg-card.selected[data-v-ced361d6]{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}
.pkg-amt[data-v-ced361d6]{font-size:28px;font-weight:700;color:#f0f6fc}.pkg-amt.custom[data-v-ced361d6]{font-size:20px;color:#8b949e}
.pkg-tokens[data-v-ced361d6]{color:#22c55e;font-size:14px}.pkg-bonus[data-v-ced361d6]{color:#eab308;font-size:12px}
.pkg-btn[data-v-ced361d6]{margin-top:auto;transition:background .15s,transform .1s}.pkg-btn[data-v-ced361d6]:hover{transform:scale(1.05)}.pkg-btn[data-v-ced361d6]:active{transform:scale(.97)}
.qrcode-box[data-v-ced361d6]{text-align:center;margin:20px 0}.qrcode-box img[data-v-ced361d6]{width:240px;height:240px}.order-info[data-v-ced361d6]{font-size:14px;margin:8px 0}.price[data-v-ced361d6]{color:#3b82f6;font-weight:bold;font-size:16px}.tip[data-v-ced361d6]{text-align:center;color:#8b949e;font-size:13px}

.page-wrap[data-v-a7d2d714] { padding: 24px; color: #f0f6fc;
}
.page-header[data-v-a7d2d714] { margin: 16px 0 20px;
}
.page-header h2[data-v-a7d2d714] { margin: 0; font-size: 20px; font-weight: 600;
}
.balance-card[data-v-a7d2d714] { display: flex; align-items: center; justify-content: space-between; background: #1f2937; border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 20px 24px; margin-bottom: 24px;
}
.bl[data-v-a7d2d714] { color: #8b949e; font-size: 14px; margin-right: 12px;
}
.bv[data-v-a7d2d714] { color: #3b82f6; font-size: 28px; font-weight: 700; margin-right: 12px;
}
.blv[data-v-a7d2d714] { color: #6b7280; font-size: 12px;
}
.section-head[data-v-a7d2d714] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px;
}
.section-head h3[data-v-a7d2d714] { margin: 0; font-size: 16px; font-weight: 500;
}

/* ==================================================================
   API军火库 — 原生 div 网格布局 (2026-06-15 v4-grid)
   放弃 el-table，从根源消除组件样式冲突
   主底: #141824  表头: #1c2130  悬浮: #1f2638  边框: #2d3346
   ================================================================== */

/* ── 页面容器 ── */
.page-wrap[data-v-37d4f32e] {
  width: 100% !important;
  margin: 0 !important;
  padding: 24px !important;
  color: #d1d5db !important;
  background: #141824 !important;
  box-sizing: border-box !important;
  min-height: 100% !important;
}
.page-header[data-v-37d4f32e] { margin: 16px 0 20px !important;
}
.page-header h2[data-v-37d4f32e] { margin: 0 !important; font-size: 20px !important; font-weight: 600 !important; color: #e5e7eb !important;
}

/* ==================================================================
   左侧子菜单 — sticky 固定悬浮
   ================================================================== */
.docs-layout[data-v-37d4f32e] {
  display: grid !important;
  grid-template-columns: 220px 1fr !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: flex-start !important;
}
.docs-sidebar[data-v-37d4f32e] {
  position: sticky !important;
  top: 16px !important;
  height: calc(100vh - 120px) !important;
  max-height: calc(100vh - 120px) !important;
  overflow-y: auto !important;
  align-self: flex-start !important;
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 8px !important;
  padding: 8px 0 !important;
  margin: 0 !important;
}
.docs-sidebar[data-v-37d4f32e]::-webkit-scrollbar { width: 3px !important;
}
.docs-sidebar[data-v-37d4f32e]::-webkit-scrollbar-thumb { background: #2d3346 !important; border-radius: 3px !important;
}
.sidebar-item[data-v-37d4f32e] {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 12px 16px !important;
  cursor: pointer !important;
  font-size: 14px !important;
  color: #8b949e !important;
  transition: background 0.15s !important;
  white-space: nowrap !important;
  background: #141824 !important;
  border: none !important;
}
.sidebar-item[data-v-37d4f32e]:hover { background: #1f2638 !important; color: #d1d5db !important;
}
.sidebar-item.active[data-v-37d4f32e] {
  color: #58a6ff !important;
  background: rgba(88, 166, 255, 0.08) !important;
  border-right: 2px solid #58a6ff !important;
}

/* 右侧内容区 */
.docs-content[data-v-37d4f32e] {
  width: 100% !important;
  min-width: 0 !important;
  background: #141824 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.docs-content h3[data-v-37d4f32e] { font-size: 18px !important; margin: 0 0 12px !important; color: #e5e7eb !important;
}
.docs-content h4[data-v-37d4f32e] { font-size: 15px !important; color: #e5e7eb !important;
}
.docs-content p[data-v-37d4f32e]  { color: #8b949e !important; margin-bottom: 16px !important; line-height: 1.6 !important;
}
.docs-content ul[data-v-37d4f32e] { color: #8b949e !important; line-height: 1.8 !important;
}

/* ── 代码块 ── */
.code-block[data-v-37d4f32e] {
  background: #0d1117 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 6px !important;
  margin-bottom: 16px !important;
  overflow: hidden !important;
  width: 100% !important;
}
.cb-head[data-v-37d4f32e] {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 8px 12px !important;
  background: #1c2130 !important;
  font-size: 12px !important;
  color: #8b949e !important;
  border-bottom: 1px solid #2d3346 !important;
}
.cb-copy[data-v-37d4f32e] { cursor: pointer !important; color: #58a6ff !important; font-size: 12px !important;
}
.cb-copy[data-v-37d4f32e]:hover { text-decoration: underline !important;
}
.code-block pre[data-v-37d4f32e]  { margin: 0 !important; padding: 12px !important; overflow-x: auto !important; background: #0d1117 !important;
}
.code-block code[data-v-37d4f32e] { font-size: 13px !important; color: #e6edf3 !important; white-space: pre !important;
}

/* ==================================================================
   可用模型 — 原生 div 网格布局 (零组件冲突)
   三列: 35% / 45% / 20%
   ================================================================== */
.model-grid-wrap[data-v-37d4f32e] {
  width: 100% !important;
  max-width: 100% !important;
  margin: 20px 0 0 0 !important;
  padding: 0 !important;
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
}

/* ── 表头行 ── */
.grid-header[data-v-37d4f32e] {
  display: flex !important;
  width: 100% !important;
  background: #1c2130 !important;
  border-bottom: 1px solid #2d3346 !important;
}
.grid-header .grid-cell[data-v-37d4f32e] {
  background: #1c2130 !important;
  color: #e5e7eb !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}

/* ── 数据行 ── */
.grid-body[data-v-37d4f32e] {
  width: 100% !important;
  background: #141824 !important;
}
.grid-row[data-v-37d4f32e] {
  display: flex !important;
  width: 100% !important;
  background: #141824 !important;
  border-bottom: 1px solid #2d3346 !important;
  transition: background 0.12s !important;
}
.grid-row[data-v-37d4f32e]:last-child { border-bottom: none !important;
}
.grid-row[data-v-37d4f32e]:hover { background: #1f2638 !important;
}

/* ── 单元格通用 ── */
.grid-cell[data-v-37d4f32e] {
  padding: 10px 12px !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #d1d5db !important;
  background: transparent !important;
  /* 核心：强制横向换行，杜绝竖排 */
  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: break-word !important;
  min-width: 0 !important;
}

/* ── 列宽分配 ── */
.grid-header > .grid-cell[data-v-37d4f32e]:nth-child(1),
.grid-row    > .grid-cell[data-v-37d4f32e]:nth-child(1) { width: 35% !important; flex-shrink: 0 !important;
}
.grid-header > .grid-cell[data-v-37d4f32e]:nth-child(2),
.grid-row    > .grid-cell[data-v-37d4f32e]:nth-child(2) { width: 45% !important; flex-shrink: 0 !important;
}
.grid-header > .grid-cell[data-v-37d4f32e]:nth-child(3),
.grid-row    > .grid-cell[data-v-37d4f32e]:nth-child(3) { width: 20% !important; flex-shrink: 0 !important;
}

/* ── 空数据 ── */
.grid-empty[data-v-37d4f32e] {
  padding: 40px 16px !important;
  text-align: center !important;
  color: #8b949e !important;
  background: #141824 !important;
  font-size: 14px !important;
}

/* ==================================================================
   错误码表格 — el-table 保留，深色化 (表单纯数据，无长文本不触发竖排)
   ================================================================== */
.docs-content[data-v-37d4f32e] .el-table {
  width: 100% !important;
  max-width: 100% !important;
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
}
.docs-content[data-v-37d4f32e] .el-table__header th {
  background: #1c2130 !important;
  color: #e5e7eb !important;
  border-bottom: 1px solid #2d3346 !important;
}
.docs-content[data-v-37d4f32e] .el-table__body td {
  background: #141824 !important;
  color: #d1d5db !important;
  border-bottom: 1px solid #2d3346 !important;
}
.docs-content[data-v-37d4f32e] .el-table__body tr:hover > td {
  background: #1f2638 !important;
}
.docs-content[data-v-37d4f32e] .el-table__row--striped td {
  background: #141824 !important;
}
.docs-content[data-v-37d4f32e] .el-table,
.docs-content[data-v-37d4f32e] .el-table__header-wrapper,
.docs-content[data-v-37d4f32e] .el-table__body-wrapper {
  background: #141824 !important;
}

/* ==================================================================
   算力节点管理 — 全套深色主题 (2026-06-16)
   主底:#141824 表头:#1c2130 hover:#1f2638 边框:#2d3346
   ================================================================== */

/* ── 页面容器 ── */
.page-wrap[data-v-dabd285c] {
  width: 100% !important;
  margin: 0 !important;
  padding: 24px !important;
  background: #141824 !important;
  color: #d1d5db !important;
  box-sizing: border-box !important;
  min-height: 100% !important;
}
.page-wrap[data-v-dabd285c] .el-breadcrumb__item { color: #8b949e !important;
}
.page-header h2[data-v-dabd285c] { font-size: 20px !important; font-weight: 700 !important; color: #e5e7eb !important; margin: 16px 0 12px !important;
}

/* ── 统计卡片 ── */
.stats-row[data-v-dabd285c] { display: flex !important; gap: 16px !important; margin-bottom: 20px !important; flex-wrap: wrap !important;
}
.stat-card[data-v-dabd285c] {
  flex: 1 !important;
  min-width: 140px !important;
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 8px !important;
  padding: 16px 20px !important;
  text-align: center !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
.stat-card[data-v-dabd285c]:hover { background: #1f2638 !important; border-color: #3b82f6 !important; transform: translateY(-2px) !important; box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
}
.stat-card.sc-active[data-v-dabd285c] { border-color: #3b82f6 !important; box-shadow: 0 0 0 1px rgba(59,130,246,0.3) !important;
}
.sc-val[data-v-dabd285c] { font-size: 28px !important; font-weight: 700 !important; color: #e5e7eb !important; font-family: 'JetBrains Mono', monospace !important;
}
.sc-label[data-v-dabd285c] { font-size: 13px !important; color: #8899AA !important; margin-top: 4px !important;
}

/* ── 搜索 & 操作栏 ── */
.toolbar[data-v-dabd285c] { display: flex !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 10px !important; margin-bottom: 12px !important;
}
.toolbar-left[data-v-dabd285c], .toolbar-right[data-v-dabd285c] { display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important;
}
.tb-search[data-v-dabd285c] { width: 220px !important;
}
.tb-select[data-v-dabd285c] { width: 120px !important;
}

/* ── 批量操作栏 ── */
.batch-bar[data-v-dabd285c] {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  margin-bottom: 12px !important;
  color: #e5e7eb !important;
  font-size: 13px !important;
}

/* ==================================================================
   表格深色主题
   ================================================================== */
.table-dark-wrap[data-v-dabd285c] { width: 100% !important; overflow-x: auto !important;
}
.nodes-table[data-v-dabd285c] {
  width: 100% !important;
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 6px !important;
  overflow: visible !important;
}
.nodes-table[data-v-dabd285c] .el-table__header-wrapper { background: #1c2130 !important;
}
.nodes-table[data-v-dabd285c] .el-table__body-wrapper { background: #141824 !important;
}
.nodes-table[data-v-dabd285c] .el-table__body tr:hover > td { background: #1f2638 !important;
}
.nodes-table[data-v-dabd285c] .el-table__row--striped td { background: #141824 !important;
}
.nodes-table[data-v-dabd285c] .el-table__empty-block { background: #141824 !important; color: #8b949e !important;
}

/* 终极兜底：杀死所有白色 */
.nodes-table[data-v-dabd285c] thead,
.nodes-table[data-v-dabd285c] thead tr,
.nodes-table[data-v-dabd285c] thead th,
.nodes-table[data-v-dabd285c] tbody,
.nodes-table[data-v-dabd285c] .el-table__inner-wrapper,
.nodes-table[data-v-dabd285c] .el-table__cell,
.nodes-table[data-v-dabd285c] .el-table__header,
.nodes-table[data-v-dabd285c] .el-table__body { background: inherit !important;
}
.nodes-table[data-v-dabd285c] .el-table__header tr,
.nodes-table[data-v-dabd285c] .el-table__header tr th { background: #1c2130 !important;
}
.nodes-table[data-v-dabd285c] table { background: #141824 !important;
}
.nodes-table[data-v-dabd285c] .el-table-column--selection .cell { background: transparent !important;
}
.nodes-table[data-v-dabd285c] .el-table__body tr.current-row > td { background: #1f2638 !important;
}

/* ==================================================================
   终极硬覆盖：12px字体/40px行高/table-layout:auto
   绝对禁止任何省略号、任何文字截断、任何文字竖排
   表格可以出现横向滚动条 — 完整显示优先
   ================================================================== */
.node-table[data-v-dabd285c] .el-table {
  font-size: 12px !important;
  line-height: 40px !important;
  width: 100% !important;
  table-layout: auto !important;
}

/* 所有 th/td — 禁止截断、禁止省略号 */
.node-table[data-v-dabd285c] .el-table__header th,
.node-table[data-v-dabd285c] .el-table__body td {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow: visible !important;
  text-overflow: clip !important;
  padding: 4px 8px !important;
  vertical-align: middle !important;
  background: #141824 !important;
  color: #d1d5db !important;
  border-bottom: 1px solid #2d3346 !important;
  border-right: 1px solid #2d3346 !important;
  font-size: 12px !important;
}
.node-table[data-v-dabd285c] .el-table__header th {
  background: #1c2130 !important;
  color: #e5e7eb !important;
  font-weight: 500 !important;
}
.node-table[data-v-dabd285c] .el-table__header th:last-child,
.node-table[data-v-dabd285c] .el-table__body td:last-child { border-right: none !important;
}

/* 强制所有 .cell 内容完整显示 */
.node-table[data-v-dabd285c] .el-table__body td .cell,
.node-table[data-v-dabd285c] .el-table__header th .cell {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow: visible !important;
  text-overflow: clip !important;
  width: auto !important;
  min-width: fit-content !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/* 操作列按钮单行排列 */
.node-table[data-v-dabd285c] .col-actions .cell {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  white-space: nowrap !important;
  flex-wrap: nowrap !important;
}
.action-btns[data-v-dabd285c] {
  display: inline-flex !important;
  gap: 8px !important;
  align-items: center !important;
  white-space: nowrap !important;
  flex-wrap: nowrap !important;
}

/* 状态标签、进度条不换行 */
.node-table[data-v-dabd285c] .el-tag {
  white-space: nowrap !important;
  display: inline-flex !important;
}
.node-table[data-v-dabd285c] .el-progress {
  width: 100% !important;
  min-width: 60px !important;
}

/* 负载列 inline-flex */
.load-col[data-v-dabd285c] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  width: 100% !important;
}
.load-pct[data-v-dabd285c] {
  font-size: 11px !important;
  color: #8899AA !important;
  width: 32px !important;
  text-align: right !important;
  font-family: monospace !important;
  flex-shrink: 0 !important;
}

/* 滚动条深色 */
.node-table[data-v-dabd285c] .el-table__body-wrapper::-webkit-scrollbar { width: 6px !important; height: 6px !important;
}
.node-table[data-v-dabd285c] .el-table__body-wrapper::-webkit-scrollbar-track { background: #141824 !important;
}
.node-table[data-v-dabd285c] .el-table__body-wrapper::-webkit-scrollbar-thumb { background: #2d3346 !important; border-radius: 3px !important;
}

/* 状态指示器 */
.status-dot[data-v-dabd285c] { font-size: 12px !important; padding: 2px 10px !important; border-radius: 10px !important; font-weight: 500 !important;
}
.dot-online[data-v-dabd285c]      { background: rgba(16,185,129,0.12) !important; color: #10b981 !important;
}
.dot-offline[data-v-dabd285c]     { background: rgba(239,68,68,0.12) !important; color: #ef4444 !important;
}
.dot-maintenance[data-v-dabd285c] { background: rgba(245,158,11,0.12) !important; color: #f59e0b !important;
}

/* 分页 */
.pagination-wrap[data-v-dabd285c] { display: flex !important; justify-content: flex-end !important; margin-top: 16px !important;
}
.pagination-wrap[data-v-dabd285c] .el-pagination { background: #141824 !important;
}
.pagination-wrap[data-v-dabd285c] .el-pagination button,
.pagination-wrap[data-v-dabd285c] .el-pagination .el-pager li { background: #1c2130 !important; color: #d1d5db !important; border-color: #2d3346 !important;
}
.pagination-wrap[data-v-dabd285c] .el-pagination .el-pager li.active { background: #3b82f6 !important; color: #fff !important;
}
.pagination-wrap[data-v-dabd285c] .el-pagination .el-pager li:hover:not(.active) { background: #1f2638 !important;
}

/* 加载/错误/空 */
.loading-wrap[data-v-dabd285c], .err-state[data-v-dabd285c] { margin-top: 24px !important;
}
.err-state[data-v-dabd285c] .el-result__title { color: #e5e7eb !important;
}
.err-state[data-v-dabd285c] .el-result__subtitle { color: #8b949e !important;
}
.page-wrap[data-v-dabd285c] .el-empty__description { color: #8b949e !important;
}
.page-wrap[data-v-dabd285c] .el-skeleton { background: #141824 !important;
}

/* ==================================================================
   弹窗深色主题
   ================================================================== */
.page-wrap[data-v-dabd285c] .el-dialog { background: #141824 !important; border: 1px solid #2d3346 !important; border-radius: 10px !important;
}
.page-wrap[data-v-dabd285c] .el-dialog__header { background: #141824 !important; border-bottom: 1px solid #2d3346 !important; padding: 20px 24px 16px !important;
}
.page-wrap[data-v-dabd285c] .el-dialog__title { color: #e5e7eb !important; font-size: 17px !important; font-weight: 600 !important;
}
.page-wrap[data-v-dabd285c] .el-dialog__body { background: #141824 !important; padding: 20px 24px !important; color: #d1d5db !important;
}
.page-wrap[data-v-dabd285c] .el-dialog__footer { background: #141824 !important; border-top: 1px solid #2d3346 !important; padding: 14px 24px !important;
}
.page-wrap[data-v-dabd285c] .el-dialog__headerbtn .el-dialog__close { color: #8b949e !important;
}
.page-wrap[data-v-dabd285c] .el-dialog__headerbtn:hover .el-dialog__close { color: #e5e7eb !important;
}
.page-wrap[data-v-dabd285c] .el-overlay { background: rgba(0,0,0,0.6) !important;
}

/* ═══ 弹窗表单布局 ═══ */
/* 并排行：IP+端口 / 权重+连接数 */
.form-row-split[data-v-dabd285c] {
  display: flex !important;
  gap: 16px !important;
  align-items: flex-start !important;
}
.form-row-split[data-v-dabd285c] .el-form-item__content {
  display: flex !important;
  gap: 16px !important;
  flex-wrap: nowrap !important;
  margin-left: 0 !important;
}
.split-6[data-v-dabd285c] { flex: 6 !important; min-width: 0 !important;
}  /* IP: 60% */
.split-4[data-v-dabd285c] { flex: 4 !important; min-width: 0 !important;
}  /* 端口: 40% */
.split-5[data-v-dabd285c] { flex: 5 !important; min-width: 0 !important;
}  /* 权重/连接数: 50% */

/* 表单基础 */
.dark-form[data-v-dabd285c] .el-form-item__label { color: #d1d5db !important;
}
.dark-form[data-v-dabd285c] .el-form-item.is-required .el-form-item__label::before { color: #ef4444 !important;
}
.dark-input[data-v-dabd285c] .el-input__wrapper {
  background: #1c2130 !important;
  border-color: #2d3346 !important;
  color: #d1d5db !important;
  box-shadow: none !important;
  height: 36px !important;
}
.dark-input[data-v-dabd285c] .el-input__wrapper:hover { border-color: #3b82f6 !important;
}
.dark-input[data-v-dabd285c] .el-input__inner { color: #d1d5db !important;
}
.dark-input[data-v-dabd285c] .el-input__inner::placeholder { color: #6b7280 !important;
}

/* 数字输入框：controls-position="right" 后不会溢出 */
.dark-input-num[data-v-dabd285c] {
  width: 100% !important;
}
.dark-input-num[data-v-dabd285c] .el-input__wrapper {
  background: #1c2130 !important;
  border-color: #2d3346 !important;
  color: #d1d5db !important;
  box-shadow: none !important;
  height: 36px !important;
  padding-right: 36px !important; /* 为右侧 +/- 按钮留空间 */
}
.dark-input-num[data-v-dabd285c] .el-input-number__increase,
.dark-input-num[data-v-dabd285c] .el-input-number__decrease {
  background: #1c2130 !important;
  border-color: #2d3346 !important;
  color: #8b949e !important;
  width: 28px !important;
}
.dark-input-num[data-v-dabd285c] .el-input-number__increase:hover,
.dark-input-num[data-v-dabd285c] .el-input-number__decrease:hover { color: #e5e7eb !important;
}
.dark-input-num[data-v-dabd285c] .el-input__inner { color: #d1d5db !important; text-align: left !important;
}
.dark-input-num-fixed[data-v-dabd285c] .el-input-number__increase,
.dark-input-num-fixed[data-v-dabd285c] .el-input-number__decrease {
  width: 28px !important;
  line-height: 17px !important;
}

/* ★ 备注 textarea */
.dark-textarea[data-v-dabd285c] .el-textarea__inner {
  background: #1c2130 !important;
  border-color: #2d3346 !important;
  color: #d1d5db !important;
  box-shadow: none !important;
  resize: vertical !important;
}
.dark-textarea[data-v-dabd285c] .el-textarea__inner:hover { border-color: #3b82f6 !important;
}
.dark-textarea[data-v-dabd285c] .el-textarea__inner::placeholder { color: #6b7280 !important;
}

/* 消息确认框 */
.page-wrap[data-v-dabd285c] .el-message-box { background: #141824 !important; border: 1px solid #2d3346 !important;
}
.page-wrap[data-v-dabd285c] .el-message-box__title { color: #e5e7eb !important;
}
.page-wrap[data-v-dabd285c] .el-message-box__message { color: #d1d5db !important;
}
.page-wrap[data-v-dabd285c] .el-message-box__headerbtn .el-message-box__close { color: #8b949e !important;
}

/* 搜索/下拉深色 */
.page-wrap[data-v-dabd285c] .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important; color: #d1d5db !important; box-shadow: none !important;
}
.page-wrap[data-v-dabd285c] .el-input__inner { color: #d1d5db !important;
}
.page-wrap[data-v-dabd285c] .el-select .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important;
}
.page-wrap[data-v-dabd285c] .el-select-dropdown { background: #141824 !important; border: 1px solid #2d3346 !important;
}
.page-wrap[data-v-dabd285c] .el-select-dropdown__item { color: #d1d5db !important;
}
.page-wrap[data-v-dabd285c] .el-select-dropdown__item.hover { background: #1f2638 !important;
}
.page-wrap[data-v-dabd285c] .el-select-dropdown__item.selected { color: #58a6ff !important;
}

/* ==================================================================
   危险弹窗 (批量删除确认)
   ================================================================== */
.danger-dialog[data-v-dabd285c] .el-dialog__header { border-bottom-color: rgba(239,68,68,0.3) !important;
}
.danger-warn[data-v-dabd285c] { display: flex !important; gap: 14px !important; padding: 8px 0 !important;
}
.danger-icon[data-v-dabd285c] {
  width: 40px !important; height: 40px !important; min-width: 40px !important;
  background: rgba(239,68,68,0.12) !important;
  color: #ef4444 !important;
  border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: 20px !important; font-weight: 700 !important;
}
.danger-body[data-v-dabd285c] { flex: 1 !important; min-width: 0 !important;
}
.danger-title[data-v-dabd285c] { color: #e5e7eb !important; font-size: 15px !important; margin-bottom: 8px !important;
}
.danger-title strong[data-v-dabd285c] { color: #ef4444 !important;
}
.danger-desc[data-v-dabd285c] { color: #ff6b6b !important; font-size: 13px !important; line-height: 1.6 !important; margin-bottom: 10px !important;
}
.danger-list[data-v-dabd285c] { max-height: 180px !important; overflow-y: auto !important; background: #1c2130 !important; border: 1px solid #2d3346 !important; border-radius: 6px !important; padding: 8px 12px !important;
}
.danger-item[data-v-dabd285c] { color: #d1d5db !important; font-size: 12px !important; padding: 4px 0 !important; border-bottom: 1px solid #2d3346 !important; font-family: monospace !important;
}
.danger-item[data-v-dabd285c]:last-child { border-bottom: none !important;
}

/* 按钮 */
.btn-dark[data-v-dabd285c] { background: #1c2130 !important; border: 1px solid #2d3346 !important; color: #d1d5db !important;
}
.btn-dark[data-v-dabd285c]:hover { background: #1f2638 !important;
}
.btn-reset[data-v-dabd285c] { background: transparent !important; border: 1px solid #2d3346 !important; color: #8b949e !important;
}
.btn-reset[data-v-dabd285c]:hover { background: #1f2638 !important; color: #d1d5db !important;
}
.btn-cancel[data-v-dabd285c] { background: #1c2130 !important; border: 1px solid #2d3346 !important; color: #d1d5db !important;
}
.btn-cancel[data-v-dabd285c]:hover { background: #1f2638 !important;
}
.btn-danger-confirm[data-v-dabd285c] { background: #dc2626 !important; border-color: #dc2626 !important; color: #fff !important;
}
.btn-danger-confirm[data-v-dabd285c]:hover { background: #b91c1c !important;
}
.btn-batch-off[data-v-dabd285c] { background: rgba(245,158,11,0.12) !important; border: 1px solid rgba(245,158,11,0.3) !important; color: #f59e0b !important;
}
.btn-batch-off[data-v-dabd285c]:hover { background: rgba(245,158,11,0.2) !important;
}
.btn-batch-del[data-v-dabd285c] { background: rgba(239,68,68,0.12) !important; border: 1px solid rgba(239,68,68,0.3) !important; color: #ef4444 !important;
}
.btn-batch-del[data-v-dabd285c]:hover { background: rgba(239,68,68,0.2) !important;
}
.btn-batch-export[data-v-dabd285c] { background: rgba(59,130,246,0.12) !important; border: 1px solid rgba(59,130,246,0.3) !important; color: #60a5fa !important;
}
.btn-batch-export[data-v-dabd285c]:hover { background: rgba(59,130,246,0.2) !important;
}
.btn-batch-clear[data-v-dabd285c] { background: #1c2130 !important; border: 1px solid #2d3346 !important; color: #d1d5db !important;
}
.btn-batch-clear[data-v-dabd285c]:hover { background: #1f2638 !important;
}

/* ═══ el-tooltip 深色适配 ═══ */
.page-wrap[data-v-dabd285c] .el-tooltip__popper {
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  color: #d1d5db !important;
  font-size: 12px !important;
  max-width: 360px !important;
  word-break: break-all !important;
}
.page-wrap[data-v-dabd285c] .el-tooltip__popper .el-popper__arrow::before {
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
}

.page-wrap[data-v-fbae0f28] { padding: 24px;
}
.page-header[data-v-fbae0f28] { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 16px; flex-wrap: wrap; gap: 8px;
}
.page-header h2[data-v-fbae0f28] { font-size: 20px; font-weight: 700; color: #E8ECF1; margin: 0;
}
.header-actions[data-v-fbae0f28] { display: flex; gap: 8px; align-items: center;
}
.stats-row[data-v-fbae0f28] { display: flex; gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}
.mon-stat-card[data-v-fbae0f28] { flex:1; min-width:180px; background:#141B31; border:1px solid rgba(255,255,255,0.06); border-radius:8px; padding:16px 20px;
}
.ms-val[data-v-fbae0f28] { font-size:28px; font-weight:700; color:#E8ECF1; font-family:var(--font-mono);
}
.ms-label[data-v-fbae0f28] { font-size:13px; color:#8899AA; margin-top:4px;
}
.ms-trend[data-v-fbae0f28] { font-size:12px; margin-top:4px;
}
.ms-trend.up[data-v-fbae0f28] { color:#00C48C;
}
.ms-trend.down[data-v-fbae0f28] { color:#FF4D4F;
}
.chart-card[data-v-fbae0f28] { background:#141B31; border:1px solid rgba(255,255,255,0.06); border-radius:8px; padding:16px 20px; margin-bottom:12px;
}
.chart-title[data-v-fbae0f28] { font-size:15px; font-weight:600; color:#E8ECF1; margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,0.06);
}
.section-head[data-v-fbae0f28] { display:flex; justify-content:space-between; align-items:center; margin:20px 0 12px;
}
.section-head h3[data-v-fbae0f28] { font-size:16px; font-weight:600; color:#E8ECF1; margin:0;
}
.alert-config-card[data-v-fbae0f28] { background:#141B31; border:1px solid rgba(255,255,255,0.06); border-radius:8px; padding:16px; margin-bottom:12px; display:flex; flex-direction:column; gap:10px; min-height:150px;
}
.acc-title[data-v-fbae0f28] { display:flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:#E8ECF1;
}
.acc-body[data-v-fbae0f28] { display:flex; align-items:center; gap:6px; font-size:12px; color:#8899AA; flex-wrap:wrap;
}
.pagination-wrap[data-v-fbae0f28] { display:flex; justify-content:flex-end; margin-top:12px;
}

.page-wrap[data-v-6a2a92fa] { padding: 24px;
}
.page-header[data-v-6a2a92fa] { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 16px;
}
.page-header h2[data-v-6a2a92fa] { font-size: 20px; font-weight: 700; color: #E8ECF1; margin: 0;
}
.header-actions[data-v-6a2a92fa] { display: flex; gap: 8px;
}
.config-card[data-v-6a2a92fa] { background: #141B31; border: 1px solid rgba(255,255,255,0.06); border-radius: 8px; padding: 16px 20px; margin-bottom: 12px; min-height: 170px;
}
.cc-head[data-v-6a2a92fa] { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: #E8ECF1; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.cc-body[data-v-6a2a92fa] { display: flex; flex-direction: column; gap: 12px;
}
.toggle-row[data-v-6a2a92fa] { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #C8D0D8; font-size: 13px;
}
.viz-card[data-v-6a2a92fa] { background: #141B31; border: 1px solid rgba(255,255,255,0.06); border-radius: 8px; padding: 16px 20px; margin-bottom: 12px;
}
.viz-title[data-v-6a2a92fa] { font-size: 15px; font-weight: 600; color: #E8ECF1; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.channel-bars[data-v-6a2a92fa] { display: flex; flex-direction: column; gap: 14px;
}
.ch-bar-row[data-v-6a2a92fa] { display: flex; align-items: center;
}
.ch-name[data-v-6a2a92fa] { width: 120px; font-size: 13px; color: #C8D0D8;
}
.ch-num[data-v-6a2a92fa] { font-size: 12px; color: #8899AA; width: 70px; text-align: right; font-family: var(--font-mono);
}
.section-head[data-v-6a2a92fa] { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 12px;
}
.section-head h3[data-v-6a2a92fa] { font-size: 16px; font-weight: 600; color: #E8ECF1; margin: 0;
}
.pagination-wrap[data-v-6a2a92fa] { display: flex; justify-content: flex-end; margin-top: 12px;
}
.pagination-wrap[data-v-6a2a92fa] .el-pagination__total { background: transparent !important; color: #8899AA !important;
}
.pagination-wrap[data-v-6a2a92fa] .el-pagination button { background: #21262D !important; border-color: #30363D !important; color: #E8ECF1 !important;
}
.pagination-wrap[data-v-6a2a92fa] .el-pagination button:hover { background: #30363D !important;
}
.pagination-wrap[data-v-6a2a92fa] .el-pager li { background: #21262D !important; color: #E8ECF1 !important;
}
.pagination-wrap[data-v-6a2a92fa] .el-pager li.is-active { background: #1f6b9e !important; color: #fff !important;
}

.page-wrap[data-v-65e6bb31] { padding: 24px;
}
.page-header[data-v-65e6bb31] { margin: 20px 0 16px;
}
.page-header h2[data-v-65e6bb31] { font-size: 20px; font-weight: 700; color: #E8ECF1; margin: 0;
}
.stats-row[data-v-65e6bb31] { display: flex; gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}
.fin-stat[data-v-65e6bb31] { flex:1; min-width:180px; background:#141B31; border:1px solid rgba(255,255,255,0.06); border-radius:8px; padding:16px 20px;
}
.fs-val[data-v-65e6bb31] { font-size:28px; font-weight:700; color:#E8ECF1; font-family:var(--font-mono);
}
.fs-label[data-v-65e6bb31] { font-size:13px; color:#8899AA; margin-top:4px;
}
.tab-actions[data-v-65e6bb31] { display:flex; gap:8px; margin-bottom:12px; align-items:center; flex-wrap:wrap;
}
.chart-card[data-v-65e6bb31] { background:#141B31; border:1px solid rgba(255,255,255,0.06); border-radius:8px; padding:16px 20px; margin-bottom:12px;
}
.chart-title[data-v-65e6bb31] { font-size:15px; font-weight:600; color:#E8ECF1; margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,0.06);
}
.pagination-wrap[data-v-65e6bb31] { display:flex; justify-content:flex-end; margin-top:12px;
}
[data-v-65e6bb31] .el-tabs--border-card { background:#141B31; border:1px solid rgba(255,255,255,0.06); border-radius:8px;
}
[data-v-65e6bb31] .el-tabs--border-card > .el-tabs__header { background:#1A2340; border-bottom:1px solid rgba(255,255,255,0.06);
}
[data-v-65e6bb31] .el-tabs--border-card > .el-tabs__header .el-tabs__item { color:#8899AA;
}
[data-v-65e6bb31] .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { color:#58a6ff; background:#141B31;
}
[data-v-65e6bb31] .el-tabs__content { padding:16px 20px;
}

.page-wrap[data-v-bed7c469] { padding: 24px;
}
.page-header[data-v-bed7c469] { margin: 20px 0 16px;
}
.page-header h2[data-v-bed7c469] { font-size: 20px; font-weight: 700; color: #E8ECF1; margin: 0;
}
.settings-form[data-v-bed7c469] { max-width: 800px;
}
.settings-form[data-v-bed7c469] .el-divider { border-color: rgba(255,255,255,0.06); margin: 24px 0;
}
[data-v-bed7c469] .el-tabs--border-card { background: #141B31; border: 1px solid rgba(255,255,255,0.06); border-radius: 8px;
}
[data-v-bed7c469] .el-tabs--border-card > .el-tabs__header { background: #1A2340; border-bottom: 1px solid rgba(255,255,255,0.06);
}
[data-v-bed7c469] .el-tabs--border-card > .el-tabs__header .el-tabs__item { color: #8899AA;
}
[data-v-bed7c469] .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { color: #58a6ff; background: #141B31;
}
[data-v-bed7c469] .el-tabs__content { padding: 24px 20px;
}

/* ==================================================================
   租户权限管理 — 全套深色主题 (2026-06-15)
   主底: #141824  表头: #1c2130  悬浮: #1f2638  边框: #2d3346
   ================================================================== */

/* ── 页面容器 ── */
.page-wrap[data-v-64b8b229] {
  width: 100% !important;
  margin: 0 !important;
  padding: 24px !important;
  background: #141824 !important;
  color: #d1d5db !important;
  box-sizing: border-box !important;
  min-height: 100% !important;
}
.page-wrap[data-v-64b8b229] .el-breadcrumb__item { color: #8b949e !important;
}
.page-header h2[data-v-64b8b229] { margin: 16px 0 12px !important; font-size: 20px !important; font-weight: 700 !important; color: #e5e7eb !important;
}

/* ── 快捷筛选标签 ── */
.quick-filters[data-v-64b8b229] { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 12px !important;
}
.qf-label[data-v-64b8b229] { color: #8b949e !important; font-size: 13px !important;
}
.qf-tag[data-v-64b8b229] {
  padding: 5px 14px !important;
  border-radius: 16px !important;
  border: 1px solid #2d3346 !important;
  background: #1c2130 !important;
  color: #8b949e !important;
  font-size: 12px !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
}
.qf-tag[data-v-64b8b229]:hover { border-color: #3b82f6 !important; color: #d1d5db !important;
}
.qf-tag.active[data-v-64b8b229] { background: rgba(59,130,246,0.15) !important; border-color: #3b82f6 !important; color: #60a5fa !important;
}
.qf-tag strong[data-v-64b8b229] { color: #e5e7eb !important;
}

/* ── 搜索 & 操作栏 ── */
.toolbar[data-v-64b8b229] { display: flex !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 10px !important; margin-bottom: 12px !important;
}
.toolbar-left[data-v-64b8b229], .toolbar-right[data-v-64b8b229] { display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: wrap !important;
}
.tb-search[data-v-64b8b229] { width: 220px !important;
}
.tb-select[data-v-64b8b229] { width: 120px !important;
}

/* ── 批量操作栏 ── */
.batch-bar[data-v-64b8b229] {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  margin-bottom: 12px !important;
  color: #e5e7eb !important;
  font-size: 13px !important;
}

/* ==================================================================
   表格深色主题
   ================================================================== */
.table-dark-wrap[data-v-64b8b229] { width: 100% !important;
}
.tenant-table[data-v-64b8b229] {
  width: 100% !important;
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 6px !important;
  overflow: hidden !important;
}
.tenant-table[data-v-64b8b229] .el-table__header-wrapper { background: #1c2130 !important;
}
.tenant-table[data-v-64b8b229] .el-table__header th {
  background: #1c2130 !important;
  color: #e5e7eb !important;
  border-bottom: 1px solid #2d3346 !important;
  border-right: 1px solid #2d3346 !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  padding: 10px 8px !important;
}
.tenant-table[data-v-64b8b229] .el-table__header th:last-child { border-right: none !important;
}
.tenant-table[data-v-64b8b229] .el-table__body-wrapper { background: #141824 !important;
}
.tenant-table[data-v-64b8b229] .el-table__body td {
  background: #141824 !important;
  color: #d1d5db !important;
  border-bottom: 1px solid #2d3346 !important;
  border-right: 1px solid #2d3346 !important;
  padding: 8px !important;
  font-size: 13px !important;
  white-space: normal !important;
  word-break: break-all !important;
  overflow-wrap: break-word !important;
}
.tenant-table[data-v-64b8b229] .el-table__body td:last-child { border-right: none !important;
}
.tenant-table[data-v-64b8b229] .el-table__body tr:hover > td { background: #1f2638 !important;
}
.tenant-table[data-v-64b8b229] .el-table__row--striped td { background: #141824 !important;
}
.tenant-table[data-v-64b8b229] .el-table__empty-block { background: #141824 !important; color: #8b949e !important;
}

/* 滚动条 */
.tenant-table[data-v-64b8b229] .el-table__body-wrapper::-webkit-scrollbar { width: 6px !important; height: 6px !important;
}
.tenant-table[data-v-64b8b229] .el-table__body-wrapper::-webkit-scrollbar-track { background: #141824 !important;
}
.tenant-table[data-v-64b8b229] .el-table__body-wrapper::-webkit-scrollbar-thumb { background: #2d3346 !important; border-radius: 3px !important;
}

/* ── 单元格内容样式 ── */
.cell-text[data-v-64b8b229] { white-space: normal !important; word-break: break-all !important;
}
.key-text[data-v-64b8b229] { font-size: 12px !important; color: #8b949e !important; font-family: monospace !important; cursor: pointer !important;
}
.key-text[data-v-64b8b229]:hover { color: #58a6ff !important;
}
.balance-text[data-v-64b8b229] { font-family: monospace !important; font-size: 13px !important;
}
.balance-zero[data-v-64b8b229] { color: #6b7280 !important;
}

/* 状态指示器 (替换 el-tag) */
.status-dot[data-v-64b8b229] { font-size: 12px !important; padding: 2px 10px !important; border-radius: 10px !important; font-weight: 500 !important;
}
.dot-on[data-v-64b8b229]  { background: rgba(16,185,129,0.12) !important; color: #10b981 !important;
}
.dot-off[data-v-64b8b229] { background: rgba(239,68,68,0.12) !important; color: #ef4444 !important;
}

/* 等级标签 */
.level-tag[data-v-64b8b229] { font-size: 12px !important; padding: 2px 10px !important; border-radius: 10px !important; font-weight: 500 !important;
}
.lv-basic[data-v-64b8b229]      { background: rgba(107,114,128,0.12) !important; color: #9ca3af !important;
}
.lv-advanced[data-v-64b8b229]   { background: rgba(245,158,11,0.12) !important; color: #f59e0b !important;
}
.lv-enterprise[data-v-64b8b229] { background: rgba(59,130,246,0.12) !important; color: #60a5fa !important;
}

/* ── 操作按钮分组 ── */
.action-group[data-v-64b8b229] { display: flex !important; align-items: center !important; gap: 2px !important; flex-wrap: wrap !important; justify-content: center !important;
}
.action-label[data-v-64b8b229] { font-size: 10px !important; color: #6b7280 !important; margin: 0 2px !important;
}
.action-sep[data-v-64b8b229] { color: #2d3346 !important; font-size: 11px !important; margin: 0 2px !important;
}

/* ── 分页 ── */
.pagination-wrap[data-v-64b8b229] { display: flex !important; justify-content: flex-end !important; margin-top: 16px !important;
}
.pagination-wrap[data-v-64b8b229] .el-pagination { background: #141824 !important;
}
.pagination-wrap[data-v-64b8b229] .el-pagination button,
.pagination-wrap[data-v-64b8b229] .el-pagination .el-pager li {
  background: #1c2130 !important;
  color: #d1d5db !important;
  border-color: #2d3346 !important;
}
.pagination-wrap[data-v-64b8b229] .el-pagination .el-pager li.active { background: #3b82f6 !important; color: #fff !important;
}
.pagination-wrap[data-v-64b8b229] .el-pagination .el-pager li:hover:not(.active) { background: #1f2638 !important;
}
.pagination-wrap[data-v-64b8b229] .el-select .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important; color: #d1d5db !important;
}

/* ── 加载/错误/空状态 ── */
.loading-wrap[data-v-64b8b229], .err-state[data-v-64b8b229] { margin-top: 24px !important;
}
.err-state[data-v-64b8b229] .el-result__title { color: #e5e7eb !important;
}
.err-state[data-v-64b8b229] .el-result__subtitle { color: #8b949e !important;
}
.page-wrap[data-v-64b8b229] .el-empty__description { color: #8b949e !important;
}
.page-wrap[data-v-64b8b229] .el-skeleton { background: #141824 !important;
}

/* ==================================================================
   弹窗深色主题 (覆盖 Element Plus 白色默认)
   ================================================================== */
.page-wrap[data-v-64b8b229] .el-dialog {
  background: #141824 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 10px !important;
}
.page-wrap[data-v-64b8b229] .el-dialog__header { background: #141824 !important; border-bottom: 1px solid #2d3346 !important; padding: 20px 24px 16px !important;
}
.page-wrap[data-v-64b8b229] .el-dialog__title { color: #e5e7eb !important; font-size: 17px !important; font-weight: 600 !important;
}
.page-wrap[data-v-64b8b229] .el-dialog__body { background: #141824 !important; padding: 20px 24px !important; color: #d1d5db !important;
}
.page-wrap[data-v-64b8b229] .el-dialog__footer { background: #141824 !important; border-top: 1px solid #2d3346 !important; padding: 14px 24px !important;
}
.page-wrap[data-v-64b8b229] .el-dialog__headerbtn .el-dialog__close { color: #8b949e !important;
}
.page-wrap[data-v-64b8b229] .el-dialog__headerbtn:hover .el-dialog__close { color: #e5e7eb !important;
}

/* 弹窗遮罩 */
.page-wrap[data-v-64b8b229] .el-overlay { background: rgba(0,0,0,0.6) !important;
}

/* 表单 */
.dark-form[data-v-64b8b229] .el-form-item__label { color: #d1d5db !important;
}
.dark-form[data-v-64b8b229] .el-form-item.is-required .el-form-item__label::before { color: #ef4444 !important;
}
.dark-input[data-v-64b8b229] .el-input__wrapper,
.dark-input[data-v-64b8b229] .el-textarea__inner {
  background: #1c2130 !important;
  border-color: #2d3346 !important;
  color: #d1d5db !important;
  box-shadow: none !important;
}
.dark-input[data-v-64b8b229] .el-input__wrapper:hover,
.dark-input[data-v-64b8b229] .el-textarea__inner:hover { border-color: #3b82f6 !important;
}
.dark-input-num[data-v-64b8b229] .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important; color: #d1d5db !important; box-shadow: none !important; width: 100% !important;
}
.dark-select[data-v-64b8b229] .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important; color: #d1d5db !important; box-shadow: none !important; width: 100% !important;
}
.dark-select[data-v-64b8b229] .el-select__caret { color: #8b949e !important;
}

/* 等级预览 */
.level-preview[data-v-64b8b229] {
  display: flex !important;
  gap: 20px !important;
  padding: 10px 14px !important;
  background: #1c2130 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  color: #d1d5db !important;
}
.level-preview strong[data-v-64b8b229] { color: #e5e7eb !important;
}
.bal-current[data-v-64b8b229] { color: #e5e7eb !important; font-size: 16px !important; font-family: monospace !important;
}

/* 危险弹窗 */
.danger-dialog[data-v-64b8b229] .el-dialog__header { border-bottom-color: rgba(239,68,68,0.3) !important;
}
.danger-warn[data-v-64b8b229] { display: flex !important; gap: 14px !important; padding: 8px 0 !important;
}
.danger-icon[data-v-64b8b229] {
  width: 40px !important; height: 40px !important;
  min-width: 40px !important;
  background: rgba(239,68,68,0.12) !important;
  color: #ef4444 !important;
  border-radius: 50% !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: 20px !important; font-weight: 700 !important;
}
.danger-body[data-v-64b8b229] { flex: 1 !important; min-width: 0 !important;
}
.danger-title[data-v-64b8b229] { color: #e5e7eb !important; font-size: 15px !important; margin-bottom: 8px !important;
}
.danger-title strong[data-v-64b8b229] { color: #ef4444 !important;
}
.danger-desc[data-v-64b8b229] { color: #ff6b6b !important; font-size: 13px !important; line-height: 1.6 !important; margin-bottom: 8px !important;
}
.danger-key[data-v-64b8b229] { color: #8b949e !important; font-size: 12px !important;
}
.danger-key code[data-v-64b8b229] { font-family: monospace !important; color: #ef4444 !important;
}

/* 按钮 */
.btn-dark[data-v-64b8b229] { background: #1c2130 !important; border: 1px solid #2d3346 !important; color: #d1d5db !important;
}
.btn-dark[data-v-64b8b229]:hover { background: #1f2638 !important; border-color: #3b82f6 !important;
}
.btn-reset[data-v-64b8b229] { background: transparent !important; border: 1px solid #2d3346 !important; color: #8b949e !important;
}
.btn-reset[data-v-64b8b229]:hover { background: #1f2638 !important; color: #d1d5db !important;
}
.btn-cancel[data-v-64b8b229] { background: #1c2130 !important; border: 1px solid #2d3346 !important; color: #d1d5db !important;
}
.btn-cancel[data-v-64b8b229]:hover { background: #1f2638 !important;
}
.btn-danger-confirm[data-v-64b8b229] { background: #dc2626 !important; border-color: #dc2626 !important; color: #fff !important;
}
.btn-danger-confirm[data-v-64b8b229]:hover { background: #b91c1c !important;
}
.btn-batch-on[data-v-64b8b229] { background: rgba(16,185,129,0.12) !important; border: 1px solid rgba(16,185,129,0.3) !important; color: #10b981 !important;
}
.btn-batch-on[data-v-64b8b229]:hover { background: rgba(16,185,129,0.2) !important;
}
.btn-batch-off[data-v-64b8b229] { background: rgba(239,68,68,0.12) !important; border: 1px solid rgba(239,68,68,0.3) !important; color: #ef4444 !important;
}
.btn-batch-off[data-v-64b8b229]:hover { background: rgba(239,68,68,0.2) !important;
}
.btn-batch-clear[data-v-64b8b229] { background: #1c2130 !important; border: 1px solid #2d3346 !important; color: #d1d5db !important;
}
.btn-batch-clear[data-v-64b8b229]:hover { background: #1f2638 !important;
}

/* 搜索/下拉深色覆盖 */
.page-wrap[data-v-64b8b229] .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important; color: #d1d5db !important; box-shadow: none !important;
}
.page-wrap[data-v-64b8b229] .el-input__inner { color: #d1d5db !important;
}
.page-wrap[data-v-64b8b229] .el-select .el-input__wrapper { background: #1c2130 !important; border-color: #2d3346 !important;
}
.page-wrap[data-v-64b8b229] .el-select-dropdown { background: #141824 !important; border: 1px solid #2d3346 !important;
}
.page-wrap[data-v-64b8b229] .el-select-dropdown__item { color: #d1d5db !important;
}
.page-wrap[data-v-64b8b229] .el-select-dropdown__item.hover { background: #1f2638 !important;
}
.page-wrap[data-v-64b8b229] .el-select-dropdown__item.selected { color: #58a6ff !important;
}

/* 消息确认框 */
.page-wrap[data-v-64b8b229] .el-message-box { background: #141824 !important; border: 1px solid #2d3346 !important;
}
.page-wrap[data-v-64b8b229] .el-message-box__title { color: #e5e7eb !important;
}
.page-wrap[data-v-64b8b229] .el-message-box__message { color: #d1d5db !important;
}
.page-wrap[data-v-64b8b229] .el-message-box__headerbtn .el-message-box__close { color: #8b949e !important;
}

/* ==================================================================
   终极兜底 — 杀死 Element Plus 内部所有白色默认背景
   覆盖 thead/tbody/tr/th/td/cell/inner-wrapper/checkbox
   ================================================================== */
.tenant-table[data-v-64b8b229] thead,
.tenant-table[data-v-64b8b229] thead tr,
.tenant-table[data-v-64b8b229] thead th,
.tenant-table[data-v-64b8b229] tbody,
.tenant-table[data-v-64b8b229] .el-table__inner-wrapper,
.tenant-table[data-v-64b8b229] .el-table__cell,
.tenant-table[data-v-64b8b229] .el-table__header,
.tenant-table[data-v-64b8b229] .el-table__body {
  background: inherit !important;
}
.tenant-table[data-v-64b8b229] .el-table__header tr,
.tenant-table[data-v-64b8b229] .el-table__header tr th {
  background: #1c2130 !important;
}
.tenant-table[data-v-64b8b229] .el-table-column--selection .cell { background: transparent !important;
}
.tenant-table[data-v-64b8b229] .el-table__body tr.current-row > td { background: #1f2638 !important;
}
.tenant-table[data-v-64b8b229] table { background: #141824 !important;
}

/* ==================================================================
   新密钥结果展示弹窗 (弹窗5)
   ================================================================== */
.key-result-dialog[data-v-64b8b229] .el-dialog__header { border-bottom: 1px solid rgba(16,185,129,0.3) !important;
}
.key-result-body[data-v-64b8b229] { display: flex !important; flex-direction: column !important; gap: 16px !important; align-items: center !important;
}
.key-result-warn[data-v-64b8b229] {
  width: 100% !important;
  padding: 12px 16px !important;
  background: rgba(245,158,11,0.08) !important;
  border: 1px solid rgba(245,158,11,0.3) !important;
  border-radius: 6px !important;
  color: #f59e0b !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  text-align: center !important;
}
.key-result-display[data-v-64b8b229] {
  width: 100% !important;
  padding: 20px !important;
  background: #0d1117 !important;
  border: 1px solid #2d3346 !important;
  border-radius: 8px !important;
  text-align: center !important;
}
.key-result-code[data-v-64b8b229] {
  font-family: 'JetBrains Mono', 'Fira Code', monospace !important;
  font-size: 15px !important;
  color: #58a6ff !important;
  word-break: break-all !important;
  line-height: 1.8 !important;
  user-select: all !important;
}
.btn-copy-key[data-v-64b8b229] {
  width: 100% !important;
  background: rgba(59,130,246,0.12) !important;
  border: 1px solid #3b82f6 !important;
  color: #60a5fa !important;
  font-size: 14px !important;
  padding: 12px 24px !important;
  border-radius: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  cursor: pointer !important;
}
.btn-copy-key[data-v-64b8b229]:hover { background: rgba(59,130,246,0.25) !important;
}
.key-result-hint[data-v-64b8b229] {
  color: #10b981 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

.page-wrap[data-v-fd7d0f01] { padding: 24px;
}
.page-header[data-v-fd7d0f01] { display: flex; justify-content: space-between; align-items: center; margin: 20px 0 16px; flex-wrap: wrap; gap: 8px;
}
.page-header h2[data-v-fd7d0f01] { font-size: 20px; font-weight: 700; color: #E8ECF1; margin: 0;
}
.header-actions[data-v-fd7d0f01] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.batch-bar[data-v-fd7d0f01] {
  display: flex; align-items: center; gap: 8px;
  background: #1A2340; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px;
  padding: 8px 16px; margin-bottom: 12px; color: #E8ECF1;
}
.pagination-wrap[data-v-fd7d0f01] { display: flex; justify-content: flex-end; margin-top: 16px;
}
.test-result[data-v-fd7d0f01] {
  display: flex; align-items: center; gap: 8px;
  margin-top: 12px; padding: 10px 16px; border-radius: 6px; font-size: 14px;
}
.test-ok[data-v-fd7d0f01] { background: rgba(0,196,140,0.1); color: #00C48C; border: 1px solid rgba(0,196,140,0.3);
}
.test-fail[data-v-fd7d0f01] { background: rgba(255,77,79,0.1); color: #FF4D4F; border: 1px solid rgba(255,77,79,0.3);
}
.loading-wrap[data-v-fd7d0f01] { margin-top: 24px;
}
.err-state[data-v-fd7d0f01] { margin-top: 24px;
}

/* ── 定价参数三字段横向布局 ── */
.number-fields-row[data-v-fd7d0f01] {
  display: flex;
  gap: 24px;
  width: 100%;
}
.number-field[data-v-fd7d0f01] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0; /* 防止flex子元素溢出 */
}
.inline-label[data-v-fd7d0f01] {
  white-space: nowrap;
  color: #C0C9D9;
  font-size: 14px;
  flex-shrink: 0;
}

/* el-input-number 按钮尺寸 28x28，与输入框高度对齐 */
.number-field[data-v-fd7d0f01] .el-input-number {
  flex: 1;
  min-width: 0;
}
.number-field[data-v-fd7d0f01] .el-input-number .el-input-number__decrease,
.number-field[data-v-fd7d0f01] .el-input-number .el-input-number__increase {
  width: 28px;
  height: 28px;
  line-height: 28px;
}

/* 输入框与按钮间距 4px */
.number-field[data-v-fd7d0f01] .el-input-number .el-input__wrapper {
  padding-left: 8px;
  padding-right: 8px;
}
.number-field[data-v-fd7d0f01] .el-input-number.is-controls-right .el-input__wrapper {
  padding-right: 32px; /* 为右侧按钮留空间 */
}

/* 确保 pricing-row-item form-item 内容区占满 */
.pricing-row-item[data-v-fd7d0f01] .el-form-item__content {
  width: 100%;
}
.page[data-v-3dbe3ae4] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-3dbe3ae4] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-3dbe3ae4] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-3dbe3ae4] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-c20d9872] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-c20d9872] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-c20d9872] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-c20d9872] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-fb5950d3] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-fb5950d3] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-fb5950d3] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-fb5950d3] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.page[data-v-593e7e50] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-593e7e50] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-593e7e50] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}

/* ─── Mode Banner ─── */
.mode-banner[data-v-593e7e50] {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 24px;
  margin-bottom: 24px;
  background: rgba(0, 217, 255, 0.04);
  border: 1px solid rgba(0, 217, 255, 0.12);
  border-radius: 10px;
}
.mode-banner-icon[data-v-593e7e50] {
  font-size: 36px;
  flex-shrink: 0;
}
.mode-banner-title[data-v-593e7e50] {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 700;
  color: #e0e4ec;
}
.mode-banner-desc[data-v-593e7e50] {
  margin: 0;
  font-size: 13px;
  color: #8892a0;
  line-height: 1.6;
}

/* ─── Config Grid ─── */
.config-grid[data-v-593e7e50] {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 18px;
  margin-bottom: 24px;
}
.card[data-v-593e7e50] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.card[data-v-593e7e50] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card[data-v-593e7e50] .el-card__body {
  padding: 16px 18px;
}
.card--reserved[data-v-593e7e50] {
  opacity: 0.65;
}
.card-header[data-v-593e7e50] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.card-title[data-v-593e7e50] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}

/* ─── Mode Options ─── */
.mode-options[data-v-593e7e50] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mode-opt[data-v-593e7e50] {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 3px;
}
.mode-opt.active[data-v-593e7e50] {
  background: rgba(64, 158, 255, 0.12);
  color: #409eff;
  font-weight: 600;
}
.mode-opt.dimmed[data-v-593e7e50] {
  color: #6b7280;
}

/* ─── Reserved Body ─── */
.reserved-body[data-v-593e7e50] {
  text-align: center;
}
.reserved-hint[data-v-593e7e50] {
  font-size: 11px;
  color: #6b7280;
  line-height: 1.7;
  margin-top: 8px;
}
.reserved-hint p[data-v-593e7e50] {
  margin: 0 0 4px;
}
.code-ref[data-v-593e7e50] {
  font-size: 11px;
}
.code-ref code[data-v-593e7e50] {
  background: rgba(0, 217, 255, 0.06);
  padding: 2px 6px;
  border-radius: 3px;
  color: #00D9FF;
  font-family: "SF Mono", "Consolas", monospace;
}

/* ─── Upgrade Note ─── */
.upgrade-note[data-v-593e7e50] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 18px;
  background: rgba(230, 162, 60, 0.05);
  border: 1px solid rgba(230, 162, 60, 0.15);
  border-radius: 8px;
  font-size: 12px;
  color: #8892a0;
  line-height: 1.7;
}
.upgrade-note strong[data-v-593e7e50] {
  color: #e6a23c;
}
.drawer-top-bar[data-v-215e1fdd] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.drawer-subtitle[data-v-215e1fdd] {
  font-size: 13px;
  color: #8892a0;
  font-weight: 500;
}

/* ─── Section ─── */
.section[data-v-215e1fdd] {
  margin-bottom: 8px;
}
.section-header[data-v-215e1fdd] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.section-title[data-v-215e1fdd] {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
  display: flex;
  align-items: center;
  gap: 8px;
}
.manual-tag[data-v-215e1fdd] {
  font-size: 11px;
}

/* ─── Owner Card ─── */
.owner-card[data-v-215e1fdd] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 8px;
  border: 1px solid #2a2d35;
}
.owner-info[data-v-215e1fdd] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.owner-row[data-v-215e1fdd] {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
}
.owner-row--reserved[data-v-215e1fdd] {
  opacity: 0.5;
}
.owner-label[data-v-215e1fdd] {
  color: #8892a0;
  min-width: 64px;
}
.owner-value[data-v-215e1fdd] {
  color: #c0c6d0;
  font-weight: 600;
}
.owner-value--dim[data-v-215e1fdd] {
  color: #6b7280;
  font-style: italic;
}
.owner-date[data-v-215e1fdd] {
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}
.owner-actions[data-v-215e1fdd] {
  flex-shrink: 0;
}

/* ─── Staff Table ─── */
.staff-table-wrap[data-v-215e1fdd] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.staff-row[data-v-215e1fdd] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.015);
  border: 1px solid transparent;
  transition: all 0.2s;
}
.staff-row[data-v-215e1fdd]:hover {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(0, 217, 255, 0.1);
}
.staff-row--disabled[data-v-215e1fdd] {
  opacity: 0.5;
}
.staff-info[data-v-215e1fdd] {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.staff-account[data-v-215e1fdd] {
  font-size: 13px;
  font-weight: 600;
  color: #c0c6d0;
}
.staff-date[data-v-215e1fdd] {
  font-size: 10px;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}
.staff-tags[data-v-215e1fdd] {
  flex-shrink: 0;
}
.staff-actions[data-v-215e1fdd] {
  display: flex;
  gap: 4px;
}
.no-data[data-v-215e1fdd] {
  padding: 20px 0;
  text-align: center;
  color: #6b7280;
  font-size: 13px;
}
.drawer-loading[data-v-215e1fdd] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 0;
  color: #6b7280;
}

/* ─── Dialog ─── */
.reset-info[data-v-215e1fdd] {
  color: #c0c6d0;
  font-size: 13px;
  line-height: 1.6;
}
.detail-desc[data-v-e22ee49a] {
  margin-bottom: 20px;
}
.section-title[data-v-e22ee49a] {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.usage-card[data-v-e22ee49a] {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px;
}
.usage-row[data-v-e22ee49a] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.usage-label[data-v-e22ee49a] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #9ca3b2;
}
.usage-frac[data-v-e22ee49a] {
  font-variant-numeric: tabular-nums;
  color: #c0c6d0;
  font-weight: 600;
}

/* ─── Audit Info ─── */
.audit-info[data-v-e22ee49a] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 6px;
  border: 1px solid #2a2d35;
}
.audit-item[data-v-e22ee49a] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
}
.audit-label[data-v-e22ee49a] {
  color: #8892a0;
}
.audit-val[data-v-e22ee49a] {
  color: #c0c6d0;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.drawer-actions[data-v-e22ee49a] {
  display: flex;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid #2a2d35;
}
.drawer-loading[data-v-e22ee49a] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 0;
  color: #6b7280;
}
.expiry-warn[data-v-e22ee49a] {
  color: #e6a23c;
  font-weight: 600;
}
.new-expiry[data-v-e22ee49a] {
  font-weight: 600;
  color: #67c23a;
  font-variant-numeric: tabular-nums;
}
.page[data-v-8d788a58] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-8d788a58] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-8d788a58] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-8d788a58] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.usage-warn[data-v-8d788a58] {
  color: #e6a23c;
  font-weight: 600;
}
.renew-info[data-v-8d788a58] {
  color: #c0c6d0;
  font-size: 13px;
  line-height: 1.6;
}
.renew-new-date[data-v-8d788a58] {
  font-weight: 600;
  color: #67c23a;
}

/* ─── Quota Compare in Change Plan Dialog ─── */
.quota-compare[data-v-8d788a58] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 6px;
  border: 1px solid #2a2d35;
}
.quota-row[data-v-8d788a58] {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
}
.quota-label[data-v-8d788a58] {
  color: #8892a0;
  min-width: 60px;
}
.quota-usage[data-v-8d788a58] {
  color: #c0c6d0;
  font-variant-numeric: tabular-nums;
  min-width: 70px;
}
.quota-max[data-v-8d788a58] {
  color: #00D9FF;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.quota-warn[data-v-8d788a58] {
  color: #f56c6c;
  font-weight: 700;
  font-size: 11px;
  background: rgba(245, 108, 108, 0.1);
  padding: 1px 6px;
  border-radius: 3px;
}

/* ─── Audit column ─── */
.audit-cell[data-v-8d788a58] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.audit-operator[data-v-8d788a58] {
  font-size: 12px;
  color: #c0c6d0;
  font-weight: 500;
}
.audit-time[data-v-8d788a58] {
  font-size: 10px;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}

/* ─── Row highlights ─── */
[data-v-8d788a58] .row-selected {
  background: rgba(26, 62, 114, 0.15) !important;
  border-left: 3px solid #1A3E72 !important;
}
[data-v-8d788a58] .row-high-usage {
  background: rgba(230, 162, 60, 0.06) !important;
}
[data-v-8d788a58] .row-selected.row-high-usage {
  background: rgba(26, 62, 114, 0.15) !important;
  border-left: 3px solid #1A3E72 !important;
}
[data-v-8d788a58] .row-suspended {
  opacity: 0.65;
}
.page[data-v-437e0922] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-437e0922] {
  margin-bottom: 24px;
}
.page-title[data-v-437e0922] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.create-grid[data-v-437e0922] {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 24px;
  align-items: start;
}

/* 【修复2】右侧面板 z-index 防护 — 阻止悬浮广告遮挡卡片
   isolation: isolate 创建独立层叠上下文，外部浮动广告无法穿透 */
.right-panels[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
  z-index: 2;
  isolation: isolate;
}

/* 暗色主题适配 — 卡片边框 */
.card[data-v-437e0922] {
  background: #1d2028;
  border-color: var(--el-border-color-darker);
  color: #c0c6d0;
}
.card[data-v-437e0922] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card[data-v-437e0922] .el-card__body {
  padding: 18px 20px;
}
.form-card-title[data-v-437e0922] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.create-form .el-form-item[data-v-437e0922] {
  margin-bottom: 20px;
}
.form-section[data-v-437e0922] {
  margin-bottom: 16px;
}
.form-section[data-v-437e0922]:last-child {
  margin-bottom: 0;
}
.section-title[data-v-437e0922] {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 600;
  color: #8892a0;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 8px;
}
.section-badge[data-v-437e0922] {
  font-size: 11px;
}
.staff-quota-hint[data-v-437e0922] {
  font-size: 11px;
  color: #6b7280;
  font-weight: 400;
  text-transform: none;
}

/* ─── 员工弹窗内主密码未就绪警告 ─── */
.staff-dialog-warn[data-v-437e0922] {
  margin-top: 4px;
  padding: 8px 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #e6a23c;
  background: rgba(230, 162, 60, 0.06);
  border: 1px solid rgba(230, 162, 60, 0.2);
  border-radius: 6px;
}

/* ─── 员工复选框 ─── */
.checkbox-label[data-v-437e0922] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.checkbox-hint[data-v-437e0922] {
  font-size: 12px;
  color: #6b7280;
  margin-left: 4px;
}
.checkbox-hint--disabled[data-v-437e0922] {
  color: #4a4f58;
}
.staff-disabled-hint[data-v-437e0922] {
  margin: 4px 0 0 0;
  font-size: 11px;
  color: #4a4f58;
  line-height: 1.4;
}
.form-actions[data-v-437e0922] {
  display: flex;
  gap: 12px;
  padding-top: 8px;
}

/* ─── 【修复1】密码强度内联反馈 — 在输入框与 el-form 报错之间 ─── */
/* 进度条 + 文字组合；仅当密码格式合法时由 v-if 渲染；不合法时由 el-form 原生 error 接管 */
.pwd-feedback-inline[data-v-437e0922] {
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.pwd-feedback-inline .pwd-strength-bar[data-v-437e0922] {
  display: flex;
  gap: 4px;
  flex: 1;
}
.pwd-feedback-inline .pwd-strength-seg[data-v-437e0922] {
  height: 4px;
  flex: 1;
  border-radius: 2px;
  background: #2a2d35;
  transition: background 0.25s;
}
.pwd-feedback-inline .pwd-strength-seg.lv0[data-v-437e0922] {
  background: #2a2d35;
}
.pwd-feedback-inline .pwd-strength-seg.lv1[data-v-437e0922] {
  background: #f56c6c;
}
.pwd-feedback-inline .pwd-strength-seg.lv2[data-v-437e0922] {
  background: #e6a23c;
}
.pwd-feedback-inline .pwd-strength-seg.lv3[data-v-437e0922] {
  background: #409eff;
}
.pwd-feedback-inline .pwd-strength-seg.lv4[data-v-437e0922] {
  background: #67c23a;
}
.pwd-feedback-inline .pwd-strength-text[data-v-437e0922] {
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  min-width: 48px;
  text-align: right;
}
.pwd-feedback-inline .pwd-strength-text.lv1-text[data-v-437e0922] {
  color: #f56c6c;
}
.pwd-feedback-inline .pwd-strength-text.lv2-text[data-v-437e0922] {
  color: #e6a23c;
}
.pwd-feedback-inline .pwd-strength-text.lv3-text[data-v-437e0922] {
  color: #409eff;
}
.pwd-feedback-inline .pwd-strength-text.lv4-text[data-v-437e0922] {
  color: #67c23a;
}

/* ─── 员工列表 — 独立卡片式行 ─── */
.staff-cards[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
}
.staff-card[data-v-437e0922] {
  border: 1px dashed #3a3d45;
  border-radius: 6px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.015);
  transition: border-color 0.2s;
}
.staff-card[data-v-437e0922]:hover {
  border-color: #4a4f58;
}
.staff-card-row[data-v-437e0922] {
  display: flex;
  align-items: center;
  gap: 14px;
}
.staff-card-field[data-v-437e0922] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.staff-card-field--role[data-v-437e0922] {
  flex: 0 0 100px;
}
.staff-card-label[data-v-437e0922] {
  font-size: 10px;
  color: #6b7280;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.staff-card-value[data-v-437e0922] {
  font-size: 12px;
  color: #c0c6d0;
  font-family: "SF Mono", "Consolas", monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.staff-card-action[data-v-437e0922] {
  flex-shrink: 0;
}

/* 员工列表底部配额统计 */
.staff-list-footer[data-v-437e0922] {
  display: flex;
  justify-content: flex-end;
  padding: 4px 0 8px;
}
.staff-quota-summary[data-v-437e0922] {
  font-size: 11px;
  color: #6b7280;
}

/* 【修复3】已达上限提示 — 字号加大更醒目（14px），配合 ElMessage 浮层双重提醒 */
.quota-max-hint[data-v-437e0922] {
  font-size: 14px;
  color: #e6a23c;
  margin-left: 8px;
}

/* 员工列表容器虚线边框 */
.staff-list-container[data-v-437e0922] {
  padding: 12px;
  border: 1px dashed #3a3d45;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.01);
}

/* ─── Radio buttons ─── */
.radio-plan-inner[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 80px;
  padding: 4px 0;
}
.radio-plan-label[data-v-437e0922] {
  font-size: 14px;
  font-weight: 600;
}
.radio-plan-price[data-v-437e0922] {
  font-size: 11px;
  opacity: 0.7;
}
.radio-cycle-inner[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  min-width: 52px;
  padding: 4px 0;
}
.cycle-discount[data-v-437e0922] {
  font-size: 10px;
  opacity: 0.5;
}
.cycle-discount.has-discount[data-v-437e0922] {
  color: #e6a23c;
  font-weight: 600;
  opacity: 1;
}

/* Radio Button 选中态 — 暗色主题适配 */
[data-v-437e0922] .el-radio-button .el-radio-button__inner {
  background: #1a1d24;
  border-color: var(--el-border-color-darker);
  color: #9ca3b2;
  transition: all 0.25s;
}
[data-v-437e0922] .el-radio-button.is-active .el-radio-button__inner {
  background: rgba(64, 158, 255, 0.12);
  border-color: var(--el-color-primary);
  color: var(--el-color-primary);
  box-shadow: none;
}

/* ─── 有效期 ─── */
.expiry-hint[data-v-437e0922] {
  display: block;
  font-size: 11px;
  color: #6b7280;
  margin-top: 6px;
  line-height: 1.4;
}

/* ─── Preview Card ─── */
.preview-header[data-v-437e0922] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
}
.preview-body[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.preview-price-row[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.price-label[data-v-437e0922] {
  font-size: 12px;
  color: #8892a0;
  text-align: center;
}
.price-calc[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  background: rgba(0, 217, 255, 0.04);
  border-radius: 8px;
  border: 1px solid rgba(0, 217, 255, 0.1);
}
.calc-item[data-v-437e0922] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.calc-label[data-v-437e0922] {
  font-size: 12px;
  color: #8892a0;
}
.calc-value[data-v-437e0922] {
  font-size: 13px;
  color: #c0c6d0;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
}
.calc-value.has-discount[data-v-437e0922] {
  color: #e6a23c;
}
.calc-divider[data-v-437e0922] {
  height: 1px;
  background: rgba(255, 255, 255, 0.06);
  margin: 2px 0;
}
.calc-total .calc-label[data-v-437e0922] {
  font-weight: 700;
  color: #c0c6d0;
}
.calc-value-total[data-v-437e0922] {
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
  font-variant-numeric: tabular-nums;
}
.calc-savings[data-v-437e0922] {
  text-align: right;
  font-size: 12px;
  color: #67c23a;
  font-weight: 600;
  padding-top: 2px;
}
.preview-limits[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.limits-title[data-v-437e0922] {
  margin: 0 0 2px;
  font-size: 12px;
  font-weight: 600;
  color: #8892a0;
}
.limit-item[data-v-437e0922] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 4px;
}
.limit-label[data-v-437e0922] {
  font-size: 13px;
  color: #9ca3b2;
}
.limit-value[data-v-437e0922] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e4ec;
  font-variant-numeric: tabular-nums;
}
.preview-period[data-v-437e0922] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 8px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 6px;
}
.period-label[data-v-437e0922] {
  font-size: 12px;
  color: #8892a0;
}
.period-range[data-v-437e0922] {
  font-size: 12px;
  color: #c0c6d0;
  font-variant-numeric: tabular-nums;
}
.engine-card[data-v-437e0922] .el-card__body {
  padding: 14px 18px;
}
.engine-title[data-v-437e0922] {
  font-size: 13px;
  font-weight: 600;
  color: #e0e4ec;
}
.engine-body[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.engine-formula code[data-v-437e0922] {
  font-size: 12px;
  color: #00D9FF;
  background: rgba(0, 217, 255, 0.06);
  padding: 4px 10px;
  border-radius: 4px;
  font-family: "SF Mono", "Consolas", monospace;
}
.engine-rates[data-v-437e0922] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.rate-row[data-v-437e0922] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #8892a0;
}
.rate-row .rate-val[data-v-437e0922] {
  color: #c0c6d0;
}
.rate-row .rate-val.has-discount[data-v-437e0922] {
  color: #e6a23c;
  font-weight: 600;
}

/* 套餐卡片选中样式（预留） */
.plan-card[data-v-437e0922] {
  border: 1px solid var(--el-border-color-darker);
  border-radius: 8px;
  background: #1a1d24;
  transition: border-color 0.25s, background-color 0.25s;
}
.plan-card.active[data-v-437e0922] {
  background: rgba(64, 158, 255, 0.1);
  border-color: var(--el-color-primary);
}.money-text[data-v-aebe620a] {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
  font-variant-numeric: tabular-nums;
}
.money-text--large .money-currency[data-v-aebe620a] {
  font-size: 18px;
}
.money-text--large .money-value[data-v-aebe620a] {
  font-size: 28px;
}
.money-text--large .money-unit[data-v-aebe620a] {
  font-size: 13px;
}
.money-text--default .money-currency[data-v-aebe620a] {
  font-size: 14px;
}
.money-text--default .money-value[data-v-aebe620a] {
  font-size: 20px;
}
.money-text--default .money-unit[data-v-aebe620a] {
  font-size: 11px;
}
.money-currency[data-v-aebe620a] {
  color: #00D9FF;
  font-weight: 600;
}
.money-value[data-v-aebe620a] {
  font-weight: 700;
  color: #fff;
}
.money-unit[data-v-aebe620a] {
  color: #8892a0;
  font-weight: 500;
}
.dashboard-page[data-v-482572de] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-482572de] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.page-title[data-v-482572de] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.header-right[data-v-482572de] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.last-updated[data-v-482572de] {
  font-size: 12px;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}

/* ─── KPI Grid ─── */
.kpi-grid[data-v-482572de] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
.kpi-card[data-v-482572de] {
  background: #1d2028;
  border: 1px solid #2a2d35;
  border-radius: 8px;
  padding: 16px 20px;
  position: relative;
  overflow: hidden;
}
.kpi-card[data-v-482572de]::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 217, 255, 0.2), transparent);
  pointer-events: none;
}
.kpi-label[data-v-482572de] {
  font-size: 12px;
  color: #8892a0;
  margin-bottom: 6px;
  letter-spacing: 0.5px;
}
.kpi-sub[data-v-482572de] {
  font-size: 10px;
  color: #6b7280;
}
.kpi-value[data-v-482572de] {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  font-family: "DIN Alternate", "SF Mono", "Consolas", monospace;
  font-variant-numeric: tabular-nums;
}
.kpi-money[data-v-482572de] {
  color: #00D9FF;
}
.kpi-money-card .kpi-value[data-v-482572de] {
  font-size: 24px;
}
.kpi-warn[data-v-482572de] {
  background: rgba(230, 162, 60, 0.08);
  border-color: rgba(230, 162, 60, 0.2);
}
.kpi-warn .kpi-value[data-v-482572de] {
  color: #e6a23c;
}
.kpi-danger[data-v-482572de] {
  background: rgba(245, 108, 108, 0.08);
  border-color: rgba(245, 108, 108, 0.2);
}
.kpi-danger .kpi-value[data-v-482572de] {
  color: #f56c6c;
}
.kpi-ok .kpi-value[data-v-482572de] {
  color: #67c23a;
}

/* ─── Charts Grid ─── */
.charts-grid[data-v-482572de] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 18px;
}
.card[data-v-482572de] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.card[data-v-482572de] .el-card__header {
  padding: 14px 18px 10px;
  border-bottom: 1px solid #2a2d35;
}
.card[data-v-482572de] .el-card__body {
  padding: 10px 14px;
}
.chart-card[data-v-482572de] .el-card__body {
  padding: 10px 14px 14px;
}
.chart-header[data-v-482572de] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.chart-title[data-v-482572de] {
  font-size: 13px;
  font-weight: 600;
  color: #e0e4ec;
}
.table-count[data-v-482572de] {
  font-size: 11px;
  color: #6b7280;
}
.chart-wrapper[data-v-482572de] {
  display: flex;
  flex-direction: column;
}
.chart-body[data-v-482572de] {
  width: 100%;
  height: 230px;
}
.revenue-chart-body[data-v-482572de] {
  height: 280px;
}

/* ─── Chart Legend (separated from pie) ─── */
.chart-legend-separate[data-v-482572de] {
  display: flex;
  justify-content: center;
  gap: 20px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  margin-top: 6px;
}
.legend-item[data-v-482572de] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #8892a0;
}
.legend-dot[data-v-482572de] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.legend-name[data-v-482572de] {
  color: #c0c6d0;
  font-weight: 500;
}
.legend-value[data-v-482572de] {
  color: #6b7280;
  font-variant-numeric: tabular-nums;
}

/* ─── Revenue Card ─── */
.revenue-card[data-v-482572de] {
  margin-bottom: 18px;
}

/* ─── Table Card ─── */
.table-card[data-v-482572de] .el-card__body {
  padding: 0;
}
.usage-warn[data-v-482572de] {
  color: #e6a23c;
  font-weight: 600;
}
[data-v-482572de] .row-high-usage {
  background: rgba(230, 162, 60, 0.06) !important;
  cursor: pointer;
}
[data-v-482572de] .row-suspended {
  opacity: 0.65;
  cursor: pointer;
}
[data-v-482572de] .el-table__row {
  cursor: pointer;
}
/* ═══════════════ Overlay ═══════════════ */
.tour-overlay[data-v-6701a7ec] {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.45);
  /* 确保遮罩本身可以接收点击事件（用于点击外部关闭） */
  pointer-events: auto;
}

/* ═══════════════ Bubble ═══════════════ */
.tour-bubble[data-v-6701a7ec] {
  position: fixed;
  z-index: 10000;
  width: 340px;
  background: #1f1f1f;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  padding: 20px 22px 16px;
  color: #f0f0f0;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  /* 确保气泡本身不透传点击到遮罩 */
  pointer-events: auto;
}

/* ── Arrow variants ── */
.arrow-top[data-v-6701a7ec]::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid #1f1f1f;
}
.arrow-bottom[data-v-6701a7ec]::before {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #1f1f1f;
}
.arrow-left[data-v-6701a7ec]::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 50%;
  transform: translateY(-50%);
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 8px solid #1f1f1f;
}
.arrow-right[data-v-6701a7ec]::before {
  content: '';
  position: absolute;
  right: -8px;
  top: 50%;
  transform: translateY(-50%);
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 8px solid #1f1f1f;
}
.arrow-none[data-v-6701a7ec]::before {
  display: none;
}

/* ── Progress dots ── */
.tour-progress[data-v-6701a7ec] {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
}
.tour-dot[data-v-6701a7ec] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #444;
  transition: all 0.2s;
}
.tour-dot.active[data-v-6701a7ec] {
  background: #1f6b9e;
  box-shadow: 0 0 6px rgba(31, 107, 158, 0.6);
}
.tour-dot.done[data-v-6701a7ec] {
  background: #3a9b7e;
}

/* ── Content ── */
.tour-title[data-v-6701a7ec] {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px;
}
.tour-content[data-v-6701a7ec] {
  font-size: 13px;
  color: #c9d1d9;
  line-height: 1.6;
  margin-bottom: 16px;
}

/* ── Actions ── */
.tour-actions[data-v-6701a7ec] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.tour-nav[data-v-6701a7ec] {
  display: flex;
  gap: 6px;
}

/* ── 按钮：使用原生 <button> 替代 el-button，彻底避免 Element Plus 事件代理干扰 ── */
.btn-tour-skip[data-v-6701a7ec],
.btn-tour-prev[data-v-6701a7ec],
.btn-tour-next[data-v-6701a7ec] {
  /* 强制 pointer-events，确保鼠标事件穿透透明层触发按钮 */
  pointer-events: auto;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  transition: all 0.15s ease;
  border: 1px solid transparent;
  outline: none;
  user-select: none;
  white-space: nowrap;
  /* 确保按钮在其 stacking context 中可点击 */
  position: relative;
  z-index: 1;
}
.btn-tour-skip[data-v-6701a7ec] {
  background: transparent;
  border-color: #555;
  color: #999;
}
.btn-tour-skip[data-v-6701a7ec]:hover {
  border-color: #888;
  color: #ccc;
  background: rgba(255, 255, 255, 0.04);
}
.btn-tour-skip[data-v-6701a7ec]:active {
  border-color: #aaa;
  color: #fff;
}
.btn-tour-prev[data-v-6701a7ec] {
  background: #333;
  border-color: #555;
  color: #ccc;
}
.btn-tour-prev[data-v-6701a7ec]:hover {
  background: #444;
  border-color: #777;
  color: #fff;
}
.btn-tour-prev[data-v-6701a7ec]:active {
  background: #555;
}
.btn-tour-next[data-v-6701a7ec] {
  background: #1f6b9e;
  border-color: #1f6b9e;
  color: #fff;
}
.btn-tour-next[data-v-6701a7ec]:hover {
  background: #2580b8;
  border-color: #2580b8;
}
.btn-tour-next[data-v-6701a7ec]:active {
  background: #185a82;
}

/* ── 移动端触摸优化 ── */
@media (pointer: coarse) {
.btn-tour-skip[data-v-6701a7ec],
  .btn-tour-prev[data-v-6701a7ec],
  .btn-tour-next[data-v-6701a7ec] {
    min-height: 40px;
    min-width: 44px;
    padding: 8px 16px;
    font-size: 13px;
}
.tour-bubble[data-v-6701a7ec] {
    width: calc(100vw - 40px);
    max-width: 340px;
}
}
.page-shell[data-v-c0498c8c] {
  padding: 20px;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow: auto;
  background: #0d1117;
}
.page-topbar[data-v-c0498c8c] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.page-title[data-v-c0498c8c] {
  margin: 0;
  font-size: 18px;
  color: #f0f6fc;
}
.page-sub[data-v-c0498c8c] {
  font-size: 12px;
  color: #8b949e;
  margin: 4px 0 0;
}
.kpi-grid[data-v-c0498c8c] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.kpi-card[data-v-c0498c8c] {
  background: #1e1e2e;
  border: 1px solid #313244;
  border-radius: 8px;
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  transition: all 0.2s;
  cursor: default;
}
.kpi-card[data-v-c0498c8c]:hover {
  border-color: #58a6ff;
  box-shadow: 0 0 16px rgba(88, 166, 255, 0.06);
  transform: translateY(-2px);
}
.kpi-label[data-v-c0498c8c] {
  font-size: 12px;
  color: #8b949e;
}
.kpi-value[data-v-c0498c8c] {
  font-size: 30px;
  font-weight: 600;
  font-family: "SF Mono", Monaco, monospace;
  line-height: 1.1;
}
.kpi-sub[data-v-c0498c8c] {
  font-size: 11px;
  color: #6b7280;
}
.main-layout[data-v-c0498c8c] {
  display: flex;
  gap: 16px;
  flex: 1;
  min-height: 0;
}
.panel[data-v-c0498c8c] {
  display: flex;
  flex-direction: column;
  border: 1px solid #21262d;
  border-radius: 10px;
  overflow: hidden;
}
.panel-left[data-v-c0498c8c] {
  width: 25%;
  min-width: 220px;
  background: #0d1117;
}
.panel-center[data-v-c0498c8c] {
  width: 25%;
  min-width: 260px;
  background: #0d1117;
}
.panel-right[data-v-c0498c8c] {
  flex: 1;
  min-width: 0;
  background: #0d1117;
}
.panel-head[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  color: #f0f6fc;
  border-bottom: 1px solid #21262d;
  flex-shrink: 0;
}
.panel-count[data-v-c0498c8c] {
  font-size: 11px;
  color: #8b949e;
  background: rgba(88, 166, 255, 0.12);
  padding: 1px 8px;
  border-radius: 10px;
  font-weight: 600;
}
.btn-upload[data-v-c0498c8c] {
  margin-left: auto;
  background: #1890ff;
  border-color: #1890ff;
  color: #fff;
  font-size: 11px;
  height: 26px;
  padding: 0 10px;
  flex-shrink: 0;
}
.btn-upload[data-v-c0498c8c]:hover {
  background: #40a9ff;
  border-color: #40a9ff;
}
.source-grid[data-v-c0498c8c] {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  padding: 12px;
  overflow-y: auto;
  flex: 1;
}
.source-item[data-v-c0498c8c] {
  background: #161b22;
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  cursor: grab;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
}
.source-item[data-v-c0498c8c]:hover {
  border-color: #30363d;
}
.source-item.dragging[data-v-c0498c8c] {
  opacity: 0.4;
  border-color: #58a6ff;
}
.src-media[data-v-c0498c8c] {
  position: relative;
  line-height: 0;
  background: #0d1117;
}
.src-media img[data-v-c0498c8c] {
  width: 100%;
  height: 80px;
  object-fit: cover;
  display: block;
}
.src-type-badge[data-v-c0498c8c] {
  position: absolute;
  top: 4px;
  right: 4px;
  font-size: 12px;
  background: rgba(0, 0, 0, 0.6);
  padding: 1px 5px;
  border-radius: 3px;
}
.src-delete[data-v-c0498c8c] {
  position: absolute;
  top: 4px;
  right: 26px;
  font-size: 11px;
  cursor: pointer;
  padding: 2px 5px;
  border-radius: 3px;
  background: rgba(239, 68, 68, 0.85);
  opacity: 0;
  transition: opacity 0.15s;
}
.source-item:hover .src-delete[data-v-c0498c8c] {
  opacity: 1;
}
.src-delete[data-v-c0498c8c]:hover {
  background: #EF4444;
}
.src-name[data-v-c0498c8c] {
  font-size: 11px;
  color: #8b949e;
  padding: 6px 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.step-dots-row[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 68px;
  padding: 16px 16px 0;
}
.step-dot[data-v-c0498c8c] {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #21262d;
  color: #8b949e;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}
.step-dot.active[data-v-c0498c8c] {
  background: #30363d;
  color: #c9d1d9;
}
.step-dot.current[data-v-c0498c8c] {
  transform: scale(1.15);
  box-shadow: 0 0 12px rgba(88, 166, 255, 0.3);
}
.step-bar-row[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 16px 0;
}
.step-bar-seg[data-v-c0498c8c] {
  width: 60px;
  height: 3px;
  background: #21262d;
  border-radius: 2px;
  transition: all 0.2s;
  flex-shrink: 0;
}
.step-bar-seg.filled[data-v-c0498c8c] {
  background: #58a6ff;
}
.step-title[data-v-c0498c8c] {
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  padding: 14px 0 14px;
}
.param-section[data-v-c0498c8c] {
  padding: 0 16px 16px;
  margin: 0 12px;
  border-left: 3px solid #30363d;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}
.param-item[data-v-c0498c8c] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.param-label[data-v-c0498c8c] {
  font-size: 12px;
  color: #8b949e;
  font-weight: 500;
}
.step-actions[data-v-c0498c8c] {
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid #21262d;
}
.btn-gray[data-v-c0498c8c] {
  background: #30363d !important;
  border: 1px solid #484f58 !important;
  color: #c9d1d9 !important;
}
.btn-gray[data-v-c0498c8c]:hover {
  background: #484f58 !important;
  border-color: #58a6ff !important;
  color: #f0f6fc !important;
}
.empty-state[data-v-c0498c8c] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 60px 20px;
  color: #8b949e;
  font-size: 13px;
  flex: 1;
}
.empty-icon[data-v-c0498c8c] {
  font-size: 36px;
}
.variant-grid[data-v-c0498c8c] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 12px;
  overflow-y: auto;
  flex: 1;
}
.variant-card[data-v-c0498c8c] {
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.variant-card[data-v-c0498c8c]:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}
.variant-card.border-gold[data-v-c0498c8c] {
  border-color: #F59E0B !important;
  box-shadow: 0 0 12px rgba(245, 158, 11, 0.15);
}
.variant-card.border-red[data-v-c0498c8c] {
  border-color: #EF4444 !important;
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.12);
}
.var-media[data-v-c0498c8c] {
  position: relative;
  line-height: 0;
  background: #f3f4f6;
  cursor: pointer;
}
.var-media img[data-v-c0498c8c] {
  width: 100%;
  height: 100px;
  object-fit: cover;
  display: block;
}
.var-index[data-v-c0498c8c] {
  position: absolute;
  top: 4px;
  left: 4px;
  font-size: 9px;
  color: #6b7280;
  background: rgba(255, 255, 255, 0.85);
  padding: 1px 6px;
  border-radius: 3px;
  font-weight: 600;
}
.var-info[data-v-c0498c8c] {
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: #fff;
}
.var-name[data-v-c0498c8c] {
  font-size: 12px;
  color: #1f2937;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.var-score-row[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.var-actions[data-v-c0498c8c] {
  display: flex;
  gap: 8px;
}
.var-act[data-v-c0498c8c] {
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 4px;
  transition: all 0.15s;
  color: #6b7280;
}
.var-act[data-v-c0498c8c]:hover {
  background: #f3f4f6;
  color: #1f2937;
}
.bottom-bar[data-v-c0498c8c] {
  display: flex;
  justify-content: center;
  gap: 14px;
  padding: 14px 20px;
  background: rgba(13, 17, 23, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid #21262d;
  border-radius: 10px;
  flex-shrink: 0;
  position: sticky;
  bottom: 0;
  z-index: 10;
}
.preview-dialog[data-v-c0498c8c] .el-dialog {
  background: #161b22;
  border: 1px solid #30363d;
}
.preview-dialog[data-v-c0498c8c] .el-dialog__header {
  background: #161b22;
  color: #f0f6fc;
  border-bottom: 1px solid #21262d;
}
.preview-dialog[data-v-c0498c8c] .el-dialog__body {
  padding: 0;
  background: #0d1117;
}
.preview-body[data-v-c0498c8c] {
  display: flex;
  flex-direction: column;
}
.preview-img[data-v-c0498c8c] {
  width: 100%;
  max-height: 420px;
  object-fit: contain;
  background: #000;
}
.preview-meta[data-v-c0498c8c] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  background: #161b22;
}
.preview-name[data-v-c0498c8c] {
  font-size: 14px;
  color: #f0f6fc;
  font-weight: 600;
}
.preview-score[data-v-c0498c8c] {
  font-size: 14px;
  font-weight: 700;
}
.ac-drawer[data-v-c0498c8c] .el-drawer {
  background: #0d1117;
}
.ac-drawer[data-v-c0498c8c] .el-drawer__header {
  background: #0d1117;
  color: #f0f6fc;
  border-bottom: 1px solid #30363d;
  padding: 16px 20px;
  margin-bottom: 0;
}
.ac-drawer[data-v-c0498c8c] .el-drawer__body {
  padding: 0;
  background: #0d1117;
}
.drawer-add-section[data-v-c0498c8c] {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid #30363d;
  align-items: center;
}
.drawer-loading[data-v-c0498c8c], .drawer-empty[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  color: #8b949e;
  font-size: 13px;
}
.drawer-empty-link[data-v-c0498c8c] {
  color: #1890ff;
  cursor: pointer;
  margin-left: 4px;
  text-decoration: underline;
  transition: color 0.15s;
}
.drawer-empty-link[data-v-c0498c8c]:hover {
  color: #40a9ff;
}
.drawer-account-list[data-v-c0498c8c] {
  padding: 8px 0;
}
.drawer-account-item[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  cursor: pointer;
  transition: background 0.15s;
  border-bottom: 1px solid rgba(48, 54, 61, 0.4);
  color: #c9d1d9;
}
.drawer-account-item[data-v-c0498c8c]:hover {
  background: rgba(88, 166, 255, 0.04);
}
.drawer-account-item.checked[data-v-c0498c8c] {
  background: rgba(24, 144, 255, 0.06);
}
.dac-left[data-v-c0498c8c] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.dac-avatar[data-v-c0498c8c] {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(88, 166, 255, 0.2);
  color: #58a6ff;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dac-info[data-v-c0498c8c] {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.dac-name[data-v-c0498c8c] {
  font-size: 13px;
  color: #c9d1d9;
  font-weight: 500;
}
.dac-meta[data-v-c0498c8c] {
  font-size: 11px;
  color: #484f58;
}
.dac-check[data-v-c0498c8c] {
  color: #1890ff;
  font-size: 18px;
  font-weight: 700;
}
.drawer-footer-bar[data-v-c0498c8c] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #c9d1d9;
  font-size: 13px;
}
[data-v-c0498c8c] .el-input__inner {
  background: #0d1117;
  border-color: #30363d;
  color: #c9d1d9;
}
[data-v-c0498c8c] .el-input__inner:focus {
  border-color: #58a6ff;
}
[data-v-c0498c8c] .el-input__wrapper {
  background: #0d1117 !important;
  box-shadow: 0 0 0 1px #30363d !important;
}
[data-v-c0498c8c] .el-select .el-input__wrapper {
  background: #0d1117 !important;
}
[data-v-c0498c8c] .el-slider__bar {
  background: #58a6ff;
}
[data-v-c0498c8c] .el-slider__button {
  border-color: #58a6ff;
}
[data-v-c0498c8c] .el-button--primary {
  background: #1890ff;
  border-color: #1890ff;
}
[data-v-c0498c8c] .el-button--success {
  background: #22c55e;
  border-color: #22c55e;
}
[data-v-c0498c8c] .el-button--warning {
  background: #F59E0B;
  border-color: #F59E0B;
  color: #000;
}
.source-grid[data-v-c0498c8c]::-webkit-scrollbar, .variant-grid[data-v-c0498c8c]::-webkit-scrollbar {
  width: 4px;
}
.source-grid[data-v-c0498c8c]::-webkit-scrollbar-thumb, .variant-grid[data-v-c0498c8c]::-webkit-scrollbar-thumb {
  background: rgba(88, 166, 255, 0.1);
  border-radius: 2px;
}.page-shell[data-v-de9a51e9] {
  padding: 20px;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow: auto;
  background: #0d1117;
}
.page-topbar[data-v-de9a51e9] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.page-title[data-v-de9a51e9] {
  margin: 0;
  font-size: 18px;
  color: #f0f6fc;
}
.page-sub[data-v-de9a51e9] {
  font-size: 12px;
  color: #8b949e;
  margin: 4px 0 0;
}
.kpi-grid[data-v-de9a51e9] {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
}
.kpi-card[data-v-de9a51e9] {
  background: #1e1e2e;
  border: 1px solid #313244;
  border-radius: 12px;
  padding: 18px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  transition: all 0.2s;
}
.kpi-card[data-v-de9a51e9]:hover {
  border-color: #58a6ff;
  box-shadow: 0 0 16px rgba(88, 166, 255, 0.06);
  transform: translateY(-2px);
}
.kpi-label[data-v-de9a51e9] {
  font-size: 12px;
  color: #8b949e;
}
.kpi-value[data-v-de9a51e9] {
  font-size: 26px;
  font-weight: 700;
}
.kpi-sub[data-v-de9a51e9] {
  font-size: 11px;
  color: #6b7280;
}
.health-ring-wrap[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.main-layout[data-v-de9a51e9] {
  display: flex;
  gap: 16px;
  flex: 1;
  min-height: 0;
}
.panel[data-v-de9a51e9] {
  display: flex;
  flex-direction: column;
  border: 1px solid #21262d;
  border-radius: 12px;
  overflow: hidden;
  background: #0d1117;
}
.panel-left[data-v-de9a51e9] {
  width: 320px;
  min-width: 320px;
  flex-shrink: 0;
}
.panel-right[data-v-de9a51e9] {
  flex: 1;
  min-width: 0;
}
.panel-head[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  color: #f0f6fc;
  border-bottom: 1px solid #21262d;
  flex-shrink: 0;
}
.panel-count[data-v-de9a51e9] {
  font-size: 11px;
  color: #8b949e;
  background: rgba(88, 166, 255, 0.12);
  padding: 1px 8px;
  border-radius: 10px;
  font-weight: 600;
}
.account-list[data-v-de9a51e9] {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}
.ac-card[data-v-de9a51e9] {
  background: #161b22;
  border: 2px solid transparent;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: all 0.2s;
}
.ac-card[data-v-de9a51e9]:hover {
  transform: scale(1.02);
  border-color: #58a6ff;
}
.ac-card.selected[data-v-de9a51e9] {
  border-color: #1890ff;
  box-shadow: 0 0 12px rgba(24, 144, 255, 0.15);
}
.ac-card-top[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ac-avatar[data-v-de9a51e9] {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(88, 166, 255, 0.2);
  color: #58a6ff;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ac-card-info[data-v-de9a51e9] {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ac-nick[data-v-de9a51e9] {
  font-size: 13px;
  color: #f0f6fc;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ac-platform[data-v-de9a51e9] {
  font-size: 11px;
  color: #8b949e;
}
.ac-status-dot[data-v-de9a51e9] {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ac-status-dot.normal[data-v-de9a51e9] {
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.5);
  animation: pulse-green-de9a51e9 2s infinite;
}
.ac-status-dot.warning[data-v-de9a51e9] {
  background: #F59E0B;
}
.ac-status-dot.danger[data-v-de9a51e9] {
  background: #EF4444;
  animation: blink-red-de9a51e9 0.8s infinite;
}
@keyframes pulse-green-de9a51e9 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.5;
}
}
@keyframes blink-red-de9a51e9 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.4;
}
}
.ac-card-mid[data-v-de9a51e9] {
  padding: 8px 0 4px;
}
.ac-fans[data-v-de9a51e9] {
  font-size: 11px;
  color: #8b949e;
}
.ac-card-actions[data-v-de9a51e9] {
  display: flex;
  gap: 6px;
}
.btn-mini[data-v-de9a51e9] {
  height: 24px;
  font-size: 11px;
  padding: 0 8px;
  background: #21262d;
  border: 1px solid #30363d;
  color: #c9d1d9;
}
.btn-mini[data-v-de9a51e9]:hover {
  background: #30363d;
  border-color: #58a6ff;
  color: #f0f6fc;
}
.btn-mini-warn[data-v-de9a51e9]:hover {
  border-color: #F59E0B;
  color: #F59E0B;
}
.empty-state[data-v-de9a51e9] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 60px;
  color: #8b949e;
  font-size: 13px;
  flex: 1;
}
.empty-icon[data-v-de9a51e9] {
  font-size: 36px;
}
.detail-header[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-bottom: 1px solid #21262d;
}
.detail-avatar[data-v-de9a51e9] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(88, 166, 255, 0.2);
  color: #58a6ff;
  font-size: 18px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.detail-name[data-v-de9a51e9] {
  font-size: 16px;
  font-weight: 700;
  color: #f0f6fc;
}
.detail-sub[data-v-de9a51e9] {
  font-size: 11px;
  color: #8b949e;
  display: block;
}
.detail-status-dot[data-v-de9a51e9] {
  margin-left: auto;
  width: 14px;
  height: 14px;
  border-radius: 50%;
}
.detail-status-dot.normal[data-v-de9a51e9] {
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.5);
}
.detail-status-dot.warning[data-v-de9a51e9] {
  background: #F59E0B;
}
.detail-status-dot.danger[data-v-de9a51e9] {
  background: #EF4444;
  animation: blink-red-de9a51e9 0.8s infinite;
}
.detail-tabs[data-v-de9a51e9] {
  padding: 0;
}
.detail-tabs[data-v-de9a51e9] .el-tabs__header {
  margin: 0;
  padding: 0 16px;
  background: #0d1117;
  border-bottom: 1px solid #21262d;
}
.detail-tabs[data-v-de9a51e9] .el-tabs__item {
  color: #8b949e;
  font-size: 12px;
}
.detail-tabs[data-v-de9a51e9] .el-tabs__item.is-active {
  color: #58a6ff;
}
.tab-content[data-v-de9a51e9] {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  max-height: calc(100vh - 420px);
}
.info-item[data-v-de9a51e9] {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid rgba(48, 54, 61, 0.3);
  font-size: 13px;
}
.il[data-v-de9a51e9] {
  color: #8b949e;
}
.iv[data-v-de9a51e9] {
  color: #c9d1d9;
  font-weight: 500;
}
.mono[data-v-de9a51e9] {
  font-family: monospace;
  font-size: 11px;
}
.triple-bind[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 20px 0;
}
.bind-node[data-v-de9a51e9] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px;
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 10px;
  width: 120px;
}
.bind-node.normal[data-v-de9a51e9] {
  border-color: #22c55e;
}
.bind-node.warning[data-v-de9a51e9] {
  border-color: #F59E0B;
}
.bind-node.danger[data-v-de9a51e9] {
  border-color: #EF4444;
}
.bind-icon[data-v-de9a51e9] {
  font-size: 24px;
}
.bind-label[data-v-de9a51e9] {
  font-size: 11px;
  color: #8b949e;
}
.bind-dot[data-v-de9a51e9] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.bind-dot.normal[data-v-de9a51e9] {
  background: #22c55e;
}
.bind-dot.warning[data-v-de9a51e9] {
  background: #F59E0B;
}
.bind-dot.danger[data-v-de9a51e9] {
  background: #EF4444;
}
.bind-name[data-v-de9a51e9] {
  font-size: 11px;
  color: #c9d1d9;
  text-align: center;
}
.bind-arrow[data-v-de9a51e9] {
  font-size: 20px;
  color: #484f58;
  padding: 0 8px;
}
.heatmap-grid[data-v-de9a51e9] {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}
.heat-cell[data-v-de9a51e9] {
  aspect-ratio: 1;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.15s;
}
.heat-cell[data-v-de9a51e9]:hover {
  outline: 2px solid #58a6ff;
  z-index: 1;
}
.heat-legend[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: flex-end;
  font-size: 10px;
  color: #8b949e;
  margin-top: 8px;
}
.hl-swatch[data-v-de9a51e9] {
  width: 14px;
  height: 14px;
  border-radius: 2px;
}
.trend-full[data-v-de9a51e9] {
  padding: 12px 20px;
}
.trend-chart-v2[data-v-de9a51e9] {
  display: flex;
  gap: 0;
  height: 220px;
  position: relative;
}
.tc-y-axis[data-v-de9a51e9] {
  display: flex;
  flex-direction: column-reverse;
  justify-content: space-between;
  width: 48px;
  flex-shrink: 0;
  padding-bottom: 24px;
  font-size: 9px;
  color: #484f58;
}
.tc-grid[data-v-de9a51e9] {
  flex: 1;
  position: relative;
  border-bottom: 1px solid #2a2a2a;
}
.tc-grid-line[data-v-de9a51e9] {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px dashed #2a2a2a;
}
.tc-svg[data-v-de9a51e9] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.tc-svg polyline[data-v-de9a51e9] {
  transition: opacity 0.15s;
}
.tc-svg:hover polyline[data-v-de9a51e9] {
  opacity: 0.7;
}
.tc-hover-rect[data-v-de9a51e9] {
  cursor: crosshair;
}
.tc-x-labels[data-v-de9a51e9] {
  position: absolute;
  bottom: -18px;
  left: 0;
  right: 0;
  height: 16px;
}
.tc-x-label[data-v-de9a51e9] {
  position: absolute;
  transform: translateX(-50%);
  font-size: 8px;
  color: #484f58;
  white-space: nowrap;
}
.tc-tooltip[data-v-de9a51e9] {
  position: absolute;
  top: -8px;
  transform: translate(-50%, -100%);
  background: #1e1e2e;
  border: 1px solid #58a6ff;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 10px;
  color: #c9d1d9;
  white-space: nowrap;
  z-index: 10;
  pointer-events: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  line-height: 1.6;
}
.tc-legend[data-v-de9a51e9] {
  display: flex;
  gap: 20px;
  justify-content: center;
  padding-top: 6px;
}
.tcl-item[data-v-de9a51e9] {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: #8b949e;
}
.tcl-dot[data-v-de9a51e9] {
  width: 8px;
  height: 8px;
  border-radius: 2px;
}
.custom-plat-row[data-v-de9a51e9] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.custom-plat-input[data-v-de9a51e9] {
  flex: 1;
}
.custom-opt[data-v-de9a51e9] {
  color: #58a6ff !important;
  font-weight: 600;
}
.add-dlg[data-v-de9a51e9] .el-dialog {
  background: #161b22;
  border: 1px solid #30363d;
}
.add-dlg[data-v-de9a51e9] .el-dialog__header {
  color: #f0f6fc;
}
.add-dlg[data-v-de9a51e9] .el-form-item__label {
  color: #8b949e;
}
.btn-gray[data-v-de9a51e9] {
  background: #30363d !important;
  border: 1px solid #484f58 !important;
  color: #c9d1d9 !important;
}
.btn-gray[data-v-de9a51e9]:hover {
  background: #484f58 !important;
  border-color: #58a6ff !important;
  color: #f0f6fc !important;
}
[data-v-de9a51e9] .el-input__inner {
  background: #0d1117;
  border-color: #30363d;
  color: #c9d1d9;
}
[data-v-de9a51e9] .el-input__wrapper {
  background: #0d1117 !important;
  box-shadow: 0 0 0 1px #30363d !important;
}
.account-list[data-v-de9a51e9]::-webkit-scrollbar, .tab-content[data-v-de9a51e9]::-webkit-scrollbar {
  width: 4px;
}
.account-list[data-v-de9a51e9]::-webkit-scrollbar-thumb, .tab-content[data-v-de9a51e9]::-webkit-scrollbar-thumb {
  background: rgba(88, 166, 255, 0.1);
  border-radius: 2px;
}.publish-confirm-dlg {
  background: #161b22 !important;
  border: 1px solid #30363d !important;
}
.publish-confirm-dlg .el-message-box__title {
  color: #f0f6fc !important;
}
.publish-confirm-dlg .el-message-box__message {
  color: #c9d1d9 !important;
}
.publish-confirm-dlg .el-message-box__btns .el-button {
  background: #4A4A4A !important;
  border: 1px solid #555 !important;
  color: #e0e0e0 !important;
}
.publish-confirm-dlg .el-message-box__btns .el-button:hover {
  background: #5a5a5a !important;
  border-color: #666 !important;
  color: #fff !important;
}
.publish-confirm-dlg .el-message-box__btns .el-button--primary {
  background: #1f6b9e !important;
  border-color: #1f6b9e !important;
  color: #fff !important;
}
.publish-confirm-dlg .el-message-box__btns .el-button--primary:hover {
  background: #2580b8 !important;
  border-color: #2580b8 !important;
}
.sim-shell[data-v-cc5f4fae] {
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  background: #0d1117;
  display: flex;
  flex-direction: column;
  gap: 0;
  scroll-behavior: smooth;
}
.sim-shell[data-v-cc5f4fae]::-webkit-scrollbar {
  width: 6px;
}
.sim-shell[data-v-cc5f4fae]::-webkit-scrollbar-thumb {
  background: rgba(88, 166, 255, 0.15);
  border-radius: 3px;
}

/* ═══════════════ Section Head ═══════════════ */
.section-head[data-v-cc5f4fae] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 16px 20px 0;
}
.head-left[data-v-cc5f4fae] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.head-title[data-v-cc5f4fae] {
  margin: 0;
  font-size: 18px;
  color: #f0f6fc;
  font-weight: 700;
}
.head-sub[data-v-cc5f4fae] {
  font-size: 11px;
  color: #8b949e;
}

/* ═══════════════ Sandbox Section ═══════════════ */
.sandbox-section[data-v-cc5f4fae] {
  background: #0d1117;
  border-bottom: 1px solid #21262d;
  display: flex;
  flex-direction: column;
  min-height: 60vh;
}

/* ═══════════════ Control Bar ═══════════════ */
.control-bar[data-v-cc5f4fae] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
  background: #161b22;
  border-bottom: 1px solid #21262d;
  gap: 16px;
  flex-wrap: wrap;
}
.ctrl-left[data-v-cc5f4fae], .ctrl-center[data-v-cc5f4fae], .ctrl-right[data-v-cc5f4fae] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.speed-label[data-v-cc5f4fae] {
  font-size: 12px;
  color: #8b949e;
  margin-right: 4px;
}
.time-display[data-v-cc5f4fae] {
  font-family: "Courier New", monospace;
  font-size: 14px;
  color: #f0f6fc;
  font-weight: 700;
}
.progress-text[data-v-cc5f4fae] {
  font-size: 12px;
  color: #58a6ff;
  font-weight: 600;
  min-width: 40px;
}

/* ═══════════════ Canvas ═══════════════ */
.canvas-wrap[data-v-cc5f4fae] {
  position: relative;
  flex: 1;
  min-height: 420px;
  background: #0d1117;
}
.canvas-wrap canvas[data-v-cc5f4fae] {
  display: block;
  width: 100%;
  height: 100%;
}
.canvas-tooltip[data-v-cc5f4fae] {
  position: absolute;
  pointer-events: none;
  z-index: 20;
  background: #1e1e2e;
  border: 1px solid #58a6ff;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 11px;
  color: #c9d1d9;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  white-space: nowrap;
}
.tt-row[data-v-cc5f4fae] {
  line-height: 1.6;
}
.tt-warn[data-v-cc5f4fae] {
  color: #EF4444;
  font-weight: 600;
}

/* ═══════════════ Risk Legend ═══════════════ */
.risk-legend[data-v-cc5f4fae] {
  display: flex;
  gap: 20px;
  padding: 8px 20px;
  border-top: 1px solid #21262d;
  font-size: 11px;
  color: #8b949e;
  flex-wrap: wrap;
}
.rl-item[data-v-cc5f4fae] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.rl-swatch[data-v-cc5f4fae] {
  width: 14px;
  height: 14px;
  border-radius: 3px;
}
.rl-dup[data-v-cc5f4fae] {
  box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.5) inset;
  background: rgba(239, 68, 68, 0.1);
}
.rl-dense[data-v-cc5f4fae] {
  box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.5) inset;
  background: rgba(245, 158, 11, 0.1);
}
.rl-hiac[data-v-cc5f4fae] {
  background: repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(239, 68, 68, 0.3) 2px, rgba(239, 68, 68, 0.3) 4px);
}
.rl-safe[data-v-cc5f4fae] {
  background: rgba(34, 197, 94, 0.2);
  border: 1px solid rgba(34, 197, 94, 0.4);
}
.rl-conflict[data-v-cc5f4fae] {
  border: 2px dashed rgba(239, 68, 68, 0.6);
  background: transparent;
}

/* ═══════════════ Live Panel ═══════════════ */
.live-panel[data-v-cc5f4fae] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: #21262d;
  border-bottom: 1px solid #21262d;
}
.live-card[data-v-cc5f4fae] {
  background: #161b22;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
}
.live-label[data-v-cc5f4fae] {
  font-size: 11px;
  color: #8b949e;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.live-value[data-v-cc5f4fae] {
  font-size: 24px;
  font-weight: 800;
  color: #f0f6fc;
  font-family: "Courier New", monospace;
  transition: color 0.3s;
}
.live-trend[data-v-cc5f4fae] {
  font-size: 11px;
}
.live-trend.up[data-v-cc5f4fae] {
  color: #22c55e;
}
.live-trend.down[data-v-cc5f4fae] {
  color: #EF4444;
}
.live-sub[data-v-cc5f4fae] {
  font-size: 10px;
  color: #6b7280;
}

/* ═══════════════ Report Section ═══════════════ */
.report-section[data-v-cc5f4fae] {
  background: #0d1117;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  border-top: 2px solid #c58a3a;
}
.report-header[data-v-cc5f4fae] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.report-title-row[data-v-cc5f4fae] {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.report-title[data-v-cc5f4fae] {
  margin: 0;
  font-size: 20px;
  color: #f0f6fc;
  font-weight: 700;
}
.report-meta[data-v-cc5f4fae] {
  font-size: 11px;
  color: #6b7280;
  margin: 0;
}

/* ── Conclusion Block ── */
.conclusion-block[data-v-cc5f4fae] {
  border: 2px solid #c58a3a;
  border-radius: 12px;
  padding: 20px 24px;
  background: linear-gradient(135deg, rgba(197, 138, 58, 0.08), rgba(197, 138, 58, 0.02));
}
.conclusion-text[data-v-cc5f4fae] {
  font-size: 16px;
  font-weight: 700;
  color: #f0f6fc;
  text-align: center;
  line-height: 1.6;
}

/* ── Report Block Generic ── */
.report-block[data-v-cc5f4fae] {
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 12px;
  padding: 20px;
}
.block-title[data-v-cc5f4fae] {
  margin: 0 0 14px 0;
  font-size: 15px;
  color: #f0f6fc;
  font-weight: 600;
}

/* ── Comparison Table ── */
.compare-table[data-v-cc5f4fae] {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.compare-table th[data-v-cc5f4fae], .compare-table td[data-v-cc5f4fae] {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #21262d;
}
.compare-table th[data-v-cc5f4fae] {
  color: #8b949e;
  font-weight: 600;
  font-size: 11px;
  text-transform: uppercase;
  background: #0d1117;
}
.compare-table td[data-v-cc5f4fae] {
  color: #c9d1d9;
}
.compare-table .cell-win[data-v-cc5f4fae] {
  color: #22c55e;
  font-weight: 700;
  background: rgba(34, 197, 94, 0.05);
}
.compare-table .cell-lose[data-v-cc5f4fae] {
  color: #6b7280;
}
.compare-table .cell-delta[data-v-cc5f4fae] {
  font-family: "Courier New", monospace;
  font-size: 12px;
  color: #58a6ff;
}

/* ── Radar Charts ── */
.radar-dual[data-v-cc5f4fae] {
  display: flex;
  flex-direction: row;
  gap: 20px;
}
.radar-item[data-v-cc5f4fae] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.radar-label[data-v-cc5f4fae] {
  font-size: 13px;
  color: #8b949e;
  font-weight: 600;
}
.radar-chart[data-v-cc5f4fae] {
  width: 100%;
  height: 300px;
}
.radar-legend-row[data-v-cc5f4fae] {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 8px;
  flex-wrap: wrap;
}
.radar-dim-tag[data-v-cc5f4fae] {
  font-size: 10px;
  color: #6b7280;
  background: #0d1117;
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid #21262d;
}

/* ── Suggestions ── */
.suggest-list[data-v-cc5f4fae] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.suggest-item[data-v-cc5f4fae] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  background: #0d1117;
  border: 1px solid #21262d;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}
.suggest-item[data-v-cc5f4fae]:hover {
  border-color: #58a6ff;
  background: rgba(88, 166, 255, 0.04);
}
.suggest-icon[data-v-cc5f4fae] {
  flex-shrink: 0;
  font-size: 16px;
}
.suggest-text[data-v-cc5f4fae] {
  font-size: 13px;
  color: #c9d1d9;
  line-height: 1.5;
  flex: 1;
}
.suggest-action[data-v-cc5f4fae] {
  font-size: 11px;
  color: #F59E0B;
  cursor: pointer;
  flex-shrink: 0;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(245, 158, 11, 0.1);
  white-space: nowrap;
}

/* ═══════════════ KPI Grid ═══════════════ */
.kpi-grid[data-v-cc5f4fae] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  padding: 12px 20px;
}
.kpi-card[data-v-cc5f4fae] {
  background: #1e1e2e;
  border: 1px solid #313244;
  border-radius: 12px;
  padding: 16px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  transition: all 0.2s;
}
.kpi-card[data-v-cc5f4fae]:hover {
  border-color: #58a6ff;
  box-shadow: 0 0 16px rgba(88, 166, 255, 0.06);
  transform: translateY(-2px);
}
.kpi-label[data-v-cc5f4fae] {
  font-size: 12px;
  color: #8b949e;
}
.kpi-value[data-v-cc5f4fae] {
  font-size: 24px;
  font-weight: 700;
}
.kpi-sub[data-v-cc5f4fae] {
  font-size: 10px;
  color: #6b7280;
}

/* ═══════════════ Strategy Comparison ═══════════════ */
.strategy-section[data-v-cc5f4fae] {
  background: #0d1117;
  border: 1px solid #21262d;
  border-radius: 0;
  display: flex;
  flex-direction: column;
}
.panel-head[data-v-cc5f4fae] {
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 700;
  color: #f0f6fc;
  border-bottom: 1px solid #21262d;
}
.strategy-cards[data-v-cc5f4fae] {
  display: flex;
  flex-direction: row;
  gap: 20px;
  padding: 20px;
}
.strategy-card[data-v-cc5f4fae] {
  flex: 1;
  min-width: 0;
  box-sizing: border-box;
  background: #161b22;
  border: 2px solid #30363d;
  border-radius: 12px;
  padding: 24px 24px 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.strategy-card[data-v-cc5f4fae]:hover {
  border-color: #58a6ff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}
.strategy-card.best[data-v-cc5f4fae] {
  border-color: #c58a3a;
  box-shadow: 0 0 20px rgba(197, 138, 58, 0.2);
}
.sc-head[data-v-cc5f4fae] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}
.sc-name[data-v-cc5f4fae] {
  font-size: 17px;
  font-weight: 700;
  color: #f0f6fc;
}
.sc-body[data-v-cc5f4fae] {
  display: flex;
  flex-direction: row;
  gap: 20px;
  flex: 1;
  min-height: 0;
}
.sc-left[data-v-cc5f4fae] {
  width: 50%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
}
.sc-right[data-v-cc5f4fae] {
  width: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sc-radar-svg[data-v-cc5f4fae] {
  width: 100%;
  height: 200px;
  display: block;
}
.sc-m[data-v-cc5f4fae] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  border-bottom: 1px solid rgba(48, 54, 61, 0.3);
}
.sc-m-label[data-v-cc5f4fae] {
  font-size: 13px;
  color: #8b949e;
}
.sc-m-value[data-v-cc5f4fae] {
  font-size: 13px;
  font-weight: 700;
  color: #c9d1d9;
}
.sc-actions[data-v-cc5f4fae] {
  display: flex;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid #21262d;
  flex-shrink: 0;
  justify-content: flex-end;
}
.strategy-global-actions[data-v-cc5f4fae] {
  display: flex;
  justify-content: center;
  padding: 4px 16px 20px;
}

/* ═══════════════ Buttons ═══════════════ */
.btn-save-plan[data-v-cc5f4fae] {
  background: #555555 !important;
  border: 1px solid #666666 !important;
  color: #e0e0e0 !important;
}
.btn-save-plan[data-v-cc5f4fae]:hover {
  background: #666666 !important;
  border-color: #777777 !important;
  color: #fff !important;
}
.btn-gen-report[data-v-cc5f4fae] {
  background: #c58a3a !important;
  border-color: #c58a3a !important;
  color: #fff !important;
}
.btn-gen-report[data-v-cc5f4fae]:hover {
  background: #d69e4a !important;
  border-color: #d69e4a !important;
}
.btn-export[data-v-cc5f4fae] {
  background: #1f6b9e !important;
  border-color: #1f6b9e !important;
  color: #fff !important;
}

/* ═══════════════ Element Plus Overrides ═══════════════ */
[data-v-cc5f4fae] .el-button--primary {
  background: #1f6b9e;
  border-color: #1f6b9e;
}
[data-v-cc5f4fae] .el-button--warning {
  background: #c58a3a;
  border-color: #c58a3a;
  color: #fff;
}
[data-v-cc5f4fae] .el-radio-button__inner {
  background: #21262d;
  border-color: #30363d;
  color: #8b949e;
  font-size: 12px;
}
[data-v-cc5f4fae] .el-radio-button__original-radio:checked + .el-radio-button__inner {
  background: #1f6b9e;
  border-color: #1f6b9e;
  color: #fff;
  box-shadow: none;
}
[data-v-cc5f4fae] .el-button-group .el-button {
  border-color: #30363d;
}/* ============================================================================
   combat-base/cb.css — 作战基地 · 公共样式令牌（深色主题，全站统一规范继承）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；按钮 hover / active / disabled 三态齐全。
============================================================================ */

.cb-page {
  min-height: 100%;
  padding: 16px;
  background: #0F1423;            /* 页面底色（锁定） */
  color: #e0e6f0;
  box-sizing: border-box;
}

/* —— 六区块布局模式（CbPageShell fluid=true）：
   整页纵向 flex + overflow hidden，KPI/页头固定，主区域内部局部滚动。
   注：页面模板为多根节点时子组件根不继承页面 scope id，
   布局规则必须放在全局样式中才能确定生效。 —— */
.cb-page-fluid { height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.cb-page-fluid .cb-header { flex-shrink: 0; }
.cb-page-fluid .cb-kpi-row { flex-shrink: 0; }

/* —— 卡片容器 —— */
.cb-card {
  background: #171D36;            /* 卡片容器（锁定） */
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.cb-card-title {
  font-size: 13px;
  font-weight: 600;
  color: #7d8db3;
  margin: 0 0 10px;
  letter-spacing: 0.5px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

/* —— 页头 —— */
.cb-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}
.cb-breadcrumb { font-size: 12px; color: #8899b4; margin-bottom: 4px; }
.cb-title { margin: 0; font-size: 20px; font-weight: 600; color: #ffffff; }
.cb-desc { margin: 6px 0 0; font-size: 12px; color: #8899b4; }
.cb-header-side { display: flex; align-items: center; gap: 10px; }
.cb-phase-tag {
  font-size: 12px;
  color: #0066CC;
  border: 1px solid rgba(0, 102, 204, 0.4);
  border-radius: 4px;
  padding: 4px 10px;
  white-space: nowrap;
}

/* —— 按钮：三态齐全（hover / active / disabled），禁止纯白背景 —— */
.cb-btn {
  background: rgba(0, 102, 204, 0.16);
  color: #4da3ff;
  border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px;
  padding: 6px 14px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.cb-btn:hover:not(:disabled)  { background: rgba(0, 102, 204, 0.32); }
.cb-btn:active:not(:disabled) { background: rgba(0, 102, 204, 0.45); transform: translateY(1px); }
.cb-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  filter: grayscale(0.4);
}
.cb-btn-ghost { background: transparent; color: #8899b4; border-color: #2a3450; }
.cb-btn-ghost:hover:not(:disabled)  { background: rgba(139, 147, 176, 0.12); color: #e0e6f0; }
.cb-btn-ghost:active:not(:disabled) { background: rgba(139, 147, 176, 0.22); transform: translateY(1px); }
.cb-btn-danger { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55); }
.cb-btn-danger:hover:not(:disabled)  { background: rgba(245, 63, 63, 0.3); }
.cb-btn-danger:active:not(:disabled) { background: rgba(245, 63, 63, 0.42); transform: translateY(1px); }
.cb-btn-green { background: rgba(0, 180, 42, 0.14); color: #3ddc84; border-color: rgba(0, 180, 42, 0.5); }
.cb-btn-green:hover:not(:disabled)  { background: rgba(0, 180, 42, 0.28); }
.cb-btn-green:active:not(:disabled) { background: rgba(0, 180, 42, 0.4); transform: translateY(1px); }

/* —— 输入控件 —— */
.cb-input, .cb-select {
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 12px;
  outline: none;
}
.cb-input:focus, .cb-select:focus { border-color: #0066CC; }
.cb-input::placeholder { color: #5C6480; }
.cb-input:disabled { opacity: 0.45; cursor: not-allowed; }

/* —— 标签 / 文案 —— */
.cb-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; }
.cb-tag-green  { background: rgba(16, 185, 129, 0.15); color: #10b981; }
.cb-tag-red    { background: rgba(239, 68, 68, 0.15);  color: #ef4444; }
.cb-tag-blue   { background: rgba(59, 130, 246, 0.15); color: #3b82f6; }
.cb-tag-orange { background: rgba(245, 158, 11, 0.15); color: #f59e0b; }
.cb-tag-gray   { background: rgba(139, 147, 176, 0.15); color: #8b93b0; }
.cb-muted { color: #8899b4; font-size: 12px; }
.cb-empty-state { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px; }
.cb-empty-icon { font-size: 36px; margin-bottom: 8px; }

/* —— KPI 行 —— */
.cb-kpi-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.cb-kpi-card {
  flex: 1;
  min-width: 150px;
}
/* KPI 卡可点击态（点击筛选列表 / 高亮对应节点） */
.cb-kpi-card-clickable { cursor: pointer; transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s; }
.cb-kpi-card-clickable:hover { border-color: rgba(0, 102, 204, 0.7); transform: translateY(-1px); }
.cb-kpi-card-clickable:active { transform: translateY(0); }
.cb-kpi-card-active {
  border-color: #0066CC !important;
  box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.55), 0 4px 18px rgba(0, 0, 0, 0.35);
}
.cb-kpi-label { font-size: 12px; color: #8b93b0; margin-bottom: 6px; }
.cb-kpi-value { font-size: 22px; font-weight: 600; color: #ffffff; font-variant-numeric: tabular-nums; }
.cb-kpi-delta { font-size: 11px; margin-top: 4px; }
.cb-delta-up   { color: #10b981; }
.cb-delta-down { color: #ef4444; }
.cb-delta-flat { color: #8b93b0; }

/* —— mock 表格 —— */
.cb-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.cb-table th {
  background: #171D36;
  color: #8b93b0;
  font-weight: 600;
  text-align: left;
  padding: 9px 10px;
  border-bottom: 1px solid #2a3450;
  white-space: nowrap;
}
.cb-table td {
  padding: 9px 10px;
  border-bottom: 1px solid #1E2745;
  color: #c0c8d8;
  white-space: nowrap;
}
.cb-table tbody tr:hover td { background: rgba(59, 130, 246, 0.06); }
.cb-row-clickable { cursor: pointer; }
.cb-table-wrap { overflow-x: auto; }

/* —— 行内操作按钮（表格内小按钮） —— */
.cb-link-btn {
  background: none;
  border: none;
  color: #4da3ff;
  font-size: 12px;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 4px;
  transition: all 0.15s;
}
.cb-link-btn:hover:not(:disabled)  { background: rgba(0, 102, 204, 0.18); }
.cb-link-btn:active:not(:disabled) { background: rgba(0, 102, 204, 0.3); }
.cb-link-btn:disabled { opacity: 0.45; cursor: not-allowed; }

/* —— 抽屉（深色）—— */
.cb-drawer .el-drawer__header { color: #ffffff; margin-bottom: 12px; }
.cb-drawer .el-drawer__body { background: #0F1423; padding: 0 20px 20px; }
.cb-drawer .el-drawer { background: #171D36; }
.cb-form-item { margin-bottom: 14px; }
.cb-form-label { display: block; font-size: 12px; color: #8b93b0; margin-bottom: 6px; }
.cb-form-item .cb-input, .cb-form-item .cb-select { width: 100%; box-sizing: border-box; }

/* —— 设置项分组 —— */
.cb-setting-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #1E2745;
}
.cb-setting-row:last-child { border-bottom: none; }
.cb-setting-name { font-size: 13px; color: #e0e6f0; }
.cb-setting-desc { font-size: 12px; color: #8899b4; margin-top: 2px; }

/* ============================================================================
   2026-09-05 新增（AI作战调度 · 任务派发 / Agent执行 共用；纯追加，不影响既有页面）
   —— 勾选列 / 分页条 / 骨架屏 / 进度条 / 终端日志 / 悬浮概览面板 ——
============================================================================ */
.cb-checkbox { accent-color: #0066CC; width: 14px; height: 14px; cursor: pointer; vertical-align: middle; }
.cb-checkbox-cell { width: 36px; text-align: center; }

/* —— 筛选区 —— */
.cb-filter-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.cb-filter-label { font-size: 12px; color: #8b93b0; white-space: nowrap; }
.cb-filter-row .cb-input, .cb-filter-row .cb-select { min-width: 130px; }

/* —— 分页条（跟随表格底部） —— */
.cb-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 2px 0;
  border-top: 1px solid #1E2745;
  margin-top: 10px;
}
.cb-pager-btns { display: flex; gap: 6px; align-items: center; }
.cb-pager-btns .cb-btn { padding: 4px 10px; }
.cb-btn-active {
  background: rgba(0, 102, 204, 0.55) !important;
  color: #ffffff !important;
  border-color: rgba(0, 102, 204, 0.8) !important;
}
.cb-btn-active:hover:not(:disabled)  { background: rgba(0, 102, 204, 0.68) !important; }
.cb-btn-active:active:not(:disabled) { background: rgba(0, 102, 204, 0.8) !important; }

/* —— 骨架屏（表格加载态） —— */
.cb-skeleton-table { display: flex; flex-direction: column; gap: 10px; padding: 4px 0; }
.cb-skeleton-row {
  height: 34px;
  border-radius: 6px;
  position: relative;
  overflow: hidden;
  background: #1A2140;
}
.cb-skeleton-row::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(120, 150, 220, 0.08) 50%, transparent 60%);
  animation: cb-shimmer 1.4s ease-in-out infinite;
}
@keyframes cb-shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* —— 进度条 —— */
.cb-progress { display: flex; align-items: center; gap: 8px; min-width: 110px; }
.cb-progress-track {
  flex: 1;
  height: 6px;
  border-radius: 3px;
  background: #1E2745;
  overflow: hidden;
}
.cb-progress-fill { height: 100%; border-radius: 3px; transition: width 0.3s; }
.cb-progress-text { font-size: 11px; color: #8b93b0; min-width: 30px; text-align: right; font-variant-numeric: tabular-nums; }

/* —— 终端日志（执行日志抽屉） —— */
.cb-term {
  background: #0A0E1A;
  border: 1px solid #1E2745;
  border-radius: 8px;
  padding: 10px 12px;
  font-family: 'JetBrains Mono', Consolas, Menlo, monospace;
  font-size: 11px;
  line-height: 1.7;
  overflow-y: auto;
  color: #9fb0d0;
  height: 100%;
  box-sizing: border-box;
}
.cb-term-line { white-space: pre-wrap; word-break: break-all; }
.cb-term-time { color: #4d5d80; margin-right: 8px; }
.cb-term-info    { color: #7d9bd0; }
.cb-term-warn    { color: #e6a23c; }
.cb-term-error   { color: #f56c6c; }
.cb-term-success { color: #3ddc84; }

/* —— 筛选栏右侧批量按钮组 —— */
.cb-batch-group {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* —— 悬浮概览面板（右下角触发按钮 + 滑出面板，不遮挡 264px 侧边栏） —— */
.cb-float-trigger {
  position: fixed;
  right: 24px;
  bottom: 20px;
  z-index: 900;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-size: 12px;
  color: #4da3ff;
  background: #171D36;
  border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 18px;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
  transition: all 0.15s;
  white-space: nowrap;
}
.cb-float-trigger:hover { background: rgba(0, 102, 204, 0.32); color: #ffffff; }
.cb-float-trigger:active { background: rgba(0, 102, 204, 0.45); transform: translateY(1px); }

.cb-float-panel {
  position: fixed;
  right: 24px;
  bottom: 68px;
  z-index: 900;
  width: 340px;
  background: rgba(23, 29, 54, 0.96);
  border: 1px solid #2a3450;
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}
.cb-float-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #e0e6f0;
  border-bottom: 1px solid #1E2745;
  user-select: none;
}
.cb-float-close {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 22px;
  height: 22px;
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s;
}
.cb-float-close:hover { background: rgba(245, 63, 63, 0.25); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.5); }
.cb-float-close:active { background: rgba(245, 63, 63, 0.4); }
.cb-float-body { max-height: 180px; overflow-y: auto; padding: 6px 12px 10px; }
.cb-event-item {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 11px;
  color: #c0c8d8;
  padding: 4px 0;
  border-bottom: 1px dashed #1E2745;
}
.cb-event-item:last-child { border-bottom: none; }
.cb-event-time { color: #5b6b8c; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.cb-event-dot { flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; display: inline-block; }

/* —— 详情键值对（任务详情抽屉） —— */
.cb-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #1E2745;
  font-size: 12px;
}
.cb-detail-row:last-child { border-bottom: none; }
.cb-detail-label { color: #8b93b0; flex-shrink: 0; }
.cb-detail-value { color: #e0e6f0; text-align: right; word-break: break-all; }

.cb-multiselect[data-v-8c07e086] { position: relative; display: inline-block;
}
.cb-multiselect-trigger[data-v-8c07e086] {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 150px;
  cursor: pointer;
  white-space: nowrap;
}
.cb-multiselect-trigger[data-v-8c07e086]:disabled { opacity: 0.45; cursor: not-allowed;
}
.cb-multiselect-label[data-v-8c07e086] { flex: 1; text-align: left;
}
.cb-multiselect-placeholder[data-v-8c07e086] { color: #5C6480;
}
.cb-multiselect-arrow[data-v-8c07e086] { font-size: 10px; color: #8899b4;
}
.cb-multiselect-panel[data-v-8c07e086] {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 100%;
  z-index: 40;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
  padding: 6px;
}
.cb-multiselect-list[data-v-8c07e086] { max-height: 200px; overflow-y: auto;
}
.cb-multiselect-item[data-v-8c07e086] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  font-size: 12px;
  color: #c0c8d8;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}
.cb-multiselect-item[data-v-8c07e086]:hover { background: rgba(59, 130, 246, 0.1);
}
.cb-multiselect-empty[data-v-8c07e086] { padding: 10px 8px; font-size: 12px; color: #5b6b8c;
}
.cb-multiselect-foot[data-v-8c07e086] {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  padding-top: 6px;
  border-top: 1px solid #1E2745;
  margin-top: 4px;
}

.cb-filter-card[data-v-a4568982] { flex-shrink: 0; margin-bottom: 12px;
}
.cb-table-card[data-v-a4568982] { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
.cb-table-card .cb-card-title[data-v-a4568982] { flex-shrink: 0;
}
.cb-table-scroll[data-v-a4568982] { flex: 1; min-height: 0; overflow-y: auto;
}
.cb-pager[data-v-a4568982] { flex-shrink: 0;
}

/* —— 行内危险操作 —— */
.cb-link-danger[data-v-a4568982] { color: #ff7a7a !important;
}
.cb-link-danger[data-v-a4568982]:hover:not(:disabled) { background: rgba(245, 63, 63, 0.18) !important;
}
.cb-link-danger[data-v-a4568982]:active:not(:disabled) { background: rgba(245, 63, 63, 0.3) !important;
}

/* —— 创建任务表单 —— */
.cb-textarea[data-v-a4568982] { height: 96px; resize: vertical; line-height: 1.6; font-family: inherit;
}
.cb-prompt-row[data-v-a4568982] { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap;
}
.cb-radio-row[data-v-a4568982] { display: flex; align-items: center; gap: 6px;
}
.cb-radio[data-v-a4568982] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #c0c8d8;
  margin-right: 16px;
  cursor: pointer;
}
.cb-radio input[data-v-a4568982] { accent-color: #0066CC;
}

/* —— 抽屉深色化（内层元素规则经 append-to-body 后仍随组件 scope 生效） —— */
[data-v-a4568982] .cb-drawer .el-drawer { background: #171D36;
}
[data-v-a4568982] .cb-drawer .el-drawer__header { color: #ffffff;
}
[data-v-a4568982] .cb-drawer .el-drawer__body { background: #0F1423;
}
[data-v-a4568982] .cb-drawer .el-drawer__close-btn { color: #8b93b0;
}
[data-v-a4568982] .cb-drawer .el-drawer__close-btn:hover { color: #ffffff;
}

/* el-drawer 面板定位兜底（EP 样式缺失方向/定位规则时面板会 static 贴左上角，
   被 264px 侧边栏与顶栏遮挡）：append-to-body + 强制右侧全高滑出
   （参考 content-workshop viral-gene-lib 已验证方案，仅作用于本模块 .acs-drawer） */
.acs-drawer.el-drawer.rtl {
  position: absolute !important;
  right: 0 !important;
  left: auto !important;
  top: 0 !important;
  bottom: 0 !important;
  height: auto !important;
}
.acs-drawer.el-drawer { background: #171D36; border-left: 1px solid #2a3450;
}
.acs-drawer .el-drawer__header { color: #ffffff;
}
.acs-drawer .el-drawer__body { background: #0F1423;
}

.cb-filter-card[data-v-93794bc5] { flex-shrink: 0; margin-bottom: 12px;
}
.cb-table-card[data-v-93794bc5] { flex: 1; min-height: 0; display: flex; flex-direction: column;
}
.cb-table-card .cb-card-title[data-v-93794bc5] { flex-shrink: 0;
}
.cb-table-scroll[data-v-93794bc5] { flex: 1; min-height: 0; overflow-y: auto;
}
.cb-pager[data-v-93794bc5] { flex-shrink: 0;
}

/* —— 行内危险操作 —— */
.cb-link-danger[data-v-93794bc5] { color: #ff7a7a !important;
}
.cb-link-danger[data-v-93794bc5]:hover:not(:disabled) { background: rgba(245, 63, 63, 0.18) !important;
}
.cb-link-danger[data-v-93794bc5]:active:not(:disabled) { background: rgba(245, 63, 63, 0.3) !important;
}

/* —— 执行日志抽屉：终端区撑满剩余高度 —— */
[data-v-93794bc5] .cb-drawer .el-drawer { background: #171D36;
}
[data-v-93794bc5] .cb-drawer .el-drawer__header { color: #ffffff;
}
[data-v-93794bc5] .cb-drawer .el-drawer__body { background: #0F1423;
}
[data-v-93794bc5] .cb-drawer .el-drawer__close-btn { color: #8b93b0;
}
[data-v-93794bc5] .cb-drawer .el-drawer__close-btn:hover { color: #ffffff;
}
[data-v-93794bc5] .log-drawer .el-drawer__body { display: flex; flex-direction: column;
}
.cb-log-meta[data-v-93794bc5] { flex-shrink: 0; margin-bottom: 10px; word-break: break-all;
}
.cb-log-toolbar[data-v-93794bc5] { flex-shrink: 0; display: flex; gap: 8px; margin-bottom: 10px;
}
.log-term[data-v-93794bc5] { flex: 1; min-height: 0; height: auto;
}

/* —— 悬浮面板滑出过渡 —— */
.cb-float-slide-enter-active[data-v-93794bc5], .cb-float-slide-leave-active[data-v-93794bc5] {
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.cb-float-slide-enter-from[data-v-93794bc5], .cb-float-slide-leave-to[data-v-93794bc5] {
  transform: translateY(14px);
  opacity: 0;
}

/* el-drawer 面板定位兜底（EP 样式缺失方向/定位规则时面板会 static 贴左上角，
   被 264px 侧边栏与顶栏遮挡）：append-to-body + 强制右侧全高滑出
   （参考 content-workshop viral-gene-lib 已验证方案，仅作用于本模块 .acs-drawer） */
.acs-drawer.el-drawer.rtl {
  position: absolute !important;
  right: 0 !important;
  left: auto !important;
  top: 0 !important;
  bottom: 0 !important;
  height: auto !important;
}
.acs-drawer.el-drawer { background: #171D36; border-left: 1px solid #2a3450;
}
.acs-drawer .el-drawer__header { color: #ffffff;
}
.acs-drawer .el-drawer__body { background: #0F1423;
}
/* ============================================================================
   Agent中枢管理 ac.css — 6 个三级页面共享样式（深色主题，继承 cb.css 令牌）
   六区块布局：①顶部KPI ②左侧筛选/分类 ③主内容局部滚动 ④右侧抽屉
               ⑤底部批量操作栏(选中激活) ⑥右下角悬浮统计卡(固定不滚动)
   全局状态色：可用=绿 使用中=蓝 告警异常=红 待命回收=灰 中等临界=黄
============================================================================ */

/* —— 页面级局部滚动：整页 flex 纵向，KPI 固定，下方六区块区域内部布局 —— */
.ac-page { height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.ac-page .cb-header { flex-shrink: 0; }
.ac-page .cb-kpi-row { flex-shrink: 0; }

/* —— 区块②+③ 左右布局（左右容器等高平行：统一 stretch，左侧内部局部滚动） —— */
.ac-layout { display: flex; align-items: stretch; gap: 12px; flex: 1; min-height: 0; }
.ac-side {
  width: 248px;
  flex-shrink: 0;
  min-height: 0;
  max-height: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
  overflow-x: hidden;
}
.ac-side .cb-card { padding: 12px; flex-shrink: 0; }
.ac-side-title { font-size: 13px; font-weight: 600; color: #e0e6f0; margin: 0 0 10px; }
.ac-main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ac-main-card { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.ac-main-card .cb-card-title { flex-shrink: 0; }
.ac-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex-shrink: 0; margin-bottom: 10px; }
.ac-scroll { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px; }

/* —— 网格（指纹/提示词卡片）：宽松布局，横向/纵向间距拉开（v10） —— */
.ac-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); gap: 14px 16px; align-content: start; }
.ac-grid-card {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s;
  position: relative;
  min-height: 148px; /* 卡片高度统一（v9） */
  display: flex;
  flex-direction: column;
}
.ac-grid-card:hover { border-color: #0066CC; transform: translateY(-2px); }
.ac-grid-card.ac-selected { border-color: #0066CC; box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.5); }
.ac-grid-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ac-grid-title { font-size: 13px; font-weight: 600; color: #e8ecf5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-grid-meta { font-size: 11px; color: #8b93b0; margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; line-height: 1.7; }
.ac-grid-ops { display: flex; gap: 8px; margin-top: auto; padding-top: 10px; flex-wrap: wrap; }
.ac-grid-ops .cb-link-btn { padding: 3px 8px; font-size: 12px; }

/* —— 状态标签（全局色值） —— */
.ac-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; }
.ac-tag-green  { background: rgba(0, 180, 42, 0.16);  color: #00b42a; }
.ac-tag-blue   { background: rgba(64, 150, 255, 0.16); color: #4096ff; }
.ac-tag-red    { background: rgba(245, 63, 63, 0.16);  color: #f53f3f; }
.ac-tag-gray   { background: rgba(134, 144, 156, 0.16); color: #86909c; }
.ac-tag-yellow { background: rgba(255, 205, 0, 0.16);  color: #ffcd00; }
.ac-tag-class { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 8px; line-height: 16px; font-family: Consolas, Menlo, monospace; }

/* —— 左侧筛选控件 —— */
.ac-form-item { margin-bottom: 10px; }
.ac-form-label { display: block; font-size: 12px; color: #8b93b0; margin-bottom: 6px; }
.ac-form-item .cb-input, .ac-form-item .cb-select { width: 100%; box-sizing: border-box; }
.ac-quick { display: flex; flex-wrap: wrap; gap: 6px; }
.ac-chip {
  font-size: 11px;
  border-radius: 12px;
  padding: 3px 10px;
  background: rgba(0, 102, 204, 0.12);
  color: #7d9bd0;
  border: 1px solid rgba(0, 102, 204, 0.3);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.ac-chip:hover { background: rgba(0, 102, 204, 0.25); color: #ffffff; }
.ac-chip.ac-chip-active { background: rgba(0, 102, 204, 0.5); color: #ffffff; border-color: #0066CC; }

/* —— 区块⑤ 底部批量操作栏（固定定位，选中数据后激活） —— */
.ac-batch-bar {
  position: fixed;
  left: 280px;
  right: 330px;
  bottom: 12px;
  z-index: 850;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 14px;
  background: rgba(23, 29, 54, 0.97);
}
.ac-batch-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* —— 批量栏 inline 变体：主内容区底部（不固定视口，指纹库 v9） —— */
.ac-batch-bar-inline {
  position: static;
  left: auto;
  right: auto;
  bottom: auto;
  margin-top: 10px;
  border-top: 1px solid #1E2745;
  background: rgba(23, 29, 54, 0.85);
  border-radius: 0 0 10px 10px;
}

/* —— vfinal：冲突指纹横向对比表（差异单元格标红高亮，容器内横向滚动） —— */
.ac-compare-wrap { overflow-x: auto; overflow-y: auto; max-height: 60vh; }
.ac-compare-table td { white-space: normal; word-break: break-all; }
.ac-diff { color: #f53f3f !important; background: rgba(245, 63, 63, 0.12); }

/* —— vfinal：小窗口操作按钮收纳（≤1400px 折叠进「更多」下拉） —— */
.ac-ops-more { display: none; }
.ac-ops-drop {
  position: absolute;
  right: 10px;
  bottom: 36px;
  z-index: 30;
  min-width: 112px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
  padding: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ac-ops-drop .cb-link-btn { display: block; text-align: left; padding: 5px 10px; }
@media (max-width: 1400px) {
  .ac-grid-ops > .cb-link-btn:not(.ac-ops-keep):not(.ac-ops-more) { display: none; }
  .ac-ops-more { display: inline-flex; }
}

/* —— 标准分页组件（v10：网格底部，批量栏上方） —— */
.ac-pager {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 4px 2px;
  margin-top: 10px;
  border-top: 1px solid #1E2745;
}
.ac-pager-btns { display: flex; gap: 4px; align-items: center; }
.ac-pager-btns .cb-btn { padding: 4px 10px; }

/* —— 右侧可折叠健康度面板（v9：替代 fixed 悬浮卡，展开不遮挡主流程） —— */
.ac-health-panel {
  width: 280px;
  flex-shrink: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.ac-health-panel.ac-health-collapsed { width: 44px; }
.ac-health-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  cursor: pointer;
  color: #7d9bd0;
  font-size: 12px;
  letter-spacing: 2px;
  writing-mode: vertical-rl;
  transition: all 0.15s;
  user-select: none;
}
.ac-health-tab:hover { border-color: #0066CC; color: #ffffff; }
.ac-health-body { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow-y: auto; }
.ac-health-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ac-health-body .ac-float-row { padding: 4px 0; }

/* —— 区块⑥ 右下角悬浮统计卡片（固定不跟随页面滚动，避让批量栏） —— */
.ac-float-card {
  position: fixed;
  right: 16px;
  bottom: 12px;
  width: 300px;
  z-index: 860;
  background: rgba(23, 29, 54, 0.97);
  max-height: 46vh;
  overflow-y: auto;
}
.ac-float-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; padding: 4px 0; }
.ac-float-row .cb-muted { font-size: 11px; }

/* —— 条形图 / 进度条 / 环形 —— */
.ac-bar { height: 8px; border-radius: 4px; background: #1E2745; overflow: hidden; flex: 1; }
.ac-bar-fill { height: 100%; border-radius: 4px; transition: width 0.4s; }
.ac-ring {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.ac-ring-track { background: #1E2745; position: relative; }
.ac-ring-track::after {
  content: '';
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: #0F1423;
}
.ac-ring-value { position: relative; z-index: 1; }

/* —— 星级评分 —— */
.ac-stars { color: #f7ba1e; font-size: 12px; letter-spacing: 1px; }
.ac-stars-off { color: #3a4468; }

/* —— 等宽字体（指纹参数 / 提示词内容） —— */
.ac-mono { font-family: 'JetBrains Mono', Consolas, Menlo, monospace; font-size: 11px; }

/* —— IPv4 / IPv6 版本标签（IP隔离池 / 编队资源卡共用） —— */
.ac-ver-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  border-radius: 4px;
  padding: 1px 6px;
  line-height: 14px;
  font-family: Consolas, Menlo, monospace;
  margin-right: 6px;
  vertical-align: middle;
}
.ac-ver-v4 { background: rgba(64, 150, 255, 0.16); color: #4096ff; border: 1px solid rgba(64, 150, 255, 0.35); }
.ac-ver-v6 { background: rgba(0, 180, 42, 0.16); color: #00b42a; border: 1px solid rgba(0, 180, 42, 0.35); }

/* —— 可复制行 —— */
.ac-copy-row { display: flex; align-items: flex-start; gap: 6px; font-size: 11px; color: #9fb0d0; word-break: break-all; }
.ac-copy-row .ac-mono { flex: 1; }

/* —— 分类树 —— */
.ac-tree-item { display: flex; align-items: center; gap: 6px; padding: 6px 8px; border-radius: 6px; cursor: pointer; font-size: 12px; color: #c0c8d8; }
.ac-tree-item:hover { background: rgba(59, 130, 246, 0.1); }
.ac-tree-item.ac-tree-active { background: rgba(0, 102, 204, 0.3); color: #ffffff; }
.ac-tree-count { margin-left: auto; font-size: 11px; color: #5b6b8c; }

/* —— 任务流水终端（指挥总览底部） —— */
.ac-stream { height: 150px; flex-shrink: 0; }
.ac-stream .cb-term { height: 100%; }

/* —— 抽屉深色化 + append-to-body 定位兜底（同 ai-combat-schedule 已验证方案） —— */
.acs-drawer.el-drawer.rtl {
  position: absolute !important;
  right: 0 !important;
  left: auto !important;
  top: 0 !important;
  bottom: 0 !important;
  height: auto !important;
}
.acs-drawer.el-drawer { background: #171D36; border-left: 1px solid #2a3450; }
.acs-drawer .el-drawer__header { color: #ffffff; }
.acs-drawer .el-drawer__body { background: #0F1423; }
.acs-drawer .el-drawer__close-btn { color: #8b93b0; }
.acs-drawer .el-drawer__close-btn:hover { color: #ffffff; }

/* —— 详情键值对 —— */
.ac-detail-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 8px 0; border-bottom: 1px solid #1E2745; font-size: 12px; }
.ac-detail-row:last-child { border-bottom: none; }
.ac-detail-label { color: #8b93b0; flex-shrink: 0; }
.ac-detail-value { color: #e0e6f0; text-align: right; word-break: break-all; }
.ac-section-title { font-size: 13px; font-weight: 600; color: #e0e6f0; margin: 14px 0 8px; border-left: 3px solid #0066CC; padding-left: 8px; }

/* —— 弹窗（绑定 Agent 选择器 / 预览） —— */
.ac-pick-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #2a3450; border-radius: 8px; margin-bottom: 8px; cursor: pointer; font-size: 12px; transition: border-color 0.15s; }
.ac-pick-row:hover { border-color: #0066CC; }
.ac-pick-row.ac-pick-active { border-color: #0066CC; background: rgba(0, 102, 204, 0.15); }

/* ============================================================================
   2026-09-05 指挥总览迭代 v2（纯追加，不影响其他页面）
   —— 卡片等高 / 拓扑画布指针 / 流水工具栏 / 折叠悬浮指令按钮 ——
============================================================================ */

/* —— P0：状态分布卡片与主卡片（含实时任务流水）外部容器强制等高平行，
   卡片内部各自独立局部滚动（左侧卡片补全 stretch 到 100% 高度 + 内部滚动） —— */
.ac-side-card-fill {
  height: 100%;
  min-height: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
}

/* —— P1：编队分布标题行（折叠/展开切换） —— */
.ac-side-title-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 6px; }
.ac-side-title-row .ac-side-title { margin: 0; }

/* —— P0：拓扑画布指针（拖拽平移抓取态） —— */
.ac-topo-canvas { cursor: grab; user-select: none; }
.ac-topo-canvas.is-panning { cursor: grabbing; }

/* —— P0：实时任务流水工具栏（搜索/阈值/暂停/查看全部/清空） —— */
.ac-stream-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.ac-stream-tools .cb-btn { padding: 4px 10px; font-size: 11px; }
.ac-stream-badge {
  font-size: 11px; color: #ffcd00;
  background: rgba(255, 205, 0, 0.12);
  border: 1px solid rgba(255, 205, 0, 0.35);
  padding: 2px 8px; border-radius: 4px; white-space: nowrap;
}

/* —— P0：全局快捷指令折叠悬浮按钮（默认收起，不遮挡页面内容；深色三态，禁白底） —— */
.ac-cmd-fab {
  position: fixed;
  right: 16px;
  bottom: 12px;
  z-index: 860;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 24px;
  background: rgba(23, 29, 54, 0.97);
  border: 1px solid rgba(0, 102, 204, 0.6);
  color: #4da3ff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.5);
  transition: all 0.15s;
  user-select: none;
  white-space: nowrap;
}
.ac-cmd-fab:hover  { background: rgba(0, 102, 204, 0.32); color: #ffffff; border-color: #0066CC; }
.ac-cmd-fab:active { background: rgba(0, 102, 204, 0.45); transform: translateY(1px); }
.ac-cmd-fab-ico { font-size: 15px; }

/* —— P0：全局快捷指令展开面板（复刻悬浮卡规范，上限高度内部滚动） —— */
.ac-cmd-panel { max-height: 56vh; overflow-y: auto; }
</style>

/* ============================================================================
   2026-09-07 知识库 L1/L2 双模改造（纯追加，不影响其他页面）
   —— 双模切换控件 / 分类树局部滚动 / L2编排链路 / 健康面板告警行 / 表单单选 / Schema代码块 ——
============================================================================ */

/* —— 双模切换控件（KPI 下方，分段式单选，深色三态禁白底） —— */
.kb-mode-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; margin-bottom: 12px; flex-wrap: wrap; }
.kb-mode-switch { display: inline-flex; border: 1px solid #2a3450; border-radius: 8px; overflow: hidden; }
.kb-mode-opt {
  padding: 7px 16px; font-size: 12px; font-weight: 600; color: #8b93b0;
  background: #171D36; border: none; cursor: pointer; transition: all 0.15s;
}
.kb-mode-opt + .kb-mode-opt { border-left: 1px solid #2a3450; }
.kb-mode-opt:hover { color: #e8ecf5; background: rgba(0, 102, 204, 0.18); }
.kb-mode-opt:active { background: rgba(0, 102, 204, 0.3); }
.kb-mode-opt.kb-mode-active { background: rgba(0, 102, 204, 0.32); color: #4da3ff; }
.kb-mode-opt:disabled { opacity: 0.55; cursor: not-allowed; }

/* —— 左侧分类卡片：等高填充 + 内部树局部滚动（不撑开整体页面） —— */
.kb-side-card { height: 100%; min-height: 0; box-sizing: border-box; display: flex; flex-direction: column; overflow: hidden; }
.kb-tree-scroll { flex: 1; min-height: 0; overflow-y: auto; margin-top: 8px; padding-right: 2px; }

/* —— L2 引用 L1 技能编排链路（简易流程图） —— */
.kb-chain { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 2px; }
.kb-chain-node {
  display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 6px;
  font-size: 11px; background: rgba(64, 150, 255, 0.14); color: #4da3ff;
  border: 1px solid rgba(64, 150, 255, 0.35); cursor: pointer;
  max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.kb-chain-node.kb-chain-broken { background: rgba(245, 63, 63, 0.14); color: #f53f3f; border-color: rgba(245, 63, 63, 0.45); }
.kb-chain-arrow { color: #4da3ff; font-size: 11px; }

/* —— 健康度面板告警行（红=断裂/废弃，黄=风险/过期） —— */
.kb-alert-row { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #f53f3f; padding: 3px 0; }
.kb-warn-row { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #ffcd00; padding: 3px 0; }

/* —— 表单抽屉：所属库必选单选（深色三态） —— */
.kb-form-radio { display: flex; gap: 8px; }
.kb-form-radio-opt {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 8px 10px; border: 1px solid #2a3450; border-radius: 8px; cursor: pointer;
  font-size: 12px; color: #8b93b0; background: #171D36; transition: all 0.15s;
}
.kb-form-radio-opt:hover { border-color: #0066CC; color: #e8ecf5; }
.kb-form-radio-opt:active { background: rgba(0, 102, 204, 0.2); }
.kb-form-radio-opt.kb-form-radio-active { border-color: #0066CC; background: rgba(0, 102, 204, 0.3); color: #4da3ff; }
.kb-form-radio-opt:disabled { opacity: 0.6; cursor: not-allowed; }

/* —— Schema 等宽代码块 —— */
.kb-mono-pre {
  font-family: Consolas, Menlo, monospace; font-size: 11px; color: #9db4d8;
  background: #0F1423; border: 1px solid #2a3450; border-radius: 6px;
  padding: 8px; white-space: pre-wrap; word-break: break-all; margin: 0;
}

/* ============================================================================
   2026-09-07 知识库 UI 交互优化 v2（纯追加）
   —— 健康度面板折叠触发悬浮按钮（默认收起，深色三态禁白底） ——
============================================================================ */
.kb-health-fab {
  position: fixed;
  right: 16px;
  bottom: 12px;
  z-index: 860;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 24px;
  background: rgba(23, 29, 54, 0.97);
  border: 1px solid rgba(0, 102, 204, 0.6);
  color: #4da3ff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.5);
  transition: all 0.15s;
  user-select: none;
  white-space: nowrap;
}
.kb-health-fab:hover  { background: rgba(0, 102, 204, 0.32); color: #ffffff; border-color: #0066CC; }
.kb-health-fab:active { background: rgba(0, 102, 204, 0.45); transform: translateY(1px); }
.kb-health-fab-ico { font-size: 15px; }

/* ============================================================================
   2026-09-07 知识库 文件上传解析（纯追加：深色拖拽上传区，禁白底）
============================================================================ */
.kb-upload-zone {
  position: relative;
  display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap;
  min-height: 64px; padding: 12px;
  border: 1px dashed #2a3450; border-radius: 8px;
  background: #0F1423; color: #8b93b0; font-size: 12px;
  cursor: pointer; transition: all 0.15s; text-align: center;
}
.kb-upload-zone:hover { border-color: #0066CC; color: #c0c8d8; }
.kb-upload-zone.kb-upload-drag { border-color: #4da3ff; background: rgba(0, 102, 204, 0.12); color: #4da3ff; }
.kb-upload-zone.kb-upload-has { border-style: solid; border-color: rgba(0, 180, 42, 0.4); color: #c0c8d8; justify-content: space-between; }
.kb-upload-mask {
  position: absolute; inset: 0; z-index: 5;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: rgba(15, 20, 35, 0.88); border-radius: 8px;
  color: #4da3ff; font-size: 12px;
}
.kb-upload-spin {
  width: 12px; height: 12px; border-radius: 50%;
  border: 2px solid rgba(77, 163, 255, 0.3); border-top-color: #4da3ff;
  animation: kb-upload-spin 0.8s linear infinite;
}
@keyframes kb-upload-spin { to { transform: rotate(360deg); } }
.kb-upload-ico { font-size: 20px; }
.kb-upload-file { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #00b42a; }
.kb-upload-actions { display: flex; gap: 8px; }

/* ============================================================================
   2026-09-07 提示词库布局整改 v9（纯追加）
   —— 右侧效果分析栏面板（折叠伸缩）+ 垂直标题栏 ——
============================================================================ */
.ac-side-right { width: 264px; flex-shrink: 0; min-height: 0; transition: width 0.25s ease; }
.ac-side-right-collapsed { width: 48px; }
.pt-analysis-card { height: 100%; min-height: 0; box-sizing: border-box; display: flex; flex-direction: column; overflow: hidden; }
.pt-analysis-body { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px; }
.pt-analysis-head-v { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 14px 2px; height: 100%; }
.pt-analysis-title-v { writing-mode: vertical-rl; letter-spacing: 3px; white-space: nowrap; font-size: 13px; font-weight: 600; color: #e8ecf5; }

/* ============================================================================
   2026-09-07 提示词库三栏容器高度平行对齐 v11（纯追加，仅作用于提示词库）
   —— 三栏外层统一同等最大高度（=布局行高，stretch 等高：顶部底部完全平行对齐）；
      左栏标题固定+表单局部滚动；中栏工具栏固定+网格局部滚动+批量栏移出卡片至列底；
      右栏标题固定+统计局部滚动；内容超出才触发内部滚动，页面整体永不滚动。
============================================================================ */

/* 三栏外层容器：统一锁定同等最大高度（百分比基于确定行高解析，内容超出由内部滚动兜底） */
.pt-side, .pt-main, .pt-side-right { max-height: 100%; }

/* 左栏：关闭整列滚动（v9 为整列 overflow-y:auto），卡片等高填充，标题固定+表单局部滚动 */
.pt-side { height: auto; overflow: visible; }
.ac-side .pt-side-card {
  flex: 1 1 auto;
  min-height: 0;
  padding: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.pt-side-head { flex-shrink: 0; }
.pt-side-form { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding-right: 2px; }

/* 中栏：卡片占余高（工具栏 flex-shrink 固定不滚动），批量栏移出卡片后位于列底（不受网格滚动影响） */
.pt-main .ac-main-card { flex: 1 1 auto; }
.pt-batch-out { margin-top: 0; flex-shrink: 0; }

/* 右栏：与另两栏同高锁定（卡片/头部/统计区滚动结构沿用 v9） */
.pt-side-right { height: auto; }

/* ============================================================================
   2026-09-07 提示词库 v12：弹窗文档上传解析（纯追加，样式镜像知识库已验证 kb-upload-*，
   深色三态禁白底：常态虚线框 / hover 蓝边 / drag 高亮 / 已附文件绿边）
============================================================================ */
.pt-upload-zone {
  position: relative;
  display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap;
  min-height: 64px; padding: 12px;
  border: 1px dashed #2a3450; border-radius: 8px;
  background: #0F1423; color: #8b93b0; font-size: 12px;
  cursor: pointer; transition: all 0.15s; text-align: center;
}
.pt-upload-zone:hover { border-color: #0066CC; color: #c0c8d8; }
.pt-upload-zone.pt-upload-drag { border-color: #4da3ff; background: rgba(0, 102, 204, 0.12); color: #4da3ff; }
.pt-upload-zone.pt-upload-has { border-style: solid; border-color: rgba(0, 180, 42, 0.4); color: #c0c8d8; justify-content: space-between; }
.pt-upload-mask {
  position: absolute; inset: 0; z-index: 5;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: rgba(15, 20, 35, 0.88); border-radius: 8px;
  color: #4da3ff; font-size: 12px;
}
.pt-upload-spin {
  width: 12px; height: 12px; border-radius: 50%;
  border: 2px solid rgba(77, 163, 255, 0.3); border-top-color: #4da3ff;
  animation: pt-upload-spin 0.8s linear infinite;
}
@keyframes pt-upload-spin { to { transform: rotate(360deg); } }
.pt-upload-ico { font-size: 20px; }
.pt-upload-file { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #00b42a; }
.pt-upload-actions { display: flex; gap: 8px; }

/* ============================================================================
   2026-09-07 店铺矩阵 v3 UI 细节（纯追加，仅店铺列表使用）
   —— 卡片 hover 增强 / 右下角快捷操作折叠面板（默认收起悬浮图标，深色三态禁白底）
============================================================================ */

/* 店铺卡片 hover 增强：边框高亮 + 轻微上浮 + 光晕阴影 */
.sm-shop-card { transition: border-color 0.15s, transform 0.18s, box-shadow 0.18s; }
.sm-shop-card:hover {
  border-color: #4da3ff;
  transform: translateY(-3px);
  box-shadow: 0 8px 22px rgba(0, 102, 204, 0.22);
}

/* 快捷操作折叠面板：wrap 固定右下（v5：bottom 上移至批量栏上方，避免遮挡底部批量操作按钮），默认仅悬浮圆形图标 */
.sm-quick-wrap { position: fixed; right: 16px; bottom: 82px; z-index: 860; }
.sm-quick-fab {
  width: 46px; height: 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(23, 29, 54, 0.97);
  border: 1px solid rgba(0, 102, 204, 0.6);
  color: #4da3ff; font-size: 20px;
  cursor: pointer; transition: all 0.15s;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.5);
}
.sm-quick-fab:hover  { background: rgba(0, 102, 204, 0.32); color: #ffffff; border-color: #0066CC; transform: translateY(-2px); }
.sm-quick-fab:active { background: rgba(0, 102, 204, 0.45); transform: translateY(0); }
.sm-quick-panel { width: 300px; max-width: calc(100vw - 32px); background: rgba(23, 29, 54, 0.97); }

/* ============================================================================
   2026-09-07 平台管理 v1 优化（纯追加）
   —— 平台列表行 hover 背景高亮 ——
============================================================================ */
.sm-pf-row { transition: background 0.15s, border-color 0.15s; }
.sm-pf-row:hover { background: rgba(0, 102, 204, 0.08); border-color: #0066CC; }

/* ============================================================================
   2026-09-08 环境查询监控 v1 优化（纯追加）
   —— 环境列表行 hover 背景高亮 ——
============================================================================ */
.sm-env-row { transition: background 0.15s, border-color 0.15s; }
.sm-env-row:hover { background: rgba(0, 102, 204, 0.08); border-color: #0066CC; }

/* —— 添加/导入表单单选 —— */
.cb-radio-row[data-v-1ee54459] { display: flex; align-items: center; gap: 6px;
}
.cb-radio[data-v-1ee54459] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #c0c8d8;
  margin-right: 16px;
  cursor: pointer;
}
.cb-radio input[data-v-1ee54459] { accent-color: #0066CC;
}

/* —— 三栏栅格布局（2026-09-05）：左22% ｜ 中53% ｜ 右25%，gap 16px —— */
.three-col-wrap[data-v-856b5d04] {
  display: flex;
  gap: 16px;
  width: 100%;
  flex: 1;
  min-height: 0;
  align-items: stretch;
}
/* flex-basis 按比例扣除 gap 补偿，避免 100%+32px 溢出挤压 */
.col-left[data-v-856b5d04]   { flex: 0 0 calc(22% - 11px); min-width: 0; min-height: 0; display: flex;
}
.col-middle[data-v-856b5d04] { flex: 0 0 calc(53% - 11px); min-width: 0; min-height: 0; display: flex;
}
.col-right[data-v-856b5d04]  { flex: 0 0 calc(25% - 10px); min-width: 0; min-height: 0; display: flex;
}

/* 三栏卡片容器：强制高度对齐（max-height 继承视口），内部开启局部滚动 */
.fm-col-card[data-v-856b5d04] {
  flex: 1;
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.fm-col-scroll[data-v-856b5d04] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

/* 中间栏批量按钮栏：宽度 100%，与上方表格左右两端对齐 */
.col-middle .ac-batch-bar-inline[data-v-856b5d04] {
  width: 100%;
  flex-shrink: 0;
  margin-top: 10px;
  box-sizing: border-box;
}

/* 小视口自适应：三栏按比例收缩，不出现重叠挤压 */
@media (max-width: 1280px) {
.three-col-wrap[data-v-856b5d04] { gap: 10px;
}
.col-left[data-v-856b5d04]   { flex-basis: calc(22% - 7px);
}
.col-middle[data-v-856b5d04] { flex-basis: calc(53% - 7px);
}
.col-right[data-v-856b5d04]  { flex-basis: calc(25% - 6px);
}
}

/* 列表项 hover 上浮高亮发光 */
.col-left .ac-pick-row[data-v-856b5d04] {
  transition: transform 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.col-left .ac-pick-row[data-v-856b5d04]:hover {
  transform: translateY(-2px);
  border-color: #0066CC;
  box-shadow: 0 4px 16px rgba(0, 102, 204, 0.35);
}

/* API 调用趋势柱状图（纯 CSS mock，无图表依赖） */
.sm-trend[data-v-c07195f5] { display: flex; align-items: flex-end; gap: 2px; height: 84px; padding: 6px 2px 0; background: #0F1423; border: 1px solid #2a3450; border-radius: 6px;
}
.sm-trend-col[data-v-c07195f5] { flex: 1; height: 100%; display: flex; align-items: flex-end;
}
.sm-trend-bar[data-v-c07195f5] { width: 100%; background: linear-gradient(180deg, #4da3ff, rgba(0, 102, 204, 0.45)); border-radius: 2px 2px 0 0; transition: height 0.3s;
}
.sm-trend-bar[data-v-c07195f5]:hover { background: #ffcd00;
}
/* ============================================================================
   combat-base/ai-product-insight/shared/insight.css — AI选品&爆款洞察 模块样式
   纯追加式样式：继承 cb.css / ac.css 令牌（#0F1423 页底 / #171D36 卡片 / #0066CC 蓝），
   禁止白底组件；按钮三态沿用 cb-btn。
   全局商品类型二分类标签：🖨POD定制款(紫) / 📦普货现货(青)；🤖AI(蓝) / 👤人工(橙)
============================================================================ */

/* —— 商品类型标签（全链路携带） —— */
.pi-type-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; white-space: nowrap; }
.pi-type-pod   { background: rgba(147, 111, 255, 0.16); color: #a78bfa; border: 1px solid rgba(147, 111, 255, 0.35); }
.pi-type-stock { background: rgba(13, 181, 174, 0.16);  color: #2dd4bf; border: 1px solid rgba(13, 181, 174, 0.35); }

/* —— 运行模式标签 —— */
.pi-mode-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; white-space: nowrap; }
.pi-mode-ai     { background: rgba(59, 130, 246, 0.16); color: #60a5fa; border: 1px solid rgba(59, 130, 246, 0.35); }
.pi-mode-manual { background: rgba(245, 158, 11, 0.16); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.35); }

/* —— 风险等级色 —— */
.pi-risk-low  { color: #10b981 !important; }
.pi-risk-mid  { color: #f59e0b !important; }
.pi-risk-high { color: #ef4444 !important; }
.pi-risk-chip { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; }
.pi-risk-chip-low  { background: rgba(16, 185, 129, 0.15); color: #10b981; }
.pi-risk-chip-mid  { background: rgba(245, 158, 11, 0.15); color: #f59e0b; }
.pi-risk-chip-high { background: rgba(239, 68, 68, 0.15); color: #ef4444; }

/* —— 视图切换器（表格/卡片） —— */
.pi-view-switch { display: flex; gap: 4px; }
.pi-view-btn {
  background: transparent; border: 1px solid #2a3450; color: #8899b4;
  border-radius: 6px; padding: 4px 12px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.pi-view-btn:hover  { background: rgba(0, 102, 204, 0.2); color: #e0e6f0; }
.pi-view-btn:active { background: rgba(0, 102, 204, 0.35); }
.pi-view-btn-active { background: rgba(0, 102, 204, 0.4); color: #ffffff; border-color: #0066CC; }

/* —— 采集池卡片视图 —— */
.pi-pool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; align-content: start; }
.pi-pool-card {
  background: #0F1423; border: 1px solid #2a3450; border-radius: 10px; padding: 10px 12px;
  cursor: pointer; transition: border-color 0.15s, transform 0.15s; display: flex; flex-direction: column; gap: 8px;
}
.pi-pool-card:hover { border-color: #0066CC; transform: translateY(-2px); }
.pi-pool-card.pi-selected { border-color: #0066CC; box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.5); }
.pi-pool-head { display: flex; align-items: center; gap: 10px; }
.pi-pool-cover { font-size: 26px; line-height: 1; flex-shrink: 0; }
.pi-pool-title { font-size: 12px; font-weight: 600; color: #e8ecf5; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pi-pool-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pi-pool-nums { display: flex; justify-content: space-between; font-size: 11px; color: #8b93b0; }
.pi-pool-nums b { color: #e0e6f0; font-variant-numeric: tabular-nums; }

/* —— 灵感决策台：三栏双轨布局 —— */
.pi-desk-layout { display: flex; align-items: stretch; gap: 12px; flex: 1; min-height: 0; }
.pi-desk-left { width: 268px; flex-shrink: 0; min-height: 0; display: flex; flex-direction: column; }
.pi-desk-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
.pi-desk-card { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.pi-task-list { flex: 1; min-height: 0; max-height: 100%; overflow-y: auto; padding-right: 2px; display: flex; flex-direction: column; gap: 8px; }
.pi-task-item {
  background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 10px;
  cursor: pointer; transition: border-color 0.15s; display: flex; flex-direction: column; gap: 6px;
}
.pi-task-item:hover { border-color: rgba(0, 102, 204, 0.6); }
.pi-task-item-active { border-color: #0066CC; box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.45); }
.pi-task-item-title { font-size: 12px; color: #e0e6f0; line-height: 1.5; }
.pi-task-item-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pi-task-item-status { font-size: 11px; color: #8899b4; }

/* —— 双轨推演并排卡片（v20260908 等高对齐：外层卡片强制统一高度，内部独立滚动） —— */
.pi-dual-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; flex: 1; min-height: 0; overflow: hidden; }
.pi-dual-grid > .pi-report-card { height: 100%; }
.pi-report-card {
  background: #0F1423; border: 1px solid #2a3450; border-radius: 10px; padding: 12px;
  display: flex; flex-direction: column; min-height: 0; overflow: hidden;
}
.pi-report-card.pi-report-ai { border-color: rgba(59, 130, 246, 0.45); }
.pi-report-card.pi-report-manual { border-color: rgba(245, 158, 11, 0.45); }
.pi-report-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-shrink: 0; margin-bottom: 8px; }
.pi-report-title { font-size: 13px; font-weight: 600; color: #e8ecf5; }
.pi-report-body { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px; }
.pi-kv { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 6px 0; border-bottom: 1px dashed #1E2745; font-size: 12px; }
.pi-kv:last-child { border-bottom: none; }
.pi-kv-label { color: #8b93b0; flex-shrink: 0; }
.pi-kv-value { color: #e0e6f0; text-align: right; font-variant-numeric: tabular-nums; word-break: break-all; }
/* 双轨差异字段：黄色高亮标记 */
.pi-diff {
  background: rgba(255, 205, 0, 0.16);
  color: #ffcd00 !important;
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 600;
}
.pi-diff .pi-kv-label { color: #ffcd00; }
.pi-diff-badge { font-size: 10px; background: rgba(255, 205, 0, 0.2); color: #ffcd00; border-radius: 3px; padding: 1px 5px; margin-left: 6px; }

/* —— 推演进度/操作区 —— */
.pi-desk-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.pi-progress-line { display: flex; align-items: center; gap: 8px; font-size: 11px; color: #4da3ff; flex-shrink: 0; }
.pi-spin { width: 12px; height: 12px; border-radius: 50%; border: 2px solid rgba(77, 163, 255, 0.3); border-top-color: #4da3ff; animation: pi-spin 0.8s linear infinite; display: inline-block; }
@keyframes pi-spin { to { transform: rotate(360deg); } }

/* —— 安全沙盘：风险项 —— */
.pi-sand-layout { display: flex; align-items: stretch; gap: 12px; flex: 1; min-height: 0; }
.pi-sand-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
.pi-sand-card { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.pi-risk-item {
  background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 8px 10px; margin-bottom: 8px;
  display: flex; flex-direction: column; gap: 6px;
}
.pi-risk-item-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; }
.pi-risk-item-label { color: #e0e6f0; font-weight: 600; }
.pi-risk-item-detail { font-size: 11px; color: #8899b4; line-height: 1.5; }
.pi-risk-score { display: flex; align-items: center; gap: 8px; }
.pi-risk-score .ac-bar { flex: 1; }
/* 双轨风险对比：等级不一致红色警示 */
.pi-level-compare { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pi-level-compare .pi-vs { color: #5b6b8c; font-size: 12px; }
.pi-level-diff-warn {
  background: rgba(245, 63, 63, 0.14); color: #ff7a7a;
  border: 1px solid rgba(245, 63, 63, 0.5); border-radius: 6px;
  padding: 6px 10px; font-size: 12px; display: inline-flex; align-items: center; gap: 6px;
}

/* —— 设计工坊：素材网格 —— */
.pi-ws-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex-shrink: 0; }
.pi-ws-product { font-size: 12px; color: #e0e6f0; font-weight: 600; }
.pi-mat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; align-content: start; }
.pi-mat-card {
  background: #0F1423; border: 1px solid #2a3450; border-radius: 10px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 8px; transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s; position: relative;
}
.pi-mat-card:hover { border-color: #4da3ff; box-shadow: 0 6px 18px rgba(0, 102, 204, 0.18); transform: translateY(-2px); }
.pi-mat-card.pi-selected { border-color: #0066CC; box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.5); }
.pi-mat-cover { font-size: 28px; text-align: center; line-height: 1.4; }
.pi-mat-name { font-size: 12px; color: #e0e6f0; font-weight: 600; line-height: 1.5; }
.pi-mat-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 11px; color: #8b93b0; }
.pi-mat-warn {
  font-size: 11px; background: rgba(245, 158, 11, 0.14); color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.4); border-radius: 4px; padding: 3px 8px;
}
.pi-gen-steps { display: flex; flex-direction: column; gap: 8px; padding: 10px 0; }
.pi-gen-step { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #c0c8d8; }
.pi-gen-step-done { color: #10b981; }
.pi-gen-step-running { color: #4da3ff; }

/* —— 上架队列 —— */
.pi-ls-status { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.pi-ls-status-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.pi-ls-dot-waitAi    { background: #3b82f6; }
.pi-ls-dot-waitManual{ background: #f59e0b; }
.pi-ls-dot-ready     { background: #10b981; }
.pi-ls-dot-listing   { background: #4da3ff; animation: pi-pulse 1.2s ease-in-out infinite; }
.pi-ls-dot-ok        { background: #00b42a; }
.pi-ls-dot-fail      { background: #ef4444; }
@keyframes pi-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }

/* —— 数据分析中心：图表 —— */
.pi-chart-box { height: 280px; width: 100%; }
.pi-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-shrink: 0; flex-wrap: wrap; }
.pi-compare-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.pi-compare-table th {
  background: #171D36; color: #8b93b0; font-weight: 600; text-align: left; padding: 8px 10px; border-bottom: 1px solid #2a3450; white-space: nowrap;
}
.pi-compare-table td { padding: 8px 10px; border-bottom: 1px solid #1E2745; color: #c0c8d8; font-variant-numeric: tabular-nums; }
.pi-compare-table tbody tr:hover td { background: rgba(59, 130, 246, 0.06); }
.pi-bias-over  { color: #ef4444; }
.pi-bias-under { color: #10b981; }
.pi-bias-flat  { color: #8b93b0; }

/* —— 通用：局部滚动区 / 空态补充 —— */
.pi-scroll { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px; }
.pi-scroll-x { overflow-x: auto; }
.pi-flex-col { display: flex; flex-direction: column; min-height: 0; }

/* —— 模块悬浮快捷面板（沿用 sm-quick 范式：46px 圆形图标，hover/点击展开，移出自动收起） —— */
.pi-quick-wrap { position: fixed; right: 16px; bottom: 82px; z-index: 860; }
.pi-quick-fab {
  width: 46px; height: 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(23, 29, 54, 0.97);
  border: 1px solid rgba(0, 102, 204, 0.6);
  color: #4da3ff; font-size: 20px;
  cursor: pointer; transition: all 0.15s;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.5);
  position: relative;
}
.pi-quick-fab:hover  { background: rgba(0, 102, 204, 0.32); color: #ffffff; border-color: #0066CC; transform: translateY(-2px); }
.pi-quick-fab:active { background: rgba(0, 102, 204, 0.45); transform: translateY(0); }
/* hover 显示标题 */
.pi-quick-fab .pi-fab-title {
  position: absolute; right: calc(100% + 10px); top: 50%; transform: translateY(-50%);
  background: #171D36; border: 1px solid #2a3450; border-radius: 6px;
  color: #e0e6f0; font-size: 12px; padding: 4px 10px; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity 0.15s;
}
.pi-quick-fab:hover .pi-fab-title { opacity: 1; }
.pi-quick-panel { width: 300px; max-width: calc(100vw - 32px); background: rgba(23, 29, 54, 0.97); }

/* —— 详情抽屉内推演历史 —— */
.pi-history-item { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px dashed #1E2745; font-size: 11px; align-items: baseline; }
.pi-history-item:last-child { border-bottom: none; }
.pi-history-time { color: #5b6b8c; flex-shrink: 0; font-variant-numeric: tabular-nums; }

/* —— 双轨并排卡片在窄容器下的兜底（横向滚动禁止：窄屏折叠为纵向） —— */
@media (max-width: 1280px) {
  .pi-dual-grid { grid-template-columns: 1fr; overflow-y: auto; }
}

/* ============================================================================
   2026-09-08 爆款采集池 vfull：采集任务维度双模式（manual 人工 / ai_auto AI全自动）
   run_mode 绑定任务维度，商品层无模式切换控件；纯追加，不影响既有页面
============================================================================ */

/* —— 任务/商品 Tab 切换器 —— */
.cp-tabs { display: flex; gap: 6px; flex-shrink: 0; margin-bottom: 10px; }
.cp-tab {
  background: #171D36; border: 1px solid #2a3450; color: #8899b4;
  border-radius: 8px; padding: 7px 16px; font-size: 13px; cursor: pointer; transition: all 0.15s;
  display: inline-flex; align-items: center; gap: 6px;
}
.cp-tab:hover  { background: rgba(0, 102, 204, 0.2); color: #e0e6f0; }
.cp-tab:active { background: rgba(0, 102, 204, 0.32); }
.cp-tab-active { background: rgba(0, 102, 204, 0.32); color: #ffffff; border-color: #0066CC; }
.cp-tab-count { font-size: 11px; color: #5b6b8c; }

/* —— 任务模式标签（维度=任务） —— */
.cp-mode-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; white-space: nowrap; }
.cp-mode-manual { background: rgba(245, 158, 11, 0.16); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.35); }
.cp-mode-ai     { background: rgba(59, 130, 246, 0.16);  color: #60a5fa; border: 1px solid rgba(59, 130, 246, 0.35); }

/* —— 任务状态标签（P1：色值严格对齐全站 ac-tag 组件规范） —— */
.cp-status-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; white-space: nowrap; }
.cp-status-排队   { background: rgba(134, 144, 156, 0.16); color: #86909c; }
.cp-status-采集中 { background: rgba(64, 150, 255, 0.16); color: #4096ff; }
.cp-status-暂停   { background: rgba(255, 205, 0, 0.16);  color: #ffcd00; }
.cp-status-完成   { background: rgba(0, 180, 42, 0.16);   color: #00b42a; }
.cp-status-异常终止 { background: rgba(245, 63, 63, 0.16); color: #f53f3f; }

/* —— 进度条+统计文本（任务行） —— */
.cp-task-progress { display: flex; align-items: center; gap: 8px; min-width: 150px; }
.cp-task-stats { font-size: 11px; color: #8899b4; line-height: 1.6; white-space: nowrap; }
.cp-task-stats b { color: #e0e6f0; font-variant-numeric: tabular-nums; }
.cp-stat-ok   { color: #10b981 !important; }
.cp-stat-skip { color: #f59e0b !important; }
.cp-stat-fail { color: #ef4444 !important; }

/* —— 新建任务弹窗：模式单选组件 —— */
.cp-mode-radio { display: flex; gap: 10px; margin-bottom: 4px; }
.cp-mode-radio-item {
  flex: 1; background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 10px 12px;
  cursor: pointer; transition: all 0.15s; display: flex; align-items: center; gap: 8px;
}
.cp-mode-radio-item:hover { border-color: rgba(0, 102, 204, 0.6); }
.cp-mode-radio-item.cp-on { border-color: #0066CC; background: rgba(0, 102, 204, 0.14); box-shadow: 0 0 0 1px rgba(0, 102, 204, 0.45); }
.cp-mode-radio-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #2a3450; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
.cp-mode-radio-item.cp-on .cp-mode-radio-dot { border-color: #0066CC; }
.cp-mode-radio-item.cp-on .cp-mode-radio-dot::after { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #0066CC; }
.cp-mode-radio-title { font-size: 13px; font-weight: 600; color: #e8ecf5; }
.cp-mode-radio-item.cp-on .cp-mode-radio-title { color: #ffffff; }
.cp-mode-note {
  font-size: 11px; line-height: 1.8; color: #8899b4; background: rgba(0, 102, 204, 0.08);
  border: 1px dashed #2a3450; border-radius: 6px; padding: 8px 10px; margin-top: 8px;
}

/* —— 抽屉内：模式切换日志面板 —— */
.cp-switch-panel { border: 1px dashed #2a3450; border-radius: 8px; padding: 8px 10px; margin-bottom: 12px; }
.cp-switch-item { display: flex; gap: 8px; align-items: baseline; font-size: 11px; color: #c0c8d8; padding: 3px 0; }
.cp-switch-time { color: #5b6b8c; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.cp-switch-from { color: #f59e0b; }
.cp-switch-to { color: #4da3ff; }

/* —— 抽屉内 KPI 统计卡 —— */
.cp-kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 12px; }
.cp-kpi {
  background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 4px;
}
.cp-kpi-label { font-size: 11px; color: #8b93b0; }
.cp-kpi-value { font-size: 20px; font-weight: 600; color: #ffffff; font-variant-numeric: tabular-nums; }
.cp-kpi-value.ok { color: #10b981; }
.cp-kpi-value.skip { color: #f59e0b; }
.cp-kpi-value.fail { color: #ef4444; }
.cp-kpi-value.rate { color: #4da3ff; }

/* —— 失败Top原因 —— */
.cp-fail-top { display: flex; flex-direction: column; gap: 6px; }
.cp-fail-row { display: flex; align-items: center; gap: 8px; font-size: 11px; color: #c0c8d8; }
.cp-fail-row .ac-bar { flex: 1; }
.cp-fail-count { color: #ef4444; min-width: 24px; text-align: right; font-variant-numeric: tabular-nums; }

/* —— P1 采集流水线可视化 —— */
.cp-pipeline { display: flex; align-items: center; gap: 0; flex-wrap: wrap; padding: 8px 0; }
.cp-pipe-node { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 74px; }
.cp-pipe-icon {
  width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 12px; border: 1px solid #2a3450; background: #0F1423; color: #5b6b8c;
}
.cp-pipe-node.done .cp-pipe-icon { border-color: rgba(0, 180, 42, 0.5); color: #10b981; background: rgba(0, 180, 42, 0.1); }
.cp-pipe-node.running .cp-pipe-icon { border-color: #0066CC; color: #4da3ff; background: rgba(0, 102, 204, 0.14); }
.cp-pipe-label { font-size: 10px; color: #8b93b0; }
.cp-pipe-node.done .cp-pipe-label { color: #10b981; }
.cp-pipe-node.running .cp-pipe-label { color: #4da3ff; }
.cp-pipe-line { flex: 1; min-width: 18px; height: 2px; background: #1E2745; margin: 0 2px 14px; }
.cp-pipe-line.done { background: rgba(0, 180, 42, 0.5); }

/* —— 商品状态标签（P1：色值严格对齐全站 ac-tag 组件规范） —— */
.cp-p-status { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; white-space: nowrap; }
.cp-p-待研判 { background: rgba(134, 144, 156, 0.16); color: #86909c; }
.cp-p-已采纳 { background: rgba(0, 180, 42, 0.16); color: #00b42a; }
.cp-p-归档 { background: rgba(64, 150, 255, 0.16); color: #4096ff; }
.cp-p-风险复核 { background: rgba(245, 63, 63, 0.16); color: #f53f3f; }

/* —— 商品详情抽屉：只读/可编辑 —— */
.cp-readonly-badge { font-size: 10px; background: rgba(139, 147, 176, 0.16); color: #8b93b0; border-radius: 3px; padding: 1px 6px; }
.cp-editable-badge { font-size: 10px; background: rgba(0, 180, 42, 0.16); color: #3ddc84; border-radius: 3px; padding: 1px 6px; }
.cp-sim-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.cp-sim-table th { background: #171D36; color: #8b93b0; text-align: left; padding: 6px 8px; border-bottom: 1px solid #2a3450; }
.cp-sim-table td { padding: 6px 8px; border-bottom: 1px solid #1E2745; color: #c0c8d8; }

/* —— 告警横幅（成功率低于阈值） —— */
.cp-alert-banner {
  display: flex; align-items: center; gap: 8px; flex-shrink: 0;
  background: rgba(245, 63, 63, 0.12); border: 1px solid rgba(245, 63, 63, 0.5);
  color: #ff7a7a; border-radius: 8px; padding: 8px 12px; font-size: 12px; margin-bottom: 10px;
}
.cp-alert-inline { font-size: 10px; background: rgba(245, 63, 63, 0.16); color: #ff7a7a; border-radius: 3px; padding: 1px 6px; margin-left: 4px; }

/* —— 日志面板内模式切换记录可视化行（vfinal补丁：mode_switch_log 在日志面板渲染输出） —— */
.cp-switch-log-row {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  font-size: 11px; padding: 4px 6px; border-radius: 5px;
  background: rgba(245, 158, 11, 0.08); border: 1px dashed rgba(245, 158, 11, 0.45);
  margin-bottom: 4px;
}
.cp-switch-log-sep { border-top: 1px dashed rgba(245, 158, 11, 0.35); margin: 2px 0 8px; }

/* ============================================================================
   2026-09-08 设计工坊 v2（A+B+C+D 合并修复，纯追加）
   —— 素材网格固定最大高度内部滚动 / 上传缩略图 / 来源标签 / 沙盘预演标签 / hover悬浮预览 / 双模式
============================================================================ */
.ws-mat-scroll { max-height: 100%; }
.ws-upload-thumb { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; border: 1px solid #2a3450; flex-shrink: 0; }
.ws-source-tag { display: inline-block; font-size: 10px; border-radius: 3px; padding: 1px 6px; background: rgba(139, 147, 176, 0.15); color: #8b93b0; white-space: nowrap; }
.ws-sb-risk {
  display: inline-block; font-size: 11px; border-radius: 4px; padding: 3px 8px; line-height: 1.5;
  background: rgba(245, 63, 63, 0.15); color: #ff7a7a; border: 1px solid rgba(245, 63, 63, 0.5);
}
.ws-sb-pass {
  display: inline-block; font-size: 11px; border-radius: 4px; padding: 3px 8px; line-height: 1.5;
  background: rgba(0, 180, 42, 0.15); color: #3ddc84; border: 1px solid rgba(0, 180, 42, 0.45);
}
/* P1：素材卡片 hover 悬浮放大预览弹窗（纯CSS，无JS状态） */
.pi-mat-card { position: relative; }
.ws-hover-pop {
  display: none; position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  z-index: 30; width: 220px; background: #171D36; border: 1px solid #2a3450; border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6); padding: 12px; text-align: center;
}
.pi-mat-card:hover .ws-hover-pop { display: block; }
.ws-hover-pop-cover { font-size: 52px; line-height: 1.3; }
.ws-hover-pop-name { font-size: 12px; color: #e8ecf5; font-weight: 600; margin-top: 6px; word-break: break-all; }
/* 网格滚动区内 hover 弹窗可能被裁剪：卡片区域允许溢出显示 */
.ws-mat-scroll .pi-mat-grid { padding-top: 4px; }

/* ============================================================================
   2026-09-08 安全沙盘 vFINAL（能力整合升级，纯追加）
   —— 主内容限高局部滚动 / 三列网格（AI沙盘/爆款预测/人工沙盘） ——
============================================================================ */
.pi-sand-scroll { flex: 1; min-height: 0; max-height: 100%; overflow-y: auto; overflow-x: hidden; padding-right: 2px; display: flex; flex-direction: column; gap: 10px; }
.pi-triple-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; flex-shrink: 0; }
.pi-triple-grid > .pi-report-card { height: 100%; min-height: 300px; }
@media (max-width: 1400px) {
  .pi-triple-grid { grid-template-columns: 1fr; }
}

/* ============================================================================
   2026-09-08 上架队列布局优化（P0：表格限高内滚/批量栏固定列底/容器内详情面板不遮侧边栏）
============================================================================ */
.ls-col { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
.ls-table-scroll { max-height: 100%; padding-bottom: 48px; }  /* v2：底部让出视口固定批量栏高度，末行不被遮挡 */
/* v2：批量栏视口固定常驻可视区（左对齐内容区280px；详情面板打开时右缘让位500px） */
.ls-batch-fixed { left: 280px !important; right: 24px !important; }
.ls-batch-fixed.ls-batch-shift { right: 500px !important; }
.ls-detail-panel {
  width: 470px; flex-shrink: 0; min-height: 0; max-height: 100%;
  overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column;
  background: #171D36; border: 1px solid #2a3450; border-radius: 10px; padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.ls-detail-module { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid #1E2745; }
.ls-detail-module:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ls-detail-module .ac-section-title { margin-top: 0; }

/* —— 资源标识 —— */
.cp-resource { font-size: 11px; color: #7d9bd0; font-family: Consolas, Menlo, monospace; background: #0F1423; border: 1px solid #1E2745; border-radius: 4px; padding: 2px 8px; }

/* ============================================================================
   2026-09-08 爆款采集池 一期P0补齐（标准分页/批量操作/列表骨架/来源链接/风险标签）
============================================================================ */

/* —— 列表容器：限定最大高度，内部局部滚动（禁止页面整体无限拉长） —— */
.cp-table-scroll { flex: 1; min-height: 0; max-height: 100%; overflow-y: auto; overflow-x: auto; padding-right: 2px; }
/* —— 列表骨架屏（搜索/重置触发） —— */
.cp-skel-list { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 6px; padding: 4px 0; }
/* —— 卡片底部标准分页行 —— */
.cp-pager-row { flex-shrink: 0; display: flex; justify-content: flex-end; align-items: center; padding-top: 10px; margin-top: 8px; border-top: 1px solid #1E2745; }
/* —— 商品详情抽屉：原始来源链接 —— */
.cp-source-link {
  font-size: 12px; color: #4da3ff; word-break: break-all; text-decoration: none;
  background: #0F1423; border: 1px solid #1E2745; border-radius: 6px;
  padding: 8px 10px; display: block; cursor: pointer; transition: border-color 0.15s;
}
.cp-source-link:hover { border-color: rgba(0, 102, 204, 0.6); }
/* —— 商品详情抽屉：风险标签区 —— */
.cp-risk-tags { display: flex; gap: 6px; flex-wrap: wrap; }

/* ============================================================================
   2026-09-10 灵感决策台 · 全局AI/人工双模式顶层管控（P0核心 UI）
   分段切换单选开关：深色主题、选中高亮主色、未选中置灰、hover/active/disabled 三态、禁白色背景
============================================================================ */
.pi-global-mode { display: inline-flex; align-items: center; gap: 0; border: 1px solid #2a3450; border-radius: 8px; overflow: hidden; background: #171D36; flex-shrink: 0; }
.pi-gm-opt { border: none; background: transparent; color: #8b93b0; font-size: 12px; line-height: 1; padding: 7px 14px; cursor: pointer; transition: background 0.15s, color 0.15s; border-right: 1px solid #2a3450; white-space: nowrap; }
.pi-gm-opt:last-child { border-right: none; }
.pi-gm-opt:hover { background: rgba(0, 102, 204, 0.15); color: #c8d6ee; }
.pi-gm-opt:active { background: rgba(0, 102, 204, 0.28); color: #ffffff; }
.pi-gm-opt:disabled { background: transparent; color: #5b6b8c; cursor: not-allowed; opacity: 0.6; }
.pi-gm-opt.pi-gm-active { background: rgba(0, 102, 204, 0.38); color: #4da3ff; font-weight: 600; }
/* 双轨推演区域顶部：全局模式提示横幅（AI自主=黄色警示条 / 人工主导=蓝色提示条） */
.pi-mode-banner { margin-bottom: 10px; padding: 8px 12px; border-radius: 6px; font-size: 12px; border: 1px solid; }
.pi-mode-banner-ai { background: rgba(245, 158, 11, 0.12); border-color: rgba(245, 158, 11, 0.45); color: #f7ba1e; }
.pi-mode-banner-manual { background: rgba(0, 102, 204, 0.14); border-color: rgba(0, 102, 204, 0.5); color: #4da3ff; }

/* ============================================================================
   2026-09-10 设计工坊 · 全局工作模式对齐（P0#2 入口提示文案 / P1#3 普货版权风险）
============================================================================ */
.ws-mode-hint { font-size: 11px; line-height: 1.6; padding: 6px 10px; border-radius: 6px; border: 1px solid; margin-top: 8px; }
.ws-mode-hint-ai { background: rgba(245, 158, 11, 0.10); border-color: rgba(245, 158, 11, 0.35); color: #f7ba1e; }
.ws-mode-hint-manual { background: rgba(0, 102, 204, 0.12); border-color: rgba(0, 102, 204, 0.4); color: #4da3ff; }
.pi-mat-warn-stock {
  font-size: 11px; background: rgba(239, 68, 68, 0.12); color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.4); border-radius: 4px; padding: 3px 8px;
}

/* ============================================================================
   2026-09-10 设计工坊紧凑化 · 统一滚动工作台（P0布局重构；全部 ws-* 作用域不影响其他页面）
   结构：KPI(紧凑) → 工作商品(紧凑横排) → 筛选条(横向) → 素材网格(流式) → 批量栏(流内)
============================================================================ */
.ws-workbench { display: flex; flex-direction: column; gap: 10px; padding-bottom: 28px; }
/* KPI 紧凑（fallthrough class 挂载于 CbKpiCard 根节点） */
.ws-kpi-card { padding: 8px 12px !important; min-width: 130px; }
.ws-kpi-card .cb-kpi-label { font-size: 11px; margin-bottom: 4px; }
.ws-kpi-card .cb-kpi-value { font-size: 19px; }
.ws-kpi-card .cb-kpi-delta { margin-top: 2px; font-size: 10px; }
/* 当前工作商品卡：横向紧凑 */
.ws-work-card { padding: 10px 14px !important; }
.ws-work-card .pi-ws-head { gap: 12px; }
.ws-work-card .pi-ws-head > span { font-size: 22px; }
.ws-work-card .pi-ws-product { font-size: 13px; }
.ws-work-card .ws-mode-hint { margin-top: 6px; padding: 4px 8px; }
.ws-work-card .pi-gen-steps { margin-top: 8px; padding-top: 8px; }
.ws-work-card .pt-upload-zone { padding: 8px 10px; }
/* 素材筛选条：横向分组 + 筛选/重置同行 + 说明单行 */
.ws-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 8px 12px !important; }
.ws-f-item { display: flex; align-items: center; gap: 6px; }
.ws-f-label { font-size: 11px; color: #8b93b0; white-space: nowrap; }
.ws-filter-bar .cb-select { height: 28px; font-size: 12px; padding: 0 8px; }
.ws-f-chips { display: flex; gap: 4px; }
.ws-f-chips .ac-chip { padding: 3px 10px; font-size: 11px; }
.ws-f-reset { margin-left: auto; }
.ws-filter-hint { flex: 1 1 100%; font-size: 10.5px; color: #5b6b8c; line-height: 1.5; }
/* 素材卡片紧凑（列数增加、卡片高度降低、hover位移减小） */
.ws-mat-compact { padding: 10px 12px !important; }
.ws-mat-compact .pi-mat-grid { grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 8px; }
.ws-mat-compact .pi-mat-card { padding: 8px 10px; gap: 5px; border-radius: 8px; }
.ws-mat-compact .pi-mat-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 102, 204, 0.16); }
.ws-mat-compact .pi-mat-cover { font-size: 20px; line-height: 1.2; }
.ws-mat-compact .pi-mat-name { font-size: 11px; line-height: 1.4; }
.ws-mat-compact .pi-mat-meta { gap: 4px; font-size: 10px; }
.ws-mat-compact .pi-mat-warn, .ws-mat-compact .pi-mat-warn-stock { font-size: 10px; padding: 2px 6px; }
.ws-mat-flow .pi-mat-grid { padding-top: 2px; }
/* 批量操作栏：文档流内联紧凑单行（不悬浮不遮挡；窄屏横向滚动） */
.ws-batch-wrap .ac-batch-bar { padding: 8px 12px !important; }
.ws-batch-wrap .ac-batch-actions { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; gap: 8px; }
.ws-batch-wrap .ac-batch-actions .cb-btn { white-space: nowrap; padding: 5px 12px; font-size: 12px; }
/* 风险说明折叠（P1#4）：默认收起只显示标题+等级，展开局部滚动不撑高页面 */
.ws-risk-detail { max-height: 0; overflow: hidden; transition: max-height 0.2s ease; }
.ws-risk-open .ws-risk-detail { max-height: 220px; overflow-y: auto; }
/* 素材详情弹窗紧凑（P1#3）：限高内部滚动 */
.ws-preview-dialog .el-dialog__body { max-height: 62vh; overflow-y: auto; padding-top: 8px; }

/* 工作商品卡风险详情展开块 */
.ws-risk-detail-open { flex-basis: 100%; font-size: 11px; line-height: 1.6; color: #f7ba1e; background: rgba(245, 158, 11, 0.08); border: 1px dashed rgba(245, 158, 11, 0.4); border-radius: 6px; padding: 6px 10px; }

/* ============================================================================
   2026-09-10 安全沙盘 一期P0（预测双卡/置信度三色/拉素材弹窗/风险时间线）
============================================================================ */
.pi-pred-dual { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pi-pred-card { background: #171D36; border: 1px solid #2a3450; border-radius: 8px; padding: 8px 10px; min-width: 0; }
.pi-pred-short { border-color: rgba(247, 186, 30, 0.35); }
.pi-pred-long { border-color: rgba(77, 163, 255, 0.35); }
.pi-conf-chip { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px; line-height: 16px; white-space: nowrap; }
.pi-conf-high { background: rgba(16, 185, 129, 0.15); color: #10b981; border: 1px solid rgba(16, 185, 129, 0.4); }
.pi-conf-mid { background: rgba(245, 158, 11, 0.15); color: #f59e0b; border: 1px solid rgba(245, 158, 11, 0.4); }
.pi-conf-low { background: rgba(239, 68, 68, 0.15); color: #ef4444; border: 1px solid rgba(239, 68, 68, 0.4); }
.sb-task-row:hover { border-color: rgba(77, 163, 255, 0.6); box-shadow: 0 4px 12px rgba(0, 102, 204, 0.15); }
.sb-pull-list { max-height: 320px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; padding-right: 2px; }
.sb-pull-item { display: flex; align-items: center; gap: 8px; background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 8px 10px; cursor: pointer; transition: border-color 0.15s; }
.sb-pull-item:hover { border-color: rgba(0, 102, 204, 0.6); }
.sb-pull-checked { border-color: rgba(0, 102, 204, 0.7); }
.sb-timeline { display: flex; flex-direction: column; }
.sb-tl-item { display: flex; gap: 10px; padding: 8px 0 8px 12px; border-left: 2px solid #2a3450; position: relative; }
.sb-tl-item:last-child { border-left-color: transparent; }
.sb-tl-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; margin-left: -17.5px; border: 2px solid #0F1423; }
.sb-tl-dot-info { background: #4da3ff; }
.sb-tl-dot-success { background: #10b981; }
.sb-tl-dot-warn { background: #f59e0b; }
.sb-tl-dot-error { background: #ef4444; }
.sb-detail-drawer .el-drawer__body { padding-top: 8px; }

/* ============================================================================
   2026-09-10 上架队列一期P0：商品类型标签配色（POD紫 / 普货绿，作用域ls-*）
============================================================================ */
.ls-type-pod { background: rgba(168, 85, 247, 0.16); color: #c084fc; border: 1px solid rgba(168, 85, 247, 0.45); }
.ls-type-stock { background: rgba(16, 185, 129, 0.15); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.45); }

/* ============================================================================
   2026-09-10 数据分析中心 · 全局滚动布局优化 + 双轨看板遮挡修复（da-* 作用域）
   结构：筛选条 → 更新时间栏 → 图表三独立卡 → 双轨看板 → 明细表（24px统一间距/16-20px卡内边距）
============================================================================ */
.da-workbench { display: flex; flex-direction: column; gap: 24px; padding-bottom: 28px; }
.da-workbench .cb-card { transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s; }
.da-workbench .cb-card:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35); border-color: rgba(0, 102, 204, 0.45); }
.da-card { padding: 16px 20px !important; }
.da-update-bar { font-size: 11px; color: #5b6b8c; }
.da-chart-head-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 0 4px; }
.da-chart-title { font-size: 13px; font-weight: 600; color: #e8ecf5; }
.da-chart-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
@media (max-width: 1400px) { .da-chart-grid { grid-template-columns: 1fr; } }
.da-chart-card .pi-chart-box { height: 300px; width: 100%; }
.da-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
/* 双轨看板：解除固定高度/overflow裁切；子卡片加内边距；下拉z-index提升 */
.da-board-card { overflow: visible; }
.da-board-card .da-select-z { position: relative; z-index: 20; }
.da-board-sub { padding: 14px 16px !important; }
/* 明细表：独立卡片内 sticky 表头 + 局部滚动 */
.da-table-scroll { max-height: 430px; overflow: auto; }
.da-table-scroll thead th { position: sticky; top: 0; background: #171D36; z-index: 5; box-shadow: 0 1px 0 #2a3450; }

/* ============================================================================
   2026-09-10 数据分析中心 · 双轨训练样本分页（da-pager 作用域，深色主题三态）
============================================================================ */
.da-pager { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 12px; border-top: 1px solid #1E2745; flex-wrap: wrap; font-size: 12px; }
.da-pager-size { width: 104px; height: 28px; }
.da-pager-btn { padding: 4px 10px; font-size: 12px; white-space: nowrap; }
.da-pager-num { min-width: 30px; padding: 4px 8px; font-size: 12px; }
.da-pager-num.da-pager-active { background: rgba(0, 102, 204, 0.38); color: #4da3ff; border-color: rgba(0, 102, 204, 0.6); font-weight: 600; }
.da-pager-jump { width: 64px; height: 28px; }
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-252736b3] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-252736b3] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-252736b3] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-252736b3] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-252736b3] { flex: 1; min-width: 0;
}
.hq-btn[data-v-252736b3] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-252736b3]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-252736b3] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-252736b3]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-252736b3] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-252736b3], .hq-select[data-v-252736b3] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-252736b3]:focus, .hq-select[data-v-252736b3]:focus { border-color: #0066CC;
}
.hq-tag[data-v-252736b3] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-252736b3] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-252736b3] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-252736b3 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-252736b3] { animation: hq-blink-252736b3 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-252736b3 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-252736b3] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-252736b3 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-252736b3] { color: #0066CC;
}
.hq-ev-risk[data-v-252736b3] { color: #f53f3f;
}
.hq-ev-agent[data-v-252736b3] { color: #00b42a;
}
.hq-ev-strategy[data-v-252736b3] { color: #722ed1;
}
.hq-ev-logistics[data-v-252736b3] { color: #ff7d00;
}
.cw-page[data-v-252736b3] { padding: 16px;
}
.cw-kpis[data-v-252736b3] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.cw-kpi[data-v-252736b3] { padding: 14px 16px;
}
.cw-kpi.clickable[data-v-252736b3] { cursor: pointer;
}
.cw-kpi.clickable[data-v-252736b3]:hover { border-color: #f53f3f;
}
.cw-kpi-num[data-v-252736b3] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.cw-kpi-label[data-v-252736b3] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.cw-main[data-v-252736b3] { display: grid; grid-template-columns: 340px 1fr; gap: 12px; align-items: stretch;
}
.cw-left[data-v-252736b3], .cw-right[data-v-252736b3] { display: flex; flex-direction: column; min-width: 0; min-height: 0;
}
.cw-form[data-v-252736b3] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.cw-label[data-v-252736b3] { display: block; font-size: 11px; color: #8899b4; margin: 8px 0 4px;
}
.cw-input[data-v-252736b3] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.cw-input[data-v-252736b3]:focus { border-color: #0066CC;
}
.cw-textarea[data-v-252736b3] { resize: vertical; font-family: inherit;
}
.cw-grid2[data-v-252736b3] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.cw-checks[data-v-252736b3] { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 4px;
}
.cw-btn-row[data-v-252736b3] { display: flex; gap: 8px; margin-top: 12px;
}
.cw-right-head[data-v-252736b3] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap;
}
.cw-preview-body[data-v-252736b3] { flex: 1; min-height: 0; overflow-y: auto; margin-top: 10px;
}
.shot-card[data-v-252736b3] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 10px 12px; margin-bottom: 8px;
}
.shot-head[data-v-252736b3] { display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
.shot-idx[data-v-252736b3] { background: #0066CC; color: #fff; border-radius: 50%; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
}
.shot-time[data-v-252736b3] { color: #4da3ff; font-size: 11px;
}
.shot-camera[data-v-252736b3] { color: #5b6b8c; font-size: 11px;
}
.shot-line[data-v-252736b3] { font-size: 12px; line-height: 1.6; margin-bottom: 2px;
}
/* 分镜三色规范：镜头描述蓝 #4096ff / 台词绿 #36d399 / 字幕橙黄 #ff9547 */
.shot-line.scene[data-v-252736b3] { color: #4096ff;
}
.shot-line.dialogue[data-v-252736b3] { color: #36d399;
}
.shot-line.subtitle[data-v-252736b3] { color: #ff9547;
}
.bgm-tip[data-v-252736b3] { margin-top: 8px; font-size: 12px; color: #8899b4;
}
.cw-empty[data-v-252736b3] { text-align: center; color: #5b6b8c; padding: 60px 0; font-size: 13px;
}
.cw-history[data-v-252736b3] { margin-top: 12px;
}
.cw-hist-head[data-v-252736b3] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.cw-arrow[data-v-252736b3] { color: #8899b4; font-size: 11px;
}
.cw-float[data-v-252736b3] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.cw-float-main[data-v-252736b3] { border-radius: 999px; padding: 10px 18px; background: rgba(0, 102, 204, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.cw-float-item[data-v-252736b3] { border-radius: 999px; padding: 8px 16px; background: rgba(23, 29, 54, 0.95); color: #c0c8d8; border: 1px solid #2a3450; cursor: pointer; font-size: 12px;
}
.cw-float-item[data-v-252736b3]:hover { border-color: #0066CC; color: #4da3ff;
}
.cw-muted[data-v-252736b3] { color: #8899b4; font-size: 13px;
}
/* —— 本页 el-dialog 定位+宽度补全（全站未引入 el-dialog.css 的历史缺口；仅作用本页面弹窗） —— */
.cw-page[data-v-252736b3] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.cw-page[data-v-252736b3] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
/* —— 本页按钮深色主题覆写（scoped 仅作用本页面；!important 反压 global.scss 全局按钮色）：禁用白色背景 —— */
/* 主操作按钮：深蓝 #165DFF 填充 + 白色文字 */
.cw-page[data-v-252736b3] .el-button--primary { background: #165DFF !important; border-color: #165DFF !important; color: #ffffff !important;
}
.cw-page[data-v-252736b3] .el-button--primary:hover, .cw-page[data-v-252736b3] .el-button--primary:focus { background: #3c7eff !important; border-color: #3c7eff !important; color: #ffffff !important;
}
.cw-page[data-v-252736b3] .el-button--primary.is-disabled, .cw-page[data-v-252736b3] .el-button--primary.is-loading { background: rgba(22, 93, 255, 0.35) !important; border-color: rgba(22, 93, 255, 0.3) !important; color: rgba(255, 255, 255, 0.65) !important;
}
/* 次要按钮（保存模板/加载模板/回显/Cancel/plain 类）：卡片底色 #171D36 + 边框 #333B58 + 文字 #C9CDD4
   重复类名提升特异性，反压 global.scss 的 .el-dialog .el-button:not(...×4) 核弹级覆盖 */
.cw-page[data-v-252736b3] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--link) { background: #171D36 !important; border-color: #333B58 !important; color: #C9CDD4 !important;
}
.cw-page[data-v-252736b3] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--link):hover, .cw-page[data-v-252736b3] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--link):focus { border-color: #165DFF !important; color: #ffffff !important; background: #1d2440 !important;
}
.cw-page[data-v-252736b3] .el-button--link { color: #4da3ff !important;
}
/* —— 骨架屏 shimmer —— */
.cw-skel-card[data-v-252736b3] { pointer-events: none;
}
.cw-skel-line[data-v-252736b3] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: cw-shimmer-252736b3 1.2s infinite; margin-bottom: 8px;
}
.cw-skel-line[data-v-252736b3]:last-child { margin-bottom: 0;
}
.cw-skel-line.w30[data-v-252736b3] { width: 30%;
}
.cw-skel-line.w40[data-v-252736b3] { width: 40%;
}
.cw-skel-line.w50[data-v-252736b3] { width: 50%;
}
.cw-skel-line.w60[data-v-252736b3] { width: 60%;
}
.cw-skel-line.w70[data-v-252736b3] { width: 70%;
}
.cw-skel-line.w90[data-v-252736b3] { width: 90%;
}
@keyframes cw-shimmer-252736b3 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
.cw-form[data-v-252736b3] { position: relative;
}
.cw-form-skel[data-v-252736b3] { position: absolute; inset: 0; background: rgba(23, 29, 54, 0.94); z-index: 5; padding: 10px; border-radius: 6px;
}
/* —— 预览区悬浮面板（P1 UI 骨架）：横向间距 12px、内边距 10/6、文字溢出省略号 —— */
.cw-right[data-v-252736b3] { position: relative;
}
.cw-preview-float[data-v-252736b3] { position: absolute; top: 12px; right: 12px; display: flex; z-index: 5;
}
.cw-pf-btn[data-v-252736b3] { background: rgba(23, 29, 54, 0.9); border: 1px solid #333B58; color: #5b6b8c; border-radius: 999px; padding: 6px 10px; margin-right: 12px; font-size: 11px; cursor: not-allowed; max-width: 140px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cw-pf-btn[data-v-252736b3]:last-child { margin-right: 0;
}
/* —— 分页整体居中（Total 与翻页控件同一行，取消左右分栏；补齐全站缺失的 el-pagination 布局） —— */
.cw-pagination[data-v-252736b3] { margin-top: 12px; display: flex; align-items: center; justify-content: center;
}
.cw-page[data-v-252736b3] .cw-pagination .el-pagination__total { margin-right: 14px; font-size: 12px; color: #8899b4;
}
.cw-page[data-v-252736b3] .cw-pagination .el-pager { display: inline-flex; align-items: center; gap: 4px; margin: 0 10px; padding: 0; list-style: none;
}
.cw-page[data-v-252736b3] .cw-pagination .el-pager li { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; font-size: 12px; box-sizing: border-box;
}
.cw-page[data-v-252736b3] .cw-pagination button { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; box-sizing: border-box;
}
/* —— 加载模板弹窗（720px 宽松布局 + 行高/内边距 + hover + 空状态） —— */
.cw-page[data-v-252736b3] .cw-tpl-dialog { min-width: 720px; min-height: 420px;
}
.cw-page[data-v-252736b3] .cw-tpl-dialog .el-dialog__body { padding: 18px 22px 24px !important;
}
.cw-page[data-v-252736b3] .cw-tpl-table .el-table__cell { padding: 14px 16px !important;
}
.cw-page[data-v-252736b3] .cw-tpl-table th.el-table__cell { padding-bottom: 12px !important;
}
.cw-page[data-v-252736b3] .cw-tpl-table .el-table__row { cursor: pointer;
}
.cw-page[data-v-252736b3] .cw-tpl-table .el-table__row:hover > td.el-table__cell { background: rgba(0, 102, 204, 0.08) !important;
}
.cw-page[data-v-252736b3] .cw-tpl-dialog .el-dialog__footer { padding: 0 22px 18px; border-top: none;
}
.cw-tpl-empty[data-v-252736b3] { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 32px 0;
}
.cw-tpl-empty-icon[data-v-252736b3] { font-size: 34px;
}
.cw-tpl-empty-text[data-v-252736b3] { font-size: 14px; color: #8899b4;
}
.cw-tpl-empty-sub[data-v-252736b3] { font-size: 12px; color: #5b6b8c;
}
/* —— 保存模板弹窗（标准 520px + 垂直留白充足；!important 反压全局 .el-dialog__body 20px） —— */
.cw-page[data-v-252736b3] .cw-save-dialog .el-dialog__body { padding: 22px 26px 10px !important;
}
.cw-page[data-v-252736b3] .cw-save-dialog .el-dialog__footer { padding: 14px 26px 22px !important; border-top: none;
}
.cw-save-label[data-v-252736b3] { margin-top: 0; margin-bottom: 8px;
}
.cw-page[data-v-252736b3] .cw-save-dialog .cw-save-input { padding: 10px 12px !important; font-size: 13px;
}
/* —— 高级选项：每项独占一行，复选框统一尺寸，标签行高对齐 —— */
.cw-checks[data-v-252736b3] { display: flex; flex-direction: column; gap: 10px; margin-top: 6px;
}
.cw-check-item[data-v-252736b3] { display: flex; align-items: center; min-height: 22px;
}
.cw-check-item[data-v-252736b3] .el-checkbox { height: 22px; line-height: 22px; margin-right: 0;
}
.cw-check-item[data-v-252736b3] .el-checkbox__inner { width: 15px; height: 15px;
}
.cw-check-item[data-v-252736b3] .el-checkbox__input.is-checked .el-checkbox__inner { background-color: #165DFF; border-color: #165DFF;
}
.cw-check-item[data-v-252736b3] .el-checkbox__label { font-size: 12px !important; line-height: 22px !important; color: #C9CDD4 !important; margin-left: 8px !important; padding-left: 0 !important;
}
@media (max-width: 1100px) {
.cw-kpis[data-v-252736b3] { grid-template-columns: repeat(2, 1fr);
}
.cw-main[data-v-252736b3] { grid-template-columns: 1fr;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-954b1cf8] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-954b1cf8] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-954b1cf8] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-954b1cf8] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-954b1cf8] { flex: 1; min-width: 0;
}
.hq-btn[data-v-954b1cf8] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-954b1cf8]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-954b1cf8] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-954b1cf8]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-954b1cf8] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-954b1cf8], .hq-select[data-v-954b1cf8] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-954b1cf8]:focus, .hq-select[data-v-954b1cf8]:focus { border-color: #0066CC;
}
.hq-tag[data-v-954b1cf8] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-954b1cf8] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-954b1cf8] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-954b1cf8 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-954b1cf8] { animation: hq-blink-954b1cf8 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-954b1cf8 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-954b1cf8] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-954b1cf8 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-954b1cf8] { color: #0066CC;
}
.hq-ev-risk[data-v-954b1cf8] { color: #f53f3f;
}
.hq-ev-agent[data-v-954b1cf8] { color: #00b42a;
}
.hq-ev-strategy[data-v-954b1cf8] { color: #722ed1;
}
.hq-ev-logistics[data-v-954b1cf8] { color: #ff7d00;
}
.cw-page[data-v-954b1cf8] { padding: 16px;
}
.cw-kpis[data-v-954b1cf8] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.cw-kpi[data-v-954b1cf8] { padding: 14px 16px;
}
.cw-kpi.clickable[data-v-954b1cf8] { cursor: pointer;
}
.cw-kpi.clickable[data-v-954b1cf8]:hover { border-color: #f53f3f;
}
.cw-kpi-num[data-v-954b1cf8] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.cw-kpi-label[data-v-954b1cf8] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.cw-main[data-v-954b1cf8] { display: grid; grid-template-columns: 380px 1fr; gap: 12px; align-items: stretch;
}
.cw-left[data-v-954b1cf8], .cw-right[data-v-954b1cf8] { display: flex; flex-direction: column; min-width: 0; min-height: 0;
}
.cw-cats[data-v-954b1cf8] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px;
}
.cw-cat[data-v-954b1cf8] { background: #0F1423; border: 1px solid #2a3450; color: #8899b4; border-radius: 999px; padding: 3px 12px; font-size: 12px; cursor: pointer;
}
.cw-cat.active[data-v-954b1cf8] { border-color: #0066CC; color: #4da3ff; background: rgba(0, 102, 204, 0.12);
}
.cw-humans[data-v-954b1cf8] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; max-height: 210px; overflow-y: auto; padding-right: 2px;
}
.cw-human[data-v-954b1cf8] { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 6px; background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; cursor: pointer;
}
.cw-human.active[data-v-954b1cf8] { border-color: #0066CC; box-shadow: 0 0 0 1px #0066CC;
}
.cw-avatar[data-v-954b1cf8] { font-size: 26px;
}
.cw-hname[data-v-954b1cf8] { font-size: 11px; color: #8899b4;
}
.cw-form[data-v-954b1cf8] { margin-top: 4px;
}
.cw-row[data-v-954b1cf8] { display: flex; align-items: center; gap: 6px;
}
.cw-label[data-v-954b1cf8] { display: block; font-size: 11px; color: #8899b4; margin: 8px 0 4px;
}
.cw-input[data-v-954b1cf8] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.cw-input[data-v-954b1cf8]:focus { border-color: #0066CC;
}
.cw-range[data-v-954b1cf8] { width: 100%; accent-color: #0066CC;
}
.cw-switches[data-v-954b1cf8] { display: flex; align-items: center; gap: 14px; margin-top: 10px;
}
.cw-right-head[data-v-954b1cf8] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap;
}
.cw-preview[data-v-954b1cf8] { flex: 1; min-height: 0; display: flex; flex-direction: column; margin-top: 10px;
}
.cw-preview-stage[data-v-954b1cf8] { flex: 1; min-height: 240px; border: 1px dashed #2a3450; border-radius: 8px; background: #0F1423; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
}
.cw-preview-stage.done[data-v-954b1cf8] { border-style: solid; border-color: #00b42a;
}
.cw-preview-avatar[data-v-954b1cf8] { font-size: 72px;
}
.cw-preview-hint[data-v-954b1cf8] { color: #5b6b8c; font-size: 12px;
}
.cw-preview-done[data-v-954b1cf8] { color: #00b42a; font-size: 12px; word-break: break-all; padding: 0 16px;
}
.cw-progress[data-v-954b1cf8] { width: 80%; display: flex; flex-direction: column; gap: 6px;
}
.cw-eta[data-v-954b1cf8] { font-size: 11px; color: #8899b4; text-align: center;
}
.cw-preview-ctrl[data-v-954b1cf8] { display: flex; gap: 8px; margin-top: 10px; flex-shrink: 0;
}
.cw-script-box[data-v-954b1cf8] { margin-top: 12px;
}
.cw-script-text[data-v-954b1cf8] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 6px; padding: 10px; font-size: 13px; margin-top: 10px; resize: vertical; font-family: inherit;
}
.cw-len[data-v-954b1cf8] { font-size: 11px; color: #5b6b8c;
}
.cw-float[data-v-954b1cf8] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.cw-float-main[data-v-954b1cf8] { border-radius: 999px; padding: 10px 18px; background: rgba(0, 102, 204, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.cw-float-item[data-v-954b1cf8] { border-radius: 999px; padding: 8px 16px; background: rgba(23, 29, 54, 0.95); color: #c0c8d8; border: 1px solid #2a3450; cursor: pointer; font-size: 12px;
}
.cw-float-item[data-v-954b1cf8]:hover { border-color: #0066CC; color: #4da3ff;
}
/* ════════════════════════════════════════════════════════════════
   按钮严款规范（scoped :deep 仅作用本页面；!important 反压 global.scss）
   主操作：#165DFF 白字无边框 | hover #1E6BFF | active #1247DD | disabled #0E3A8C/.65
   次要普通：#171D36 底 + #333B58 边框 + #C9CDD4 字 | hover #1E2548 | active #141A30
   危险/取消：#171D36 底 + #F87272 红字 | hover #2A1F3B
   统一尺寸：height 36px / padding 0 16px / font 14px / radius 8px / margin-right 12px
   ════════════════════════════════════════════════════════════════ */
.cw-page[data-v-954b1cf8] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.cw-page[data-v-954b1cf8] .el-button:last-child { margin-right: 0 !important;
}
/* 主操作按钮 */
.cw-page[data-v-954b1cf8] .el-button--primary { background: #165DFF !important; color: #ffffff !important; border: none !important;
}
.cw-page[data-v-954b1cf8] .el-button--primary:hover { background: #1E6BFF !important;
}
.cw-page[data-v-954b1cf8] .el-button--primary:active { background: #1247DD !important;
}
.cw-page[data-v-954b1cf8] .el-button--primary.is-disabled, .cw-page[data-v-954b1cf8] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: 0.65 !important; color: rgba(255, 255, 255, 0.9) !important; border: none !important;
}
/* 危险/取消类按钮 */
.cw-page[data-v-954b1cf8] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.cw-page[data-v-954b1cf8] .el-button--danger:hover { background: #2A1F3B !important;
}
.cw-page[data-v-954b1cf8] .el-button--danger:active { background: #141A30 !important;
}
/* 次要普通按钮（含 plain/link 归并；重复类名提特异性反压 global.scss） */
.cw-page[data-v-954b1cf8] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.cw-page[data-v-954b1cf8] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #ffffff !important; border-color: #165DFF !important;
}
.cw-page[data-v-954b1cf8] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):active { background: #141A30 !important;
}
/* 本页 el-dialog 定位+宽度补全（全站未引入 el-dialog.css 的历史缺口） */
.cw-page[data-v-954b1cf8] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.cw-page[data-v-954b1cf8] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
.cw-page[data-v-954b1cf8] .cw-dh-dialog .el-dialog__body { padding: 18px 22px 22px !important;
}
.cw-page[data-v-954b1cf8] .cw-dh-dialog .el-dialog__footer { padding: 12px 22px 20px !important; border-top: none;
}
/* ── 分类标签按钮（深色胶囊，次要规范配色+三态） ── */
.cw-cat[data-v-954b1cf8] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s; line-height: 20px;
}
.cw-cat[data-v-954b1cf8]:hover { background: #1E2548; border-color: #165DFF; color: #ffffff;
}
.cw-cat[data-v-954b1cf8]:active { background: #141A30;
}
.cw-cat.active[data-v-954b1cf8] { background: #165DFF; border-color: #165DFF; color: #ffffff;
}
/* ── 形象库网格：卡片内边距/hover 高亮/选中边框/滚动预留 padding ── */
.cw-humans[data-v-954b1cf8] { gap: 10px; max-height: 230px; padding: 8px 6px;
}
.cw-human[data-v-954b1cf8] { gap: 6px; padding: 14px 8px; transition: all 0.15s;
}
.cw-human[data-v-954b1cf8]:hover { border-color: #165DFF; background: #141a30; box-shadow: 0 2px 10px rgba(22, 93, 255, 0.15); transform: translateY(-1px);
}
.cw-human.active[data-v-954b1cf8] { border-color: #165DFF; background: rgba(22, 93, 255, 0.12); box-shadow: 0 0 0 1px #165DFF;
}
/* ── 声音与背景面板：控件垂直对齐、每项 14px 间距、标签统一 ── */
.cw-form > .cw-row[data-v-954b1cf8], .cw-form > .cw-label[data-v-954b1cf8], .cw-form > .cw-input[data-v-954b1cf8], .cw-form > .cw-range[data-v-954b1cf8], .cw-form > .cw-switches[data-v-954b1cf8] { margin-bottom: 14px;
}
.cw-form > .cw-label[data-v-954b1cf8] { margin-bottom: 6px;
}
.cw-row[data-v-954b1cf8] { gap: 8px;
}
.cw-row .cw-label[data-v-954b1cf8] { margin: 0 4px 0 0; white-space: nowrap;
}
.cw-label[data-v-954b1cf8] { font-size: 12px; line-height: 20px;
}
.cw-input[data-v-954b1cf8] { border-radius: 8px; padding: 8px 12px; font-size: 13px; height: 36px;
}
.cw-switches[data-v-954b1cf8] { gap: 16px;
}
/* ── 预览底部操作栏：按钮固定间距 12px ── */
.cw-preview-ctrl[data-v-954b1cf8] { gap: 12px; margin-top: 12px;
}
.cw-right-actions[data-v-954b1cf8] { gap: 12px;
}
/* gap 容器内去重 margin-right（gap 已承担间距） */
.cw-page[data-v-954b1cf8] .cw-preview-ctrl .el-button, .cw-page[data-v-954b1cf8] .cw-right-actions .el-button, .cw-page[data-v-954b1cf8] .cw-script-actions .el-button, .cw-page[data-v-954b1cf8] .cw-drop-row .el-button { margin-right: 0 !important;
}
/* ── 文案脚本右上角按钮组：固定间距 10px ── */
.cw-script-actions[data-v-954b1cf8] { display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
}
/* ── 悬浮面板按钮（次要规范配色+三态） ── */
.cw-float-item[data-v-954b1cf8] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4;
}
.cw-float-item[data-v-954b1cf8]:hover { background: #1E2548; border-color: #165DFF; color: #ffffff;
}
.cw-float-item[data-v-954b1cf8]:active { background: #141A30;
}
/* ── shimmer 骨架屏 ── */
.cw-skel-card[data-v-954b1cf8] { pointer-events: none;
}
.cw-skel-line[data-v-954b1cf8] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: cw-shimmer-954b1cf8 1.2s infinite; margin-bottom: 8px;
}
.cw-skel-line[data-v-954b1cf8]:last-child { margin-bottom: 0;
}
.cw-skel-line.w40[data-v-954b1cf8] { width: 40%;
}
.cw-skel-line.w70[data-v-954b1cf8] { width: 70%;
}
.cw-skel-line.w90[data-v-954b1cf8] { width: 90%;
}
@keyframes cw-shimmer-954b1cf8 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
/* ── BGM 自定义下拉 + 试听按钮 ── */
.cw-bgm[data-v-954b1cf8] { position: relative;
}
/* 左卡提升层级：BGM 面板向下展开越过卡片边界时不被下方文案卡片拦截 */
.cw-left[data-v-954b1cf8] { position: relative; z-index: 10;
}
.cw-bgm-trigger[data-v-954b1cf8] { display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; cursor: pointer;
}
.cw-bgm-arrow[data-v-954b1cf8] { color: #8899b4; font-size: 11px; transition: transform 0.15s;
}
.cw-bgm-arrow.open[data-v-954b1cf8] { transform: rotate(180deg);
}
.cw-bgm-panel[data-v-954b1cf8] { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: #171D36; border: 1px solid #333B58; border-radius: 8px; padding: 6px; z-index: 60; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}
.cw-bgm-item[data-v-954b1cf8] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 6px; cursor: pointer;
}
.cw-bgm-item[data-v-954b1cf8]:hover { background: #1E2548;
}
.cw-bgm-item.selected[data-v-954b1cf8] { background: rgba(22, 93, 255, 0.12);
}
.cw-bgm-name[data-v-954b1cf8] { font-size: 13px; color: #e0e6f0;
}
.cw-bgm-play[data-v-954b1cf8] { margin-left: auto;
}
/* ── 形象卡 hover 放大预览浮窗（fixed 跟随卡片） ── */
.cw-human-pop[data-v-954b1cf8] { position: fixed; transform: translate(-50%, -100%); z-index: 9999; background: #171D36; border: 1px solid #2a3450; border-radius: 8px; padding: 14px 18px; display: flex; flex-direction: column; align-items: center; gap: 6px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55); pointer-events: none;
}
.cw-human-pop-avatar[data-v-954b1cf8] { font-size: 64px; line-height: 1;
}
.cw-human-pop-name[data-v-954b1cf8] { font-size: 14px; font-weight: 600; color: #ffffff;
}
.cw-human-pop-desc[data-v-954b1cf8] { font-size: 12px; color: #8899b4;
}
/* ── 生成成功提示：半透明深色底 #000000 40% + 13px + 圆角 6px ── */
.cw-preview-done[data-v-954b1cf8] { background: rgba(0, 0, 0, 0.4); font-size: 13px; border-radius: 6px; padding: 6px 12px; color: #00b42a; word-break: break-all;
}
@media (max-width: 1100px) {
.cw-kpis[data-v-954b1cf8] { grid-template-columns: repeat(2, 1fr);
}
.cw-main[data-v-954b1cf8] { grid-template-columns: 1fr;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-3e8ac3ab] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-3e8ac3ab] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-3e8ac3ab] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-3e8ac3ab] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-3e8ac3ab] { flex: 1; min-width: 0;
}
.hq-btn[data-v-3e8ac3ab] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-3e8ac3ab]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-3e8ac3ab] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-3e8ac3ab]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-3e8ac3ab] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-3e8ac3ab], .hq-select[data-v-3e8ac3ab] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-3e8ac3ab]:focus, .hq-select[data-v-3e8ac3ab]:focus { border-color: #0066CC;
}
.hq-tag[data-v-3e8ac3ab] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-3e8ac3ab] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-3e8ac3ab] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-3e8ac3ab {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-3e8ac3ab] { animation: hq-blink-3e8ac3ab 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-3e8ac3ab {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-3e8ac3ab] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-3e8ac3ab 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-3e8ac3ab] { color: #0066CC;
}
.hq-ev-risk[data-v-3e8ac3ab] { color: #f53f3f;
}
.hq-ev-agent[data-v-3e8ac3ab] { color: #00b42a;
}
.hq-ev-strategy[data-v-3e8ac3ab] { color: #722ed1;
}
.hq-ev-logistics[data-v-3e8ac3ab] { color: #ff7d00;
}
.cw-page[data-v-3e8ac3ab] { padding: 16px;
}
.cw-kpis[data-v-3e8ac3ab] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.cw-kpi[data-v-3e8ac3ab] { padding: 14px 16px;
}
.cw-kpi.clickable[data-v-3e8ac3ab] { cursor: pointer;
}
.cw-kpi.clickable[data-v-3e8ac3ab]:hover { border-color: #f53f3f;
}
.cw-kpi-num[data-v-3e8ac3ab] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.cw-kpi-label[data-v-3e8ac3ab] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.cw-main[data-v-3e8ac3ab] { display: grid; grid-template-columns: 380px 1fr; gap: 12px; align-items: stretch;
}
.cw-left[data-v-3e8ac3ab], .cw-right[data-v-3e8ac3ab] { display: flex; flex-direction: column; min-width: 0; min-height: 0;
}
.cw-drop[data-v-3e8ac3ab] { border: 1px dashed #2a3450; border-radius: 8px; padding: 18px 12px; text-align: center; color: #8899b4; font-size: 12px; cursor: pointer; background: #0F1423;
}
.cw-drop[data-v-3e8ac3ab]:hover { border-color: #0066CC;
}
.cw-drop-icon[data-v-3e8ac3ab] { font-size: 22px; margin-bottom: 6px;
}
.cw-drop-row[data-v-3e8ac3ab] { display: flex; gap: 8px; margin-top: 8px;
}
.cw-mat-list[data-v-3e8ac3ab] { max-height: 190px; overflow-y: auto; margin-top: 10px;
}
.cw-mat[data-v-3e8ac3ab] { display: flex; align-items: center; gap: 8px; background: #0F1423; border: 1px solid #2a3450; border-radius: 6px; padding: 8px 10px; margin-bottom: 6px;
}
.cw-mat-icon[data-v-3e8ac3ab] { font-size: 16px;
}
.cw-mat-info[data-v-3e8ac3ab] { flex: 1; min-width: 0;
}
.cw-mat-name[data-v-3e8ac3ab] { font-size: 12px; color: #e0e6f0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cw-mat-meta[data-v-3e8ac3ab] { font-size: 10px; color: #5b6b8c;
}
.cw-empty-sm[data-v-3e8ac3ab] { text-align: center; color: #5b6b8c; font-size: 12px; padding: 14px 0;
}
.cw-grid2[data-v-3e8ac3ab] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.cw-label[data-v-3e8ac3ab] { display: block; font-size: 11px; color: #8899b4; margin: 8px 0 4px;
}
.cw-input[data-v-3e8ac3ab] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.cw-input[data-v-3e8ac3ab]:focus { border-color: #0066CC;
}
.cw-btn-row[data-v-3e8ac3ab] { display: flex; gap: 8px; margin-top: 12px;
}
.cw-right-head[data-v-3e8ac3ab] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap;
}
.cw-preview[data-v-3e8ac3ab] { flex: 1; min-height: 0; display: flex; flex-direction: column; margin-top: 10px;
}
.cw-preview-stage[data-v-3e8ac3ab] { flex: 1; min-height: 260px; border: 1px dashed #2a3450; border-radius: 8px; background: #0F1423; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
}
.cw-preview-stage.done[data-v-3e8ac3ab] { border-style: solid; border-color: #00b42a;
}
.cw-preview-big[data-v-3e8ac3ab] { font-size: 64px;
}
.cw-preview-hint[data-v-3e8ac3ab] { color: #5b6b8c; font-size: 12px;
}
.cw-preview-done[data-v-3e8ac3ab] { color: #00b42a; font-size: 12px; word-break: break-all; padding: 0 16px;
}
.cw-progress[data-v-3e8ac3ab] { width: 80%; display: flex; flex-direction: column; gap: 6px;
}
.cw-eta[data-v-3e8ac3ab] { font-size: 11px; color: #8899b4; text-align: center;
}
.cw-preview-ctrl[data-v-3e8ac3ab] { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; flex-shrink: 0;
}
.cw-timeline[data-v-3e8ac3ab] { margin-top: 12px;
}
.cw-timeline-track[data-v-3e8ac3ab] { display: flex; gap: 8px; overflow-x: auto; padding: 12px 4px; min-height: 74px; align-items: stretch;
}
.cw-tl-block[data-v-3e8ac3ab] { flex: 0 0 130px; background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 8px 10px; cursor: grab; display: flex; flex-direction: column; gap: 4px;
}
.cw-tl-block[data-v-3e8ac3ab]:hover { border-color: #0066CC;
}
.cw-tl-block.active[data-v-3e8ac3ab] { border-color: #00b42a;
}
.cw-tl-block.dragging[data-v-3e8ac3ab] { opacity: 0.5;
}
.cw-tl-order[data-v-3e8ac3ab] { font-size: 10px; color: #4da3ff; font-weight: 700;
}
.cw-tl-name[data-v-3e8ac3ab] { font-size: 11px; color: #e0e6f0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cw-tl-dur[data-v-3e8ac3ab] { font-size: 10px; color: #5b6b8c;
}
.cw-float[data-v-3e8ac3ab] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.cw-float-main[data-v-3e8ac3ab] { border-radius: 999px; padding: 10px 18px; background: rgba(0, 102, 204, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.cw-float-item[data-v-3e8ac3ab] { border-radius: 999px; padding: 8px 16px; background: rgba(23, 29, 54, 0.95); color: #c0c8d8; border: 1px solid #2a3450; cursor: pointer; font-size: 12px;
}
.cw-float-item[data-v-3e8ac3ab]:hover { border-color: #0066CC; color: #4da3ff;
}
.cw-muted[data-v-3e8ac3ab] { color: #8899b4; font-size: 13px;
}
/* ════════════════════════════════════════════════════════════════
   按钮严款规范（与数字人页同一套；scoped :deep + !important 反压 global.scss）
   主 #165DFF | hover #1E6BFF | active #1247DD | disabled #0E3A8C/.65
   次 #171D36/#333B58/#C9CDD4 | hover #1E2548 | active #141A30
   危险 #F87272 红字 | hover #2A1F3B
   统一 36px / 14px / 8px / margin-right 12px
   ════════════════════════════════════════════════════════════════ */
.cw-page[data-v-3e8ac3ab] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.cw-page[data-v-3e8ac3ab] .el-button:last-child { margin-right: 0 !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--primary { background: #165DFF !important; color: #ffffff !important; border: none !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--primary:hover { background: #1E6BFF !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--primary:active { background: #1247DD !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--primary.is-disabled, .cw-page[data-v-3e8ac3ab] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: 0.65 !important; color: rgba(255, 255, 255, 0.9) !important; border: none !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--danger:hover { background: #2A1F3B !important;
}
.cw-page[data-v-3e8ac3ab] .el-button--danger:active { background: #141A30 !important;
}
.cw-page[data-v-3e8ac3ab] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.cw-page[data-v-3e8ac3ab] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #ffffff !important; border-color: #165DFF !important;
}
.cw-page[data-v-3e8ac3ab] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):active { background: #141A30 !important;
}
/* 本页 el-dialog 定位+宽度补全（全站未引入 el-dialog.css 的历史缺口） */
.cw-page[data-v-3e8ac3ab] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.cw-page[data-v-3e8ac3ab] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
/* gap 容器内去重 margin-right（gap 已承担间距） */
.cw-page[data-v-3e8ac3ab] .cw-preview-ctrl .el-button, .cw-page[data-v-3e8ac3ab] .cw-right-actions .el-button, .cw-page[data-v-3e8ac3ab] .cw-drop-row .el-button, .cw-page[data-v-3e8ac3ab] .cw-tl-actions .el-button, .cw-page[data-v-3e8ac3ab] .cw-btn-row .el-button { margin-right: 0 !important;
}
.cw-tl-actions[data-v-3e8ac3ab] { display: flex; gap: 10px; flex-wrap: wrap;
}
.cw-preview-ctrl[data-v-3e8ac3ab] { gap: 12px;
}
.cw-right-actions[data-v-3e8ac3ab] { gap: 12px;
}
.cw-drop-row[data-v-3e8ac3ab] { gap: 10px;
}
/* 悬浮面板按钮（次要规范配色+三态） */
.cw-float-item[data-v-3e8ac3ab] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4;
}
.cw-float-item[data-v-3e8ac3ab]:hover { background: #1E2548; border-color: #165DFF; color: #ffffff;
}
.cw-float-item[data-v-3e8ac3ab]:active { background: #141A30;
}
/* ── shimmer 骨架屏 ── */
.cw-skel-card[data-v-3e8ac3ab] { pointer-events: none;
}
.cw-skel-line[data-v-3e8ac3ab] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: cw-shimmer-3e8ac3ab 1.2s infinite; margin-bottom: 8px;
}
.cw-skel-line[data-v-3e8ac3ab]:last-child { margin-bottom: 0;
}
.cw-skel-line.w40[data-v-3e8ac3ab] { width: 40%;
}
.cw-skel-line.w70[data-v-3e8ac3ab] { width: 70%;
}
@keyframes cw-shimmer-3e8ac3ab {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.cw-kpis[data-v-3e8ac3ab] { grid-template-columns: repeat(2, 1fr);
}
.cw-main[data-v-3e8ac3ab] { grid-template-columns: 1fr;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-4d2420a7] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-4d2420a7] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-4d2420a7] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-4d2420a7] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-4d2420a7] { flex: 1; min-width: 0;
}
.hq-btn[data-v-4d2420a7] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-4d2420a7]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-4d2420a7] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-4d2420a7]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-4d2420a7] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-4d2420a7], .hq-select[data-v-4d2420a7] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-4d2420a7]:focus, .hq-select[data-v-4d2420a7]:focus { border-color: #0066CC;
}
.hq-tag[data-v-4d2420a7] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-4d2420a7] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-4d2420a7] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-4d2420a7 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-4d2420a7] { animation: hq-blink-4d2420a7 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-4d2420a7 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-4d2420a7] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-4d2420a7 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-4d2420a7] { color: #0066CC;
}
.hq-ev-risk[data-v-4d2420a7] { color: #f53f3f;
}
.hq-ev-agent[data-v-4d2420a7] { color: #00b42a;
}
.hq-ev-strategy[data-v-4d2420a7] { color: #722ed1;
}
.hq-ev-logistics[data-v-4d2420a7] { color: #ff7d00;
}
.cw-page[data-v-4d2420a7] { padding: 16px;
}
.cw-kpis[data-v-4d2420a7] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.cw-kpi[data-v-4d2420a7] { padding: 14px 16px;
}
.cw-kpi.clickable[data-v-4d2420a7] { cursor: pointer;
}
.cw-kpi.clickable[data-v-4d2420a7]:hover { border-color: #f53f3f;
}
.cw-kpi-num[data-v-4d2420a7] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.cw-kpi-label[data-v-4d2420a7] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.cw-main[data-v-4d2420a7] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch;
}
.cw-left[data-v-4d2420a7], .cw-right[data-v-4d2420a7] { display: flex; flex-direction: column; min-width: 0; min-height: 0;
}
.cw-parse-row[data-v-4d2420a7] { display: flex; gap: 8px;
}
.cw-input[data-v-4d2420a7] { flex: 1; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.cw-input[data-v-4d2420a7]:focus { border-color: #0066CC;
}
.cw-textarea[data-v-4d2420a7] { resize: vertical; font-family: inherit; width: 100%;
}
.cw-parse-body[data-v-4d2420a7] { flex: 1; min-height: 0; overflow-y: auto; margin-top: 10px;
}
.cw-sec[data-v-4d2420a7] { margin-bottom: 12px;
}
.cw-sec-title[data-v-4d2420a7] { font-size: 12px; font-weight: 600; color: #4da3ff; margin-bottom: 6px;
}
.cw-meta-grid[data-v-4d2420a7] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 12px;
}
.cw-meta-k[data-v-4d2420a7] { font-size: 11px; color: #5b6b8c; margin-right: 6px;
}
.cw-meta-v[data-v-4d2420a7] { font-size: 12px; color: #e0e6f0;
}
.cw-meta-v.hot[data-v-4d2420a7] { color: #f53f3f; font-weight: 700;
}
.cw-bk[data-v-4d2420a7] { font-size: 12px; color: #c0c8d8; line-height: 1.6; margin-bottom: 3px;
}
.cw-bk b[data-v-4d2420a7] { color: #8899b4; font-weight: 600;
}
.cw-muted-sm[data-v-4d2420a7] { font-size: 11px; color: #8899b4; margin-bottom: 6px;
}
.cw-chart[data-v-4d2420a7] { height: 220px; max-height: 280px;
}
.cw-hooks[data-v-4d2420a7] { display: flex; flex-wrap: wrap; gap: 6px;
}
.cw-hook[data-v-4d2420a7] { font-size: 11px; color: #00b42a; border: 1px solid rgba(0, 180, 42, 0.4); border-radius: 999px; padding: 2px 10px;
}
.cw-btn-row[data-v-4d2420a7] { display: flex; gap: 8px;
}
.cw-empty[data-v-4d2420a7] { text-align: center; color: #5b6b8c; padding: 50px 0; font-size: 13px;
}
.cw-right-head[data-v-4d2420a7] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap;
}
.cw-remake-form[data-v-4d2420a7] { flex-shrink: 0; margin: 10px 0;
}
.cw-label[data-v-4d2420a7] { display: block; font-size: 11px; color: #8899b4; margin: 8px 0 4px;
}
.cw-grid2[data-v-4d2420a7] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px; margin-bottom: 8px;
}
.cw-preview-body[data-v-4d2420a7] { flex: 1; min-height: 0; overflow-y: auto;
}
/* 分段条目：内部 padding 14px，条目间垂直 gap 12px（全站规范）；头部 gap 8px 保证「改编度」标签与周边文本水平间距 */
.rw-card[data-v-4d2420a7] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 14px; margin-bottom: 0;
}
.cw-preview-body[data-v-4d2420a7] { gap: 12px;
}
.rw-head[data-v-4d2420a7] { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; position: relative;
}
.shot-idx[data-v-4d2420a7] { background: #0066CC; color: #fff; border-radius: 50%; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.shot-time[data-v-4d2420a7] { color: #4da3ff; font-size: 11px;
}
.rw-rate[data-v-4d2420a7] { font-size: 11px; font-weight: 700; margin-left: auto;
}
.rw-rate-bar[data-v-4d2420a7] { position: absolute; bottom: -4px; left: 0; height: 2px; border-radius: 1px; opacity: 0.6;
}
.rw-orig[data-v-4d2420a7] { font-size: 11px; color: #8899b4; margin-bottom: 3px;
}
.rw-new[data-v-4d2420a7] { font-size: 12px; color: #e0e6f0; line-height: 1.6;
}
.cw-history[data-v-4d2420a7] { margin-top: 12px;
}
.cw-hist-head[data-v-4d2420a7] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.cw-arrow[data-v-4d2420a7] { color: #8899b4; font-size: 11px;
}
.cw-float[data-v-4d2420a7] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.cw-float-main[data-v-4d2420a7] { border-radius: 999px; padding: 10px 18px; background: rgba(0, 102, 204, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.cw-float-item[data-v-4d2420a7] { border-radius: 999px; padding: 8px 16px; background: rgba(23, 29, 54, 0.95); color: #c0c8d8; border: 1px solid #2a3450; cursor: pointer; font-size: 12px;
}
.cw-float-item[data-v-4d2420a7]:hover { border-color: #0066CC; color: #4da3ff;
}
.cw-muted[data-v-4d2420a7] { color: #8899b4; font-size: 13px;
}
/* ════════════════════════════════════════════════════════════════
   仿写方案预览卡片布局（hq-card 统一封装：内边距 20px，内部 gap 12px）
   ════════════════════════════════════════════════════════════════ */
.cw-right[data-v-4d2420a7] { padding: 20px;
}
.cw-right-head[data-v-4d2420a7] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
/* 右上角操作按钮组：flex-wrap 内部换行，绝不向下挤压表单区域 */
.cw-right-actions[data-v-4d2420a7] { display: flex !important; flex-wrap: wrap; gap: 12px; margin-left: auto;
}
/* 表单区：垂直栅格布局，每组控件固定 12px 间距 */
.cw-remake-form[data-v-4d2420a7] { flex-shrink: 0; margin: 12px 0; display: flex; flex-direction: column; gap: 12px;
}
.cw-remake-row[data-v-4d2420a7] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.cw-remake-row .cw-label[data-v-4d2420a7] { margin: 0; min-width: 64px; flex-shrink: 0;
}
.cw-remake-row .cw-input[data-v-4d2420a7] { flex: 1; min-width: 180px; width: auto;
}
.cw-remake-submit[data-v-4d2420a7] { justify-content: center;
}
/* 「生成仿写方案」按钮水平居中；上下 12px 间距由表单 gap:12px 承担 */
/* 占位提示：独立节点，卡片底部居中，弱透明度，不与表单重叠 */
.cw-preview-body[data-v-4d2420a7] { display: flex; flex-direction: column;
}
.cw-preview-body .cw-empty[data-v-4d2420a7] { margin-top: auto; padding: 30px 0 8px;
}
/* ════════════════════════════════════════════════════════════════
   按钮严款规范（与其他三个页面同一套；scoped :deep + !important）
   ════════════════════════════════════════════════════════════════ */
.cw-page[data-v-4d2420a7] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.cw-page[data-v-4d2420a7] .el-button:last-child { margin-right: 0 !important;
}
.cw-page[data-v-4d2420a7] .el-button--primary { background: #165DFF !important; color: #ffffff !important; border: none !important;
}
.cw-page[data-v-4d2420a7] .el-button--primary:hover { background: #1E6BFF !important;
}
.cw-page[data-v-4d2420a7] .el-button--primary:active { background: #1247DD !important;
}
.cw-page[data-v-4d2420a7] .el-button--primary.is-disabled, .cw-page[data-v-4d2420a7] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: 0.65 !important; color: rgba(255, 255, 255, 0.9) !important; border: none !important;
}
.cw-page[data-v-4d2420a7] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.cw-page[data-v-4d2420a7] .el-button--danger:hover { background: #2A1F3B !important;
}
.cw-page[data-v-4d2420a7] .el-button--danger:active { background: #141A30 !important;
}
.cw-page[data-v-4d2420a7] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.cw-page[data-v-4d2420a7] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #ffffff !important; border-color: #165DFF !important;
}
.cw-page[data-v-4d2420a7] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):active { background: #141A30 !important;
}
/* gap 容器内去重 margin-right */
.cw-page[data-v-4d2420a7] .cw-parse-row .el-button, .cw-page[data-v-4d2420a7] .cw-btn-row .el-button, .cw-page[data-v-4d2420a7] .cw-right-actions .el-button, .cw-page[data-v-4d2420a7] .cw-remake-submit .el-button { margin-right: 0 !important;
}
/* 仿写模式单选按钮组（深色；无 el-radio.css 全局样式时的补全） */
.cw-page[data-v-4d2420a7] .el-radio-button__inner { background: #171D36 !important; border-color: #333B58 !important; color: #C9CDD4 !important; box-shadow: none !important; border-radius: 8px;
}
.cw-page[data-v-4d2420a7] .el-radio-button.is-active .el-radio-button__inner { background: #165DFF !important; border-color: #165DFF !important; color: #ffffff !important;
}
.cw-page[data-v-4d2420a7] .el-radio-button { margin-right: 8px;
}
.cw-page[data-v-4d2420a7] .el-radio-button:last-child { margin-right: 0;
}
/* 本页 el-dialog 定位+宽度补全（全站未引入 el-dialog.css 的历史缺口） */
.cw-page[data-v-4d2420a7] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.cw-page[data-v-4d2420a7] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
/* 历史分页布局补全（全站未引入 el-pagination.css） */
.cw-page[data-v-4d2420a7] .cw-pagination { display: flex; align-items: center; justify-content: center; margin-top: 12px;
}
.cw-page[data-v-4d2420a7] .cw-pagination .el-pagination__total { margin-right: 14px; font-size: 12px; color: #8899b4;
}
.cw-page[data-v-4d2420a7] .cw-pagination .el-pager { display: inline-flex; align-items: center; gap: 4px; margin: 0 10px; padding: 0; list-style: none;
}
.cw-page[data-v-4d2420a7] .cw-pagination .el-pager li { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; font-size: 12px; box-sizing: border-box;
}
.cw-page[data-v-4d2420a7] .cw-pagination button { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; box-sizing: border-box;
}
/* 悬浮面板按钮（次要规范配色+三态） */
.cw-float-item[data-v-4d2420a7] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4;
}
.cw-float-item[data-v-4d2420a7]:hover { background: #1E2548; border-color: #165DFF; color: #ffffff;
}
.cw-float-item[data-v-4d2420a7]:active { background: #141A30;
}
/* ── shimmer 骨架屏 ── */
.cw-skel-card[data-v-4d2420a7] { pointer-events: none;
}
.cw-skel-line[data-v-4d2420a7] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: cw-shimmer-4d2420a7 1.2s infinite; margin-bottom: 8px;
}
.cw-skel-line[data-v-4d2420a7]:last-child { margin-bottom: 0;
}
.cw-skel-line.w40[data-v-4d2420a7] { width: 40%;
}
.cw-skel-line.w70[data-v-4d2420a7] { width: 70%;
}
@keyframes cw-shimmer-4d2420a7 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.cw-kpis[data-v-4d2420a7] { grid-template-columns: repeat(2, 1fr);
}
.cw-main[data-v-4d2420a7] { grid-template-columns: 1fr;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-71963bba] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-71963bba] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-71963bba] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-71963bba] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-71963bba] { flex: 1; min-width: 0;
}
.hq-btn[data-v-71963bba] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-71963bba]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-71963bba] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-71963bba]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-71963bba] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-71963bba], .hq-select[data-v-71963bba] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-71963bba]:focus, .hq-select[data-v-71963bba]:focus { border-color: #0066CC;
}
.hq-tag[data-v-71963bba] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-71963bba] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-71963bba] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-71963bba {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-71963bba] { animation: hq-blink-71963bba 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-71963bba {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-71963bba] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-71963bba 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-71963bba] { color: #0066CC;
}
.hq-ev-risk[data-v-71963bba] { color: #f53f3f;
}
.hq-ev-agent[data-v-71963bba] { color: #00b42a;
}
.hq-ev-strategy[data-v-71963bba] { color: #722ed1;
}
.hq-ev-logistics[data-v-71963bba] { color: #ff7d00;
}
.gwc-page[data-v-71963bba] { padding: 16px;
}
.gwc-kpis[data-v-71963bba] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.gwc-kpi[data-v-71963bba] { padding: 14px 16px;
}
.gwc-kpi.clickable[data-v-71963bba] { cursor: pointer;
}
.gwc-kpi-num[data-v-71963bba] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.gwc-kpi-label[data-v-71963bba] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.gwc-main[data-v-71963bba] { display: grid; grid-template-columns: 360px 1fr; gap: 12px; align-items: stretch;
}
.gwc-left[data-v-71963bba], .gwc-right[data-v-71963bba] { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 20px;
}
.gwc-form[data-v-71963bba] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.gwc-drop[data-v-71963bba] { border: 1px dashed #2a3450; border-radius: 8px; padding: 14px; text-align: center; color: #8899b4; font-size: 12px; cursor: pointer; background: #0F1423;
}
.gwc-uploaded[data-v-71963bba] { margin-top: 6px; font-size: 11px; color: #00b42a;
}
.gwc-label[data-v-71963bba] { display: block; font-size: 12px; color: #8899b4; margin: 10px 0 4px;
}
.gwc-label.sm[data-v-71963bba] { margin-top: 0;
}
.gwc-input[data-v-71963bba] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; outline: none; height: 36px;
}
.gwc-styles[data-v-71963bba] { display: flex; flex-wrap: wrap; gap: 8px;
}
.gwc-style[data-v-71963bba] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 5px 12px; font-size: 12px; cursor: pointer;
}
.gwc-style.on[data-v-71963bba] { background: #165DFF; border-color: #165DFF; color: #fff;
}
.gwc-grid2[data-v-71963bba] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.gwc-btn-row[data-v-71963bba] { display: flex; gap: 8px; margin-top: 14px;
}
.gwc-right-head[data-v-71963bba] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.gwc-head-actions[data-v-71963bba] { display: flex; gap: 12px; flex-wrap: wrap;
}
.gwc-preview[data-v-71963bba] { flex: 1; min-height: 0; overflow-y: auto; margin-top: 10px;
}
.gwc-progress[data-v-71963bba] { padding: 40px 0; display: flex; flex-direction: column; gap: 10px; align-items: center;
}
.gwc-eta[data-v-71963bba] { font-size: 12px; color: #8899b4;
}
.gwc-img-grid[data-v-71963bba] { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;
}
.gwc-img-item[data-v-71963bba] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; overflow: hidden;
}
.gwc-img[data-v-71963bba] { width: 100%; display: block; cursor: zoom-in;
}
.gwc-img-bar[data-v-71963bba] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 10px;
}
.gwc-img-tag[data-v-71963bba] { font-size: 11px; color: #4da3ff; border: 1px solid rgba(22,93,255,.4); border-radius: 999px; padding: 1px 8px;
}
.gwc-img-ops[data-v-71963bba] { display: flex; gap: 2px;
}
.gwc-empty[data-v-71963bba] { text-align: center; color: #5b6b8c; padding: 60px 0; font-size: 13px;
}
.gwc-right-foot[data-v-71963bba] { flex-shrink: 0; display: flex; gap: 12px; margin-top: 10px; flex-wrap: wrap;
}
.gwc-history[data-v-71963bba] { margin-top: 12px; padding: 20px;
}
.gwc-hist-head[data-v-71963bba] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.gwc-hist-ops[data-v-71963bba] { display: flex; gap: 6px; align-items: center;
}
.gwc-arrow[data-v-71963bba] { color: #8899b4; font-size: 11px;
}
.gwc-float-r[data-v-71963bba] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.gwc-float-main[data-v-71963bba] { border-radius: 999px; padding: 10px 18px; background: rgba(22, 93, 255, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px;
}
.gwc-float-item[data-v-71963bba] { border-radius: 999px; padding: 8px 16px; background: #171D36; border: 1px solid #333B58; color: #C9CDD4; cursor: pointer; font-size: 12px;
}
.gwc-float-item[data-v-71963bba]:hover { border-color: #165DFF; color: #fff; background: #1E2548;
}
/* AI 建议面板：右下角悬浮（距底 64px 距右 24px，最大宽 340px），浅黄色提示背景，可折叠收起 */
.gwc-ai-panel[data-v-71963bba] { position: fixed; right: 24px; bottom: 64px; width: 100%; max-width: 340px; background: rgba(247, 186, 30, 0.12); border: 1px solid rgba(247, 186, 30, 0.45); border-radius: 10px; padding: 10px 14px; z-index: 99; backdrop-filter: blur(4px);
}
.gwc-ai-panel.collapsed[data-v-71963bba] { max-width: 200px;
}
.gwc-ai-head[data-v-71963bba] { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 600; color: #f7ba1e; margin-bottom: 6px; flex-wrap: wrap;
}
.gwc-ai-head[data-v-71963bba]:has(.collapsed), .gwc-ai-panel.collapsed .gwc-ai-head[data-v-71963bba] { margin-bottom: 0;
}
.gwc-ai-body[data-v-71963bba] { font-size: 12px; line-height: 1.7; color: #e8d9a0;
}
.gwc-ai-toggle[data-v-71963bba] { background: transparent; border: 1px solid rgba(247, 186, 30, 0.45); color: #f7ba1e; border-radius: 6px; width: 24px; height: 24px; font-size: 10px; cursor: pointer; flex-shrink: 0;
}
.gwc-ai-toggle[data-v-71963bba]:hover { background: rgba(247, 186, 30, 0.2);
}
/* 表格操作列小尺寸按钮（豁免统一 36px 规范） */
.gwc-page[data-v-71963bba] .gwc-op-btn.el-button { height: 26px !important; padding: 0 10px !important; font-size: 12px !important; margin-right: 0 !important;
}
/* 按钮严款（与其他页面同套） */
.gwc-page[data-v-71963bba] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.gwc-page[data-v-71963bba] .el-button:last-child { margin-right: 0 !important;
}
.gwc-page[data-v-71963bba] .el-button--primary { background: #165DFF !important; color: #fff !important; border: none !important;
}
.gwc-page[data-v-71963bba] .el-button--primary:hover { background: #1E6BFF !important;
}
.gwc-page[data-v-71963bba] .el-button--primary:active { background: #1247DD !important;
}
.gwc-page[data-v-71963bba] .el-button--primary.is-disabled, .gwc-page[data-v-71963bba] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: .65 !important; color: rgba(255,255,255,.9) !important;
}
.gwc-page[data-v-71963bba] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.gwc-page[data-v-71963bba] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #fff !important; border-color: #165DFF !important;
}
.gwc-page[data-v-71963bba] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.gwc-page[data-v-71963bba] .el-button--danger:hover { background: #2A1F3B !important;
}
.gwc-page[data-v-71963bba] .gwc-btn-row .el-button, .gwc-page[data-v-71963bba] .gwc-head-actions .el-button, .gwc-page[data-v-71963bba] .gwc-right-foot .el-button { margin-right: 0 !important;
}
/* dialog 定位补全 */
.gwc-page[data-v-71963bba] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.gwc-page[data-v-71963bba] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
/* 骨架 */
.gwc-skel[data-v-71963bba] { pointer-events: none;
}
.gwc-sk[data-v-71963bba] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: gwc-shimmer-71963bba 1.2s infinite; margin-bottom: 8px;
}
.gwc-sk.w40[data-v-71963bba] { width: 40%;
}
.gwc-sk.w70[data-v-71963bba] { width: 70%;
}
@keyframes gwc-shimmer-71963bba {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
.gwc-compare[data-v-71963bba] { display: flex; gap: 16px;
}
.gwc-cmp-title[data-v-71963bba] { font-size: 12px; color: #8899b4; margin-bottom: 6px;
}
.gwc-cmp-box[data-v-71963bba] { width: 200px; height: 200px; border: 1px dashed #2a3450; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #5b6b8c; font-size: 12px; text-align: center;
}
@media (max-width: 1100px) {
.gwc-kpis[data-v-71963bba] { grid-template-columns: repeat(2, 1fr);
}
.gwc-main[data-v-71963bba] { grid-template-columns: 1fr;
}
.gwc-ai-panel[data-v-71963bba] { max-width: 300px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-12792fe6] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-12792fe6] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-12792fe6] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-12792fe6] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-12792fe6] { flex: 1; min-width: 0;
}
.hq-btn[data-v-12792fe6] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-12792fe6]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-12792fe6] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-12792fe6]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-12792fe6] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-12792fe6], .hq-select[data-v-12792fe6] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-12792fe6]:focus, .hq-select[data-v-12792fe6]:focus { border-color: #0066CC;
}
.hq-tag[data-v-12792fe6] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-12792fe6] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-12792fe6] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-12792fe6 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-12792fe6] { animation: hq-blink-12792fe6 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-12792fe6 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-12792fe6] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-12792fe6 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-12792fe6] { color: #0066CC;
}
.hq-ev-risk[data-v-12792fe6] { color: #f53f3f;
}
.hq-ev-agent[data-v-12792fe6] { color: #00b42a;
}
.hq-ev-strategy[data-v-12792fe6] { color: #722ed1;
}
.hq-ev-logistics[data-v-12792fe6] { color: #ff7d00;
}
.gwc-page[data-v-12792fe6] { padding: 16px;
}
.gwc-kpis[data-v-12792fe6] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.gwc-kpi[data-v-12792fe6] { padding: 14px 16px;
}
.gwc-kpi.clickable[data-v-12792fe6] { cursor: pointer;
}
.gwc-kpi-num[data-v-12792fe6] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.gwc-kpi-label[data-v-12792fe6] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.gwc-main[data-v-12792fe6] { display: grid; grid-template-columns: 380px 1fr; gap: 12px; align-items: stretch;
}
.gwc-left[data-v-12792fe6], .gwc-right[data-v-12792fe6] { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 20px;
}
.gwc-form[data-v-12792fe6] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.gwc-label[data-v-12792fe6] { display: block; font-size: 12px; color: #8899b4; margin: 10px 0 4px;
}
.gwc-label.sm[data-v-12792fe6] { margin-top: 0;
}
.gwc-input[data-v-12792fe6] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; outline: none; height: 36px;
}
.gwc-textarea[data-v-12792fe6] { height: auto; resize: vertical; font-family: inherit; line-height: 1.7;
}
.gwc-mini-row[data-v-12792fe6] { display: flex; gap: 10px; margin-top: 8px; flex-wrap: wrap;
}
.gwc-langs[data-v-12792fe6] { display: flex; flex-wrap: wrap; gap: 6px;
}
.gwc-lang[data-v-12792fe6] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 4px 10px; font-size: 11px; cursor: pointer;
}
.gwc-lang.on[data-v-12792fe6] { background: #165DFF; border-color: #165DFF; color: #fff;
}
.gwc-grid2[data-v-12792fe6] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.gwc-btn-row[data-v-12792fe6] { display: flex; gap: 8px; margin-top: 14px;
}
.gwc-right-head[data-v-12792fe6] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.gwc-head-actions[data-v-12792fe6] { display: flex; gap: 12px; flex-wrap: wrap;
}
.gwc-preview[data-v-12792fe6] { flex: 1; min-height: 0; overflow-y: auto; margin-top: 10px;
}
.gwc-src[data-v-12792fe6] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 12px 14px; margin-bottom: 12px;
}
.gwc-src-title[data-v-12792fe6] { font-size: 11px; color: #8899b4; margin-bottom: 4px;
}
.gwc-src-text[data-v-12792fe6] { font-size: 13px; color: #e0e6f0; line-height: 1.7;
}
.gwc-trans-card[data-v-12792fe6] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 12px 14px; margin-bottom: 10px;
}
.gwc-trans-head[data-v-12792fe6] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px;
}
.gwc-flag[data-v-12792fe6] { font-size: 16px;
}
.gwc-lang-name[data-v-12792fe6] { font-size: 13px; color: #fff;
}
.gwc-stars[data-v-12792fe6] { font-size: 11px; color: #f7ba1e;
}
.gwc-trans-ops[data-v-12792fe6] { margin-left: auto; display: flex; gap: 2px;
}
.gwc-trans-text[data-v-12792fe6] { font-size: 13px; color: #c0c8d8; line-height: 1.7;
}
.gwc-empty[data-v-12792fe6] { text-align: center; color: #5b6b8c; padding: 60px 0; font-size: 13px;
}
.gwc-history[data-v-12792fe6] { margin-top: 12px; padding: 20px;
}
.gwc-hist-head[data-v-12792fe6] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.gwc-hist-ops[data-v-12792fe6] { display: flex; gap: 6px; align-items: center;
}
.gwc-arrow[data-v-12792fe6] { color: #8899b4; font-size: 11px;
}
.gwc-float-r[data-v-12792fe6] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.gwc-float-main[data-v-12792fe6] { border-radius: 999px; padding: 10px 18px; background: rgba(22, 93, 255, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px;
}
.gwc-float-item[data-v-12792fe6] { border-radius: 999px; padding: 8px 16px; background: #171D36; border: 1px solid #333B58; color: #C9CDD4; cursor: pointer; font-size: 12px;
}
.gwc-float-item[data-v-12792fe6]:hover { border-color: #165DFF; color: #fff; background: #1E2548;
}
.gwc-ai-panel[data-v-12792fe6] { position: fixed; right: 24px; bottom: 64px; width: 100%; max-width: 340px; background: rgba(247, 186, 30, 0.12); border: 1px solid rgba(247, 186, 30, 0.45); border-radius: 10px; padding: 10px 14px; z-index: 99; backdrop-filter: blur(4px);
}
.gwc-ai-panel.collapsed[data-v-12792fe6] { max-width: 200px;
}
.gwc-ai-head[data-v-12792fe6] { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 600; color: #f7ba1e; margin-bottom: 6px; flex-wrap: wrap;
}
.gwc-ai-panel.collapsed .gwc-ai-head[data-v-12792fe6] { margin-bottom: 0;
}
.gwc-ai-body[data-v-12792fe6] { font-size: 12px; line-height: 1.7; color: #e8d9a0;
}
.gwc-ai-toggle[data-v-12792fe6] { background: transparent; border: 1px solid rgba(247, 186, 30, 0.45); color: #f7ba1e; border-radius: 6px; width: 24px; height: 24px; font-size: 10px; cursor: pointer; flex-shrink: 0;
}
.gwc-ai-toggle[data-v-12792fe6]:hover { background: rgba(247, 186, 30, 0.2);
}
.gwc-page[data-v-12792fe6] .gwc-op-btn.el-button { height: 26px !important; padding: 0 10px !important; font-size: 12px !important; margin-right: 0 !important;
}
.gwc-page[data-v-12792fe6] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.gwc-page[data-v-12792fe6] .el-button:last-child { margin-right: 0 !important;
}
.gwc-page[data-v-12792fe6] .el-button--primary { background: #165DFF !important; color: #fff !important; border: none !important;
}
.gwc-page[data-v-12792fe6] .el-button--primary:hover { background: #1E6BFF !important;
}
.gwc-page[data-v-12792fe6] .el-button--primary:active { background: #1247DD !important;
}
.gwc-page[data-v-12792fe6] .el-button--primary.is-disabled, .gwc-page[data-v-12792fe6] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: .65 !important; color: rgba(255,255,255,.9) !important;
}
.gwc-page[data-v-12792fe6] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.gwc-page[data-v-12792fe6] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #fff !important; border-color: #165DFF !important;
}
.gwc-page[data-v-12792fe6] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.gwc-page[data-v-12792fe6] .el-button--danger:hover { background: #2A1F3B !important;
}
.gwc-page[data-v-12792fe6] .gwc-btn-row .el-button, .gwc-page[data-v-12792fe6] .gwc-head-actions .el-button, .gwc-page[data-v-12792fe6] .gwc-mini-row .el-button { margin-right: 0 !important;
}
.gwc-page[data-v-12792fe6] .el-radio-button__inner { background: #171D36 !important; border-color: #333B58 !important; color: #C9CDD4 !important; border-radius: 8px;
}
.gwc-page[data-v-12792fe6] .el-radio-button.is-active .el-radio-button__inner { background: #165DFF !important; border-color: #165DFF !important; color: #fff !important;
}
.gwc-page[data-v-12792fe6] .el-radio-button { margin-right: 8px;
}
.gwc-page[data-v-12792fe6] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.gwc-page[data-v-12792fe6] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
.gwc-skel[data-v-12792fe6] { pointer-events: none;
}
.gwc-sk[data-v-12792fe6] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: gwc-shimmer-12792fe6 1.2s infinite; margin-bottom: 8px;
}
.gwc-sk.w40[data-v-12792fe6] { width: 40%;
}
.gwc-sk.w70[data-v-12792fe6] { width: 70%;
}
@keyframes gwc-shimmer-12792fe6 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.gwc-kpis[data-v-12792fe6] { grid-template-columns: repeat(2, 1fr);
}
.gwc-main[data-v-12792fe6] { grid-template-columns: 1fr;
}
.gwc-ai-panel[data-v-12792fe6] { max-width: 300px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-0b6b3ac9] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-0b6b3ac9] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-0b6b3ac9] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-0b6b3ac9] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-0b6b3ac9] { flex: 1; min-width: 0;
}
.hq-btn[data-v-0b6b3ac9] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-0b6b3ac9]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-0b6b3ac9] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-0b6b3ac9]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-0b6b3ac9] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-0b6b3ac9], .hq-select[data-v-0b6b3ac9] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-0b6b3ac9]:focus, .hq-select[data-v-0b6b3ac9]:focus { border-color: #0066CC;
}
.hq-tag[data-v-0b6b3ac9] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-0b6b3ac9] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-0b6b3ac9] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-0b6b3ac9 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-0b6b3ac9] { animation: hq-blink-0b6b3ac9 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-0b6b3ac9 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-0b6b3ac9] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-0b6b3ac9 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-0b6b3ac9] { color: #0066CC;
}
.hq-ev-risk[data-v-0b6b3ac9] { color: #f53f3f;
}
.hq-ev-agent[data-v-0b6b3ac9] { color: #00b42a;
}
.hq-ev-strategy[data-v-0b6b3ac9] { color: #722ed1;
}
.hq-ev-logistics[data-v-0b6b3ac9] { color: #ff7d00;
}
.gwc-page[data-v-0b6b3ac9] { padding: 16px;
}
.gwc-kpis[data-v-0b6b3ac9] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.gwc-kpi[data-v-0b6b3ac9] { padding: 14px 16px;
}
.gwc-kpi.clickable[data-v-0b6b3ac9] { cursor: pointer;
}
.gwc-kpi-num[data-v-0b6b3ac9] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.gwc-kpi-label[data-v-0b6b3ac9] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.gwc-main[data-v-0b6b3ac9] { display: grid; grid-template-columns: 380px 1fr; gap: 12px; align-items: stretch;
}
.gwc-left[data-v-0b6b3ac9], .gwc-right[data-v-0b6b3ac9] { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 20px;
}
.gwc-form[data-v-0b6b3ac9] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.gwc-label[data-v-0b6b3ac9] { display: block; font-size: 12px; color: #8899b4; margin: 10px 0 4px;
}
.gwc-label.sm[data-v-0b6b3ac9] { margin-top: 0;
}
.gwc-input[data-v-0b6b3ac9] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; outline: none; height: 36px;
}
.gwc-tpl-grid[data-v-0b6b3ac9] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
.gwc-tpl[data-v-0b6b3ac9] { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 6px; background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; cursor: pointer; font-size: 11px; color: #8899b4;
}
.gwc-tpl[data-v-0b6b3ac9]:hover { border-color: #165DFF;
}
.gwc-tpl.on[data-v-0b6b3ac9] { border-color: #165DFF; box-shadow: 0 0 0 1px #165DFF; background: rgba(22, 93, 255, 0.12); color: #fff;
}
.gwc-tpl-dot[data-v-0b6b3ac9] { width: 22px; height: 22px; border-radius: 6px;
}
.gwc-mini-row[data-v-0b6b3ac9] { display: flex; gap: 10px; margin-top: 8px; flex-wrap: wrap;
}
.gwc-grid2[data-v-0b6b3ac9] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.gwc-btn-row[data-v-0b6b3ac9] { display: flex; gap: 8px; margin-top: 14px;
}
.gwc-right-head[data-v-0b6b3ac9] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.gwc-head-actions[data-v-0b6b3ac9] { display: flex; gap: 12px; flex-wrap: wrap;
}
.gwc-preview[data-v-0b6b3ac9] { flex: 1; min-height: 0; overflow-y: auto; margin-top: 10px;
}
.gwc-poster-preview[data-v-0b6b3ac9] { display: flex; flex-direction: column; align-items: center;
}
.gwc-poster-img[data-v-0b6b3ac9] { border-radius: 8px; border: 1px solid #2a3450; max-height: 420px;
}
.gwc-progress[data-v-0b6b3ac9] { width: 70%; padding: 40px 0; display: flex; flex-direction: column; gap: 10px;
}
.gwc-eta[data-v-0b6b3ac9] { font-size: 12px; color: #8899b4; text-align: center;
}
.gwc-empty[data-v-0b6b3ac9] { text-align: center; color: #5b6b8c; padding: 60px 0; font-size: 13px;
}
.gwc-ratio-row[data-v-0b6b3ac9] { flex-shrink: 0; display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap;
}
.gwc-ratio[data-v-0b6b3ac9] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 4px 14px; font-size: 12px; cursor: pointer;
}
.gwc-ratio.on[data-v-0b6b3ac9] { background: #165DFF; border-color: #165DFF; color: #fff;
}
.gwc-right-foot[data-v-0b6b3ac9] { flex-shrink: 0; display: flex; gap: 12px; margin-top: 10px; flex-wrap: wrap;
}
.gwc-history[data-v-0b6b3ac9] { margin-top: 12px; padding: 20px;
}
.gwc-hist-head[data-v-0b6b3ac9] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.gwc-hist-ops[data-v-0b6b3ac9] { display: flex; gap: 6px; align-items: center;
}
.gwc-arrow[data-v-0b6b3ac9] { color: #8899b4; font-size: 11px;
}
.gwc-float-r[data-v-0b6b3ac9] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 100;
}
.gwc-float-main[data-v-0b6b3ac9] { border-radius: 999px; padding: 10px 18px; background: rgba(22, 93, 255, 0.9); color: #fff; border: none; cursor: pointer; font-size: 13px;
}
.gwc-float-item[data-v-0b6b3ac9] { border-radius: 999px; padding: 8px 16px; background: #171D36; border: 1px solid #333B58; color: #C9CDD4; cursor: pointer; font-size: 12px;
}
.gwc-float-item[data-v-0b6b3ac9]:hover { border-color: #165DFF; color: #fff; background: #1E2548;
}
.gwc-ai-panel[data-v-0b6b3ac9] { position: fixed; right: 24px; bottom: 64px; width: 100%; max-width: 340px; background: rgba(247, 186, 30, 0.12); border: 1px solid rgba(247, 186, 30, 0.45); border-radius: 10px; padding: 10px 14px; z-index: 99; backdrop-filter: blur(4px);
}
.gwc-ai-panel.collapsed[data-v-0b6b3ac9] { max-width: 200px;
}
.gwc-ai-head[data-v-0b6b3ac9] { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 600; color: #f7ba1e; margin-bottom: 6px; flex-wrap: wrap;
}
.gwc-ai-panel.collapsed .gwc-ai-head[data-v-0b6b3ac9] { margin-bottom: 0;
}
.gwc-ai-body[data-v-0b6b3ac9] { font-size: 12px; line-height: 1.7; color: #e8d9a0;
}
.gwc-ai-toggle[data-v-0b6b3ac9] { background: transparent; border: 1px solid rgba(247, 186, 30, 0.45); color: #f7ba1e; border-radius: 6px; width: 24px; height: 24px; font-size: 10px; cursor: pointer; flex-shrink: 0;
}
.gwc-ai-toggle[data-v-0b6b3ac9]:hover { background: rgba(247, 186, 30, 0.2);
}
.gwc-page[data-v-0b6b3ac9] .gwc-op-btn.el-button { height: 26px !important; padding: 0 10px !important; font-size: 12px !important; margin-right: 0 !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button:last-child { margin-right: 0 !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button--primary { background: #165DFF !important; color: #fff !important; border: none !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button--primary:hover { background: #1E6BFF !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button--primary:active { background: #1247DD !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button--primary.is-disabled, .gwc-page[data-v-0b6b3ac9] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: .65 !important; color: rgba(255,255,255,.9) !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #fff !important; border-color: #165DFF !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.gwc-page[data-v-0b6b3ac9] .el-button--danger:hover { background: #2A1F3B !important;
}
.gwc-page[data-v-0b6b3ac9] .gwc-btn-row .el-button, .gwc-page[data-v-0b6b3ac9] .gwc-head-actions .el-button, .gwc-page[data-v-0b6b3ac9] .gwc-right-foot .el-button, .gwc-page[data-v-0b6b3ac9] .gwc-mini-row .el-button { margin-right: 0 !important;
}
.gwc-page[data-v-0b6b3ac9] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.gwc-page[data-v-0b6b3ac9] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
.gwc-skel[data-v-0b6b3ac9] { pointer-events: none;
}
.gwc-sk[data-v-0b6b3ac9] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: gwc-shimmer-0b6b3ac9 1.2s infinite; margin-bottom: 8px;
}
.gwc-sk.w40[data-v-0b6b3ac9] { width: 40%;
}
.gwc-sk.w70[data-v-0b6b3ac9] { width: 70%;
}
@keyframes gwc-shimmer-0b6b3ac9 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.gwc-kpis[data-v-0b6b3ac9] { grid-template-columns: repeat(2, 1fr);
}
.gwc-main[data-v-0b6b3ac9] { grid-template-columns: 1fr;
}
.gwc-ai-panel[data-v-0b6b3ac9] { max-width: 300px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-a9013d03] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-a9013d03] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-a9013d03] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-a9013d03] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-a9013d03] { flex: 1; min-width: 0;
}
.hq-btn[data-v-a9013d03] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-a9013d03]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-a9013d03] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-a9013d03]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-a9013d03] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-a9013d03], .hq-select[data-v-a9013d03] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-a9013d03]:focus, .hq-select[data-v-a9013d03]:focus { border-color: #0066CC;
}
.hq-tag[data-v-a9013d03] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-a9013d03] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-a9013d03] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-a9013d03 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-a9013d03] { animation: hq-blink-a9013d03 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-a9013d03 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-a9013d03] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-a9013d03 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-a9013d03] { color: #0066CC;
}
.hq-ev-risk[data-v-a9013d03] { color: #f53f3f;
}
.hq-ev-agent[data-v-a9013d03] { color: #00b42a;
}
.hq-ev-strategy[data-v-a9013d03] { color: #722ed1;
}
.hq-ev-logistics[data-v-a9013d03] { color: #ff7d00;
}
.lsc-page[data-v-a9013d03] { padding: 16px;
}
.lsc-kpis[data-v-a9013d03] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.lsc-kpi[data-v-a9013d03] { padding: 14px 16px;
}
.lsc-kpi.clickable[data-v-a9013d03] { cursor: pointer;
}
.lsc-kpi-num[data-v-a9013d03] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.lsc-kpi-label[data-v-a9013d03] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.lsc-main[data-v-a9013d03] { display: grid; grid-template-columns: 400px 1fr; gap: 12px; align-items: stretch;
}
.lsc-left[data-v-a9013d03], .lsc-right[data-v-a9013d03] { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 20px;
}
.lsc-form[data-v-a9013d03] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.lsc-group-title[data-v-a9013d03] { font-size: 12px; font-weight: 700; color: #4da3ff; margin: 14px 0 8px; padding-top: 10px; border-top: 1px solid #2a3450;
}
.lsc-group-title[data-v-a9013d03]:first-child { border-top: none; padding-top: 0; margin-top: 0;
}
.lsc-label[data-v-a9013d03] { display: block; font-size: 12px; color: #8899b4; margin: 10px 0 4px;
}
.lsc-label.sm[data-v-a9013d03] { margin-top: 0;
}
.lsc-input[data-v-a9013d03] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; outline: none; height: 36px;
}
.lsc-textarea[data-v-a9013d03] { height: auto; resize: vertical; font-family: inherit; line-height: 1.7;
}
.lsc-select[data-v-a9013d03] { width: 100%;
}
.lsc-select[data-v-a9013d03] .el-select__wrapper { background: #0F1423; border-radius: 8px; box-shadow: 0 0 0 1px #2a3450 inset;
}
.lsc-grid2[data-v-a9013d03] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.lsc-mods[data-v-a9013d03] { display: flex; flex-wrap: wrap; gap: 8px;
}
.lsc-mod[data-v-a9013d03] { display: flex; align-items: center; gap: 6px; background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 5px 12px; font-size: 12px; cursor: pointer;
}
.lsc-mod.on[data-v-a9013d03] { border-color: #165DFF; color: #4da3ff;
}
.lsc-mod input[data-v-a9013d03] { accent-color: #165DFF;
}
.lsc-btn-row[data-v-a9013d03] { display: flex; gap: 8px; margin-top: 16px;
}
.lsc-right-head[data-v-a9013d03] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.lsc-head-actions[data-v-a9013d03] { display: flex; gap: 12px; flex-wrap: wrap;
}
.lsc-nav[data-v-a9013d03] { flex-shrink: 0; display: flex; gap: 6px; margin: 10px 0; flex-wrap: wrap;
}
.lsc-nav-item[data-v-a9013d03] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 4px 14px; font-size: 12px; cursor: pointer;
}
.lsc-nav-item.on[data-v-a9013d03] { background: #165DFF; border-color: #165DFF; color: #fff;
}
.lsc-preview[data-v-a9013d03] { flex: 1; min-height: 0; overflow-y: auto;
}
.lsc-progress[data-v-a9013d03] { padding: 40px 0; display: flex; flex-direction: column; gap: 10px; align-items: center;
}
.lsc-eta[data-v-a9013d03] { font-size: 12px; color: #8899b4;
}
.lsc-empty[data-v-a9013d03] { text-align: center; color: #5b6b8c; padding: 60px 0; font-size: 13px;
}
.lsc-seg[data-v-a9013d03] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 14px; margin-bottom: 12px; scroll-margin-top: 8px;
}
.lsc-seg.bd-blue[data-v-a9013d03] { border-left: 3px solid #165DFF;
}
.lsc-seg.bd-green[data-v-a9013d03] { border-left: 3px solid #00b42a;
}
.lsc-seg.bd-orange[data-v-a9013d03] { border-left: 3px solid #ff7d00;
}
.lsc-seg-head[data-v-a9013d03] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px;
}
.lsc-seg-name[data-v-a9013d03] { font-size: 14px; font-weight: 700; color: #fff;
}
.lsc-seg-time[data-v-a9013d03] { font-size: 11px; color: #4da3ff;
}
.lsc-seg-ops[data-v-a9013d03] { margin-left: auto; display: flex; gap: 4px;
}
.lsc-seg-body[data-v-a9013d03] { display: flex; flex-direction: column; gap: 8px;
}
.lsc-seg-line[data-v-a9013d03] { font-size: 12px; color: #c0c8d8; line-height: 1.7;
}
.lsc-seg-line b[data-v-a9013d03] { display: inline-block; min-width: 64px; color: #8899b4; font-weight: 600;
}
.lsc-line[data-v-a9013d03] { padding-left: 64px; margin-bottom: 2px;
}
.lsc-history[data-v-a9013d03] { margin-top: 12px; padding: 20px;
}
.lsc-hist-head[data-v-a9013d03] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.lsc-hist-ops[data-v-a9013d03] { display: flex; gap: 6px; align-items: center;
}
.lsc-arrow[data-v-a9013d03] { color: #8899b4; font-size: 11px;
}
.lsc-float-r[data-v-a9013d03] { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; z-index: 100;
}
.lsc-float-btns[data-v-a9013d03] { display: flex; gap: 8px;
}
.lsc-float-btn[data-v-a9013d03] { width: 44px; height: 44px; border-radius: 50%; background: rgba(22, 93, 255, 0.9); color: #fff; border: none; cursor: pointer; font-size: 18px;
}
.lsc-float-btn.on[data-v-a9013d03] { background: #165DFF; box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.lsc-drawer[data-v-a9013d03] { position: absolute; right: 0; bottom: 56px; width: 320px; background: #171D36; border: 1px solid #2a3450; border-radius: 10px; padding: 12px 14px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.lsc-ai-drawer[data-v-a9013d03] { background: rgba(247, 186, 30, 0.12); border-color: rgba(247, 186, 30, 0.45);
}
.lsc-drawer-head[data-v-a9013d03] { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 600; color: #f7ba1e; margin-bottom: 8px; flex-wrap: wrap;
}
.lsc-tpl-drawer .lsc-drawer-head[data-v-a9013d03] { color: #4da3ff;
}
.lsc-drawer-ops[data-v-a9013d03] { display: flex; gap: 2px; align-items: center;
}
.lsc-drawer-toggle[data-v-a9013d03] { background: transparent; border: 1px solid rgba(247, 186, 30, 0.45); color: #f7ba1e; border-radius: 6px; width: 24px; height: 24px; font-size: 10px; cursor: pointer;
}
.lsc-tpl-drawer .lsc-drawer-toggle[data-v-a9013d03] { border-color: #2a3450; color: #8899b4;
}
.lsc-ai-body[data-v-a9013d03] { font-size: 12px; line-height: 1.7; color: #e8d9a0;
}
.lsc-tpl-grid[data-v-a9013d03] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.lsc-tpl[data-v-a9013d03] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 8px 10px; font-size: 12px; color: #c0c8d8; cursor: pointer; text-align: center;
}
.lsc-tpl[data-v-a9013d03]:hover { border-color: #165DFF; color: #4da3ff;
}
.lsc-drawer-foot[data-v-a9013d03] { display: flex; gap: 10px; margin-top: 10px;
}
/* 按钮严款 */
.lsc-page[data-v-a9013d03] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.lsc-page[data-v-a9013d03] .el-button:last-child { margin-right: 0 !important;
}
.lsc-page[data-v-a9013d03] .el-button--primary { background: #165DFF !important; color: #fff !important; border: none !important;
}
.lsc-page[data-v-a9013d03] .el-button--primary:hover { background: #1E6BFF !important;
}
.lsc-page[data-v-a9013d03] .el-button--primary:active { background: #1247DD !important;
}
.lsc-page[data-v-a9013d03] .el-button--primary.is-disabled, .lsc-page[data-v-a9013d03] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: .65 !important; color: rgba(255,255,255,.9) !important;
}
.lsc-page[data-v-a9013d03] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.lsc-page[data-v-a9013d03] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #fff !important; border-color: #165DFF !important;
}
.lsc-page[data-v-a9013d03] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.lsc-page[data-v-a9013d03] .el-button--danger:hover { background: #2A1F3B !important;
}
.lsc-page[data-v-a9013d03] .lsc-btn-row .el-button, .lsc-page[data-v-a9013d03] .lsc-head-actions .el-button { margin-right: 0 !important;
}
.lsc-page[data-v-a9013d03] .lsc-op-btn.el-button { height: 26px !important; padding: 0 10px !important; font-size: 12px !important; margin-right: 0 !important;
}
/* dialog 定位 + 分页布局 */
.lsc-page[data-v-a9013d03] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.lsc-page[data-v-a9013d03] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
.lsc-pagination[data-v-a9013d03] { display: flex; align-items: center; justify-content: center; margin-top: 12px;
}
.lsc-page[data-v-a9013d03] .lsc-pagination .el-pager { display: inline-flex; align-items: center; gap: 4px; margin: 0 10px; padding: 0; list-style: none;
}
.lsc-page[data-v-a9013d03] .lsc-pagination .el-pager li { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; font-size: 12px; box-sizing: border-box;
}
.lsc-page[data-v-a9013d03] .lsc-pagination button { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; box-sizing: border-box;
}
/* 骨架 */
.lsc-skel[data-v-a9013d03] { pointer-events: none;
}
.lsc-sk[data-v-a9013d03] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: lsc-shimmer-a9013d03 1.2s infinite; margin-bottom: 8px;
}
.lsc-sk.w40[data-v-a9013d03] { width: 40%;
}
.lsc-sk.w70[data-v-a9013d03] { width: 70%;
}
@keyframes lsc-shimmer-a9013d03 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.lsc-kpis[data-v-a9013d03] { grid-template-columns: repeat(2, 1fr);
}
.lsc-main[data-v-a9013d03] { grid-template-columns: 1fr;
}
.lsc-drawer[data-v-a9013d03] { width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-e7ddd544] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-e7ddd544] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-e7ddd544] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-e7ddd544] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-e7ddd544] { flex: 1; min-width: 0;
}
.hq-btn[data-v-e7ddd544] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-e7ddd544]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-e7ddd544] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-e7ddd544]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-e7ddd544] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-e7ddd544], .hq-select[data-v-e7ddd544] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-e7ddd544]:focus, .hq-select[data-v-e7ddd544]:focus { border-color: #0066CC;
}
.hq-tag[data-v-e7ddd544] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-e7ddd544] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-e7ddd544] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-e7ddd544 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-e7ddd544] { animation: hq-blink-e7ddd544 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-e7ddd544 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-e7ddd544] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-e7ddd544 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-e7ddd544] { color: #0066CC;
}
.hq-ev-risk[data-v-e7ddd544] { color: #f53f3f;
}
.hq-ev-agent[data-v-e7ddd544] { color: #00b42a;
}
.hq-ev-strategy[data-v-e7ddd544] { color: #722ed1;
}
.hq-ev-logistics[data-v-e7ddd544] { color: #ff7d00;
}
.lcc-page[data-v-e7ddd544] { padding: 16px 16px 84px;
}
.lcc-kpis[data-v-e7ddd544] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px;
}
.lcc-kpi[data-v-e7ddd544] { padding: 14px 16px;
}
.lcc-kpi.clickable[data-v-e7ddd544] { cursor: pointer;
}
.lcc-kpi-num[data-v-e7ddd544] { font-size: 22px; font-weight: 700; color: #e8ecf5;
}
.lcc-kpi-label[data-v-e7ddd544] { font-size: 12px; color: #8899b4; margin-top: 4px;
}
.lcc-main[data-v-e7ddd544] { display: grid; grid-template-columns: 400px 1fr; gap: 12px; align-items: stretch;
}
.lcc-left[data-v-e7ddd544], .lcc-right[data-v-e7ddd544] { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 20px;
}
.lcc-form[data-v-e7ddd544] { flex: 1; min-height: 0; overflow-y: auto; padding-right: 2px;
}
.lcc-group-title[data-v-e7ddd544] { font-size: 12px; font-weight: 700; color: #4da3ff; margin: 14px 0 8px; padding-top: 10px; border-top: 1px solid #2a3450;
}
.lcc-group-title[data-v-e7ddd544]:first-child { border-top: none; padding-top: 0; margin-top: 0;
}
.lcc-label[data-v-e7ddd544] { display: block; font-size: 12px; color: #8899b4; margin: 10px 0 4px;
}
.lcc-label.sm[data-v-e7ddd544] { margin-top: 0;
}
.lcc-input[data-v-e7ddd544] { width: 100%; box-sizing: border-box; background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; outline: none; height: 36px;
}
.lcc-input[data-v-e7ddd544]:focus { border-color: #165DFF;
}
/* 上传区 */
.lcc-upload[data-v-e7ddd544] { border: 2px dashed #2a3450; border-radius: 10px; padding: 18px 12px; display: flex; flex-direction: column; align-items: center; gap: 4px; cursor: pointer; transition: all .2s;
}
.lcc-upload[data-v-e7ddd544]:hover { border-color: #165DFF; background: rgba(22, 93, 255, .05);
}
.lcc-upload-icon[data-v-e7ddd544] { font-size: 26px;
}
.lcc-upload-text[data-v-e7ddd544] { font-size: 13px; color: #c0c8d8;
}
.lcc-upload-sub[data-v-e7ddd544] { font-size: 11px; color: #5b6b8c;
}
.lcc-video-chip[data-v-e7ddd544] { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 7px 12px; background: #0F1423; border: 1px solid #00b42a55; border-radius: 8px;
}
.lcc-video-chip-name[data-v-e7ddd544] { font-size: 12px; color: #36d399; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.lcc-video-chip-x[data-v-e7ddd544] { background: transparent; border: none; color: #F87272; cursor: pointer; font-size: 13px;
}
/* 分段按钮 */
.lcc-seg-btns[data-v-e7ddd544] { display: flex; flex-wrap: wrap; gap: 6px;
}
.lcc-seg-btn[data-v-e7ddd544] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 6px; padding: 5px 10px; font-size: 12px; cursor: pointer; transition: all .15s;
}
.lcc-seg-btn[data-v-e7ddd544]:hover { border-color: #165DFF; color: #4da3ff;
}
.lcc-seg-btn.on[data-v-e7ddd544] { background: #165DFF; border-color: #165DFF; color: #fff;
}
.lcc-custom-row[data-v-e7ddd544] { display: flex; align-items: center; gap: 8px; margin-top: 6px;
}
.lcc-custom-input[data-v-e7ddd544] { width: 90px !important; height: 32px !important;
}
.lcc-custom-unit[data-v-e7ddd544] { font-size: 12px; color: #8899b4;
}
.lcc-type-grid[data-v-e7ddd544] { display: grid; grid-template-columns: 1fr 1fr; gap: 6px;
}
.lcc-type-btn[data-v-e7ddd544] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 6px; padding: 7px 6px; font-size: 12px; cursor: pointer; transition: all .15s;
}
.lcc-type-btn[data-v-e7ddd544]:hover { border-color: #165DFF; color: #4da3ff;
}
.lcc-type-btn.on[data-v-e7ddd544] { border-color: #165DFF; color: #4da3ff; background: rgba(22, 93, 255, .12);
}
/* 智能优化开关 */
.lcc-switches[data-v-e7ddd544] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px;
}
.lcc-switch-item[data-v-e7ddd544] { display: flex; align-items: center; gap: 8px;
}
.lcc-switch-label[data-v-e7ddd544] { font-size: 12px; color: #c0c8d8;
}
.lcc-anti[data-v-e7ddd544] { margin-top: 10px;
}
.lcc-grid2[data-v-e7ddd544] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10px;
}
.lcc-threshold[data-v-e7ddd544] { display: flex; align-items: center; gap: 8px; height: 36px;
}
.lcc-threshold-val[data-v-e7ddd544] { font-size: 12px; color: #4da3ff; min-width: 22px; text-align: right;
}
.lcc-btn-row[data-v-e7ddd544] { display: flex; gap: 8px; margin-top: 16px;
}
/* 右侧 */
.lcc-right-head[data-v-e7ddd544] { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
}
.lcc-ai-badge[data-v-e7ddd544] { font-size: 11px; color: #4da3ff; border: 1px solid #165DFF66; background: rgba(22, 93, 255, .1); border-radius: 999px; padding: 2px 10px; animation: lcc-pulse-e7ddd544 1.2s infinite;
}
@keyframes lcc-pulse-e7ddd544 {
0%, 100% { opacity: 1;
}
50% { opacity: .5;
}
}
.lcc-cur-title[data-v-e7ddd544] { color: #4da3ff; font-weight: 400;
}
.lcc-nav[data-v-e7ddd544] { flex-shrink: 0; display: flex; gap: 6px; margin: 10px 0; flex-wrap: wrap;
}
.lcc-nav-item[data-v-e7ddd544] { background: #171D36; border: 1px solid #333B58; color: #C9CDD4; border-radius: 999px; padding: 4px 14px; font-size: 12px; cursor: pointer;
}
.lcc-nav-item.on[data-v-e7ddd544] { background: #165DFF; border-color: #165DFF; color: #fff;
}
.lcc-nav-count[data-v-e7ddd544] { display: inline-block; margin-left: 5px; font-size: 10px; background: rgba(255,255,255,.16); border-radius: 999px; padding: 0 6px; line-height: 15px;
}
.lcc-preview[data-v-e7ddd544] { flex: 1; min-height: 0; overflow-y: auto;
}
.lcc-progress[data-v-e7ddd544] { padding: 40px 20px; display: flex; flex-direction: column; gap: 14px; align-items: center;
}
.lcc-progress-bar[data-v-e7ddd544] { width: min(520px, 100%); display: flex; align-items: center; gap: 12px;
}
.lcc-progress-bar .el-progress[data-v-e7ddd544] { flex: 1;
}
.lcc-eta[data-v-e7ddd544] { font-size: 13px; color: #4da3ff; min-width: 40px; text-align: right;
}
.lcc-ai-steps[data-v-e7ddd544] { display: flex; flex-direction: column; gap: 6px; width: min(520px, 100%);
}
.lcc-step[data-v-e7ddd544] { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #5b6b8c;
}
.lcc-step-dot[data-v-e7ddd544] { width: 18px; height: 18px; border-radius: 50%; background: #171D36; border: 1px solid #333B58; display: inline-flex; align-items: center; justify-content: center; font-size: 10px;
}
.lcc-step.on[data-v-e7ddd544] { color: #4da3ff;
}
.lcc-step.on .lcc-step-dot[data-v-e7ddd544] { border-color: #165DFF; color: #fff; background: rgba(22,93,255,.25);
}
.lcc-step.done[data-v-e7ddd544] { color: #36d399;
}
.lcc-step.done .lcc-step-dot[data-v-e7ddd544] { border-color: #00b42a; color: #36d399;
}
.lcc-ai-hint[data-v-e7ddd544] { font-size: 12px; color: #5b6b8c; margin-top: 6px;
}
/* 切片卡片 */
.lcc-clip-grid[data-v-e7ddd544] { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px;
}
.lcc-clip[data-v-e7ddd544] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; overflow: hidden; transition: border-color .15s;
}
.lcc-clip[data-v-e7ddd544]:hover { border-color: #165DFF;
}
.lcc-clip.q-highlight[data-v-e7ddd544] { border-left: 3px solid #00b42a;
}
.lcc-clip.q-normal[data-v-e7ddd544] { border-left: 3px solid #8899b4;
}
.lcc-clip.q-low[data-v-e7ddd544] { border-left: 3px solid #ff7d00;
}
.lcc-clip-thumb[data-v-e7ddd544] { height: 96px; position: relative; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center;
}
.lcc-clip-emoji[data-v-e7ddd544] { font-size: 26px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.5));
}
.lcc-clip-dur[data-v-e7ddd544] { position: absolute; right: 8px; bottom: 6px; background: rgba(0,0,0,.65); color: #fff; font-size: 10px; border-radius: 4px; padding: 1px 6px;
}
.lcc-clip-flag[data-v-e7ddd544] { position: absolute; left: 8px; top: 6px; font-size: 10px; border-radius: 4px; padding: 1px 6px;
}
.lcc-clip-flag.adopted[data-v-e7ddd544] { background: rgba(0, 180, 42, .85); color: #fff;
}
.lcc-clip-flag.lib[data-v-e7ddd544] { background: rgba(22, 93, 255, .85); color: #fff;
}
.lcc-clip-body[data-v-e7ddd544] { padding: 10px;
}
.lcc-clip-name[data-v-e7ddd544] { font-size: 13px; font-weight: 600; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.lcc-clip-meta[data-v-e7ddd544] { display: flex; align-items: center; gap: 8px; margin-top: 4px;
}
.lcc-clip-time[data-v-e7ddd544] { font-size: 11px; color: #4da3ff;
}
.lcc-clip-score[data-v-e7ddd544] { font-size: 11px; font-weight: 700;
}
.lcc-clip-score.sc-highlight[data-v-e7ddd544] { color: #36d399;
}
.lcc-clip-score.sc-normal[data-v-e7ddd544] { color: #8899b4;
}
.lcc-clip-score.sc-low[data-v-e7ddd544] { color: #ff9547;
}
.lcc-clip-tags[data-v-e7ddd544] { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px;
}
.lcc-clip-ops[data-v-e7ddd544] { display: flex; gap: 2px; margin-top: 6px; padding-top: 6px; border-top: 1px solid #1d2440;
}
.lcc-batch-bar[data-v-e7ddd544] { flex-shrink: 0; display: flex; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #2a3450; flex-wrap: wrap;
}
.lcc-empty[data-v-e7ddd544] { text-align: center; color: #5b6b8c; padding: 60px 0; font-size: 13px;
}
.lcc-empty.sm[data-v-e7ddd544] { padding: 24px 0;
}
/* ④ 历史 */
.lcc-history[data-v-e7ddd544] { margin-top: 12px; padding: 20px;
}
.lcc-hist-head[data-v-e7ddd544] { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.lcc-hist-ops[data-v-e7ddd544] { display: flex; gap: 6px; align-items: center;
}
.lcc-arrow[data-v-e7ddd544] { color: #8899b4; font-size: 11px;
}
.lcc-hist-table[data-v-e7ddd544] { cursor: pointer;
}
/* ⑤⑥ 悬浮面板：右下模板库 / 左下 AI 建议 */
.lcc-float-r[data-v-e7ddd544] { position: fixed; right: 16px; bottom: 16px; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; z-index: 90;
}
/* 左侧悬浮需避开 fixed 264px 侧边栏（264+16=280） */
.lcc-float-l[data-v-e7ddd544] { position: fixed; left: 280px; bottom: 16px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; z-index: 90;
}
.lcc-float-btn[data-v-e7ddd544] { width: 44px; height: 44px; border-radius: 50%; background: rgba(22, 93, 255, 0.9); color: #fff; border: none; cursor: pointer; font-size: 18px; transition: all .15s;
}
.lcc-float-btn[data-v-e7ddd544]:hover { background: #1E6BFF;
}
.lcc-float-btn.on[data-v-e7ddd544] { background: #165DFF; box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.lcc-float-btn.ai[data-v-e7ddd544] { background: rgba(247, 186, 30, 0.9);
}
.lcc-float-btn.ai[data-v-e7ddd544]:hover { background: #f7ba1e;
}
.lcc-float-btn.ai.on[data-v-e7ddd544] { background: #f7ba1e; box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.lcc-drawer[data-v-e7ddd544] { position: absolute; bottom: 56px; width: 320px; background: #171D36; border: 1px solid #2a3450; border-radius: 10px; padding: 12px 14px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.lcc-float-r .lcc-drawer[data-v-e7ddd544] { right: 0;
}
.lcc-float-l .lcc-drawer[data-v-e7ddd544] { left: 0;
}
.lcc-ai-drawer[data-v-e7ddd544] { background: rgba(247, 186, 30, 0.12); border-color: rgba(247, 186, 30, 0.45);
}
.lcc-drawer-head[data-v-e7ddd544] { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 12px; font-weight: 600; color: #f7ba1e; margin-bottom: 8px; flex-wrap: wrap;
}
.lcc-tpl-drawer .lcc-drawer-head[data-v-e7ddd544] { color: #4da3ff;
}
.lcc-drawer-ops[data-v-e7ddd544] { display: flex; gap: 2px; align-items: center;
}
.lcc-drawer-toggle[data-v-e7ddd544] { background: transparent; border: 1px solid rgba(247, 186, 30, 0.45); color: #f7ba1e; border-radius: 6px; width: 24px; height: 24px; font-size: 10px; cursor: pointer;
}
.lcc-tpl-drawer .lcc-drawer-toggle[data-v-e7ddd544] { border-color: #2a3450; color: #8899b4;
}
.lcc-ai-body[data-v-e7ddd544] { font-size: 12px; line-height: 1.7; color: #e8d9a0; max-height: 240px; overflow-y: auto;
}
.lcc-ai-loading[data-v-e7ddd544], .lcc-ai-empty[data-v-e7ddd544] { color: #c8b87a;
}
.lcc-tpl-list[data-v-e7ddd544] { display: flex; flex-direction: column; gap: 6px;
}
.lcc-tpl[data-v-e7ddd544] { background: #0F1423; border: 1px solid #2a3450; border-radius: 8px; padding: 7px 10px; cursor: pointer; transition: all .15s;
}
.lcc-tpl[data-v-e7ddd544]:hover { border-color: #165DFF;
}
.lcc-tpl-name[data-v-e7ddd544] { font-size: 12px; font-weight: 600; color: #e0e6f0;
}
.lcc-tpl-desc[data-v-e7ddd544] { font-size: 10px; color: #8899b4; margin-top: 2px;
}
.lcc-drawer-foot[data-v-e7ddd544] { display: flex; gap: 10px; margin-top: 10px;
}
/* mock 播放器 */
.lcc-player-screen[data-v-e7ddd544] { height: 280px; border-radius: 8px; position: relative; background-size: cover; background-position: center; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
}
.lcc-player-play[data-v-e7ddd544] { width: 56px; height: 56px; border-radius: 50%; background: rgba(22, 93, 255, 0.85); border: 2px solid #fff3; color: #fff; font-size: 20px; cursor: pointer;
}
.lcc-player-play[data-v-e7ddd544]:hover { background: #1E6BFF;
}
.lcc-player-info[data-v-e7ddd544] { font-size: 12px; color: #fff; background: rgba(0,0,0,.5); padding: 3px 12px; border-radius: 999px;
}
.lcc-player-progress[data-v-e7ddd544] { height: 4px; background: #2a3450; border-radius: 2px; margin-top: 10px; overflow: hidden;
}
.lcc-player-bar[data-v-e7ddd544] { height: 100%; background: #165DFF; border-radius: 2px; transition: width .12s linear;
}
.lcc-player-note[data-v-e7ddd544] { font-size: 11px; color: #5b6b8c; margin-top: 8px; text-align: center;
}
/* 按钮严款 */
.lcc-page[data-v-e7ddd544] .el-button { height: 36px !important; padding: 0 16px !important; font-size: 14px !important; border-radius: 8px !important; margin-right: 12px !important; box-sizing: border-box !important;
}
.lcc-page[data-v-e7ddd544] .el-button:last-child { margin-right: 0 !important;
}
.lcc-page[data-v-e7ddd544] .el-button--primary { background: #165DFF !important; color: #fff !important; border: none !important;
}
.lcc-page[data-v-e7ddd544] .el-button--primary:hover { background: #1E6BFF !important;
}
.lcc-page[data-v-e7ddd544] .el-button--primary:active { background: #1247DD !important;
}
.lcc-page[data-v-e7ddd544] .el-button--primary.is-disabled, .lcc-page[data-v-e7ddd544] .el-button--primary.is-loading { background: #0E3A8C !important; opacity: .65 !important; color: rgba(255,255,255,.9) !important;
}
.lcc-page[data-v-e7ddd544] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) { background: #171D36 !important; color: #C9CDD4 !important; border: 1px solid #333B58 !important;
}
.lcc-page[data-v-e7ddd544] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover { background: #1E2548 !important; color: #fff !important; border-color: #165DFF !important;
}
.lcc-page[data-v-e7ddd544] .el-button--danger { background: #171D36 !important; color: #F87272 !important; border: 1px solid #333B58 !important;
}
.lcc-page[data-v-e7ddd544] .el-button--danger:hover { background: #2A1F3B !important;
}
.lcc-page[data-v-e7ddd544] .lcc-btn-row .el-button, .lcc-page[data-v-e7ddd544] .lcc-batch-bar .el-button { margin-right: 0 !important;
}
.lcc-page[data-v-e7ddd544] .lcc-op-btn.el-button { height: 26px !important; padding: 0 10px !important; font-size: 12px !important; margin-right: 0 !important;
}
/* switch 主色 */
.lcc-page[data-v-e7ddd544] .el-switch.is-checked .el-switch__core { background: #165DFF; border-color: #165DFF;
}
.lcc-page[data-v-e7ddd544] .el-switch__core { background: #333B58; border-color: #333B58;
}
/* slider 主色 */
.lcc-page[data-v-e7ddd544] .el-slider__bar { background: #165DFF;
}
.lcc-page[data-v-e7ddd544] .el-slider__button { border-color: #165DFF;
}
.lcc-page[data-v-e7ddd544] .el-slider__runway { background: #333B58;
}
/* dialog 定位 + 分页布局 */
.lcc-page[data-v-e7ddd544] .el-overlay-dialog { position: fixed; inset: 0; display: flex; justify-content: center; align-items: flex-start; overflow: auto;
}
.lcc-page[data-v-e7ddd544] .el-dialog { position: relative; width: var(--el-dialog-width, 50%); margin: 15vh auto 50px; box-sizing: border-box; max-width: calc(100% - 32px);
}
.lcc-pagination[data-v-e7ddd544] { display: flex; align-items: center; justify-content: center; margin-top: 12px;
}
.lcc-page[data-v-e7ddd544] .lcc-pagination .el-pager { display: inline-flex; align-items: center; gap: 4px; margin: 0 10px; padding: 0; list-style: none;
}
.lcc-page[data-v-e7ddd544] .lcc-pagination .el-pager li { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; font-size: 12px; box-sizing: border-box;
}
.lcc-page[data-v-e7ddd544] .lcc-pagination button { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; margin: 0 2px; border-radius: 4px; cursor: pointer; box-sizing: border-box;
}
/* 骨架 */
.lcc-skel[data-v-e7ddd544] { pointer-events: none;
}
.lcc-sk[data-v-e7ddd544] { height: 12px; border-radius: 4px; background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%); background-size: 200% 100%; animation: lcc-shimmer-e7ddd544 1.2s infinite; margin-bottom: 8px;
}
.lcc-sk.w40[data-v-e7ddd544] { width: 40%;
}
.lcc-sk.w70[data-v-e7ddd544] { width: 70%;
}
@keyframes lcc-shimmer-e7ddd544 {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.lcc-kpis[data-v-e7ddd544] { grid-template-columns: repeat(2, 1fr);
}
.lcc-main[data-v-e7ddd544] { grid-template-columns: 1fr;
}
.lcc-drawer[data-v-e7ddd544] { width: 280px;
}
}

/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-a6045bb5] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-a6045bb5] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-a6045bb5] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-a6045bb5] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-a6045bb5] { flex: 1; min-width: 0;
}
.hq-btn[data-v-a6045bb5] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-a6045bb5]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-a6045bb5] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-a6045bb5]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-a6045bb5] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-a6045bb5], .hq-select[data-v-a6045bb5] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-a6045bb5]:focus, .hq-select[data-v-a6045bb5]:focus { border-color: #0066CC;
}
.hq-tag[data-v-a6045bb5] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-a6045bb5] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-a6045bb5] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-a6045bb5 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-a6045bb5] { animation: hq-blink-a6045bb5 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-a6045bb5 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-a6045bb5] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-a6045bb5 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-a6045bb5] { color: #0066CC;
}
.hq-ev-risk[data-v-a6045bb5] { color: #f53f3f;
}
.hq-ev-agent[data-v-a6045bb5] { color: #00b42a;
}
.hq-ev-strategy[data-v-a6045bb5] { color: #722ed1;
}
.hq-ev-logistics[data-v-a6045bb5] { color: #ff7d00;
}
.cpp-page[data-v-a6045bb5] {
  padding: 16px;
}
.cpp-kpis[data-v-a6045bb5] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.cpp-kpi[data-v-a6045bb5] {
  padding: 14px 16px;
}
.cpp-kpi.clickable[data-v-a6045bb5] {
  cursor: pointer;
  transition: border-color 0.15s;
}
.cpp-kpi.clickable[data-v-a6045bb5]:hover {
  border-color: #f53f3f;
}
.cpp-kpi-num[data-v-a6045bb5] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.cpp-kpi-label[data-v-a6045bb5] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.cpp-main[data-v-a6045bb5] {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 12px;
  align-items: stretch;
}
.cpp-left[data-v-a6045bb5], .cpp-right[data-v-a6045bb5] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.cpp-form[data-v-a6045bb5] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.cpp-group-title[data-v-a6045bb5] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin: 14px 0 8px;
  padding-top: 10px;
  border-top: 1px solid #2a3450;
}
.cpp-group-title[data-v-a6045bb5]:first-child {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
.cpp-label[data-v-a6045bb5] {
  display: block;
  font-size: 12px;
  color: #8899b4;
  margin: 10px 0 4px;
}
.cpp-label.sm[data-v-a6045bb5] {
  margin-top: 0;
}
.cpp-input[data-v-a6045bb5] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.cpp-input[data-v-a6045bb5]:focus {
  border-color: #165DFF;
}
.cpp-input option[data-v-a6045bb5] {
  background: #171D36;
  color: #e0e6f0;
}
.cpp-textarea[data-v-a6045bb5] {
  height: auto;
  resize: vertical;
  font-family: inherit;
  line-height: 1.7;
}
.cpp-scenes[data-v-a6045bb5] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.cpp-scene[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
}
.cpp-scene[data-v-a6045bb5]:hover {
  border-color: #165DFF;
}
.cpp-scene.on[data-v-a6045bb5] {
  border-color: #165DFF;
  color: #4da3ff;
  background: rgba(22, 93, 255, 0.1);
}
.cpp-scene input[data-v-a6045bb5] {
  accent-color: #165DFF;
}
.cpp-dot[data-v-a6045bb5] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.cpp-seg-btns[data-v-a6045bb5] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.cpp-seg-btn[data-v-a6045bb5] {
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
}
.cpp-seg-btn[data-v-a6045bb5]:hover {
  border-color: #165DFF;
}
.cpp-seg-btn.on[data-v-a6045bb5] {
  background: #165DFF;
  border-color: #165DFF;
  color: #fff;
}
.cpp-grid2[data-v-a6045bb5] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 10px;
}
.cpp-switch-item[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cpp-switch-label[data-v-a6045bb5] {
  font-size: 12px;
  color: #c0c8d8;
}
.cpp-emoji-row[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
.cpp-emoji-row .cpp-switch-label[data-v-a6045bb5] {
  flex-shrink: 0;
}
.cpp-emoji-slider[data-v-a6045bb5] {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cpp-emoji-slider .el-slider[data-v-a6045bb5] {
  flex: 1;
}
.cpp-emoji-val[data-v-a6045bb5] {
  font-size: 12px;
  color: #4da3ff;
  min-width: 36px;
  text-align: right;
}
.cpp-btn-row[data-v-a6045bb5] {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
/* 右侧 */
.cpp-right-head[data-v-a6045bb5] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.cpp-count[data-v-a6045bb5] {
  color: #8899b4;
  font-weight: 400;
  font-size: 12px;
}
.cpp-ai-badge[data-v-a6045bb5] {
  font-size: 11px;
  color: #4da3ff;
  border: 1px solid rgba(22, 93, 255, 0.4);
  background: rgba(22, 93, 255, 0.1);
  border-radius: 999px;
  padding: 2px 10px;
  animation: cpp-pulse-a6045bb5 1.2s infinite;
}
@keyframes cpp-pulse-a6045bb5 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.5;
}
}
.cpp-nav[data-v-a6045bb5] {
  flex-shrink: 0;
  display: flex;
  gap: 6px;
  margin: 10px 0;
  flex-wrap: wrap;
}
/* 胶囊：hover 渐变柔和过渡（::before 渐变层透明度渐显 + 边框/文字/微抬升同节奏） */
.cpp-nav-item[data-v-a6045bb5] {
  position: relative;
  overflow: hidden;
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 999px;
  padding: 4px 14px;
  font-size: 12px;
  cursor: pointer;
  transition: color 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
}
.cpp-nav-item[data-v-a6045bb5]::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(22, 93, 255, 0.3), rgba(22, 93, 255, 0.08));
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.cpp-nav-item[data-v-a6045bb5]:hover {
  border-color: #165DFF;
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(22, 93, 255, 0.18);
}
.cpp-nav-item[data-v-a6045bb5]:hover::before {
  opacity: 1;
}
.cpp-nav-item.on[data-v-a6045bb5] {
  background: #165DFF;
  border-color: #165DFF;
  color: #fff;
  box-shadow: 0 2px 8px rgba(22, 93, 255, 0.35);
}
.cpp-nav-item.on[data-v-a6045bb5]::before {
  opacity: 0;
}
/* 计数徽标：字号放大+深底描边，选中态反白，保证清晰可读 */
.cpp-nav-count[data-v-a6045bb5] {
  position: relative;
  display: inline-block;
  margin-left: 6px;
  min-width: 20px;
  padding: 0 7px;
  line-height: 18px;
  border-radius: 999px;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #4da3ff;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
}
.cpp-nav-item.on .cpp-nav-count[data-v-a6045bb5] {
  background: rgba(0, 0, 0, 0.3);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}
.cpp-preview[data-v-a6045bb5] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.cpp-progress[data-v-a6045bb5] {
  padding: 24px 20px 6px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}
.cpp-progress-bar[data-v-a6045bb5] {
  width: min(520px, 100%);
  display: flex;
  align-items: center;
  gap: 12px;
}
.cpp-progress-bar .el-progress[data-v-a6045bb5] {
  flex: 1;
}
.cpp-eta[data-v-a6045bb5] {
  font-size: 13px;
  color: #4da3ff;
  min-width: 40px;
  text-align: right;
}
.cpp-ai-hint[data-v-a6045bb5] {
  font-size: 12px;
  color: #5b6b8c;
}
/* 素材卡片：网格锁定 3 列 × 4 行 = 12 条/页，视口缩放不增减列数 */
.cpp-card-grid[data-v-a6045bb5] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  align-items: stretch;
}
.cpp-card[data-v-a6045bb5] {
  height: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 12px 14px;
  transition: border-color 0.15s;
  display: flex;
  flex-direction: column;
}
.cpp-card[data-v-a6045bb5]:hover {
  border-color: #165DFF;
}
.cpp-card.pinned[data-v-a6045bb5] {
  border-left: 3px solid #165DFF;
}
.cpp-card.adopted[data-v-a6045bb5] {
  opacity: 0.82;
}
.cpp-card-head[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: nowrap;
}
.cpp-tag[data-v-a6045bb5] {
  display: inline-block;
  font-size: 11px;
  border-radius: 4px;
  padding: 2px 10px;
  border: 1px solid;
  font-weight: 600;
  flex-shrink: 0;
  white-space: nowrap;
}
.cpp-flag[data-v-a6045bb5] {
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 6px;
  flex-shrink: 0;
  white-space: nowrap;
}
.cpp-flag.adopted[data-v-a6045bb5] {
  background: rgba(0, 180, 42, 0.85);
  color: #fff;
}
.cpp-flag.pinned[data-v-a6045bb5] {
  background: rgba(22, 93, 255, 0.85);
  color: #fff;
}
.cpp-card-time[data-v-a6045bb5] {
  margin-left: auto;
  font-size: 11px;
  color: #5b6b8c;
  flex-shrink: 0;
  white-space: nowrap;
}
/* 话术区固定 3 行截断：卡片等高对齐，超长文本 hover tooltip 看全文 */
.cpp-card-text[data-v-a6045bb5] {
  height: 63px;
  font-size: 12px;
  color: #c0c8d8;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-all;
}
.cpp-card-meta[data-v-a6045bb5] {
  font-size: 10px;
  color: #5b6b8c;
  margin-top: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 操作按钮行：gap 调大消除挤压，flex-shrink 兜底不越界，钉在卡片底部（底距 13px） */
.cpp-card-ops[data-v-a6045bb5] {
  display: flex;
  gap: 10px;
  margin-top: auto;
  padding-top: 6px;
  border-top: 1px solid #1d2440;
  flex-shrink: 0;
}
/* 批量操作 + 分页同一行：按钮组居左，分页器居右，单行不额外占高 */
.cpp-batch-bar[data-v-a6045bb5] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
.cpp-batch-ops[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.cpp-empty[data-v-a6045bb5] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.cpp-empty.sm[data-v-a6045bb5] {
  padding: 24px 0;
}
.cpp-empty-svg[data-v-a6045bb5] {
  opacity: 0.92;
}
.cpp-empty-title[data-v-a6045bb5] {
  color: #8899b4;
  font-size: 13px;
}
/* ④ 底部统计 */
.cpp-stats[data-v-a6045bb5] {
  margin-top: 12px;
  padding: 20px;
}
.cpp-stats-head[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.cpp-stats-ops[data-v-a6045bb5] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.cpp-arrow[data-v-a6045bb5] {
  color: #8899b4;
  font-size: 11px;
}
.cpp-stats-body[data-v-a6045bb5] {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 24px;
  margin-top: 14px;
}
.cpp-stats-sub[data-v-a6045bb5] {
  font-size: 12px;
  color: #8899b4;
  margin-bottom: 10px;
}
.cpp-bar-list[data-v-a6045bb5] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cpp-bar-row[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid transparent;
  transition: all 0.15s;
}
.cpp-bar-row[data-v-a6045bb5]:hover {
  background: rgba(22, 93, 255, 0.06);
}
.cpp-bar-row.on[data-v-a6045bb5] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.1);
}
.cpp-bar-name[data-v-a6045bb5] {
  flex: 0 0 86px;
  font-size: 12px;
  text-align: right;
}
.cpp-bar-track[data-v-a6045bb5] {
  flex: 1;
  height: 14px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 7px;
  overflow: hidden;
}
.cpp-bar-fill[data-v-a6045bb5] {
  height: 100%;
  border-radius: 7px;
  opacity: 0.85;
  min-width: 4px;
}
.cpp-bar-count[data-v-a6045bb5] {
  flex: 0 0 52px;
  font-size: 11px;
  color: #c0c8d8;
  text-align: right;
}
.cpp-lift-cards[data-v-a6045bb5] {
  display: flex;
  gap: 12px;
}
.cpp-lift[data-v-a6045bb5] {
  flex: 1;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 14px;
  text-align: center;
}
.cpp-lift-num[data-v-a6045bb5] {
  font-size: 24px;
  font-weight: 700;
  color: #36d399;
}
.cpp-lift-label[data-v-a6045bb5] {
  font-size: 11px;
  color: #8899b4;
  margin-top: 4px;
}
.cpp-stats-note[data-v-a6045bb5] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 12px;
}
/* ⑤⑥ 悬浮面板：右下模板库 / 左下 AI 建议 */
.cpp-float-r[data-v-a6045bb5] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
/* 左侧悬浮需避开 fixed 264px 侧边栏（264+16=280） */
.cpp-float-l[data-v-a6045bb5] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.cpp-float-btn[data-v-a6045bb5] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.cpp-float-btn[data-v-a6045bb5]:hover {
  background: #1E6BFF;
}
.cpp-float-btn.on[data-v-a6045bb5] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.cpp-float-btn.ai[data-v-a6045bb5] {
  background: rgba(247, 186, 30, 0.9);
}
.cpp-float-btn.ai[data-v-a6045bb5]:hover {
  background: #f7ba1e;
}
.cpp-float-btn.ai.on[data-v-a6045bb5] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.cpp-drawer[data-v-a6045bb5] {
  position: absolute;
  bottom: 56px;
  width: 320px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.cpp-float-r .cpp-drawer[data-v-a6045bb5] {
  right: 0;
}
.cpp-float-l .cpp-drawer[data-v-a6045bb5] {
  left: 0;
}
.cpp-ai-drawer[data-v-a6045bb5] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.cpp-drawer-head[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #f7ba1e;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.cpp-tpl-drawer .cpp-drawer-head[data-v-a6045bb5] {
  color: #4da3ff;
}
.cpp-drawer-ops[data-v-a6045bb5] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.cpp-drawer-toggle[data-v-a6045bb5] {
  background: transparent;
  border: 1px solid rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.cpp-tpl-drawer .cpp-drawer-toggle[data-v-a6045bb5] {
  border-color: #2a3450;
  color: #8899b4;
}
.cpp-tpl-section[data-v-a6045bb5] {
  font-size: 10px;
  color: #5b6b8c;
  margin: 8px 0 6px;
}
.cpp-tpl-grid[data-v-a6045bb5] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.cpp-tpl[data-v-a6045bb5] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 12px;
  color: #c0c8d8;
  cursor: pointer;
  text-align: center;
  transition: all 0.15s;
}
.cpp-tpl[data-v-a6045bb5]:hover {
  border-color: #165DFF;
  color: #4da3ff;
}
.cpp-tpl.example[data-v-a6045bb5] {
  text-align: left;
}
.cpp-tpl-name[data-v-a6045bb5] {
  font-size: 12px;
  font-weight: 600;
  color: #e0e6f0;
}
.cpp-tpl-desc[data-v-a6045bb5] {
  font-size: 10px;
  color: #8899b4;
  margin-top: 2px;
  line-height: 1.5;
}
.cpp-drawer-foot[data-v-a6045bb5] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.cpp-ai-body[data-v-a6045bb5] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
  max-height: 240px;
  overflow-y: auto;
}
.cpp-ai-loading[data-v-a6045bb5], .cpp-ai-empty[data-v-a6045bb5] {
  color: #c8b87a;
}
.cpp-edit-meta[data-v-a6045bb5] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 10px;
}
/* 话术悬浮预览 tooltip（深色，禁止浅色气泡） */
.cpp-tooltip[data-v-a6045bb5] {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 300;
  max-width: 360px;
  max-height: 220px;
  overflow-y: auto;
  box-sizing: border-box;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.7;
  color: #e0e6f0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease;
  word-break: break-all;
}
.cpp-tooltip.show[data-v-a6045bb5] {
  opacity: 1;
  visibility: visible;
}
/* 按钮严款 */
.cpp-page[data-v-a6045bb5] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.cpp-page[data-v-a6045bb5] .el-button:last-child {
  margin-right: 0 !important;
}
.cpp-page[data-v-a6045bb5] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.cpp-page[data-v-a6045bb5] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.cpp-page[data-v-a6045bb5] .el-button--primary:active {
  background: #1247DD !important;
}
.cpp-page[data-v-a6045bb5] .el-button--primary.is-disabled, .cpp-page[data-v-a6045bb5] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.cpp-page[data-v-a6045bb5] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.cpp-page[data-v-a6045bb5] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.cpp-page[data-v-a6045bb5] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.cpp-page[data-v-a6045bb5] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.cpp-page[data-v-a6045bb5] .cpp-btn-row .el-button, .cpp-page[data-v-a6045bb5] .cpp-batch-bar .el-button {
  margin-right: 0 !important;
}
.cpp-page[data-v-a6045bb5] .cpp-card-ops .el-button {
  margin-right: 0 !important;
}
.cpp-page[data-v-a6045bb5] .cpp-op-btn.el-button {
  height: 26px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  margin-right: 0 !important;
}
/* switch/slider 主色 */
.cpp-page[data-v-a6045bb5] .el-switch.is-checked .el-switch__core {
  background: #165DFF;
  border-color: #165DFF;
}
.cpp-page[data-v-a6045bb5] .el-switch__core {
  background: #333B58;
  border-color: #333B58;
}
.cpp-page[data-v-a6045bb5] .el-slider__bar {
  background: #165DFF;
}
.cpp-page[data-v-a6045bb5] .el-slider__button {
  border-color: #165DFF;
}
.cpp-page[data-v-a6045bb5] .el-slider__runway {
  background: #333B58;
}
/* dialog 定位 */
.cpp-page[data-v-a6045bb5] .el-overlay-dialog {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}
.cpp-page[data-v-a6045bb5] .el-dialog {
  position: relative;
  width: var(--el-dialog-width, 50%);
  margin: 15vh auto 50px;
  box-sizing: border-box;
  max-width: calc(100% - 32px);
  background: #171D36;
  border: 1px solid #2a3450;
}
.cpp-page[data-v-a6045bb5] .el-dialog__title {
  color: #e8ecf5;
}
.cpp-page[data-v-a6045bb5] .el-dialog__headerbtn .el-dialog__close {
  color: #8899b4;
}
/* 分页器：深色主题，横向单行（不换行不垂直堆叠），与批量按钮同行居右，高度压缩 */
.cpp-pagination[data-v-a6045bb5] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  margin-left: auto;
  white-space: nowrap;
}
.cpp-pagination[data-v-a6045bb5] .el-pagination {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
}
.cpp-pagination[data-v-a6045bb5] .el-pagination__jump {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: 10px;
  color: #8899b4;
  font-size: 12px;
}
.cpp-pagination[data-v-a6045bb5] .el-pagination__editor.el-input {
  width: 46px;
}
.cpp-pagination[data-v-a6045bb5] .el-pagination__editor .el-input__wrapper {
  background: #171D36 !important;
  box-shadow: 0 0 0 1px #333B58 inset !important;
  border-radius: 6px;
  padding: 0 4px;
  height: 26px;
  min-height: 26px;
}
.cpp-pagination[data-v-a6045bb5] .el-pagination__editor .el-input__inner {
  color: #e0e6f0;
  font-size: 12px;
  text-align: center;
  height: 24px;
  line-height: 24px;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-pagination {
  --el-pagination-bg-color: transparent;
}
/* pager 必须显式 inline-flex 横向单行：全局样式下默认会垂直堆叠（1-10 页码上下排列） */
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-pager {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0 8px;
  padding: 0;
  list-style: none;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-pager li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 28px;
  height: 28px;
  line-height: 1;
  margin: 0;
  padding: 0 6px;
  font-weight: 600;
  box-sizing: border-box;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-pager li:hover {
  color: #4da3ff !important;
  border-color: #165DFF;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-pager li.is-active {
  background: #165DFF !important;
  color: #fff !important;
  border-color: #165DFF;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-pager li.is-active:hover {
  color: #fff !important;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .btn-prev, .cpp-page[data-v-a6045bb5] .cpp-pagination .btn-next {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 28px;
  height: 28px;
  margin: 0 3px;
  box-sizing: border-box;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .btn-prev:hover:not(:disabled), .cpp-page[data-v-a6045bb5] .cpp-pagination .btn-next:hover:not(:disabled) {
  color: #4da3ff !important;
  border-color: #165DFF;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .btn-prev:disabled, .cpp-page[data-v-a6045bb5] .cpp-pagination .btn-next:disabled {
  background: transparent !important;
  color: #5b6b8c !important;
  border-color: #2a3450;
  cursor: not-allowed;
}
.cpp-page[data-v-a6045bb5] .cpp-pagination .el-more {
  background: transparent;
  color: #8899b4;
}
/* 骨架 */
.cpp-skel[data-v-a6045bb5] {
  pointer-events: none;
}
.cpp-sk[data-v-a6045bb5] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: cpp-shimmer-a6045bb5 1.2s infinite;
  margin-bottom: 8px;
}
.cpp-sk.w30[data-v-a6045bb5] {
  width: 30%;
}
.cpp-sk.w40[data-v-a6045bb5] {
  width: 40%;
}
.cpp-sk.w55[data-v-a6045bb5] {
  width: 55%;
}
.cpp-sk.w70[data-v-a6045bb5] {
  width: 70%;
}
.cpp-sk.w85[data-v-a6045bb5] {
  width: 85%;
}
.cpp-sk.w100[data-v-a6045bb5] {
  width: 100%;
}
.cpp-card-skel[data-v-a6045bb5] {
  padding: 14px;
}
/* 业务骨架：模拟卡片标签/时间/文本行/按钮结构 */
.cpp-skel-head[data-v-a6045bb5] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.cpp-sk-tag[data-v-a6045bb5] {
  width: 74px;
  height: 18px;
  margin-bottom: 0;
}
.cpp-sk-time[data-v-a6045bb5] {
  width: 58px;
  height: 12px;
  margin-bottom: 0;
}
.cpp-skel-ops[data-v-a6045bb5] {
  display: flex;
  gap: 12px;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid #1d2440;
}
.cpp-sk-btn[data-v-a6045bb5] {
  width: 34px;
  height: 14px;
  margin-bottom: 0;
}
@keyframes cpp-shimmer-a6045bb5 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.cpp-kpis[data-v-a6045bb5] {
    grid-template-columns: repeat(2, 1fr);
}
.cpp-main[data-v-a6045bb5] {
    grid-template-columns: 1fr;
}
.cpp-drawer[data-v-a6045bb5] {
    width: 280px;
}
.cpp-stats-body[data-v-a6045bb5] {
    grid-template-columns: 1fr;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-ba7c9d43] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-ba7c9d43] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-ba7c9d43] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-ba7c9d43] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-ba7c9d43] { flex: 1; min-width: 0;
}
.hq-btn[data-v-ba7c9d43] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-ba7c9d43]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-ba7c9d43] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-ba7c9d43]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-ba7c9d43] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-ba7c9d43], .hq-select[data-v-ba7c9d43] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-ba7c9d43]:focus, .hq-select[data-v-ba7c9d43]:focus { border-color: #0066CC;
}
.hq-tag[data-v-ba7c9d43] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-ba7c9d43] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-ba7c9d43] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-ba7c9d43 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-ba7c9d43] { animation: hq-blink-ba7c9d43 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-ba7c9d43 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-ba7c9d43] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-ba7c9d43 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-ba7c9d43] { color: #0066CC;
}
.hq-ev-risk[data-v-ba7c9d43] { color: #f53f3f;
}
.hq-ev-agent[data-v-ba7c9d43] { color: #00b42a;
}
.hq-ev-strategy[data-v-ba7c9d43] { color: #722ed1;
}
.hq-ev-logistics[data-v-ba7c9d43] { color: #ff7d00;
}
.gl-page[data-v-ba7c9d43] {
  padding: 16px;
}
.gl-kpis[data-v-ba7c9d43] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.gl-kpi[data-v-ba7c9d43] {
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.gl-kpi[data-v-ba7c9d43]:hover {
  border-color: #165DFF;
}
.gl-kpi.on[data-v-ba7c9d43] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.gl-kpi-num[data-v-ba7c9d43] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.gl-kpi-label[data-v-ba7c9d43] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.gl-count[data-v-ba7c9d43] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.gl-main[data-v-ba7c9d43] {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 12px;
  align-items: stretch;
}
.gl-left[data-v-ba7c9d43], .gl-right[data-v-ba7c9d43] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.gl-input[data-v-ba7c9d43] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.gl-input[data-v-ba7c9d43]:focus {
  border-color: #165DFF;
}
.gl-input option[data-v-ba7c9d43] {
  background: #171D36;
  color: #e0e6f0;
}
.gl-label[data-v-ba7c9d43] {
  display: block;
  font-size: 12px;
  color: #8899b4;
  margin: 12px 0 4px;
}
.gl-label.sm[data-v-ba7c9d43] {
  margin-top: 0;
}
.gl-grid2[data-v-ba7c9d43] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 10px;
}
.gl-seg[data-v-ba7c9d43] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.gl-seg-btn[data-v-ba7c9d43] {
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
}
.gl-seg-btn.on[data-v-ba7c9d43] {
  background: #165DFF;
  border-color: #165DFF;
  color: #fff;
}
/* ③ 素材网格 */
.gl-right-head[data-v-ba7c9d43] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.gl-grid[data-v-ba7c9d43] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 12px;
  align-content: start;
  padding: 4px 2px 10px;
}
.gl-card[data-v-ba7c9d43] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gl-card[data-v-ba7c9d43]:hover {
  border-color: #165DFF;
  transform: translateY(-2px);
}
.gl-card.on[data-v-ba7c9d43] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.gl-card.hot[data-v-ba7c9d43] {
  border-left: 3px solid #f7ba1e;
}
.gl-card-cover[data-v-ba7c9d43] {
  position: relative;
  height: 64px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
.gl-hot-badge[data-v-ba7c9d43] {
  position: absolute;
  left: 6px;
  top: 6px;
  font-size: 10px;
  background: rgba(247, 186, 30, 0.9);
  color: #1a1203;
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 700;
}
.gl-risk[data-v-ba7c9d43] {
  position: absolute;
  right: 6px;
  bottom: 6px;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 6px;
  border: 1px solid;
  font-weight: 600;
}
.gl-card-name[data-v-ba7c9d43] {
  font-size: 12px;
  font-weight: 600;
  color: #e8ecf5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gl-card-meta[data-v-ba7c9d43] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.gl-tag[data-v-ba7c9d43] {
  display: inline-block;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 7px;
  border: 1px solid #333B58;
  color: #8899b4;
}
.gl-size[data-v-ba7c9d43] {
  margin-left: auto;
  font-size: 10px;
  color: #5b6b8c;
}
.gl-check[data-v-ba7c9d43] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #4da3ff;
}
.gl-check input[data-v-ba7c9d43] {
  accent-color: #165DFF;
}
.gl-more[data-v-ba7c9d43] {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  margin-top: 10px;
}
.gl-batch[data-v-ba7c9d43] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
  opacity: 0.5;
  transition: opacity 0.2s;
}
.gl-batch.on[data-v-ba7c9d43] {
  opacity: 1;
}
.gl-batch-info[data-v-ba7c9d43] {
  font-size: 12px;
  color: #4da3ff;
  margin-right: auto;
}
/* ⑥⑦ 悬浮面板 */
.gl-float-r[data-v-ba7c9d43] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.gl-float-l[data-v-ba7c9d43] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.gl-float-btn[data-v-ba7c9d43] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.gl-float-btn[data-v-ba7c9d43]:hover {
  background: #1E6BFF;
}
.gl-float-btn.on[data-v-ba7c9d43] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.gl-float-btn.ai[data-v-ba7c9d43] {
  background: rgba(247, 186, 30, 0.9);
}
.gl-float-btn.ai[data-v-ba7c9d43]:hover {
  background: #f7ba1e;
}
.gl-float-btn.ai.on[data-v-ba7c9d43] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.gl-drawer[data-v-ba7c9d43] {
  position: absolute;
  bottom: 56px;
  width: 300px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.gl-float-r .gl-drawer[data-v-ba7c9d43] {
  right: 0;
}
.gl-float-l .gl-drawer[data-v-ba7c9d43] {
  left: 0;
}
.gl-ai-drawer[data-v-ba7c9d43] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.gl-drawer-head[data-v-ba7c9d43] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.gl-ai-drawer .gl-drawer-head[data-v-ba7c9d43] {
  color: #f7ba1e;
}
.gl-drawer-ops[data-v-ba7c9d43] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.gl-drawer-toggle[data-v-ba7c9d43] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.gl-ai-drawer .gl-drawer-toggle[data-v-ba7c9d43] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.gl-ai-body[data-v-ba7c9d43] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
}
.gl-quick-grid[data-v-ba7c9d43] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.gl-quick[data-v-ba7c9d43] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  font-size: 11px;
  color: #c0c8d8;
  cursor: pointer;
  transition: all 0.15s;
}
.gl-quick[data-v-ba7c9d43]:hover {
  border-color: #165DFF;
  color: #4da3ff;
}
.gl-quick span[data-v-ba7c9d43] {
  font-size: 18px;
}
/* 详情抽屉 */
.gl-drawer-title[data-v-ba7c9d43] {
  font-size: 14px;
  font-weight: 700;
  color: #e8ecf5;
}
.gl-detail[data-v-ba7c9d43] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 4px;
}
.gl-detail-cover[data-v-ba7c9d43] {
  height: 110px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 46px;
}
.gl-detail-name[data-v-ba7c9d43] {
  font-size: 15px;
  font-weight: 700;
  color: #e8ecf5;
}
.gl-detail-tags[data-v-ba7c9d43] {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.gl-info-row[data-v-ba7c9d43] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #c0c8d8;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
  padding: 7px 10px;
}
.gl-info-row span[data-v-ba7c9d43] {
  color: #8899b4;
}
.gl-info-row b[data-v-ba7c9d43] {
  color: #e8ecf5;
  font-weight: 600;
}
.gl-block-title[data-v-ba7c9d43] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-top: 6px;
}
.gl-record[data-v-ba7c9d43] {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #8899b4;
  padding: 4px 0;
}
.gl-related[data-v-ba7c9d43] {
  font-size: 12px;
  color: #c0c8d8;
}
.gl-detail-ops[data-v-ba7c9d43] {
  display: flex;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.gl-detail-note[data-v-ba7c9d43] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 10px;
}
/* 空状态 */
.gl-empty[data-v-ba7c9d43] {
  grid-column: 1/-1;
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.gl-empty-title[data-v-ba7c9d43] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.gl-page[data-v-ba7c9d43] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.gl-page[data-v-ba7c9d43] .el-button:last-child {
  margin-right: 0 !important;
}
.gl-page[data-v-ba7c9d43] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.gl-page[data-v-ba7c9d43] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.gl-page[data-v-ba7c9d43] .el-button--primary:active {
  background: #1247DD !important;
}
.gl-page[data-v-ba7c9d43] .el-button--primary.is-disabled, .gl-page[data-v-ba7c9d43] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.gl-page[data-v-ba7c9d43] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.gl-page[data-v-ba7c9d43] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.gl-page[data-v-ba7c9d43] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.gl-page[data-v-ba7c9d43] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.gl-page[data-v-ba7c9d43] .gl-batch .el-button, .gl-page[data-v-ba7c9d43] .gl-detail-ops .el-button, .gl-page[data-v-ba7c9d43] .gl-right-head .el-button {
  margin-right: 0 !important;
}
/* drawer + dialog 深色 */
.gl-page[data-v-ba7c9d43] .el-overlay-dialog {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}
.gl-page[data-v-ba7c9d43] .el-dialog {
  position: relative;
  width: var(--el-dialog-width, 50%);
  margin: 15vh auto 50px;
  box-sizing: border-box;
  max-width: calc(100% - 32px);
  background: #171D36;
  border: 1px solid #2a3450;
}
.gl-page[data-v-ba7c9d43] .el-dialog__title {
  color: #e8ecf5;
}
.gl-page[data-v-ba7c9d43] .el-dialog__headerbtn .el-dialog__close {
  color: #8899b4;
}
/* 骨架 */
.gl-skel[data-v-ba7c9d43] {
  pointer-events: none;
}
.gl-sk[data-v-ba7c9d43] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: gl-shimmer-ba7c9d43 1.2s infinite;
  margin-bottom: 8px;
}
.gl-sk.w40[data-v-ba7c9d43] {
  width: 40%;
}
.gl-sk.w50[data-v-ba7c9d43] {
  width: 50%;
}
.gl-sk.w60[data-v-ba7c9d43] {
  width: 60%;
}
.gl-sk.w70[data-v-ba7c9d43] {
  width: 70%;
}
.gl-sk.w80[data-v-ba7c9d43] {
  width: 80%;
}
.gl-card-skel[data-v-ba7c9d43] {
  pointer-events: none;
  padding: 14px;
}
@keyframes gl-shimmer-ba7c9d43 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.gl-kpis[data-v-ba7c9d43] {
    grid-template-columns: repeat(2, 1fr);
}
.gl-main[data-v-ba7c9d43] {
    grid-template-columns: 1fr;
}
.gl-drawer[data-v-ba7c9d43] {
    width: 280px;
}
}
/* el-drawer teleport 到 body，需全局样式：固定右侧滑出（EP 样式缺失方向/定位规则时兜底） */
.gl-drawer-box.el-drawer.rtl { position: absolute !important; right: 0 !important; left: auto !important; top: 0 !important; bottom: 0 !important; height: auto !important;
}
.gl-drawer-box.el-drawer { background: #171D36; border-left: 1px solid #2a3450;
}
.gl-drawer-box .el-drawer__header { color: #e8ecf5; margin-bottom: 10px;
}
.gl-drawer-box .el-drawer__body { padding-top: 0;
}

/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-241c19f1] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-241c19f1] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-241c19f1] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-241c19f1] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-241c19f1] { flex: 1; min-width: 0;
}
.hq-btn[data-v-241c19f1] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-241c19f1]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-241c19f1] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-241c19f1]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-241c19f1] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-241c19f1], .hq-select[data-v-241c19f1] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-241c19f1]:focus, .hq-select[data-v-241c19f1]:focus { border-color: #0066CC;
}
.hq-tag[data-v-241c19f1] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-241c19f1] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-241c19f1] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-241c19f1 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-241c19f1] { animation: hq-blink-241c19f1 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-241c19f1 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-241c19f1] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-241c19f1 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-241c19f1] { color: #0066CC;
}
.hq-ev-risk[data-v-241c19f1] { color: #f53f3f;
}
.hq-ev-agent[data-v-241c19f1] { color: #00b42a;
}
.hq-ev-strategy[data-v-241c19f1] { color: #722ed1;
}
.hq-ev-logistics[data-v-241c19f1] { color: #ff7d00;
}
.cc-page[data-v-241c19f1] {
  padding: 16px;
}
.cc-kpis[data-v-241c19f1] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.cc-kpi[data-v-241c19f1] {
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.cc-kpi[data-v-241c19f1]:hover {
  border-color: #165DFF;
}
.cc-kpi.on[data-v-241c19f1] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.cc-kpi-num[data-v-241c19f1] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.cc-kpi-label[data-v-241c19f1] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.cc-count[data-v-241c19f1] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.cc-main[data-v-241c19f1] {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 12px;
  align-items: stretch;
}
.cc-left[data-v-241c19f1], .cc-right[data-v-241c19f1] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.cc-input[data-v-241c19f1] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.cc-input[data-v-241c19f1]:focus {
  border-color: #165DFF;
}
.cc-input option[data-v-241c19f1] {
  background: #171D36;
  color: #e0e6f0;
}
.cc-filter[data-v-241c19f1] {
  margin-top: 8px;
}
.cc-inline[data-v-241c19f1] {
  width: 150px;
  height: 32px;
  font-size: 12px;
}
/* 列表容器：最大固定高度，超过 10 条容器内部滚动，分页平铺底部跟随滚动 */
.cc-scroll[data-v-241c19f1] {
  flex: 1;
  min-height: 0;
  max-height: 560px;
  overflow-y: auto;
  margin-top: 10px;
  padding-right: 2px;
}
.cc-list[data-v-241c19f1] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cc-list-pager[data-v-241c19f1] {
  display: flex;
  justify-content: center;
  padding: 12px 0 4px;
}
.cc-page[data-v-241c19f1] .cc-list-pager .el-pagination {
  --el-pagination-bg-color: transparent;
}
/* 完整平铺分页：EP 样式缺失时强制横向单行（禁止堆叠点状） */
.cc-page[data-v-241c19f1] .cc-list-pager .el-pager {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 4px;
  margin: 0 6px;
  padding: 0;
  list-style: none;
}
.cc-page[data-v-241c19f1] .cc-list-pager .el-pager li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  line-height: 1;
  margin: 0;
  padding: 0 6px;
  box-sizing: border-box;
}
.cc-page[data-v-241c19f1] .cc-list-pager .el-pager li.is-active {
  background: #165DFF !important;
  color: #fff !important;
  border-color: #165DFF;
}
.cc-page[data-v-241c19f1] .cc-list-pager .btn-prev, .cc-page[data-v-241c19f1] .cc-list-pager .btn-next {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  margin: 0;
  box-sizing: border-box;
}
.cc-page[data-v-241c19f1] .cc-list-pager .btn-prev:disabled, .cc-page[data-v-241c19f1] .cc-list-pager .btn-next:disabled {
  background: transparent !important;
  color: #5b6b8c !important;
  border-color: #2a3450;
}
.cc-item[data-v-241c19f1] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.cc-item[data-v-241c19f1]:hover {
  border-color: #165DFF;
}
.cc-item.on[data-v-241c19f1] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.cc-item-head[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cc-item-cover[data-v-241c19f1] {
  font-size: 16px;
}
.cc-item-name[data-v-241c19f1] {
  font-size: 13px;
  font-weight: 600;
  color: #e8ecf5;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cc-item-icon[data-v-241c19f1] {
  font-size: 13px;
}
.cc-item-meta[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
.cc-tag[data-v-241c19f1] {
  display: inline-block;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 8px;
  border: 1px solid;
  font-weight: 600;
}
.cc-item-type[data-v-241c19f1] {
  margin-left: auto;
  font-size: 11px;
  color: #5b6b8c;
}
/* 右侧 */
.cc-right-head[data-v-241c19f1] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cc-cur[data-v-241c19f1] {
  color: #4da3ff;
  font-weight: 400;
  font-size: 12px;
}
.cc-detail[data-v-241c19f1] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.cc-progress-block[data-v-241c19f1] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 14px;
  margin-bottom: 12px;
}
.cc-progress[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cc-progress .el-progress[data-v-241c19f1] {
  flex: 1;
}
.cc-eta[data-v-241c19f1] {
  font-size: 13px;
  color: #4da3ff;
  min-width: 40px;
  text-align: right;
}
.cc-hint[data-v-241c19f1] {
  font-size: 12px;
  color: #5b6b8c;
  margin-top: 8px;
}
.cc-block[data-v-241c19f1] {
  margin-top: 14px;
}
.cc-block[data-v-241c19f1]:first-child {
  margin-top: 0;
}
.cc-block-title[data-v-241c19f1] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-bottom: 8px;
}
.cc-info-grid[data-v-241c19f1] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 16px;
  font-size: 12px;
  color: #c0c8d8;
}
/* 4 个多维度检测结果卡片强制统一等高对齐 */
.cc-detect-grid[data-v-241c19f1] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  align-items: stretch;
}
.cc-detect[data-v-241c19f1] {
  height: 100%;
  min-height: 88px;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cc-detect-result[data-v-241c19f1] {
  margin-top: auto;
}
.cc-detect.ok[data-v-241c19f1] {
  border-color: rgba(0, 180, 42, 0.4);
}
.cc-detect.warn[data-v-241c19f1] {
  border-color: rgba(247, 186, 30, 0.45);
}
.cc-detect.bad[data-v-241c19f1] {
  border-color: rgba(245, 63, 63, 0.5);
}
.cc-detect-icon[data-v-241c19f1] {
  font-size: 16px;
}
.cc-detect-name[data-v-241c19f1] {
  font-size: 12px;
  color: #8899b4;
}
.cc-detect-result[data-v-241c19f1] {
  font-size: 11px;
  font-weight: 700;
}
.cc-hits[data-v-241c19f1] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cc-hit[data-v-241c19f1] {
  display: flex;
  gap: 10px;
  font-size: 12px;
  color: #c0c8d8;
  background: rgba(245, 63, 63, 0.06);
  border: 1px solid rgba(245, 63, 63, 0.25);
  border-radius: 6px;
  padding: 6px 10px;
  align-items: center;
}
.cc-hit-word[data-v-241c19f1] {
  flex: 1;
}
.cc-hit-sev[data-v-241c19f1] {
  font-weight: 700;
  font-size: 11px;
  flex-shrink: 0;
}
.cc-clean[data-v-241c19f1] {
  font-size: 12px;
  color: #36d399;
  padding: 6px 2px;
}
.cc-actions[data-v-241c19f1] {
  flex-shrink: 0;
  display: flex;
  gap: 12px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
/* ④ 规则 */
.cc-rules[data-v-241c19f1] {
  margin-top: 12px;
  padding: 20px;
}
.cc-rules-head[data-v-241c19f1] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.cc-rules-ops[data-v-241c19f1] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.cc-arrow[data-v-241c19f1] {
  color: #8899b4;
  font-size: 11px;
}
.cc-rules-body[data-v-241c19f1] {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cc-switch-item[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cc-switch-label[data-v-241c19f1] {
  font-size: 12px;
  color: #c0c8d8;
}
.cc-rules-row[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.cc-rules-label[data-v-241c19f1] {
  font-size: 12px;
  color: #8899b4;
  flex-shrink: 0;
}
.cc-check[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #C9CDD4;
  cursor: pointer;
}
.cc-check input[data-v-241c19f1] {
  accent-color: #165DFF;
}
.cc-strategy[data-v-241c19f1] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cc-strategy-name[data-v-241c19f1] {
  font-size: 12px;
  font-weight: 700;
}
/* ⑤⑥ 悬浮 */
.cc-float-r[data-v-241c19f1] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.cc-float-l[data-v-241c19f1] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.cc-float-btn[data-v-241c19f1] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.cc-float-btn[data-v-241c19f1]:hover {
  background: #1E6BFF;
}
.cc-float-btn.on[data-v-241c19f1] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.cc-float-btn.ai[data-v-241c19f1] {
  background: rgba(247, 186, 30, 0.9);
}
.cc-float-btn.ai[data-v-241c19f1]:hover {
  background: #f7ba1e;
}
.cc-float-btn.ai.on[data-v-241c19f1] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.cc-drawer[data-v-241c19f1] {
  position: absolute;
  bottom: 56px;
  width: 300px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.cc-float-r .cc-drawer[data-v-241c19f1] {
  right: 0;
}
.cc-float-l .cc-drawer[data-v-241c19f1] {
  left: 0;
}
.cc-ai-drawer[data-v-241c19f1] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.cc-drawer-head[data-v-241c19f1] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.cc-ai-drawer .cc-drawer-head[data-v-241c19f1] {
  color: #f7ba1e;
}
.cc-drawer-ops[data-v-241c19f1] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.cc-drawer-toggle[data-v-241c19f1] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.cc-ai-drawer .cc-drawer-toggle[data-v-241c19f1] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.cc-ai-body[data-v-241c19f1] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
}
.cc-stat-grid[data-v-241c19f1] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.cc-stat[data-v-241c19f1] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.cc-stat-num[data-v-241c19f1] {
  font-size: 18px;
  font-weight: 700;
}
.cc-stat-lbl[data-v-241c19f1] {
  font-size: 10px;
  color: #8899b4;
  margin-top: 2px;
}
.cc-drawer-foot[data-v-241c19f1] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
/* 空状态 */
.cc-empty[data-v-241c19f1] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.cc-empty.sm[data-v-241c19f1] {
  padding: 28px 0;
}
.cc-empty-title[data-v-241c19f1] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.cc-page[data-v-241c19f1] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.cc-page[data-v-241c19f1] .el-button:last-child {
  margin-right: 0 !important;
}
.cc-page[data-v-241c19f1] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.cc-page[data-v-241c19f1] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.cc-page[data-v-241c19f1] .el-button--primary:active {
  background: #1247DD !important;
}
.cc-page[data-v-241c19f1] .el-button--primary.is-disabled, .cc-page[data-v-241c19f1] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.cc-page[data-v-241c19f1] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.cc-page[data-v-241c19f1] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.cc-page[data-v-241c19f1] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.cc-page[data-v-241c19f1] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.cc-page[data-v-241c19f1] .cc-actions .el-button {
  margin-right: 0 !important;
}
.cc-page[data-v-241c19f1] .el-switch.is-checked .el-switch__core {
  background: #165DFF;
  border-color: #165DFF;
}
.cc-page[data-v-241c19f1] .el-switch__core {
  background: #333B58;
  border-color: #333B58;
}
/* 骨架 */
.cc-skel[data-v-241c19f1] {
  pointer-events: none;
}
.cc-sk[data-v-241c19f1] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: cc-shimmer-241c19f1 1.2s infinite;
  margin-bottom: 8px;
}
.cc-sk.w40[data-v-241c19f1] {
  width: 40%;
}
.cc-sk.w60[data-v-241c19f1] {
  width: 60%;
}
.cc-sk.w70[data-v-241c19f1] {
  width: 70%;
}
.cc-item-skel[data-v-241c19f1] {
  pointer-events: none;
  padding: 14px;
}
@keyframes cc-shimmer-241c19f1 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.cc-kpis[data-v-241c19f1] {
    grid-template-columns: repeat(2, 1fr);
}
.cc-main[data-v-241c19f1] {
    grid-template-columns: 1fr;
}
.cc-drawer[data-v-241c19f1] {
    width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-ae569b76] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-ae569b76] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-ae569b76] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-ae569b76] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-ae569b76] { flex: 1; min-width: 0;
}
.hq-btn[data-v-ae569b76] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-ae569b76]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-ae569b76] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-ae569b76]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-ae569b76] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-ae569b76], .hq-select[data-v-ae569b76] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-ae569b76]:focus, .hq-select[data-v-ae569b76]:focus { border-color: #0066CC;
}
.hq-tag[data-v-ae569b76] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-ae569b76] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-ae569b76] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-ae569b76 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-ae569b76] { animation: hq-blink-ae569b76 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-ae569b76 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-ae569b76] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-ae569b76 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-ae569b76] { color: #0066CC;
}
.hq-ev-risk[data-v-ae569b76] { color: #f53f3f;
}
.hq-ev-agent[data-v-ae569b76] { color: #00b42a;
}
.hq-ev-strategy[data-v-ae569b76] { color: #722ed1;
}
.hq-ev-logistics[data-v-ae569b76] { color: #ff7d00;
}
.at-page[data-v-ae569b76] {
  padding: 16px;
}
.at-kpis[data-v-ae569b76] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.at-kpi[data-v-ae569b76] {
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.2s;
}
.at-kpi[data-v-ae569b76]:hover {
  border-color: #165DFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(22, 93, 255, 0.18);
}
.at-kpi.on[data-v-ae569b76] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.at-kpi-num[data-v-ae569b76] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.at-kpi-label[data-v-ae569b76] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.at-count[data-v-ae569b76] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.at-main[data-v-ae569b76] {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 12px;
  align-items: stretch;
}
.at-left[data-v-ae569b76], .at-right[data-v-ae569b76] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.at-left-head[data-v-ae569b76] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.at-sort-seg[data-v-ae569b76] {
  display: flex;
  gap: 4px;
}
.at-sort-btn[data-v-ae569b76] {
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 6px;
  padding: 3px 9px;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.15s;
}
.at-sort-btn.on[data-v-ae569b76] {
  background: #165DFF;
  border-color: #165DFF;
  color: #fff;
}
/* ② 列表容器：固定高度 + 内部滚动 + 虚拟滚动 + 分页随列表滚动 */
.at-scroll[data-v-ae569b76] {
  flex: 1;
  min-height: 0;
  max-height: 560px;
  overflow-y: auto;
  margin-top: 10px;
  padding-right: 2px;
}
.at-vlist[data-v-ae569b76] {
  position: relative;
}
.at-item[data-v-ae569b76] {
  position: absolute;
  left: 0;
  right: 0;
  height: 48px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 7px 12px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.at-item[data-v-ae569b76]:hover {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.06);
}
.at-item.on[data-v-ae569b76] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.1);
}
.at-item.hot[data-v-ae569b76] {
  border-left: 3px solid #f7ba1e;
}
.at-item.pulse[data-v-ae569b76] {
  animation: at-row-pulse-ae569b76 0.9s ease-out 2;
}
@keyframes at-row-pulse-ae569b76 {
0%, 100% {
    box-shadow: 0 0 0 0 rgba(22, 93, 255, 0);
}
50% {
    box-shadow: 0 0 12px 2px rgba(22, 93, 255, 0.45);
}
}
.at-rank[data-v-ae569b76] {
  font-size: 15px;
  min-width: 26px;
  text-align: center;
  color: #8899b4;
  font-weight: 700;
  text-shadow: 0 0 8px rgba(136, 153, 180, 0.35);
}
.at-rank.r1[data-v-ae569b76] {
  color: #f7ba1e;
  text-shadow: 0 0 10px rgba(247, 186, 30, 0.55);
}
.at-rank.r2[data-v-ae569b76] {
  color: #c0c8d8;
}
.at-rank.r3[data-v-ae569b76] {
  color: #ff9547;
}
.at-rank.sm[data-v-ae569b76] {
  font-size: 12px;
  min-width: 16px;
}
.at-item-cover[data-v-ae569b76] {
  font-size: 15px;
}
.at-item-name[data-v-ae569b76] {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: #e8ecf5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.at-hot[data-v-ae569b76] {
  flex-shrink: 0;
  font-size: 10px;
  background: rgba(247, 186, 30, 0.9);
  color: #1a1203;
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 700;
  box-shadow: 0 0 8px rgba(247, 186, 30, 0.55);
  animation: at-hot-glow-ae569b76 2.2s ease-in-out infinite;
}
@keyframes at-hot-glow-ae569b76 {
0%, 100% {
    box-shadow: 0 0 6px rgba(247, 186, 30, 0.4);
}
50% {
    box-shadow: 0 0 12px rgba(247, 186, 30, 0.75);
}
}
.at-item-ctr[data-v-ae569b76] {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
  color: #36d399;
  min-width: 46px;
  text-align: right;
}
.at-list-pager[data-v-ae569b76] {
  display: flex;
  justify-content: center;
  padding: 10px 0 4px;
}
.at-page[data-v-ae569b76] .at-list-pager .el-pagination {
  --el-pagination-bg-color: transparent;
}
/* 完整平铺分页：EP 样式缺失时强制横向单行（禁止堆叠点状悬浮） */
.at-page[data-v-ae569b76] .at-list-pager .el-pager {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 4px;
  margin: 0 6px;
  padding: 0;
  list-style: none;
}
.at-page[data-v-ae569b76] .at-list-pager .el-pager li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  line-height: 1;
  margin: 0;
  padding: 0 6px;
  box-sizing: border-box;
}
.at-page[data-v-ae569b76] .at-list-pager .el-pager li.is-active {
  background: #165DFF !important;
  color: #fff !important;
  border-color: #165DFF;
}
.at-page[data-v-ae569b76] .at-list-pager .btn-prev, .at-page[data-v-ae569b76] .at-list-pager .btn-next {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  margin: 0;
  box-sizing: border-box;
}
.at-page[data-v-ae569b76] .at-list-pager .btn-prev:disabled, .at-page[data-v-ae569b76] .at-list-pager .btn-next:disabled {
  background: transparent !important;
  color: #5b6b8c !important;
  border-color: #2a3450;
}
/* ③ 右侧 */
.at-right-head[data-v-ae569b76] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.at-cur[data-v-ae569b76] {
  color: #4da3ff;
  font-weight: 400;
  font-size: 12px;
}
.at-tag[data-v-ae569b76] {
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 8px;
  border: 1px solid #333B58;
  color: #8899b4;
}
.at-roi[data-v-ae569b76] {
  font-size: 12px;
  font-weight: 700;
  color: #ff9547;
}
.at-detail[data-v-ae569b76] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
  transition: box-shadow 0.2s;
}
.at-detail.glow[data-v-ae569b76] {
  box-shadow: 0 0 18px rgba(22, 93, 255, 0.25) inset;
  border-radius: 8px;
}
.at-block[data-v-ae569b76] {
  margin-top: 12px;
}
.at-block[data-v-ae569b76]:first-child {
  margin-top: 0;
}
.at-block-head[data-v-ae569b76] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.at-block-title[data-v-ae569b76] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
}
.at-range-seg[data-v-ae569b76] {
  display: flex;
  gap: 4px;
}
.at-range-btn[data-v-ae569b76] {
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 6px;
  padding: 3px 10px;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.15s;
}
.at-range-btn.on[data-v-ae569b76] {
  background: #165DFF;
  border-color: #165DFF;
  color: #fff;
}
/* 图表容器：统一高度/圆角/边框/发光，两卡栅格等高对齐 */
.at-chart[data-v-ae569b76] {
  height: 260px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 10px;
  box-shadow: 0 0 16px rgba(22, 93, 255, 0.08);
}
.at-chart-row[data-v-ae569b76] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}
.at-chart-row .at-block[data-v-ae569b76] {
  margin-top: 0;
}
.at-block.flexcol[data-v-ae569b76] {
  display: flex;
  flex-direction: column;
}
.at-block.flexcol .at-block-title[data-v-ae569b76] {
  flex-shrink: 0;
}
.at-block.flexcol .at-chart[data-v-ae569b76] {
  flex: 1;
  min-height: 260px;
}
.at-actions[data-v-ae569b76] {
  flex-shrink: 0;
  display: flex;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
/* ④ 对比 */
.at-compare[data-v-ae569b76] {
  margin-top: 12px;
  padding: 20px;
}
.at-compare-head[data-v-ae569b76] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.at-compare-selects[data-v-ae569b76] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.at-input[data-v-ae569b76] {
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 12px;
  outline: none;
  height: 34px;
  max-width: 260px;
  transition: border-color 0.15s;
}
.at-input[data-v-ae569b76]:focus {
  border-color: #165DFF;
}
.at-input.on[data-v-ae569b76] {
  border-color: #165DFF;
  box-shadow: 0 0 0 1px rgba(22, 93, 255, 0.35);
}
.at-input option[data-v-ae569b76] {
  background: #171D36;
  color: #e0e6f0;
}
.at-vs[data-v-ae569b76] {
  color: #f7ba1e;
  font-weight: 700;
  font-size: 12px;
}
.at-compare-body[data-v-ae569b76] {
  margin-top: 14px;
}
.at-cmp-table[data-v-ae569b76] {
  border: 1px solid #2a3450;
  border-radius: 8px;
  overflow: hidden;
}
.at-cmp-row[data-v-ae569b76] {
  display: grid;
  grid-template-columns: 140px 1fr 1fr;
  font-size: 12px;
  color: #c0c8d8;
}
.at-cmp-row span[data-v-ae569b76] {
  padding: 8px 14px;
  border-bottom: 1px solid #1d2440;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.at-cmp-row span + span[data-v-ae569b76] {
  border-left: 1px solid #1d2440;
}
.at-cmp-head[data-v-ae569b76] {
  background: #0F1423;
  color: #8899b4;
  font-weight: 700;
}
.at-cmp-head span[data-v-ae569b76] {
  border-bottom: 1px solid #2a3450;
}
.at-cmp-label[data-v-ae569b76] {
  color: #8899b4;
}
.at-cmp-row:last-child span[data-v-ae569b76] {
  border-bottom: none;
}
.at-cmp-note[data-v-ae569b76] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 8px;
}
/* ⑤⑥ 悬浮 */
.at-float-r[data-v-ae569b76] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.at-float-l[data-v-ae569b76] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.at-float-btn[data-v-ae569b76] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.at-float-btn[data-v-ae569b76]:hover {
  background: #1E6BFF;
}
.at-float-btn.on[data-v-ae569b76] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.at-float-btn.ai[data-v-ae569b76] {
  background: rgba(247, 186, 30, 0.9);
}
.at-float-btn.ai[data-v-ae569b76]:hover {
  background: #f7ba1e;
}
.at-float-btn.ai.on[data-v-ae569b76] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.at-drawer[data-v-ae569b76] {
  position: absolute;
  bottom: 56px;
  width: 300px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.at-float-r .at-drawer[data-v-ae569b76] {
  right: 0;
}
.at-float-l .at-drawer[data-v-ae569b76] {
  left: 0;
}
.at-ai-drawer[data-v-ae569b76] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.at-drawer-head[data-v-ae569b76] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
}
.at-ai-drawer .at-drawer-head[data-v-ae569b76] {
  color: #f7ba1e;
}
.at-drawer-ops[data-v-ae569b76] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.at-drawer-toggle[data-v-ae569b76] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.at-ai-drawer .at-drawer-toggle[data-v-ae569b76] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.at-ai-body[data-v-ae569b76] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
}
.at-trend-list[data-v-ae569b76] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.at-trend-row[data-v-ae569b76] {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
  padding: 6px 8px;
  cursor: pointer;
  font-size: 11px;
  color: #c0c8d8;
}
.at-trend-row[data-v-ae569b76]:hover {
  border-color: #165DFF;
}
.at-trend-name[data-v-ae569b76] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.at-trend-ctr[data-v-ae569b76] {
  color: #36d399;
  font-weight: 700;
}
/* 空状态 */
.at-empty[data-v-ae569b76] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.at-empty.sm[data-v-ae569b76] {
  padding: 22px 0;
}
.at-empty-title[data-v-ae569b76] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.at-page[data-v-ae569b76] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.at-page[data-v-ae569b76] .el-button:last-child {
  margin-right: 0 !important;
}
.at-page[data-v-ae569b76] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.at-page[data-v-ae569b76] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.at-page[data-v-ae569b76] .el-button--primary:active {
  background: #1247DD !important;
}
.at-page[data-v-ae569b76] .el-button--primary.is-disabled, .at-page[data-v-ae569b76] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.at-page[data-v-ae569b76] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.at-page[data-v-ae569b76] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.at-page[data-v-ae569b76] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.at-page[data-v-ae569b76] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.at-page[data-v-ae569b76] .at-actions .el-button {
  margin-right: 0 !important;
}
/* 骨架 */
.at-skel[data-v-ae569b76] {
  pointer-events: none;
}
.at-sk[data-v-ae569b76] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: at-shimmer-ae569b76 1.2s infinite;
  margin-bottom: 8px;
}
.at-sk.w40[data-v-ae569b76] {
  width: 40%;
}
.at-sk.w70[data-v-ae569b76] {
  width: 70%;
}
.at-item-skel[data-v-ae569b76] {
  pointer-events: none;
  position: static;
  padding: 14px;
  margin-bottom: 8px;
}
@keyframes at-shimmer-ae569b76 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.at-kpis[data-v-ae569b76] {
    grid-template-columns: repeat(2, 1fr);
}
.at-main[data-v-ae569b76] {
    grid-template-columns: 1fr;
}
.at-drawer[data-v-ae569b76] {
    width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-7b79c091] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-7b79c091] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-7b79c091] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-7b79c091] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-7b79c091] { flex: 1; min-width: 0;
}
.hq-btn[data-v-7b79c091] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-7b79c091]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-7b79c091] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-7b79c091]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-7b79c091] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-7b79c091], .hq-select[data-v-7b79c091] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-7b79c091]:focus, .hq-select[data-v-7b79c091]:focus { border-color: #0066CC;
}
.hq-tag[data-v-7b79c091] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-7b79c091] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-7b79c091] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-7b79c091 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-7b79c091] { animation: hq-blink-7b79c091 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-7b79c091 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-7b79c091] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-7b79c091 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-7b79c091] { color: #0066CC;
}
.hq-ev-risk[data-v-7b79c091] { color: #f53f3f;
}
.hq-ev-agent[data-v-7b79c091] { color: #00b42a;
}
.hq-ev-strategy[data-v-7b79c091] { color: #722ed1;
}
.hq-ev-logistics[data-v-7b79c091] { color: #ff7d00;
}
.ra-page[data-v-7b79c091] {
  padding: 16px;
}
.ra-kpis[data-v-7b79c091] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.ra-kpi[data-v-7b79c091] {
  padding: 14px 16px;
}
.ra-kpi.clickable[data-v-7b79c091] {
  cursor: pointer;
  transition: border-color 0.15s;
}
.ra-kpi.clickable[data-v-7b79c091]:hover {
  border-color: #ff7d00;
}
.ra-kpi-num[data-v-7b79c091] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.ra-kpi-label[data-v-7b79c091] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.ra-count[data-v-7b79c091] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.ra-main[data-v-7b79c091] {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 12px;
  align-items: stretch;
}
.ra-left[data-v-7b79c091], .ra-right[data-v-7b79c091] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.ra-input[data-v-7b79c091] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.ra-input[data-v-7b79c091]:focus {
  border-color: #165DFF;
}
.ra-input option[data-v-7b79c091] {
  background: #171D36;
  color: #e0e6f0;
}
.ra-textarea[data-v-7b79c091] {
  height: auto;
  resize: vertical;
  font-family: inherit;
  line-height: 1.7;
}
.ra-filters[data-v-7b79c091] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
}
/* 左侧列表：仅本区域局部滚动 */
.ra-list[data-v-7b79c091] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 2px;
}
.ra-item[data-v-7b79c091] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.ra-item[data-v-7b79c091]:hover {
  border-color: #165DFF;
}
.ra-item.on[data-v-7b79c091] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.ra-item.urgent[data-v-7b79c091] {
  border-left: 3px solid #f53f3f;
}
.ra-item-head[data-v-7b79c091] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ra-item-title[data-v-7b79c091] {
  font-size: 13px;
  font-weight: 600;
  color: #e8ecf5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}
.ra-queue[data-v-7b79c091] {
  font-size: 10px;
  color: #8899b4;
  flex-shrink: 0;
}
.ra-queue.urgent[data-v-7b79c091] {
  color: #ff7a7a;
  font-weight: 700;
}
.ra-item-meta[data-v-7b79c091] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}
.ra-tag[data-v-7b79c091] {
  display: inline-block;
  font-size: 11px;
  border-radius: 4px;
  padding: 1px 8px;
  border: 1px solid;
  font-weight: 600;
}
.ra-item-type[data-v-7b79c091] {
  margin-left: auto;
  font-size: 11px;
  color: #5b6b8c;
}
.ra-left-foot[data-v-7b79c091] {
  flex-shrink: 0;
  margin-top: 10px;
}
/* 右侧详情 */
.ra-right-head[data-v-7b79c091] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.ra-cur[data-v-7b79c091] {
  color: #4da3ff;
  font-weight: 400;
  font-size: 12px;
}
.ra-detail[data-v-7b79c091] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.ra-block[data-v-7b79c091] {
  margin-top: 14px;
}
.ra-block[data-v-7b79c091]:first-child {
  margin-top: 0;
}
.ra-block-title[data-v-7b79c091] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-bottom: 8px;
}
.ra-block-title.sub[data-v-7b79c091] {
  margin-top: 10px;
  color: #8899b4;
}
.ra-info-grid[data-v-7b79c091] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 16px;
  font-size: 12px;
  color: #c0c8d8;
}
.ra-preview-box[data-v-7b79c091] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.8;
  color: #c0c8d8;
  white-space: pre-wrap;
  word-break: break-all;
}
.ra-detect-grid[data-v-7b79c091] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.ra-detect[data-v-7b79c091] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ra-detect.bad[data-v-7b79c091] {
  border-color: rgba(245, 63, 63, 0.5);
}
.ra-detect.ok[data-v-7b79c091] {
  border-color: rgba(0, 180, 42, 0.4);
}
.ra-detect-icon[data-v-7b79c091] {
  font-size: 16px;
}
.ra-detect-name[data-v-7b79c091] {
  font-size: 12px;
  color: #8899b4;
}
.ra-detect-result[data-v-7b79c091] {
  font-size: 11px;
  font-weight: 700;
}
.ra-hits[data-v-7b79c091] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ra-hit[data-v-7b79c091] {
  display: flex;
  gap: 10px;
  font-size: 12px;
  color: #c0c8d8;
  background: rgba(245, 63, 63, 0.06);
  border: 1px solid rgba(245, 63, 63, 0.25);
  border-radius: 6px;
  padding: 6px 10px;
  align-items: center;
}
.ra-hit-word[data-v-7b79c091] {
  color: #ff7a7a;
  font-weight: 700;
}
.ra-hit-sev[data-v-7b79c091] {
  margin-left: auto;
  font-weight: 700;
  font-size: 11px;
}
.ra-clean[data-v-7b79c091] {
  font-size: 12px;
  color: #36d399;
  padding: 6px 2px;
}
.ra-actions[data-v-7b79c091] {
  flex-shrink: 0;
  display: flex;
  gap: 12px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
/* ④ 规则配置 */
.ra-rules[data-v-7b79c091] {
  margin-top: 12px;
  padding: 20px;
}
.ra-rules-head[data-v-7b79c091] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.ra-rules-ops[data-v-7b79c091] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.ra-arrow[data-v-7b79c091] {
  color: #8899b4;
  font-size: 11px;
}
.ra-rules-body[data-v-7b79c091] {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ra-switch-item[data-v-7b79c091] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ra-switch-label[data-v-7b79c091] {
  font-size: 12px;
  color: #c0c8d8;
}
.ra-rules-row[data-v-7b79c091] {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.ra-rules-label[data-v-7b79c091] {
  font-size: 12px;
  color: #8899b4;
  flex-shrink: 0;
}
.ra-check[data-v-7b79c091] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #C9CDD4;
  cursor: pointer;
}
.ra-check input[data-v-7b79c091] {
  accent-color: #165DFF;
}
.ra-strategy[data-v-7b79c091] {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.ra-strategy-item[data-v-7b79c091] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ra-strategy-item .ra-input[data-v-7b79c091] {
  width: 150px;
  height: 32px;
  font-size: 12px;
}
.ra-strategy-name[data-v-7b79c091] {
  font-size: 12px;
  font-weight: 700;
}
/* ⑤⑥ 悬浮面板 */
.ra-float-r[data-v-7b79c091] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.ra-float-l[data-v-7b79c091] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.ra-float-btn[data-v-7b79c091] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.ra-float-btn[data-v-7b79c091]:hover {
  background: #1E6BFF;
}
.ra-float-btn.on[data-v-7b79c091] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.ra-float-btn.ai[data-v-7b79c091] {
  background: rgba(247, 186, 30, 0.9);
}
.ra-float-btn.ai[data-v-7b79c091]:hover {
  background: #f7ba1e;
}
.ra-float-btn.ai.on[data-v-7b79c091] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.ra-drawer[data-v-7b79c091] {
  position: absolute;
  bottom: 56px;
  width: 320px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.ra-float-r .ra-drawer[data-v-7b79c091] {
  right: 0;
}
.ra-float-l .ra-drawer[data-v-7b79c091] {
  left: 0;
}
.ra-ai-drawer[data-v-7b79c091] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.ra-drawer-head[data-v-7b79c091] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.ra-ai-drawer .ra-drawer-head[data-v-7b79c091] {
  color: #f7ba1e;
}
.ra-drawer-ops[data-v-7b79c091] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.ra-drawer-toggle[data-v-7b79c091] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.ra-ai-drawer .ra-drawer-toggle[data-v-7b79c091] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.ra-ai-body[data-v-7b79c091] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
  max-height: 220px;
  overflow-y: auto;
}
.ra-stat-grid[data-v-7b79c091] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.ra-stat[data-v-7b79c091] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.ra-stat-num[data-v-7b79c091] {
  font-size: 18px;
  font-weight: 700;
}
.ra-stat-lbl[data-v-7b79c091] {
  font-size: 10px;
  color: #8899b4;
  margin-top: 2px;
}
.ra-drawer-foot[data-v-7b79c091] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.ra-fullstat[data-v-7b79c091] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ra-fullstat-row[data-v-7b79c091] {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #c0c8d8;
  padding: 8px 12px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
}
.ra-fullstat-row b[data-v-7b79c091] {
  color: #e8ecf5;
}
.ra-fullstat-note[data-v-7b79c091] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 4px;
}
/* 空状态 */
.ra-empty[data-v-7b79c091] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.ra-empty.sm[data-v-7b79c091] {
  padding: 28px 0;
}
.ra-empty-title[data-v-7b79c091] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.ra-page[data-v-7b79c091] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.ra-page[data-v-7b79c091] .el-button:last-child {
  margin-right: 0 !important;
}
.ra-page[data-v-7b79c091] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.ra-page[data-v-7b79c091] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.ra-page[data-v-7b79c091] .el-button--primary:active {
  background: #1247DD !important;
}
.ra-page[data-v-7b79c091] .el-button--primary.is-disabled, .ra-page[data-v-7b79c091] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.ra-page[data-v-7b79c091] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.ra-page[data-v-7b79c091] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.ra-page[data-v-7b79c091] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.ra-page[data-v-7b79c091] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.ra-page[data-v-7b79c091] .ra-actions .el-button, .ra-page[data-v-7b79c091] .ra-left-foot .el-button {
  margin-right: 0 !important;
}
/* switch */
.ra-page[data-v-7b79c091] .el-switch.is-checked .el-switch__core {
  background: #165DFF;
  border-color: #165DFF;
}
.ra-page[data-v-7b79c091] .el-switch__core {
  background: #333B58;
  border-color: #333B58;
}
/* dialog 定位 */
.ra-page[data-v-7b79c091] .el-overlay-dialog {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}
.ra-page[data-v-7b79c091] .el-dialog {
  position: relative;
  width: var(--el-dialog-width, 50%);
  margin: 15vh auto 50px;
  box-sizing: border-box;
  max-width: calc(100% - 32px);
  background: #171D36;
  border: 1px solid #2a3450;
}
.ra-page[data-v-7b79c091] .el-dialog__title {
  color: #e8ecf5;
}
.ra-page[data-v-7b79c091] .el-dialog__headerbtn .el-dialog__close {
  color: #8899b4;
}
/* 骨架 */
.ra-skel[data-v-7b79c091] {
  pointer-events: none;
}
.ra-sk[data-v-7b79c091] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: ra-shimmer-7b79c091 1.2s infinite;
  margin-bottom: 8px;
}
.ra-sk.w40[data-v-7b79c091] {
  width: 40%;
}
.ra-sk.w60[data-v-7b79c091] {
  width: 60%;
}
.ra-sk.w70[data-v-7b79c091] {
  width: 70%;
}
.ra-item-skel[data-v-7b79c091] {
  pointer-events: none;
  padding: 14px;
}
@keyframes ra-shimmer-7b79c091 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.ra-kpis[data-v-7b79c091] {
    grid-template-columns: repeat(2, 1fr);
}
.ra-main[data-v-7b79c091] {
    grid-template-columns: 1fr;
}
.ra-drawer[data-v-7b79c091] {
    width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-9aad26e4] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-9aad26e4] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-9aad26e4] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-9aad26e4] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-9aad26e4] { flex: 1; min-width: 0;
}
.hq-btn[data-v-9aad26e4] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-9aad26e4]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-9aad26e4] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-9aad26e4]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-9aad26e4] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-9aad26e4], .hq-select[data-v-9aad26e4] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-9aad26e4]:focus, .hq-select[data-v-9aad26e4]:focus { border-color: #0066CC;
}
.hq-tag[data-v-9aad26e4] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-9aad26e4] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-9aad26e4] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-9aad26e4 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-9aad26e4] { animation: hq-blink-9aad26e4 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-9aad26e4 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-9aad26e4] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-9aad26e4 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-9aad26e4] { color: #0066CC;
}
.hq-ev-risk[data-v-9aad26e4] { color: #f53f3f;
}
.hq-ev-agent[data-v-9aad26e4] { color: #00b42a;
}
.hq-ev-strategy[data-v-9aad26e4] { color: #722ed1;
}
.hq-ev-logistics[data-v-9aad26e4] { color: #ff7d00;
}
.de-page[data-v-9aad26e4] {
  padding: 16px;
}
.de-kpis[data-v-9aad26e4] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.de-kpi[data-v-9aad26e4] {
  padding: 14px 16px;
}
.de-kpi.clickable[data-v-9aad26e4] {
  cursor: pointer;
  transition: border-color 0.15s;
}
.de-kpi.clickable[data-v-9aad26e4]:hover {
  border-color: #00b42a;
}
.de-kpi-num[data-v-9aad26e4] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.de-kpi-gain[data-v-9aad26e4] {
  display: inline-block;
  margin-left: 8px;
  font-size: 11px;
  font-weight: 700;
  color: #36d399;
  background: rgba(0, 180, 42, 0.14);
  border: 1px solid rgba(0, 180, 42, 0.45);
  border-radius: 999px;
  padding: 1px 8px;
  vertical-align: middle;
  animation: de-pop-9aad26e4 0.3s ease-out;
}
@keyframes de-pop-9aad26e4 {
0% {
    transform: scale(0.6);
    opacity: 0;
}
100% {
    transform: scale(1);
    opacity: 1;
}
}
.de-kpi-label[data-v-9aad26e4] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.de-main[data-v-9aad26e4] {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 12px;
  align-items: stretch;
}
.de-left[data-v-9aad26e4], .de-right[data-v-9aad26e4] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.de-form[data-v-9aad26e4] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.de-group-title[data-v-9aad26e4] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin: 14px 0 8px;
  padding-top: 10px;
  border-top: 1px solid #2a3450;
}
.de-group-title[data-v-9aad26e4]:first-child {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
.de-input[data-v-9aad26e4] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.de-input[data-v-9aad26e4]:focus {
  border-color: #165DFF;
}
.de-input option[data-v-9aad26e4] {
  background: #171D36;
  color: #e0e6f0;
}
.de-label[data-v-9aad26e4] {
  display: block;
  font-size: 12px;
  color: #8899b4;
  margin: 10px 0 4px;
}
.de-label.sm[data-v-9aad26e4] {
  margin-top: 0;
}
.de-filters[data-v-9aad26e4] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.de-content-list[data-v-9aad26e4] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 180px;
  overflow-y: auto;
  margin-top: 8px;
}
.de-content[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.de-content.on[data-v-9aad26e4] {
  border-color: #165DFF;
  color: #4da3ff;
}
.de-content input[data-v-9aad26e4] {
  accent-color: #165DFF;
}
.de-content-title[data-v-9aad26e4] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.de-content-meta[data-v-9aad26e4] {
  font-size: 10px;
  color: #5b6b8c;
}
.de-channel-grid[data-v-9aad26e4] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.de-channel[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: border-color 0.15s;
  flex-wrap: wrap;
}
.de-channel.on[data-v-9aad26e4] {
  border-color: #165DFF;
}
.de-channel.disabled[data-v-9aad26e4] {
  opacity: 0.55;
  cursor: not-allowed;
}
.de-channel input[data-v-9aad26e4] {
  accent-color: #165DFF;
}
.de-channel-name[data-v-9aad26e4] {
  flex: 1;
}
.de-auth-tag[data-v-9aad26e4] {
  display: inline-block;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 7px;
  border: 1px solid;
  font-weight: 600;
}
.de-grid2[data-v-9aad26e4] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 10px;
}
.de-btn-row[data-v-9aad26e4] {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
/* 右侧 */
.de-right-head[data-v-9aad26e4] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.de-badge[data-v-9aad26e4] {
  font-size: 11px;
  color: #4da3ff;
  border: 1px solid rgba(22, 93, 255, 0.4);
  background: rgba(22, 93, 255, 0.1);
  border-radius: 999px;
  padding: 2px 10px;
  animation: de-pulse-9aad26e4 1.2s infinite;
}
@keyframes de-pulse-9aad26e4 {
0%, 100% {
    opacity: 1;
}
50% {
    opacity: 0.5;
}
}
.de-result-sum[data-v-9aad26e4] {
  font-size: 12px;
  color: #8899b4;
}
.de-body[data-v-9aad26e4] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.de-progress[data-v-9aad26e4] {
  padding: 24px 20px 10px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}
.de-progress-bar[data-v-9aad26e4] {
  width: min(520px, 100%);
  display: flex;
  align-items: center;
  gap: 12px;
}
.de-progress-bar .el-progress[data-v-9aad26e4] {
  flex: 1;
}
.de-eta[data-v-9aad26e4] {
  font-size: 13px;
  color: #4da3ff;
  min-width: 40px;
  text-align: right;
}
.de-hint[data-v-9aad26e4] {
  font-size: 12px;
  color: #5b6b8c;
}
.de-result-list[data-v-9aad26e4] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.de-result-row[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 12px;
}
.de-result-row.st-ok[data-v-9aad26e4] {
  border-left: 3px solid #00b42a;
}
.de-result-row.st-fail[data-v-9aad26e4] {
  border-left: 3px solid #f53f3f;
}
.de-result-row.st-doing[data-v-9aad26e4] {
  border-left: 3px solid #165DFF;
}
.de-row-icon[data-v-9aad26e4] {
  font-size: 15px;
}
.de-row-name[data-v-9aad26e4] {
  font-weight: 600;
  color: #e8ecf5;
  min-width: 110px;
}
.de-status-tag[data-v-9aad26e4] {
  display: inline-block;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 8px;
  border: 1px solid;
  font-weight: 600;
}
.de-row-cost[data-v-9aad26e4] {
  color: #8899b4;
  min-width: 44px;
}
.de-row-reason[data-v-9aad26e4] {
  flex: 1;
  color: #ff9a9a;
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.de-row-ops[data-v-9aad26e4] {
  display: flex;
}
.de-actions[data-v-9aad26e4] {
  flex-shrink: 0;
  display: flex;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
/* ④ 历史 */
.de-history[data-v-9aad26e4] {
  margin-top: 12px;
  padding: 20px;
}
.de-hist-head[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.de-hist-ops[data-v-9aad26e4] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.de-arrow[data-v-9aad26e4] {
  color: #8899b4;
  font-size: 11px;
}
/* ⑤⑥ 悬浮面板 */
.de-float-r[data-v-9aad26e4] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.de-float-l[data-v-9aad26e4] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.de-float-btn[data-v-9aad26e4] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
  animation: de-attention-9aad26e4 2.6s ease-out infinite;
}
.de-float-btn[data-v-9aad26e4]:hover {
  background: #1E6BFF;
}
.de-float-btn.on[data-v-9aad26e4] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
  animation: none;
}
.de-float-btn.ai[data-v-9aad26e4] {
  background: rgba(247, 186, 30, 0.9);
  animation-name: de-attention-ai-9aad26e4;
}
.de-float-btn.ai[data-v-9aad26e4]:hover {
  background: #f7ba1e;
}
.de-float-btn.ai.on[data-v-9aad26e4] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
  animation: none;
}
@keyframes de-attention-9aad26e4 {
0%, 100% {
    box-shadow: 0 0 0 0 rgba(22, 93, 255, 0.45);
}
55% {
    box-shadow: 0 0 0 9px rgba(22, 93, 255, 0);
}
}
@keyframes de-attention-ai-9aad26e4 {
0%, 100% {
    box-shadow: 0 0 0 0 rgba(247, 186, 30, 0.45);
}
55% {
    box-shadow: 0 0 0 9px rgba(247, 186, 30, 0);
}
}
.de-drawer[data-v-9aad26e4] {
  position: absolute;
  bottom: 56px;
  width: 320px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.de-float-r .de-drawer[data-v-9aad26e4] {
  right: 0;
}
.de-float-l .de-drawer[data-v-9aad26e4] {
  left: 0;
}
.de-ai-drawer[data-v-9aad26e4] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.de-drawer-head[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.de-ai-drawer .de-drawer-head[data-v-9aad26e4] {
  color: #f7ba1e;
}
.de-drawer-ops[data-v-9aad26e4] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.de-drawer-toggle[data-v-9aad26e4] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.de-ai-drawer .de-drawer-toggle[data-v-9aad26e4] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.de-ai-body[data-v-9aad26e4] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
  max-height: 220px;
  overflow-y: auto;
}
.de-ch-list[data-v-9aad26e4] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 300px;
  overflow-y: auto;
}
.de-ch-row[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #c0c8d8;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 7px 10px;
}
.de-ch-row.custom[data-v-9aad26e4] {
  border-color: rgba(22, 93, 255, 0.45);
}
.de-ch-icon[data-v-9aad26e4] {
  font-size: 14px;
  flex-shrink: 0;
}
.de-ch-name[data-v-9aad26e4] {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.de-ch-health[data-v-9aad26e4] {
  font-weight: 700;
  min-width: 38px;
  text-align: right;
}
.de-ch-del[data-v-9aad26e4] {
  background: transparent;
  border: 1px solid rgba(245, 63, 63, 0.45);
  color: #ff7a7a;
  border-radius: 5px;
  width: 24px;
  height: 24px;
  font-size: 12px;
  cursor: pointer;
  flex-shrink: 0;
}
.de-ch-del[data-v-9aad26e4]:hover {
  background: rgba(245, 63, 63, 0.15);
}
.de-drawer-foot[data-v-9aad26e4] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
/* 自定义平台：网格追加渲染 */
.de-channel.custom[data-v-9aad26e4] {
  border-color: rgba(22, 93, 255, 0.4);
}
.de-channel-icon[data-v-9aad26e4] {
  font-size: 13px;
  flex-shrink: 0;
}
.de-upload[data-v-9aad26e4] {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #0F1423;
  border: 1px dashed #333B58;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.de-upload[data-v-9aad26e4]:hover {
  border-color: #165DFF;
}
.de-upload-icon[data-v-9aad26e4] {
  font-size: 18px;
}
.de-upload-text[data-v-9aad26e4] {
  font-size: 11px;
  color: #8899b4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 弹窗详情 */
.de-detail[data-v-9aad26e4] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.de-detail-row[data-v-9aad26e4] {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #c0c8d8;
  padding: 8px 12px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
}
.de-detail-row span[data-v-9aad26e4] {
  color: #8899b4;
}
.de-detail-row b[data-v-9aad26e4] {
  color: #e8ecf5;
}
.de-detail-note[data-v-9aad26e4] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 6px;
}
/* 空状态 */
.de-empty[data-v-9aad26e4] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
}
.de-empty.sm[data-v-9aad26e4] {
  padding: 22px 0;
}
/* 按钮严款 */
.de-page[data-v-9aad26e4] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.de-page[data-v-9aad26e4] .el-button:last-child {
  margin-right: 0 !important;
}
.de-page[data-v-9aad26e4] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.de-page[data-v-9aad26e4] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.de-page[data-v-9aad26e4] .el-button--primary:active {
  background: #1247DD !important;
}
.de-page[data-v-9aad26e4] .el-button--primary.is-disabled, .de-page[data-v-9aad26e4] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.de-page[data-v-9aad26e4] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.de-page[data-v-9aad26e4] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.de-page[data-v-9aad26e4] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.de-page[data-v-9aad26e4] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.de-page[data-v-9aad26e4] .de-btn-row .el-button, .de-page[data-v-9aad26e4] .de-actions .el-button {
  margin-right: 0 !important;
}
/* dialog 定位 */
.de-page[data-v-9aad26e4] .el-overlay-dialog {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}
.de-page[data-v-9aad26e4] .el-dialog {
  position: relative;
  width: var(--el-dialog-width, 50%);
  margin: 15vh auto 50px;
  box-sizing: border-box;
  max-width: calc(100% - 32px);
  background: #171D36;
  border: 1px solid #2a3450;
}
.de-page[data-v-9aad26e4] .el-dialog__title {
  color: #e8ecf5;
}
.de-page[data-v-9aad26e4] .el-dialog__headerbtn .el-dialog__close {
  color: #8899b4;
}
/* 骨架 */
.de-skel[data-v-9aad26e4] {
  pointer-events: none;
}
.de-sk[data-v-9aad26e4] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: de-shimmer-9aad26e4 1.2s infinite;
  margin-bottom: 8px;
}
.de-sk.w30[data-v-9aad26e4] {
  width: 30%;
}
.de-sk.w40[data-v-9aad26e4] {
  width: 40%;
}
.de-sk.w50[data-v-9aad26e4] {
  width: 50%;
}
.de-sk.w70[data-v-9aad26e4] {
  width: 70%;
}
.de-row-skel[data-v-9aad26e4] {
  pointer-events: none;
  padding: 14px;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
@keyframes de-shimmer-9aad26e4 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.de-kpis[data-v-9aad26e4] {
    grid-template-columns: repeat(2, 1fr);
}
.de-main[data-v-9aad26e4] {
    grid-template-columns: 1fr;
}
.de-drawer[data-v-9aad26e4] {
    width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-db31fa15] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-db31fa15] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-db31fa15] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-db31fa15] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-db31fa15] { flex: 1; min-width: 0;
}
.hq-btn[data-v-db31fa15] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-db31fa15]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-db31fa15] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-db31fa15]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-db31fa15] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-db31fa15], .hq-select[data-v-db31fa15] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-db31fa15]:focus, .hq-select[data-v-db31fa15]:focus { border-color: #0066CC;
}
.hq-tag[data-v-db31fa15] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-db31fa15] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-db31fa15] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-db31fa15 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-db31fa15] { animation: hq-blink-db31fa15 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-db31fa15 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-db31fa15] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-db31fa15 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-db31fa15] { color: #0066CC;
}
.hq-ev-risk[data-v-db31fa15] { color: #f53f3f;
}
.hq-ev-agent[data-v-db31fa15] { color: #00b42a;
}
.hq-ev-strategy[data-v-db31fa15] { color: #722ed1;
}
.hq-ev-logistics[data-v-db31fa15] { color: #ff7d00;
}
.cs-page[data-v-db31fa15] {
  padding: 16px;
}
.cs-kpis[data-v-db31fa15] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.cs-kpi[data-v-db31fa15] {
  padding: 14px 16px;
}
.cs-kpi.clickable[data-v-db31fa15] {
  cursor: pointer;
  transition: border-color 0.15s;
}
.cs-kpi.clickable[data-v-db31fa15]:hover {
  border-color: #f7ba1e;
}
.cs-kpi-num[data-v-db31fa15] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.cs-kpi-label[data-v-db31fa15] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.cs-count[data-v-db31fa15] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.cs-main[data-v-db31fa15] {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 12px;
  align-items: stretch;
}
.cs-left[data-v-db31fa15], .cs-right[data-v-db31fa15] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.cs-input[data-v-db31fa15] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.cs-input[data-v-db31fa15]:focus {
  border-color: #165DFF;
}
.cs-input option[data-v-db31fa15] {
  background: #171D36;
  color: #e0e6f0;
}
.cs-filter[data-v-db31fa15] {
  margin-top: 8px;
}
.cs-list[data-v-db31fa15] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 2px;
}
.cs-item[data-v-db31fa15] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.cs-item[data-v-db31fa15]:hover {
  border-color: #165DFF;
}
.cs-item.on[data-v-db31fa15] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.cs-item-head[data-v-db31fa15] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cs-item-icon[data-v-db31fa15] {
  font-size: 14px;
}
.cs-item-custom[data-v-db31fa15] {
  font-size: 13px;
  flex-shrink: 0;
}
.cs-custom-badge[data-v-db31fa15] {
  flex-shrink: 0;
  font-size: 9px;
  color: #4da3ff;
  border: 1px solid rgba(22, 93, 255, 0.45);
  border-radius: 4px;
  padding: 0 4px;
}
.cs-item-name[data-v-db31fa15] {
  font-size: 13px;
  font-weight: 600;
  color: #e8ecf5;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cs-status-tag[data-v-db31fa15] {
  display: inline-block;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 8px;
  border: 1px solid;
  font-weight: 600;
}
.cs-item-meta[data-v-db31fa15] {
  display: flex;
  gap: 14px;
  margin-top: 8px;
  font-size: 11px;
  color: #8899b4;
}
.cs-auth[data-v-db31fa15] {
  margin-left: auto;
}
.cs-item-ops[data-v-db31fa15] {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid #1d2440;
}
/* 右侧 */
.cs-right-head[data-v-db31fa15] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cs-cur[data-v-db31fa15] {
  color: #4da3ff;
  font-weight: 400;
  font-size: 12px;
}
.cs-detail[data-v-db31fa15] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.cs-block[data-v-db31fa15] {
  margin-top: 14px;
}
.cs-block[data-v-db31fa15]:first-child {
  margin-top: 0;
}
.cs-block-title[data-v-db31fa15] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-bottom: 8px;
}
.cs-info-grid[data-v-db31fa15] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 16px;
  font-size: 12px;
  color: #c0c8d8;
}
.cs-info-grid b[data-v-db31fa15] {
  color: #e8ecf5;
}
.cs-progress[data-v-db31fa15] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cs-progress .el-progress[data-v-db31fa15] {
  flex: 1;
}
.cs-eta[data-v-db31fa15] {
  font-size: 13px;
  color: #4da3ff;
  min-width: 40px;
  text-align: right;
}
.cs-hint[data-v-db31fa15] {
  font-size: 12px;
  color: #5b6b8c;
  margin-top: 6px;
}
.cs-records[data-v-db31fa15] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cs-record[data-v-db31fa15] {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 12px;
  color: #c0c8d8;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
  padding: 6px 10px;
}
.cs-record-icon[data-v-db31fa15] {
  font-size: 13px;
}
.cs-record-time[data-v-db31fa15] {
  color: #8899b4;
  flex-shrink: 0;
}
.cs-clean[data-v-db31fa15] {
  font-size: 12px;
  color: #36d399;
  padding: 6px 2px;
}
.cs-conflict-alert[data-v-db31fa15] {
  background: rgba(247, 186, 30, 0.08);
  border: 1px solid rgba(247, 186, 30, 0.4);
  border-radius: 8px;
  padding: 12px 14px;
}
.cs-conflict-text[data-v-db31fa15] {
  font-size: 12px;
  color: #f7ba1e;
  margin-bottom: 8px;
  font-weight: 600;
}
.cs-conflict-row[data-v-db31fa15] {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: #c0c8d8;
  padding: 5px 0;
}
.cs-conflict-name[data-v-db31fa15] {
  flex: 1;
}
.cs-conflict-ver[data-v-db31fa15] {
  color: #8899b4;
}
.cs-conflict-ops[data-v-db31fa15] {
  display: flex;
  gap: 12px;
  margin-top: 10px;
  flex-wrap: wrap;
}
/* ④ 规则配置 */
.cs-rules[data-v-db31fa15] {
  margin-top: 12px;
  padding: 20px;
}
.cs-rules-head[data-v-db31fa15] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.cs-rules-ops[data-v-db31fa15] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.cs-arrow[data-v-db31fa15] {
  color: #8899b4;
  font-size: 11px;
}
.cs-rules-body[data-v-db31fa15] {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cs-rules-row[data-v-db31fa15] {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.cs-rules-label[data-v-db31fa15] {
  font-size: 12px;
  color: #8899b4;
  flex-shrink: 0;
}
.cs-inline[data-v-db31fa15] {
  width: 160px;
  height: 32px;
  font-size: 12px;
}
.cs-check[data-v-db31fa15] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #C9CDD4;
  cursor: pointer;
}
.cs-check input[data-v-db31fa15] {
  accent-color: #165DFF;
}
.cs-priority[data-v-db31fa15] {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.cs-priority-item[data-v-db31fa15] {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  color: #c0c8d8;
}
.cs-priority-idx[data-v-db31fa15] {
  color: #4da3ff;
  font-weight: 700;
}
.cs-priority-btn[data-v-db31fa15] {
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 4px;
  width: 22px;
  height: 22px;
  cursor: pointer;
  font-size: 11px;
}
.cs-priority-btn[data-v-db31fa15]:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
/* ⑤⑥ 悬浮面板 */
.cs-float-r[data-v-db31fa15] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.cs-float-l[data-v-db31fa15] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.cs-float-btn[data-v-db31fa15] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.cs-float-btn[data-v-db31fa15]:hover {
  background: #1E6BFF;
}
.cs-float-btn.on[data-v-db31fa15] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.cs-float-btn.ai[data-v-db31fa15] {
  background: rgba(247, 186, 30, 0.9);
}
.cs-float-btn.ai[data-v-db31fa15]:hover {
  background: #f7ba1e;
}
.cs-float-btn.ai.on[data-v-db31fa15] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.cs-drawer[data-v-db31fa15] {
  position: absolute;
  bottom: 56px;
  width: 320px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.cs-float-r .cs-drawer[data-v-db31fa15] {
  right: 0;
}
.cs-float-l .cs-drawer[data-v-db31fa15] {
  left: 0;
}
.cs-ai-drawer[data-v-db31fa15] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.cs-drawer-head[data-v-db31fa15] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.cs-ai-drawer .cs-drawer-head[data-v-db31fa15] {
  color: #f7ba1e;
}
.cs-drawer-ops[data-v-db31fa15] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.cs-drawer-toggle[data-v-db31fa15] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.cs-ai-drawer .cs-drawer-toggle[data-v-db31fa15] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.cs-ai-body[data-v-db31fa15] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
  max-height: 220px;
  overflow-y: auto;
}
.cs-mon-list[data-v-db31fa15] {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 220px;
  overflow-y: auto;
}
.cs-mon-row[data-v-db31fa15] {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 11px;
  color: #c0c8d8;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
  padding: 6px 8px;
}
.cs-mon-text[data-v-db31fa15] {
  flex: 1;
}
.cs-mon-time[data-v-db31fa15] {
  color: #5b6b8c;
}
.cs-drawer-foot[data-v-db31fa15] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.cs-cf-detail[data-v-db31fa15] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 10px;
}
.cs-cf-title[data-v-db31fa15] {
  font-size: 13px;
  font-weight: 700;
  color: #e8ecf5;
  margin-bottom: 6px;
}
.cs-cf-ver[data-v-db31fa15] {
  font-size: 12px;
  color: #c0c8d8;
  padding: 2px 0;
}
/* 冲突处理弹窗 */
.cs-strategy-block[data-v-db31fa15] {
  margin-top: 12px;
}
.cs-strategy-label[data-v-db31fa15] {
  font-size: 12px;
  color: #8899b4;
  margin-bottom: 8px;
}
.cs-strategy-opts[data-v-db31fa15] {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.cs-strategy-opt[data-v-db31fa15] {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 8px;
  padding: 8px 14px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.15s;
}
.cs-strategy-opt.on[data-v-db31fa15] {
  border-color: #165DFF;
  color: #4da3ff;
  background: rgba(22, 93, 255, 0.1);
}
.cs-strategy-opt input[data-v-db31fa15] {
  accent-color: #165DFF;
}
.cs-strategy-note[data-v-db31fa15] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 10px;
}
/* 空状态 */
.cs-empty[data-v-db31fa15] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.cs-empty.sm[data-v-db31fa15] {
  padding: 28px 0;
}
.cs-empty-title[data-v-db31fa15] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.cs-page[data-v-db31fa15] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.cs-page[data-v-db31fa15] .el-button:last-child {
  margin-right: 0 !important;
}
.cs-page[data-v-db31fa15] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.cs-page[data-v-db31fa15] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.cs-page[data-v-db31fa15] .el-button--primary:active {
  background: #1247DD !important;
}
.cs-page[data-v-db31fa15] .el-button--primary.is-disabled, .cs-page[data-v-db31fa15] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.cs-page[data-v-db31fa15] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.cs-page[data-v-db31fa15] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.cs-page[data-v-db31fa15] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.cs-page[data-v-db31fa15] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.cs-page[data-v-db31fa15] .cs-conflict-ops .el-button {
  margin-right: 0 !important;
}
/* dialog 定位 */
.cs-page[data-v-db31fa15] .el-overlay-dialog {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}
.cs-page[data-v-db31fa15] .el-dialog {
  position: relative;
  width: var(--el-dialog-width, 50%);
  margin: 15vh auto 50px;
  box-sizing: border-box;
  max-width: calc(100% - 32px);
  background: #171D36;
  border: 1px solid #2a3450;
}
.cs-page[data-v-db31fa15] .el-dialog__title {
  color: #e8ecf5;
}
.cs-page[data-v-db31fa15] .el-dialog__headerbtn .el-dialog__close {
  color: #8899b4;
}
/* 骨架 */
.cs-skel[data-v-db31fa15] {
  pointer-events: none;
}
.cs-sk[data-v-db31fa15] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: cs-shimmer-db31fa15 1.2s infinite;
  margin-bottom: 8px;
}
.cs-sk.w40[data-v-db31fa15] {
  width: 40%;
}
.cs-sk.w60[data-v-db31fa15] {
  width: 60%;
}
.cs-sk.w70[data-v-db31fa15] {
  width: 70%;
}
.cs-item-skel[data-v-db31fa15] {
  pointer-events: none;
  padding: 14px;
}
@keyframes cs-shimmer-db31fa15 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.cs-kpis[data-v-db31fa15] {
    grid-template-columns: repeat(2, 1fr);
}
.cs-main[data-v-db31fa15] {
    grid-template-columns: 1fr;
}
.cs-drawer[data-v-db31fa15] {
    width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-2a3ec26a] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-2a3ec26a] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-2a3ec26a] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-2a3ec26a] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-2a3ec26a] { flex: 1; min-width: 0;
}
.hq-btn[data-v-2a3ec26a] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-2a3ec26a]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-2a3ec26a] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-2a3ec26a]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-2a3ec26a] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-2a3ec26a], .hq-select[data-v-2a3ec26a] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-2a3ec26a]:focus, .hq-select[data-v-2a3ec26a]:focus { border-color: #0066CC;
}
.hq-tag[data-v-2a3ec26a] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-2a3ec26a] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-2a3ec26a] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-2a3ec26a {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-2a3ec26a] { animation: hq-blink-2a3ec26a 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-2a3ec26a {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-2a3ec26a] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-2a3ec26a 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-2a3ec26a] { color: #0066CC;
}
.hq-ev-risk[data-v-2a3ec26a] { color: #f53f3f;
}
.hq-ev-agent[data-v-2a3ec26a] { color: #00b42a;
}
.hq-ev-strategy[data-v-2a3ec26a] { color: #722ed1;
}
.hq-ev-logistics[data-v-2a3ec26a] { color: #ff7d00;
}
.sc-page[data-v-2a3ec26a] {
  padding: 16px;
}
.sc-kpis[data-v-2a3ec26a] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.sc-kpi[data-v-2a3ec26a] {
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.2s;
}
.sc-kpi[data-v-2a3ec26a]:hover {
  border-color: #165DFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(22, 93, 255, 0.18);
}
.sc-kpi.on[data-v-2a3ec26a] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.sc-kpi-num[data-v-2a3ec26a] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.sc-kpi-label[data-v-2a3ec26a] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.sc-count[data-v-2a3ec26a] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.sc-main[data-v-2a3ec26a] {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 12px;
  align-items: stretch;
}
.sc-left[data-v-2a3ec26a], .sc-right[data-v-2a3ec26a] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.sc-input[data-v-2a3ec26a] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.sc-input[data-v-2a3ec26a]:focus {
  border-color: #165DFF;
}
.sc-input option[data-v-2a3ec26a] {
  background: #171D36;
  color: #e0e6f0;
}
.sc-filter[data-v-2a3ec26a] {
  margin-top: 8px;
}
.sc-scroll[data-v-2a3ec26a] {
  flex: 1;
  min-height: 0;
  max-height: 560px;
  overflow-y: auto;
  margin-top: 10px;
  padding-right: 2px;
}
.sc-list[data-v-2a3ec26a] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sc-item[data-v-2a3ec26a] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.sc-item[data-v-2a3ec26a]:hover {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.06);
}
.sc-item.on[data-v-2a3ec26a] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.1);
}
.sc-item-head[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sc-item-cover[data-v-2a3ec26a] {
  font-size: 15px;
}
.sc-item-name[data-v-2a3ec26a] {
  flex: 1;
  font-size: 13px;
  font-weight: 600;
  color: #e8ecf5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sc-score-badge[data-v-2a3ec26a] {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
}
.sc-item-meta[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
.sc-tag[data-v-2a3ec26a] {
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 7px;
  border: 1px solid #333B58;
  color: #8899b4;
}
.sc-item-src[data-v-2a3ec26a] {
  margin-left: auto;
  font-size: 11px;
  color: #5b6b8c;
}
.sc-list-pager[data-v-2a3ec26a] {
  display: flex;
  justify-content: center;
  padding: 12px 0 4px;
}
.sc-page[data-v-2a3ec26a] .sc-list-pager .el-pagination {
  --el-pagination-bg-color: transparent;
}
.sc-page[data-v-2a3ec26a] .sc-list-pager .el-pager {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 4px;
  margin: 0 6px;
  padding: 0;
  list-style: none;
}
.sc-page[data-v-2a3ec26a] .sc-list-pager .el-pager li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  line-height: 1;
  margin: 0;
  padding: 0 6px;
  box-sizing: border-box;
}
.sc-page[data-v-2a3ec26a] .sc-list-pager .el-pager li.is-active {
  background: #165DFF !important;
  color: #fff !important;
  border-color: #165DFF;
}
.sc-page[data-v-2a3ec26a] .sc-list-pager .btn-prev, .sc-page[data-v-2a3ec26a] .sc-list-pager .btn-next {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  margin: 0;
  box-sizing: border-box;
}
.sc-page[data-v-2a3ec26a] .sc-list-pager .btn-prev:disabled, .sc-page[data-v-2a3ec26a] .sc-list-pager .btn-next:disabled {
  background: transparent !important;
  color: #5b6b8c !important;
  border-color: #2a3450;
}
/* 右侧 */
.sc-right-head[data-v-2a3ec26a] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.sc-cur[data-v-2a3ec26a] {
  color: #4da3ff;
  font-weight: 400;
  font-size: 12px;
}
.sc-score-box[data-v-2a3ec26a] {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.sc-score-big[data-v-2a3ec26a] {
  font-size: 30px;
  font-weight: 800;
}
.sc-score-star[data-v-2a3ec26a] {
  font-size: 12px;
  color: #f7ba1e;
}
.sc-detail[data-v-2a3ec26a] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.sc-block[data-v-2a3ec26a] {
  margin-top: 12px;
}
.sc-block[data-v-2a3ec26a]:first-child {
  margin-top: 0;
}
.sc-block-title[data-v-2a3ec26a] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-bottom: 8px;
}
.sc-info-grid[data-v-2a3ec26a] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 16px;
  font-size: 12px;
  color: #c0c8d8;
}
.sc-chart-row[data-v-2a3ec26a] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}
.sc-chart-row .sc-block[data-v-2a3ec26a] {
  margin-top: 0;
}
.sc-block.flexcol[data-v-2a3ec26a] {
  display: flex;
  flex-direction: column;
}
.sc-block.flexcol .sc-block-title[data-v-2a3ec26a] {
  flex-shrink: 0;
}
.sc-chart[data-v-2a3ec26a] {
  flex: 1;
  min-height: 260px;
  height: 260px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 10px;
  box-shadow: 0 0 16px rgba(22, 93, 255, 0.08);
}
.sc-rings[data-v-2a3ec26a] {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  align-content: center;
}
.sc-ring-item[data-v-2a3ec26a] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.sc-ring[data-v-2a3ec26a] {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 12px rgba(22, 93, 255, 0.12);
}
.sc-ring-val[data-v-2a3ec26a] {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #171D36;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
}
.sc-ring-name[data-v-2a3ec26a] {
  font-size: 10px;
  color: #8899b4;
}
.sc-sugs[data-v-2a3ec26a] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sc-sug[data-v-2a3ec26a] {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12px;
  color: #f7ba1e;
  background: rgba(247, 186, 30, 0.08);
  border: 1px solid rgba(247, 186, 30, 0.35);
  border-radius: 6px;
  padding: 7px 10px;
}
.sc-sug-idx[data-v-2a3ec26a] {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(247, 186, 30, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
}
.sc-clean[data-v-2a3ec26a] {
  font-size: 12px;
  color: #36d399;
  padding: 6px 2px;
}
.sc-actions[data-v-2a3ec26a] {
  flex-shrink: 0;
  display: flex;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
/* ④ 配置 */
.sc-config[data-v-2a3ec26a] {
  margin-top: 12px;
  padding: 20px;
}
.sc-config-head[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.sc-config-ops[data-v-2a3ec26a] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.sc-arrow[data-v-2a3ec26a] {
  color: #8899b4;
  font-size: 11px;
}
.sc-config-body[data-v-2a3ec26a] {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.sc-config-row[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.sc-config-label[data-v-2a3ec26a] {
  font-size: 12px;
  color: #8899b4;
  flex-shrink: 0;
}
.sc-check[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #C9CDD4;
  cursor: pointer;
}
.sc-check input[data-v-2a3ec26a] {
  accent-color: #165DFF;
}
.sc-sliders[data-v-2a3ec26a] {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 24px;
  min-width: 480px;
}
.sc-slider-item[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sc-slider-name[data-v-2a3ec26a] {
  font-size: 11px;
  color: #c0c8d8;
  flex-shrink: 0;
}
.sc-slider-item .el-slider[data-v-2a3ec26a] {
  flex: 1;
}
.sc-slider-val[data-v-2a3ec26a] {
  font-size: 12px;
  color: #4da3ff;
  min-width: 16px;
  text-align: right;
}
.sc-page[data-v-2a3ec26a] .el-slider__bar {
  background: #165DFF;
}
.sc-page[data-v-2a3ec26a] .el-slider__button {
  border-color: #165DFF;
}
.sc-page[data-v-2a3ec26a] .el-slider__runway {
  background: #333B58;
}
/* ⑤⑥ 悬浮 */
.sc-float-r[data-v-2a3ec26a] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.sc-float-l[data-v-2a3ec26a] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.sc-float-btn[data-v-2a3ec26a] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.sc-float-btn[data-v-2a3ec26a]:hover {
  background: #1E6BFF;
}
.sc-float-btn.on[data-v-2a3ec26a] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.sc-float-btn.ai[data-v-2a3ec26a] {
  background: rgba(247, 186, 30, 0.9);
}
.sc-float-btn.ai[data-v-2a3ec26a]:hover {
  background: #f7ba1e;
}
.sc-float-btn.ai.on[data-v-2a3ec26a] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.sc-drawer[data-v-2a3ec26a] {
  position: absolute;
  bottom: 56px;
  width: 300px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.sc-float-r .sc-drawer[data-v-2a3ec26a] {
  right: 0;
}
.sc-float-l .sc-drawer[data-v-2a3ec26a] {
  left: 0;
}
.sc-ai-drawer[data-v-2a3ec26a] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.sc-drawer-head[data-v-2a3ec26a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.sc-ai-drawer .sc-drawer-head[data-v-2a3ec26a] {
  color: #f7ba1e;
}
.sc-drawer-ops[data-v-2a3ec26a] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.sc-drawer-toggle[data-v-2a3ec26a] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.sc-ai-drawer .sc-drawer-toggle[data-v-2a3ec26a] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.sc-ai-body[data-v-2a3ec26a] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
}
.sc-trend-grid[data-v-2a3ec26a] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.sc-trend[data-v-2a3ec26a] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.sc-trend-num[data-v-2a3ec26a] {
  font-size: 18px;
  font-weight: 700;
}
.sc-trend-delta[data-v-2a3ec26a] {
  font-size: 10px;
  margin-left: 6px;
}
.sc-trend-lbl[data-v-2a3ec26a] {
  font-size: 10px;
  color: #8899b4;
  margin-top: 2px;
}
.sc-drawer-foot[data-v-2a3ec26a] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
/* 空状态 */
.sc-empty[data-v-2a3ec26a] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.sc-empty.sm[data-v-2a3ec26a] {
  padding: 28px 0;
}
.sc-empty-title[data-v-2a3ec26a] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.sc-page[data-v-2a3ec26a] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.sc-page[data-v-2a3ec26a] .el-button:last-child {
  margin-right: 0 !important;
}
.sc-page[data-v-2a3ec26a] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.sc-page[data-v-2a3ec26a] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.sc-page[data-v-2a3ec26a] .el-button--primary:active {
  background: #1247DD !important;
}
.sc-page[data-v-2a3ec26a] .el-button--primary.is-disabled, .sc-page[data-v-2a3ec26a] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.sc-page[data-v-2a3ec26a] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.sc-page[data-v-2a3ec26a] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.sc-page[data-v-2a3ec26a] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.sc-page[data-v-2a3ec26a] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.sc-page[data-v-2a3ec26a] .sc-actions .el-button {
  margin-right: 0 !important;
}
/* 骨架 */
.sc-skel[data-v-2a3ec26a] {
  pointer-events: none;
}
.sc-sk[data-v-2a3ec26a] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: sc-shimmer-2a3ec26a 1.2s infinite;
  margin-bottom: 8px;
}
.sc-sk.w40[data-v-2a3ec26a] {
  width: 40%;
}
.sc-sk.w60[data-v-2a3ec26a] {
  width: 60%;
}
.sc-sk.w70[data-v-2a3ec26a] {
  width: 70%;
}
.sc-item-skel[data-v-2a3ec26a] {
  pointer-events: none;
  padding: 14px;
}
@keyframes sc-shimmer-2a3ec26a {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.sc-kpis[data-v-2a3ec26a] {
    grid-template-columns: repeat(2, 1fr);
}
.sc-main[data-v-2a3ec26a] {
    grid-template-columns: 1fr;
}
.sc-drawer[data-v-2a3ec26a] {
    width: 280px;
}
}
/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-4da76cb3] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-4da76cb3] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-4da76cb3] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-4da76cb3] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-4da76cb3] { flex: 1; min-width: 0;
}
.hq-btn[data-v-4da76cb3] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-4da76cb3]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-4da76cb3] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-4da76cb3]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-4da76cb3] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-4da76cb3], .hq-select[data-v-4da76cb3] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-4da76cb3]:focus, .hq-select[data-v-4da76cb3]:focus { border-color: #0066CC;
}
.hq-tag[data-v-4da76cb3] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-4da76cb3] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-4da76cb3] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-4da76cb3 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-4da76cb3] { animation: hq-blink-4da76cb3 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-4da76cb3 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-4da76cb3] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-4da76cb3 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-4da76cb3] { color: #0066CC;
}
.hq-ev-risk[data-v-4da76cb3] { color: #f53f3f;
}
.hq-ev-agent[data-v-4da76cb3] { color: #00b42a;
}
.hq-ev-strategy[data-v-4da76cb3] { color: #722ed1;
}
.hq-ev-logistics[data-v-4da76cb3] { color: #ff7d00;
}
.ge-page[data-v-4da76cb3] {
  padding: 16px;
}
.ge-kpis[data-v-4da76cb3] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.ge-kpi[data-v-4da76cb3] {
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.2s;
}
.ge-kpi[data-v-4da76cb3]:hover {
  border-color: #165DFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(22, 93, 255, 0.18);
}
.ge-kpi.on[data-v-4da76cb3] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.ge-kpi-num[data-v-4da76cb3] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.ge-kpi-label[data-v-4da76cb3] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.ge-count[data-v-4da76cb3] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.ge-main[data-v-4da76cb3] {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 12px;
  align-items: stretch;
}
.ge-left[data-v-4da76cb3], .ge-right[data-v-4da76cb3] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.ge-form[data-v-4da76cb3] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.ge-input[data-v-4da76cb3] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.ge-input[data-v-4da76cb3]:focus {
  border-color: #165DFF;
}
.ge-input option[data-v-4da76cb3] {
  background: #171D36;
  color: #e0e6f0;
}
.ge-label[data-v-4da76cb3] {
  display: block;
  font-size: 12px;
  color: #8899b4;
  margin: 10px 0 4px;
}
.ge-right-head[data-v-4da76cb3] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.ge-sort-seg[data-v-4da76cb3] {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.ge-sort-btn[data-v-4da76cb3] {
  background: #171D36;
  border: 1px solid #333B58;
  color: #C9CDD4;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 11px;
  cursor: pointer;
  transition: all 0.15s;
}
.ge-sort-btn.on[data-v-4da76cb3] {
  background: #165DFF;
  border-color: #165DFF;
  color: #fff;
}
.ge-scroll[data-v-4da76cb3] {
  flex: 1;
  min-height: 0;
  max-height: 560px;
  overflow-y: auto;
  padding-right: 2px;
}
.ge-grid[data-v-4da76cb3] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 12px;
  align-content: start;
  padding: 4px 2px 8px;
}
.ge-card[data-v-4da76cb3] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.2s;
}
.ge-card[data-v-4da76cb3]:hover {
  border-color: #165DFF;
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(22, 93, 255, 0.22);
}
.ge-card.hot[data-v-4da76cb3] {
  border-left: 3px solid #f7ba1e;
}
.ge-card-cover[data-v-4da76cb3] {
  position: relative;
  height: 56px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
}
.ge-rank-badge[data-v-4da76cb3] {
  position: absolute;
  left: 6px;
  top: 6px;
  font-size: 10px;
  background: rgba(247, 186, 30, 0.9);
  color: #1a1203;
  border-radius: 4px;
  padding: 1px 6px;
  font-weight: 700;
}
.ge-card-name[data-v-4da76cb3] {
  font-size: 12px;
  font-weight: 600;
  color: #e8ecf5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ge-card-meta[data-v-4da76cb3] {
  display: flex;
  gap: 6px;
}
.ge-tag[data-v-4da76cb3] {
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 7px;
  border: 1px solid #333B58;
  color: #8899b4;
}
.ge-card-stats[data-v-4da76cb3] {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: #c0c8d8;
}
.ge-card-tags[data-v-4da76cb3] {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.ge-feat-tag[data-v-4da76cb3] {
  font-size: 9px;
  border-radius: 4px;
  padding: 1px 6px;
  background: rgba(22, 93, 255, 0.14);
  border: 1px solid rgba(22, 93, 255, 0.4);
  color: #4da3ff;
}
.ge-card-ops[data-v-4da76cb3] {
  display: flex;
  gap: 4px;
  margin-top: auto;
  padding-top: 6px;
  border-top: 1px solid #1d2440;
}
.ge-grid-foot[data-v-4da76cb3] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0 4px;
  flex-wrap: wrap;
}
.ge-list-pager[data-v-4da76cb3] {
  margin-left: auto;
}
.ge-page[data-v-4da76cb3] .ge-list-pager .el-pagination {
  --el-pagination-bg-color: transparent;
}
.ge-page[data-v-4da76cb3] .ge-list-pager .el-pager {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 4px;
  margin: 0 6px;
  padding: 0;
  list-style: none;
}
.ge-page[data-v-4da76cb3] .ge-list-pager .el-pager li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  line-height: 1;
  margin: 0;
  padding: 0 6px;
  box-sizing: border-box;
}
.ge-page[data-v-4da76cb3] .ge-list-pager .el-pager li.is-active {
  background: #165DFF !important;
  color: #fff !important;
  border-color: #165DFF;
}
.ge-page[data-v-4da76cb3] .ge-list-pager .btn-prev, .ge-page[data-v-4da76cb3] .ge-list-pager .btn-next {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  margin: 0;
  box-sizing: border-box;
}
/* ④ 抽屉详情 */
.ge-detail[data-v-4da76cb3] {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 4px;
}
.ge-detail-cover[data-v-4da76cb3] {
  height: 100px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 42px;
}
.ge-detail-name[data-v-4da76cb3] {
  font-size: 15px;
  font-weight: 700;
  color: #e8ecf5;
}
.ge-block-title[data-v-4da76cb3] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-top: 6px;
}
.ge-detail-tags[data-v-4da76cb3] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.ge-info-row[data-v-4da76cb3] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #c0c8d8;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
  padding: 7px 10px;
}
.ge-info-row span[data-v-4da76cb3] {
  color: #8899b4;
}
.ge-info-row b[data-v-4da76cb3] {
  color: #e8ecf5;
  font-weight: 600;
}
.ge-record[data-v-4da76cb3] {
  display: flex;
  gap: 8px;
  font-size: 11px;
  color: #8899b4;
  padding: 3px 0;
}
.ge-detail-ops[data-v-4da76cb3] {
  display: flex;
  gap: 10px;
  margin-top: 8px;
  flex-wrap: wrap;
}
/* ⑤ 对比 */
.ge-compare[data-v-4da76cb3] {
  margin-top: 12px;
  padding: 20px;
}
.ge-compare-head[data-v-4da76cb3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.ge-arrow[data-v-4da76cb3] {
  color: #8899b4;
  font-size: 11px;
}
.ge-compare-body[data-v-4da76cb3] {
  margin-top: 14px;
}
.ge-compare-selects[data-v-4da76cb3] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.ge-compare-selects .ge-input[data-v-4da76cb3] {
  width: 220px;
  height: 34px;
  font-size: 12px;
}
.ge-vs[data-v-4da76cb3] {
  color: #f7ba1e;
  font-weight: 700;
  font-size: 12px;
}
.ge-cmp-table[data-v-4da76cb3] {
  margin-top: 14px;
  border: 1px solid #2a3450;
  border-radius: 8px;
  overflow: hidden;
}
.ge-cmp-row[data-v-4da76cb3] {
  display: grid;
  grid-template-columns: 120px 1fr 1fr;
  font-size: 12px;
  color: #c0c8d8;
}
.ge-cmp-row span[data-v-4da76cb3] {
  padding: 8px 14px;
  border-bottom: 1px solid #1d2440;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ge-cmp-row span + span[data-v-4da76cb3] {
  border-left: 1px solid #1d2440;
}
.ge-cmp-head[data-v-4da76cb3] {
  background: #0F1423;
  color: #8899b4;
  font-weight: 700;
}
.ge-cmp-label[data-v-4da76cb3] {
  color: #8899b4;
}
.ge-cmp-row:last-child span[data-v-4da76cb3] {
  border-bottom: none;
}
.ge-cmp-feat[data-v-4da76cb3] {
  display: flex;
  gap: 10px;
  font-size: 11px;
  color: #c0c8d8;
  padding: 8px 14px;
  align-items: flex-start;
}
.ge-feat-diff[data-v-4da76cb3] {
  flex: 1;
  color: #4da3ff;
}
.ge-compare-foot[data-v-4da76cb3] {
  display: flex;
  gap: 12px;
  margin-top: 10px;
}
/* ⑥ 悬浮 */
.ge-float-r[data-v-4da76cb3] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.ge-float-btn[data-v-4da76cb3] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.ge-float-btn[data-v-4da76cb3]:hover {
  background: #1E6BFF;
}
.ge-float-btn.on[data-v-4da76cb3] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.ge-drawer[data-v-4da76cb3] {
  position: absolute;
  bottom: 56px;
  right: 0;
  width: 320px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.ge-drawer-head[data-v-4da76cb3] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
}
.ge-drawer-toggle[data-v-4da76cb3] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.ge-gene-bar[data-v-4da76cb3] {
  height: 190px;
}
.ge-drawer-foot[data-v-4da76cb3] {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}
/* 空状态 */
.ge-empty[data-v-4da76cb3] {
  grid-column: 1/-1;
  text-align: center;
  color: #5b6b8c;
  padding: 50px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.ge-empty.sm[data-v-4da76cb3] {
  padding: 16px 0;
}
.ge-empty-title[data-v-4da76cb3] {
  color: #8899b4;
  font-size: 12px;
}
/* 按钮严款 */
.ge-page[data-v-4da76cb3] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.ge-page[data-v-4da76cb3] .el-button:last-child {
  margin-right: 0 !important;
}
.ge-page[data-v-4da76cb3] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.ge-page[data-v-4da76cb3] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.ge-page[data-v-4da76cb3] .el-button--primary:active {
  background: #1247DD !important;
}
.ge-page[data-v-4da76cb3] .el-button--primary.is-disabled, .ge-page[data-v-4da76cb3] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.ge-page[data-v-4da76cb3] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.ge-page[data-v-4da76cb3] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.ge-page[data-v-4da76cb3] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.ge-page[data-v-4da76cb3] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.ge-page[data-v-4da76cb3] .ge-grid-foot .el-button, .ge-page[data-v-4da76cb3] .ge-detail-ops .el-button, .ge-page[data-v-4da76cb3] .ge-compare-selects .el-button {
  margin-right: 0 !important;
}
/* 骨架 */
.ge-skel[data-v-4da76cb3] {
  pointer-events: none;
}
.ge-sk[data-v-4da76cb3] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: ge-shimmer-4da76cb3 1.2s infinite;
  margin-bottom: 8px;
}
.ge-sk.w40[data-v-4da76cb3] {
  width: 40%;
}
.ge-sk.w50[data-v-4da76cb3] {
  width: 50%;
}
.ge-sk.w60[data-v-4da76cb3] {
  width: 60%;
}
.ge-sk.w70[data-v-4da76cb3] {
  width: 70%;
}
.ge-sk.w80[data-v-4da76cb3] {
  width: 80%;
}
.ge-card-skel[data-v-4da76cb3] {
  pointer-events: none;
  padding: 14px;
}
@keyframes ge-shimmer-4da76cb3 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.ge-kpis[data-v-4da76cb3] {
    grid-template-columns: repeat(2, 1fr);
}
.ge-main[data-v-4da76cb3] {
    grid-template-columns: 1fr;
}
.ge-drawer[data-v-4da76cb3] {
    width: 280px;
}
}
/* el-drawer teleport 到 body，需全局样式：固定右侧滑出（EP 样式缺失方向/定位规则时兜底） */
.ge-drawer-box.el-drawer.rtl { position: absolute !important; right: 0 !important; left: auto !important; top: 0 !important; bottom: 0 !important; height: auto !important;
}
.ge-drawer-box.el-drawer { background: #171D36; border-left: 1px solid #2a3450;
}
.ge-drawer-box .el-drawer__header { color: #e8ecf5; margin-bottom: 10px;
}
.ge-drawer-box .el-drawer__body { padding-top: 0;
}

/* ============================================================================
   hermes-hq/hq.css — Hermes 总部 · 指挥台公共样式令牌（深色玻璃拟态）
   锁定值：页面底色 #0F1423 | 卡片容器 #171D36 | 主科技蓝 #0066CC
   禁止白色底色组件；全部卡片半透明玻璃拟态 + 细边框。
============================================================================ */
.hq-page[data-v-80c86f10] { min-height: 100%; padding: 16px; background: #0F1423; color: #e0e6f0; box-sizing: border-box;
}
.hq-card[data-v-80c86f10] {
  background: rgba(23, 29, 54, 0.82);            /* #171D36 玻璃拟态 */
  backdrop-filter: blur(6px);
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 14px 16px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.hq-card-title[data-v-80c86f10] { font-size: 13px; font-weight: 600; color: #7d8db3; margin: 0 0 10px; letter-spacing: 0.5px;
}
.hq-row[data-v-80c86f10] { display: flex; gap: 12px; flex-wrap: wrap;
}
.hq-flex1[data-v-80c86f10] { flex: 1; min-width: 0;
}
.hq-btn[data-v-80c86f10] {
  background: rgba(0, 102, 204, 0.16); color: #4da3ff; border: 1px solid rgba(0, 102, 204, 0.5);
  border-radius: 6px; padding: 6px 14px; font-size: 12px; cursor: pointer; transition: all 0.15s;
}
.hq-btn[data-v-80c86f10]:hover { background: rgba(0, 102, 204, 0.32);
}
.hq-btn-danger[data-v-80c86f10] { background: rgba(245, 63, 63, 0.14); color: #ff7a7a; border-color: rgba(245, 63, 63, 0.55);
}
.hq-btn-danger[data-v-80c86f10]:hover { background: rgba(245, 63, 63, 0.3);
}
.hq-btn-ghost[data-v-80c86f10] { background: transparent; color: #8899b4; border-color: #2a3450;
}
.hq-input[data-v-80c86f10], .hq-select[data-v-80c86f10] {
  background: #0F1423; border: 1px solid #2a3450; color: #e0e6f0;
  border-radius: 6px; padding: 6px 10px; font-size: 12px; outline: none;
}
.hq-input[data-v-80c86f10]:focus, .hq-select[data-v-80c86f10]:focus { border-color: #0066CC;
}
.hq-tag[data-v-80c86f10] { display: inline-block; font-size: 11px; border-radius: 4px; padding: 2px 8px;
}
.hq-muted[data-v-80c86f10] { color: #8899b4; font-size: 12px;
}
.hq-empty-state[data-v-80c86f10] { text-align: center; color: #5b6b8c; padding: 40px 0; font-size: 13px;
}
/* 告警闪烁（异常态呼吸） */
@keyframes hq-blink-80c86f10 {
0%, 100% { opacity: 1;
}
50% { opacity: 0.35;
}
}
.hq-blink[data-v-80c86f10] { animation: hq-blink-80c86f10 1.2s ease-in-out infinite;
}
/* LIVE 呼吸灯 */
@keyframes hq-breathe-80c86f10 {
0%, 100% { box-shadow: 0 0 4px 1px rgba(245, 63, 63, 0.7);
}
50% { box-shadow: 0 0 14px 5px rgba(245, 63, 63, 0.25);
}
}
.hq-live-dot[data-v-80c86f10] { width: 10px; height: 10px; border-radius: 50%; background: #f53f3f; animation: hq-breathe-80c86f10 2s ease-in-out infinite;
}
/* 事件类型颜色规范 */
.hq-ev-gmv[data-v-80c86f10] { color: #0066CC;
}
.hq-ev-risk[data-v-80c86f10] { color: #f53f3f;
}
.hq-ev-agent[data-v-80c86f10] { color: #00b42a;
}
.hq-ev-strategy[data-v-80c86f10] { color: #722ed1;
}
.hq-ev-logistics[data-v-80c86f10] { color: #ff7d00;
}
.tr-page[data-v-80c86f10] {
  padding: 16px;
}
.tr-kpis[data-v-80c86f10] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.tr-kpi[data-v-80c86f10] {
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.2s;
}
.tr-kpi[data-v-80c86f10]:hover {
  border-color: #165DFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(22, 93, 255, 0.18);
}
.tr-kpi.on[data-v-80c86f10] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.08);
}
.tr-kpi-num[data-v-80c86f10] {
  font-size: 22px;
  font-weight: 700;
  color: #e8ecf5;
}
.tr-kpi-label[data-v-80c86f10] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.tr-count[data-v-80c86f10] {
  color: #8899b4;
  font-size: 12px;
  font-weight: 400;
}
.tr-main[data-v-80c86f10] {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 12px;
  align-items: stretch;
}
.tr-left[data-v-80c86f10], .tr-right[data-v-80c86f10] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 20px;
}
.tr-left-head[data-v-80c86f10] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.tr-input[data-v-80c86f10] {
  width: 100%;
  box-sizing: border-box;
  background: #0F1423;
  border: 1px solid #2a3450;
  color: #e0e6f0;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  height: 36px;
}
.tr-input[data-v-80c86f10]:focus {
  border-color: #165DFF;
}
.tr-input option[data-v-80c86f10] {
  background: #171D36;
  color: #e0e6f0;
}
.tr-filter[data-v-80c86f10] {
  margin-top: 8px;
}
.tr-label[data-v-80c86f10] {
  display: block;
  font-size: 12px;
  color: #8899b4;
  margin: 10px 0 4px;
}
.tr-label.sm[data-v-80c86f10] {
  margin-top: 0;
}
.tr-grid2[data-v-80c86f10] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 10px;
}
.tr-scroll[data-v-80c86f10] {
  flex: 1;
  min-height: 0;
  max-height: 560px;
  overflow-y: auto;
  margin-top: 10px;
  padding-right: 2px;
}
.tr-list[data-v-80c86f10] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tr-item[data-v-80c86f10] {
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.tr-item[data-v-80c86f10]:hover {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.06);
}
.tr-item.on[data-v-80c86f10] {
  border-color: #165DFF;
  background: rgba(22, 93, 255, 0.1);
}
.tr-item-head[data-v-80c86f10] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tr-item-name[data-v-80c86f10] {
  flex: 1;
  font-size: 13px;
  font-weight: 600;
  color: #e8ecf5;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tr-status-tag[data-v-80c86f10] {
  display: inline-block;
  font-size: 10px;
  border-radius: 4px;
  padding: 1px 8px;
  border: 1px solid;
  font-weight: 600;
  flex-shrink: 0;
}
.tr-item-progress[data-v-80c86f10] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
.tr-item-progress .el-progress[data-v-80c86f10] {
  flex: 1;
}
.tr-item-pct[data-v-80c86f10] {
  font-size: 11px;
  color: #4da3ff;
  min-width: 34px;
  text-align: right;
}
.tr-item-meta[data-v-80c86f10] {
  display: flex;
  gap: 12px;
  margin-top: 6px;
  font-size: 11px;
  color: #8899b4;
}
.tr-item-time[data-v-80c86f10] {
  margin-left: auto;
}
.tr-item-ops[data-v-80c86f10] {
  display: flex;
  gap: 2px;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid #1d2440;
}
.tr-list-pager[data-v-80c86f10] {
  display: flex;
  justify-content: center;
  padding: 12px 0 4px;
}
.tr-page[data-v-80c86f10] .tr-list-pager .el-pagination {
  --el-pagination-bg-color: transparent;
}
.tr-page[data-v-80c86f10] .tr-list-pager .el-pager {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 4px;
  margin: 0 6px;
  padding: 0;
  list-style: none;
}
.tr-page[data-v-80c86f10] .tr-list-pager .el-pager li {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  line-height: 1;
  margin: 0;
  padding: 0 6px;
  box-sizing: border-box;
}
.tr-page[data-v-80c86f10] .tr-list-pager .el-pager li.is-active {
  background: #165DFF !important;
  color: #fff !important;
  border-color: #165DFF;
}
.tr-page[data-v-80c86f10] .tr-list-pager .btn-prev, .tr-page[data-v-80c86f10] .tr-list-pager .btn-next {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58;
  border-radius: 6px;
  min-width: 26px;
  height: 26px;
  margin: 0;
  box-sizing: border-box;
}
.tr-page[data-v-80c86f10] .tr-list-pager .btn-prev:disabled, .tr-page[data-v-80c86f10] .tr-list-pager .btn-next:disabled {
  background: transparent !important;
  color: #5b6b8c !important;
  border-color: #2a3450;
}
/* 右侧 */
.tr-right-head[data-v-80c86f10] {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.tr-cur[data-v-80c86f10] {
  color: #4da3ff;
  font-weight: 400;
  font-size: 12px;
}
.tr-detail[data-v-80c86f10] {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-right: 2px;
}
.tr-block[data-v-80c86f10] {
  margin-top: 12px;
}
.tr-block[data-v-80c86f10]:first-child {
  margin-top: 0;
}
.tr-block-title[data-v-80c86f10] {
  font-size: 12px;
  font-weight: 700;
  color: #4da3ff;
  margin-bottom: 8px;
}
.tr-info-grid[data-v-80c86f10] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 16px;
  font-size: 12px;
  color: #c0c8d8;
}
.tr-fail-box[data-v-80c86f10] {
  margin-top: 10px;
  font-size: 12px;
  color: #ff7a7a;
  background: rgba(245, 63, 63, 0.08);
  border: 1px solid rgba(245, 63, 63, 0.35);
  border-radius: 6px;
  padding: 8px 10px;
}
.tr-progress[data-v-80c86f10] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.tr-progress .el-progress[data-v-80c86f10] {
  flex: 1;
}
.tr-eta[data-v-80c86f10] {
  font-size: 13px;
  color: #4da3ff;
  min-width: 40px;
  text-align: right;
}
.tr-metrics[data-v-80c86f10] {
  display: flex;
  gap: 10px;
  margin-top: 12px;
}
.tr-metric[data-v-80c86f10] {
  flex: 1;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.tr-metric-num[data-v-80c86f10] {
  font-size: 18px;
  font-weight: 700;
}
.tr-metric-lbl[data-v-80c86f10] {
  font-size: 10px;
  color: #8899b4;
  margin-top: 2px;
}
.tr-chart[data-v-80c86f10] {
  height: 260px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 10px;
  box-shadow: 0 0 16px rgba(22, 93, 255, 0.08);
}
.tr-log[data-v-80c86f10] {
  height: 150px;
  overflow-y: auto;
  background: #0a0e18;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 8px 12px;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 11px;
  line-height: 1.7;
  color: #7dd3a8;
}
.tr-log-line[data-v-80c86f10] {
  white-space: pre-wrap;
  word-break: break-all;
}
.tr-actions[data-v-80c86f10] {
  flex-shrink: 0;
  display: flex;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
  flex-wrap: wrap;
}
/* ④ 版本管理 */
.tr-versions[data-v-80c86f10] {
  margin-top: 12px;
  padding: 20px;
}
.tr-versions-head[data-v-80c86f10] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
}
.tr-arrow[data-v-80c86f10] {
  color: #8899b4;
  font-size: 11px;
}
.tr-versions-body[data-v-80c86f10] {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tr-version[data-v-80c86f10] {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 9px 14px;
  font-size: 12px;
  color: #c0c8d8;
}
.tr-version.current[data-v-80c86f10] {
  border-color: #00b42a;
  background: rgba(0, 180, 42, 0.06);
}
.tr-version-ver[data-v-80c86f10] {
  font-weight: 700;
  color: #4da3ff;
}
.tr-version-cur[data-v-80c86f10] {
  font-size: 10px;
  color: #36d399;
}
.tr-version-desc[data-v-80c86f10] {
  flex: 1;
}
.tr-version-metrics[data-v-80c86f10] {
  color: #8899b4;
}
.tr-version-ops[data-v-80c86f10] {
  display: flex;
  gap: 2px;
}
/* ⑤⑥ 悬浮 */
.tr-float-r[data-v-80c86f10] {
  position: fixed;
  right: 16px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  z-index: 90;
}
.tr-float-l[data-v-80c86f10] {
  position: fixed;
  left: 280px;
  bottom: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  z-index: 90;
}
.tr-float-btn[data-v-80c86f10] {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(22, 93, 255, 0.9);
  color: #fff;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.15s;
}
.tr-float-btn[data-v-80c86f10]:hover {
  background: #1E6BFF;
}
.tr-float-btn.on[data-v-80c86f10] {
  background: #165DFF;
  box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.4);
}
.tr-float-btn.ai[data-v-80c86f10] {
  background: rgba(247, 186, 30, 0.9);
}
.tr-float-btn.ai[data-v-80c86f10]:hover {
  background: #f7ba1e;
}
.tr-float-btn.ai.on[data-v-80c86f10] {
  background: #f7ba1e;
  box-shadow: 0 0 0 2px rgba(247, 186, 30, 0.4);
}
.tr-drawer[data-v-80c86f10] {
  position: absolute;
  bottom: 56px;
  width: 320px;
  background: #171D36;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.tr-float-r .tr-drawer[data-v-80c86f10] {
  right: 0;
}
.tr-float-l .tr-drawer[data-v-80c86f10] {
  left: 0;
}
.tr-ai-drawer[data-v-80c86f10] {
  background: rgba(247, 186, 30, 0.12);
  border-color: rgba(247, 186, 30, 0.45);
}
.tr-drawer-head[data-v-80c86f10] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #4da3ff;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.tr-ai-drawer .tr-drawer-head[data-v-80c86f10] {
  color: #f7ba1e;
}
.tr-drawer-ops[data-v-80c86f10] {
  display: flex;
  gap: 2px;
  align-items: center;
}
.tr-drawer-toggle[data-v-80c86f10] {
  background: transparent;
  border: 1px solid #2a3450;
  color: #8899b4;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: 10px;
  cursor: pointer;
}
.tr-ai-drawer .tr-drawer-toggle[data-v-80c86f10] {
  border-color: rgba(247, 186, 30, 0.45);
  color: #f7ba1e;
}
.tr-ai-body[data-v-80c86f10] {
  font-size: 12px;
  line-height: 1.7;
  color: #e8d9a0;
}
.tr-cmp-list[data-v-80c86f10] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tr-cmp-row[data-v-80c86f10] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: #c0c8d8;
  background: #0F1423;
  border: 1px solid #2a3450;
  border-radius: 6px;
  padding: 6px 8px;
}
.tr-cmp-label[data-v-80c86f10] {
  flex: 1;
  color: #8899b4;
}
.tr-cmp-before[data-v-80c86f10] {
  color: #8899b4;
}
.tr-cmp-arrow[data-v-80c86f10] {
  color: #5b6b8c;
}
.tr-cmp-after[data-v-80c86f10] {
  font-weight: 700;
}
.tr-drawer-foot[data-v-80c86f10] {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
/* 空状态 */
.tr-empty[data-v-80c86f10] {
  text-align: center;
  color: #5b6b8c;
  padding: 60px 20px;
  font-size: 13px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.tr-empty.sm[data-v-80c86f10] {
  padding: 28px 0;
}
.tr-empty-title[data-v-80c86f10] {
  color: #8899b4;
  font-size: 12px;
}
.tr-detail-note[data-v-80c86f10] {
  font-size: 11px;
  color: #5b6b8c;
  margin-top: 10px;
}
/* 按钮严款 */
.tr-page[data-v-80c86f10] .el-button {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 14px !important;
  border-radius: 8px !important;
  margin-right: 12px !important;
  box-sizing: border-box !important;
}
.tr-page[data-v-80c86f10] .el-button:last-child {
  margin-right: 0 !important;
}
.tr-page[data-v-80c86f10] .el-button--primary {
  background: #165DFF !important;
  color: #fff !important;
  border: none !important;
}
.tr-page[data-v-80c86f10] .el-button--primary:hover {
  background: #1E6BFF !important;
}
.tr-page[data-v-80c86f10] .el-button--primary:active {
  background: #1247DD !important;
}
.tr-page[data-v-80c86f10] .el-button--primary.is-disabled, .tr-page[data-v-80c86f10] .el-button--primary.is-loading {
  background: #0E3A8C !important;
  opacity: 0.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
}
.tr-page[data-v-80c86f10] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger) {
  background: #171D36 !important;
  color: #C9CDD4 !important;
  border: 1px solid #333B58 !important;
}
.tr-page[data-v-80c86f10] .el-button.el-button.el-button:not(.el-button--primary):not(.el-button--danger):hover {
  background: #1E2548 !important;
  color: #fff !important;
  border-color: #165DFF !important;
}
.tr-page[data-v-80c86f10] .el-button--danger {
  background: #171D36 !important;
  color: #F87272 !important;
  border: 1px solid #333B58 !important;
}
.tr-page[data-v-80c86f10] .el-button--danger:hover {
  background: #2A1F3B !important;
}
.tr-page[data-v-80c86f10] .tr-actions .el-button, .tr-page[data-v-80c86f10] .tr-left-head .el-button {
  margin-right: 0 !important;
}
/* dialog 定位 */
.tr-page[data-v-80c86f10] .el-overlay-dialog {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: auto;
}
.tr-page[data-v-80c86f10] .el-dialog {
  position: relative;
  width: var(--el-dialog-width, 50%);
  margin: 15vh auto 50px;
  box-sizing: border-box;
  max-width: calc(100% - 32px);
  background: #171D36;
  border: 1px solid #2a3450;
}
.tr-page[data-v-80c86f10] .el-dialog__title {
  color: #e8ecf5;
}
.tr-page[data-v-80c86f10] .el-dialog__headerbtn .el-dialog__close {
  color: #8899b4;
}
/* 骨架 */
.tr-skel[data-v-80c86f10] {
  pointer-events: none;
}
.tr-sk[data-v-80c86f10] {
  height: 12px;
  border-radius: 4px;
  background: linear-gradient(90deg, #1d2440 25%, #2b3557 50%, #1d2440 75%);
  background-size: 200% 100%;
  animation: tr-shimmer-80c86f10 1.2s infinite;
  margin-bottom: 8px;
}
.tr-sk.w40[data-v-80c86f10] {
  width: 40%;
}
.tr-sk.w60[data-v-80c86f10] {
  width: 60%;
}
.tr-sk.w70[data-v-80c86f10] {
  width: 70%;
}
.tr-item-skel[data-v-80c86f10] {
  pointer-events: none;
  padding: 14px;
}
@keyframes tr-shimmer-80c86f10 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
@media (max-width: 1100px) {
.tr-kpis[data-v-80c86f10] {
    grid-template-columns: repeat(2, 1fr);
}
.tr-main[data-v-80c86f10] {
    grid-template-columns: 1fr;
}
.tr-drawer[data-v-80c86f10] {
    width: 280px;
}
}
.my-products-page[data-v-aa779a68] {
  background: #0a0f1e;
  min-height: 100vh;
  padding: 20px 24px;
  color: #e0e6f0;
  font-size: 14px;
}
.btn-primary[data-v-aa779a68] {
  background: #0066CC !important;
  border-color: #0066CC !important;
  color: #fff !important;
}
.btn-secondary[data-v-aa779a68] {
  background: #38405c !important;
  border-color: #38405c !important;
  color: #fff !important;
}
.btn-secondary-sm[data-v-aa779a68] {
  background: #38405c !important;
  border-color: #38405c !important;
  color: #fff !important;
  font-size: 12px !important;
}
.btn-link[data-v-aa779a68] {
  background: transparent !important;
  border: none !important;
  color: #0066CC !important;
}
.btn-link-clear[data-v-aa779a68] {
  background: transparent !important;
  border: none !important;
  color: #8899b4 !important;
}
.btn-link-toggle[data-v-aa779a68] {
  background: transparent !important;
  border: none !important;
  color: #8899b4 !important;
  font-size: 13px !important;
}
.btn-link-danger[data-v-aa779a68] {
  background: transparent !important;
  border: none !important;
  color: #c43636 !important;
}
.btn-link-danger[data-v-aa779a68]:hover {
  color: #ff6b6b !important;
}
.btn-danger-sm[data-v-aa779a68] {
  background: rgba(196, 54, 54, 0.15) !important;
  border: 1px solid #c43636 !important;
  color: #c43636 !important;
}
.top-bar[data-v-aa779a68] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}
.top-left[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 16px;
}
.top-right[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.status-capsules[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.capsule[data-v-aa779a68] {
  cursor: pointer;
  user-select: none;
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 600;
  font-size: 13px;
  border: 2px solid transparent;
  transition: all 0.2s;
}
.capsule-total[data-v-aa779a68] {
  background: #1a2440;
  color: #e0e6f0;
}
.capsule-healthy[data-v-aa779a68] {
  background: #1a2440;
  color: #4ade80;
}
.capsule-warning[data-v-aa779a68] {
  background: #1a2440;
  color: #fbbf24;
}
.capsule-danger[data-v-aa779a68] {
  background: #1a2440;
  color: #f87171;
}
.capsule-active[data-v-aa779a68] {
  border-color: #0066CC;
  background: rgba(0, 102, 204, 0.15);
}
.capsule[data-v-aa779a68]:hover {
  background: #1e2a48;
}
.batch-bar[data-v-aa779a68] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  margin-bottom: 12px;
  background: rgba(0, 102, 204, 0.12);
  border: 1px solid rgba(0, 102, 204, 0.3);
  border-radius: 8px;
}
.batch-count[data-v-aa779a68] {
  font-size: 13px;
  color: #60a5fa;
  font-weight: 600;
}
.batch-actions[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.card-container[data-v-aa779a68] {
  background: #141c2b;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 16px;
}
.filter-row[data-v-aa779a68] {
  margin-bottom: 12px;
}
.filter-basic[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.filter-input[data-v-aa779a68] {
  width: 220px;
}
.filter-select[data-v-aa779a68] {
  width: 150px;
}
.filter-select-sm[data-v-aa779a68] {
  width: 140px;
}
.filter-advanced[data-v-aa779a68] {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #2a3450;
}
.filter-advanced-row[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.filter-item[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.filter-label[data-v-aa779a68] {
  font-size: 12px;
  color: #8899b4;
  white-space: nowrap;
}
.filter-sep[data-v-aa779a68] {
  color: #8899b4;
  margin: 0 2px;
}
.filter-num-sm[data-v-aa779a68] {
  width: 100px;
}
.filter-date[data-v-aa779a68] {
  width: 240px;
}
.health-cards[data-v-aa779a68] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.health-card[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #141c2b;
  border: 1px solid #2a3450;
  border-radius: 10px;
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s;
}
.health-card[data-v-aa779a68]:hover {
  background: #1a2440;
  border-color: #0066CC;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 102, 204, 0.12);
}
.card-active[data-v-aa779a68] {
  border-color: #0066CC;
  background: rgba(0, 102, 204, 0.1);
}
.hc-icon[data-v-aa779a68] {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.hc-icon-total[data-v-aa779a68] {
  background: rgba(96, 165, 250, 0.15);
  color: #60a5fa;
}
.hc-icon-spot[data-v-aa779a68] {
  background: rgba(74, 222, 128, 0.15);
  color: #4ade80;
}
.hc-icon-pod[data-v-aa779a68] {
  background: rgba(192, 132, 252, 0.15);
  color: #c084fc;
}
.hc-icon-risk[data-v-aa779a68] {
  background: rgba(248, 113, 113, 0.15);
  color: #f87171;
}
.hc-body[data-v-aa779a68] {
  flex: 1;
  min-width: 0;
}
.hc-num[data-v-aa779a68] {
  font-size: 22px;
  font-weight: 700;
  color: #e0e6f0;
  display: block;
  line-height: 1.2;
}
.hc-label[data-v-aa779a68] {
  font-size: 12px;
  color: #8899b4;
  display: block;
  margin-top: 2px;
}
.hc-sub[data-v-aa779a68] {
  font-size: 11px;
  color: #6b7a93;
  display: block;
  margin-top: 1px;
}
.hc-info[data-v-aa779a68] {
  color: #8899b4;
  font-size: 14px;
  flex-shrink: 0;
}
.tab-bar[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 16px;
  background: #141c2b;
  border-radius: 8px;
  padding: 4px;
  width: fit-content;
}
.tab-item[data-v-aa779a68] {
  padding: 8px 18px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  color: #8899b4;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 6px;
}
.tab-item[data-v-aa779a68]:hover {
  color: #e0e6f0;
  background: rgba(255, 255, 255, 0.04);
}
.tab-active[data-v-aa779a68] {
  background: #0066CC;
  color: #fff !important;
}
.tab-count[data-v-aa779a68] {
  font-size: 11px;
  background: rgba(255, 255, 255, 0.2);
  padding: 1px 7px;
  border-radius: 10px;
  font-weight: 600;
}
.table-area[data-v-aa779a68] {
  padding: 8px 0 0 0;
  max-height: calc(100vh - 290px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.sku-link[data-v-aa779a68] {
  color: #60a5fa;
  cursor: pointer;
  font-weight: 500;
}
.sku-link[data-v-aa779a68]:hover {
  text-decoration: underline;
}
.name-link[data-v-aa779a68] {
  color: #e0e6f0;
  cursor: pointer;
}
.name-link[data-v-aa779a68]:hover {
  color: #60a5fa;
}
.supplier-link[data-v-aa779a68] {
  color: #60a5fa;
  cursor: pointer;
  border-bottom: 1px dashed #60a5fa;
}
.health-cell[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.health-tag[data-v-aa779a68] {
  font-size: 11px !important;
}
.action-cell[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: wrap;
}
.qt-tag[data-v-aa779a68] {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 4px;
  font-size: 11px;
  margin: 1px 2px;
}
.qt-hot[data-v-aa779a68] {
  background: rgba(248, 113, 113, 0.15);
  color: #f87171;
}
.qt-slow[data-v-aa779a68] {
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
}
.qt-new[data-v-aa779a68] {
  background: rgba(96, 165, 250, 0.15);
  color: #60a5fa;
}
.qt-alert[data-v-aa779a68] {
  background: rgba(192, 132, 252, 0.15);
  color: #c084fc;
}
.qt-profit[data-v-aa779a68] {
  background: rgba(74, 222, 128, 0.15);
  color: #4ade80;
}
.qt-focus[data-v-aa779a68] {
  background: rgba(251, 146, 60, 0.15);
  color: #fb923c;
}
.qt-clear[data-v-aa779a68] {
  background: rgba(156, 163, 175, 0.15);
  color: #9ca3af;
}
.stock-green[data-v-aa779a68] {
  color: #4ade80;
  font-weight: 600;
}
.stock-yellow[data-v-aa779a68] {
  color: #fbbf24;
  font-weight: 600;
}
.stock-red[data-v-aa779a68] {
  color: #f87171;
  font-weight: 600;
}
.page-footer[data-v-aa779a68] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 16px;
  padding: 12px 0 0 0;
  border-top: 1px solid #2a3450;
}
.page-stats[data-v-aa779a68] {
  font-size: 13px;
  color: #8899b4;
}
.page-controls[data-v-aa779a68] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.page-size-label[data-v-aa779a68] {
  font-size: 13px;
  color: #8899b4;
}
.jump-label[data-v-aa779a68] {
  font-size: 13px;
  color: #8899b4;
  margin-left: 4px;
}
.supplier-preview[data-v-aa779a68] {
  font-size: 13px;
  color: #e0e6f0;
  line-height: 1.8;
}
.supplier-preview strong[data-v-aa779a68] {
  display: block;
  margin-bottom: 4px;
}
.sp-row[data-v-aa779a68] {
  font-size: 12px;
  color: #8899b4;
}
[data-v-aa779a68] .el-dialog {
  background-color: #141c2b;
  border: 1px solid #2a3450;
  border-radius: 10px;
}
[data-v-aa779a68] .el-dialog .el-dialog__header {
  background-color: #152033;
  border-bottom: 1px solid #2a3450;
}
[data-v-aa779a68] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e6f0;
}
[data-v-aa779a68] .el-dialog .el-dialog__body {
  color: #e0e6f0;
  background: #141c2b;
}
[data-v-aa779a68] .el-dialog .el-dialog__footer {
  background-color: #141c2b;
  border-top: 1px solid #2a3450;
}
[data-v-aa779a68] .el-input__wrapper {
  background-color: #0d1b2a;
  border: 1px solid #2a3450;
  box-shadow: none !important;
}
[data-v-aa779a68] .el-input__wrapper .el-input__inner {
  color: #e0e6f0;
}
[data-v-aa779a68] .el-table {
  background-color: transparent;
  color: #e0e6f0;
}
[data-v-aa779a68] .el-table th.el-table__cell {
  background-color: #0d1b2a;
  color: #8899b4;
}
[data-v-aa779a68] .el-table td.el-table__cell {
  background-color: transparent;
}

/* ═══ 表头固定（sticky）— 表头吸顶 + 操作列固定 ═══ */
.product-table[data-v-aa779a68] .el-table__header-wrapper {
  position: sticky !important;
  top: 0 !important;
  z-index: 10 !important;
}
.product-table[data-v-aa779a68] .el-table__header-wrapper th.el-table__cell {
  background: #0d1b2a !important;
  color: #8899b4 !important;
  border-bottom: 2px solid #1a3460 !important;
}

/* 固定列（操作列）不偏移 */
.product-table[data-v-aa779a68] .el-table__fixed-right {
  position: sticky !important;
  right: 0 !important;
  z-index: 11 !important;
  background: #0a0f1e !important;
  box-shadow: -2px 0 8px rgba(0, 0, 0, 0.3) !important;
}

/* 批量确认弹窗样式 */
.batch-confirm-dialog .confirm-desc[data-v-aa779a68] {
  margin-bottom: 16px;
  color: #8899b4;
  font-size: 14px;
}
.batch-confirm-dialog .confirm-desc strong[data-v-aa779a68] {
  color: #e0e6f0;
}
.batch-confirm-dialog .batch-confirm-table[data-v-aa779a68] {
  margin-top: 8px;
}
[data-v-aa779a68] .el-pagination button {
  background-color: transparent !important;
  color: #e0e6f0;
}
[data-v-aa779a68] .el-pagination button.is-active {
  background-color: #0066CC !important;
  color: #fff !important;
}
[data-v-aa779a68] .el-select-dropdown {
  background: #141c2b;
  border: 1px solid #2a3450;
}
[data-v-aa779a68] .el-select-dropdown__item {
  color: #e0e6f0;
}
[data-v-aa779a68] .el-select-dropdown__item.hover,[data-v-aa779a68] .el-select-dropdown__item:hover {
  background: #1a2440;
}
[data-v-aa779a68] .el-tabs__item {
  color: #8899b4;
}
[data-v-aa779a68] .el-tabs__item.is-active {
  color: #0066CC;
}
[data-v-aa779a68] .el-descriptions__label {
  background: #0d1b2a;
  color: #8899b4;
}
[data-v-aa779a68] .el-descriptions__content {
  background: transparent;
  color: #e0e6f0;
}
.detail-body[data-v-aa779a68] {
  padding: 4px 0;
}
.detail-footer[data-v-aa779a68] {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.sales-metrics[data-v-aa779a68] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.metric-card[data-v-aa779a68] {
  background: #141c2b;
  border: 1px solid #2a3450;
  border-radius: 8px;
  padding: 14px;
  text-align: center;
}
.sk-num[data-v-aa779a68] {
  font-size: 24px;
  font-weight: 700;
  display: block;
}
.sk-lbl[data-v-aa779a68] {
  font-size: 12px;
  color: #8899b4;
  display: block;
  margin-top: 4px;
}
.sales-chart[data-v-aa779a68] {
  width: 100%;
  height: 300px;
}
.edit-table[data-v-aa779a68] {
  border: 1px solid #2a3450;
  border-radius: 8px;
  overflow: hidden;
}
.edit-row[data-v-aa779a68] {
  display: grid;
  grid-template-columns: 120px 1fr 1fr;
  border-bottom: 1px solid #2a3450;
}
.edit-row[data-v-aa779a68]:last-child {
  border-bottom: none;
}
.edit-row-header[data-v-aa779a68] {
  background: #0d1b2a;
  font-weight: 600;
  font-size: 12px;
  color: #8899b4;
}
.et-label[data-v-aa779a68] {
  padding: 10px 12px;
  font-size: 13px;
  display: flex;
  align-items: center;
}
.et-new-col[data-v-aa779a68] {
  padding: 8px 10px;
  background: rgba(0, 102, 204, 0.05);
}
.et-old-col[data-v-aa779a68] {
  padding: 8px 10px;
  color: #8899b4;
  font-size: 13px;
  display: flex;
  align-items: center;
}
.row-changed[data-v-aa779a68] {
  background: rgba(251, 191, 36, 0.05);
}
.row-changed .et-new-col[data-v-aa779a68] {
  background: rgba(251, 191, 36, 0.08);
}
.edit-footer[data-v-aa779a68] {
  display: flex;
  justify-content: space-between;
  width: 100%;
}
.ccm-table[data-v-aa779a68] {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 16px;
}
.ccm-table th[data-v-aa779a68], .ccm-table td[data-v-aa779a68] {
  padding: 8px 10px;
  border: 1px solid #2a3450;
  font-size: 13px;
}
.ccm-table th[data-v-aa779a68] {
  background: #0d1b2a;
  color: #8899b4;
  text-align: left;
}
.ccm-field[data-v-aa779a68] {
  font-weight: 600;
  color: #e0e6f0;
}
.ccm-old[data-v-aa779a68] {
  color: #f87171;
}
.ccm-arrow[data-v-aa779a68] {
  color: #8899b4;
  text-align: center;
}
.ccm-new[data-v-aa779a68] {
  color: #4ade80;
}
.ccm-meta[data-v-aa779a68] {
  display: flex;
  gap: 16px;
  font-size: 11px;
  color: #6b7a93;
}
.bp-body[data-v-aa779a68] {
  color: #e0e6f0;
}
.bp-summary[data-v-aa779a68] {
  font-size: 13px;
  margin-bottom: 12px;
  padding: 10px 14px;
  background: rgba(0, 102, 204, 0.08);
  border-radius: 6px;
}
.bp-summary strong[data-v-aa779a68] {
  color: #60a5fa;
}
.bp-risk-warn[data-v-aa779a68] {
  font-size: 13px;
  color: #f87171;
  margin-bottom: 12px;
  padding: 8px 12px;
  background: rgba(248, 113, 113, 0.1);
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bp-intro[data-v-aa779a68] {
  font-size: 13px;
  color: #8899b4;
  margin-bottom: 12px;
}
.bp-intro strong[data-v-aa779a68] {
  color: #e0e6f0;
}
.bp-form[data-v-aa779a68] {
  margin-top: 8px;
}
.supplier-hint[data-v-aa779a68] {
  font-size: 12px;
  color: #8899b4;
  margin-top: 4px;
}
.tag-dot[data-v-aa779a68] {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  margin-right: 4px;
}
.tag-dot-hot[data-v-aa779a68] {
  background: #f87171;
}
.tag-dot-slow[data-v-aa779a68] {
  background: #fbbf24;
}
.tag-dot-new[data-v-aa779a68] {
  background: #60a5fa;
}
.tag-dot-alert[data-v-aa779a68] {
  background: #c084fc;
}
.tag-dot-profit[data-v-aa779a68] {
  background: #4ade80;
}
.tag-dot-focus[data-v-aa779a68] {
  background: #fb923c;
}
.tag-dot-clear[data-v-aa779a68] {
  background: #9ca3af;
}
.dist-body[data-v-aa779a68] {
  color: #e0e6f0;
}
.dist-form[data-v-aa779a68] {
  margin-top: 16px;
}
.timeline-content strong[data-v-aa779a68] {
  display: block;
  font-size: 13px;
}
.timeline-content p[data-v-aa779a68] {
  margin: 2px 0 0 0;
  font-size: 12px;
  color: #8899b4;
}
.sticky-header-table .el-table__header-wrapper {
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
}
.sticky-header-table .el-table__header-wrapper th {
  background: #0d1b2a !important;
  color: #8899b4 !important;
  border-bottom: 2px solid #1a3460 !important;
}
.sticky-header-table .el-table__body-wrapper {
  overflow-y: auto !important;
}
.sticky-header-table .el-table__fixed-right {
  position: sticky !important;
  right: 0 !important;
  z-index: 101 !important;
  background: #0a0f1e !important;
  box-shadow: -2px 0 8px rgba(0, 0, 0, 0.4) !important;
}
.bidirectional-bar[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: #1a1a2e;
  border: 1px solid #2a2a4a;
  border-radius: 8px;
  margin-top: 8px;
  margin-bottom: 8px;
  font-size: 13px;
}
.bidirectional-bar .bidir-back-btn[data-v-48e69825] {
  background: transparent;
  border: 1px solid #4f8ef7;
  color: #4f8ef7;
  padding: 4px 12px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.bidirectional-bar .bidir-back-btn[data-v-48e69825]:hover {
  background: rgba(79, 142, 247, 0.15);
}
.bidirectional-bar .bidir-info[data-v-48e69825] {
  color: #4a5568;
  font-size: 11px;
}
.bidirectional-bar .bidir-analysis-btn[data-v-48e69825] {
  background: #4f8ef7;
  border: none;
  color: #fff;
  padding: 5px 14px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
  margin-left: auto;
}
.bidirectional-bar .bidir-analysis-btn[data-v-48e69825]:hover {
  filter: brightness(1.1);
}
.dna-page[data-v-48e69825] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #e0e6ed;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.dna-page[data-v-48e69825] .el-breadcrumb {
  font-size: 14px;
}
.dna-page[data-v-48e69825] .el-breadcrumb .el-breadcrumb__inner {
  color: #8892b0;
}
.dna-page[data-v-48e69825] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #0066CC;
  font-weight: 600;
}
.dna-page[data-v-48e69825] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
  box-shadow: none;
}
.dna-page[data-v-48e69825] .el-input__wrapper:hover {
  border-color: #0066CC;
}
.dna-page[data-v-48e69825] .el-input__inner {
  color: #e0e6ed;
}
.dna-page[data-v-48e69825] .el-input--disabled .el-input__wrapper {
  background: #0f1a2e;
}
.dna-page[data-v-48e69825] .el-select .el-input__wrapper {
  background: #1a1a2e;
}
.dna-page[data-v-48e69825] .el-select-dropdown {
  background: #16213e;
  border: 1px solid #2d3a5c;
}
.dna-page[data-v-48e69825] .el-select-dropdown .el-select-dropdown__item {
  color: #e0e6ed;
}
.dna-page[data-v-48e69825] .el-select-dropdown .el-select-dropdown__item.hover, .dna-page[data-v-48e69825] .el-select-dropdown .el-select-dropdown__item:hover {
  background: #0f3460;
}
.dna-page[data-v-48e69825] .el-select-dropdown .el-select-dropdown__item.selected {
  color: #0066CC;
}
.dna-page[data-v-48e69825] .el-tag.el-tag--info {
  background: #0f3460;
  border-color: #1a4a7a;
  color: #8bb8e8;
}
.dna-page[data-v-48e69825] .el-tag.el-tag--success {
  background: #1a3a2e;
  border-color: #2a5a3e;
  color: #5fc88b;
}
.dna-page[data-v-48e69825] .el-tag.el-tag--primary {
  background: #0a2840;
  border-color: #0066CC;
  color: #66aaff;
}
.dna-page[data-v-48e69825] .el-tag.el-tag--danger {
  background: #3a1a1a;
  border-color: #c43636;
  color: #ff6b6b;
}
.dna-page[data-v-48e69825] .el-card {
  border: 1px solid #2d3a5c;
}
.dna-page[data-v-48e69825] .el-descriptions .el-descriptions__cell {
  background: #16213e;
  color: #c8d0dc;
}
.dna-page[data-v-48e69825] .el-descriptions .el-descriptions__label.el-descriptions__cell {
  background: #0f1a2e;
  color: #8892b0;
  border-color: #2d3a5c;
}
.dna-page[data-v-48e69825] .el-descriptions .el-descriptions__content.el-descriptions__cell {
  border-color: #2d3a5c;
}
.dna-page[data-v-48e69825] .el-divider {
  border-top-color: #2d3a5c;
}
.dna-page[data-v-48e69825] .el-divider .el-divider__text {
  background: #16213e;
  color: #66aaff;
}
.dna-page[data-v-48e69825] .el-tabs__header {
  border-bottom-color: #2d3a5c;
  margin: 0;
}
.dna-page[data-v-48e69825] .el-tabs__item {
  color: #8892b0;
  font-size: 14px;
  padding: 0 20px;
  height: 42px;
  line-height: 42px;
}
.dna-page[data-v-48e69825] .el-tabs__item:hover {
  color: #b0bcd6;
}
.dna-page[data-v-48e69825] .el-tabs__item.is-active {
  color: #0066CC;
}
.dna-page[data-v-48e69825] .el-tabs__active-bar {
  background: #0066CC;
  height: 3px;
}
.dna-page[data-v-48e69825] .el-tabs__nav-wrap::after {
  background: #2d3a5c;
  height: 1px;
}
.dna-page[data-v-48e69825] .el-timeline {
  padding-left: 0;
}
.dna-page[data-v-48e69825] .el-timeline-item__tail {
  border-left-color: #2d3a5c;
}
.dna-page[data-v-48e69825] .el-timeline-item__node {
  width: 12px;
  height: 12px;
}
.dna-page[data-v-48e69825] .el-timeline-item__timestamp {
  color: #8892b0;
  font-size: 12px;
}
.dna-page[data-v-48e69825] .el-dialog {
  background: #16213e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
}
.dna-page[data-v-48e69825] .el-dialog .el-dialog__header {
  background: #0f3460;
  margin: 0;
  padding: 15px 20px;
  border-radius: 8px 8px 0 0;
}
.dna-page[data-v-48e69825] .el-dialog .el-dialog__title {
  color: #e0e6ed;
  font-size: 16px;
  font-weight: 600;
}
.dna-page[data-v-48e69825] .el-dialog .el-dialog__body {
  padding: 20px;
  color: #c8d0dc;
}
.dna-page[data-v-48e69825] .el-dialog .el-dialog__footer {
  border-top: 1px solid #2d3a5c;
  padding: 12px 20px;
}
.dna-page[data-v-48e69825] .el-dialog .el-dialog__close {
  color: #8892b0;
}
.dna-page[data-v-48e69825] .el-dialog .el-dialog__close:hover {
  color: #e0e6ed;
}
.dna-page[data-v-48e69825] .el-form-item__label {
  color: #8892b0;
}
.dna-page[data-v-48e69825] .el-input-number .el-input-number__decrease, .dna-page[data-v-48e69825] .el-input-number .el-input-number__increase {
  background: #1a1a2e;
  color: #8892b0;
  border-color: #2d3a5c;
}
.dna-page[data-v-48e69825] .el-loading-mask {
  background: rgba(26, 26, 46, 0.6);
}
.dna-page[data-v-48e69825] .el-radio-button__inner {
  background: #1a1a2e;
  border-color: #2d3a5c;
  color: #8892b0;
}
.dna-page[data-v-48e69825] .el-radio-button__inner:hover {
  color: #0066CC;
}
.dna-page[data-v-48e69825] .el-radio-button.is-active .el-radio-button__inner {
  background: #0066CC;
  border-color: #0066CC;
  color: #fff;
}
.card-container[data-v-48e69825] {
  background: #16213e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  padding: 16px 20px;
}
.product-namecard[data-v-48e69825], .kpi-row[data-v-48e69825], .dna-page[data-v-48e69825] >  .el-breadcrumb {
  flex-shrink: 0;
}
.dna-left-col > .card-container[data-v-48e69825], .dna-right-col > .card-container[data-v-48e69825] {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.product-namecard[data-v-48e69825] {
  margin-top: 16px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.product-namecard .nc-left[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 280px;
}
.product-namecard .nc-thumb[data-v-48e69825] {
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-namecard .nc-thumb .nc-placeholder[data-v-48e69825] {
  font-size: 36px;
}
.product-namecard .nc-info .nc-sku[data-v-48e69825] {
  font-size: 12px;
  color: #5a6a8a;
  font-family: monospace;
}
.product-namecard .nc-info .nc-name[data-v-48e69825] {
  font-size: 16px;
  font-weight: 700;
  color: #e0e6ed;
  margin: 4px 0 6px;
}
.product-namecard .nc-info .nc-meta[data-v-48e69825] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.product-namecard .nc-info .nc-meta .nc-meta-item[data-v-48e69825] {
  font-size: 12px;
  color: #8892b0;
}
.product-namecard .nc-center[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 120px;
}
.product-namecard .nc-health[data-v-48e69825] {
  text-align: center;
}
.product-namecard .nc-health .nc-health-score[data-v-48e69825] {
  font-size: 36px;
  font-weight: 800;
}
.product-namecard .nc-health .nc-health-score.health-green[data-v-48e69825] {
  color: #5fc88b;
}
.product-namecard .nc-health .nc-health-score.health-yellow[data-v-48e69825] {
  color: #f59e0b;
}
.product-namecard .nc-health .nc-health-score.health-red[data-v-48e69825] {
  color: #ff6b6b;
}
.product-namecard .nc-health .nc-health-label[data-v-48e69825] {
  font-size: 11px;
  color: #5a6a8a;
}
.product-namecard .nc-quick-tags[data-v-48e69825] {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.product-namecard .nc-right[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  min-width: 260px;
}
.product-namecard .nc-actions[data-v-48e69825] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}
.product-namecard .btn-action[data-v-48e69825] {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0dc;
  font-size: 12px;
  padding: 5px 10px;
}
.product-namecard .btn-action[data-v-48e69825]:hover {
  background: #4a5478;
  border-color: #4a5478;
  color: #e0e6ed;
}
.product-namecard .btn-action .el-icon[data-v-48e69825] {
  margin-right: 2px;
}
.product-namecard .btn-action-warn[data-v-48e69825]:hover {
  background: #c43636;
  border-color: #c43636;
  color: #fff;
}
.qt-tag[data-v-48e69825] {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
}
.qt-hot[data-v-48e69825] {
  background: rgba(196, 54, 54, 0.15);
  color: #ff6b6b;
  border: 1px solid rgba(196, 54, 54, 0.3);
}
.qt-new[data-v-48e69825] {
  background: rgba(0, 204, 102, 0.15);
  color: #5fc88b;
  border: 1px solid rgba(0, 204, 102, 0.3);
}
.qt-slow[data-v-48e69825] {
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.3);
}
.kpi-row[data-v-48e69825] {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.kpi-row .kpi-card[data-v-48e69825] {
  flex: 1;
  min-width: 160px;
  background: #16213e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  padding: 14px 16px;
  cursor: pointer;
  transition: all 0.2s;
}
.kpi-row .kpi-card[data-v-48e69825]:hover {
  border-color: #0066CC;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 102, 204, 0.15);
}
.kpi-row .kpi-card.kpi-abnormal[data-v-48e69825] {
  border-color: rgba(196, 54, 54, 0.4);
  background: rgba(196, 54, 54, 0.05);
}
.kpi-row .kpi-card .kpi-header[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.kpi-row .kpi-card .kpi-label[data-v-48e69825] {
  font-size: 12px;
  color: #8892b0;
}
.kpi-row .kpi-card .kpi-benchmark[data-v-48e69825] {
  font-size: 10px;
  color: #5a6a8a;
}
.kpi-row .kpi-card .kpi-value[data-v-48e69825] {
  font-size: 24px;
  font-weight: 700;
  color: #e0e6ed;
}
.kpi-row .kpi-card .kpi-trend[data-v-48e69825] {
  margin-top: 4px;
  font-size: 11px;
}
.kpi-row .kpi-card .kpi-trend .kpi-arrow[data-v-48e69825] {
  margin-right: 4px;
}
.product-namecard[data-v-48e69825], .kpi-row[data-v-48e69825], .dna-page[data-v-48e69825] >  .el-breadcrumb {
  flex-shrink: 0;
}
.dna-left-col > .card-container[data-v-48e69825], .dna-right-col > .card-container[data-v-48e69825] {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.tab-area[data-v-48e69825] {
  padding: 12px 16px;
  min-height: 420px;
}
.tab-content[data-v-48e69825] {
  padding: 12px 0;
}
.chart-panel[data-v-48e69825] {
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  padding: 12px 16px;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.linked-ops-panel[data-v-48e69825] {
  margin-top: 12px;
  min-height: 210px;
}
.dna-main-row[data-v-48e69825] {
  align-items: stretch !important;
}
.dna-left-col[data-v-48e69825], .dna-right-col[data-v-48e69825] {
  display: flex;
  flex-direction: column;
}
.dna-left-col > .card-container[data-v-48e69825], .dna-right-col > .card-container[data-v-48e69825] {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.dna-card[data-v-48e69825] {
  background: #1a1a2e !important;
  border: 1px solid #2d3a5c !important;
  border-radius: 6px;
  margin-bottom: 12px;
  text-align: center;
}
.dna-card .card-value[data-v-48e69825] {
  font-size: 22px;
  font-weight: 700;
  color: #e0e6ed;
}
.dna-card .card-label[data-v-48e69825] {
  font-size: 13px;
  color: #8892b0;
  margin-top: 4px;
}
.dna-card .card-trend[data-v-48e69825] {
  font-size: 11px;
  margin-top: 6px;
  padding: 2px 8px;
  border-radius: 10px;
  display: inline-block;
}
.dna-card .trend-up[data-v-48e69825] {
  background: rgba(0, 204, 102, 0.15);
  color: #5fc88b;
}
.dna-card .trend-down[data-v-48e69825] {
  background: rgba(196, 54, 54, 0.15);
  color: #ff6b6b;
}
.dna-card .trend-flat[data-v-48e69825] {
  background: rgba(56, 64, 92, 0.4);
  color: #8892b0;
}
.dna-card .card-benchmark[data-v-48e69825] {
  font-size: 11px;
  color: #5a6a8a;
  margin-top: 6px;
}
.chart-title[data-v-48e69825] {
  font-size: 13px;
  font-weight: 600;
  color: #b0bcd6;
  margin: 0 0 8px;
}
.ai-panel[data-v-48e69825] {
  background: rgba(0, 102, 204, 0.06);
  border: 1px solid rgba(0, 102, 204, 0.2);
  border-radius: 8px;
  padding: 14px 18px;
}
.ai-panel-header[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.ai-panel-header .ai-icon[data-v-48e69825] {
  font-size: 20px;
}
.ai-panel-header .ai-title[data-v-48e69825] {
  font-size: 14px;
  font-weight: 600;
  color: #66aaff;
}
.ai-result .ai-row[data-v-48e69825] {
  font-size: 13px;
  color: #8892b0;
  margin-bottom: 6px;
}
.ai-result .ai-row span[data-v-48e69825] {
  color: #5a6a8a;
}
.ai-result .ai-row b[data-v-48e69825] {
  color: #c8d0dc;
}
.ai-result .ai-row.highlight b[data-v-48e69825] {
  font-size: 16px;
}
.ai-actions[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  gap: 12px;
}
.ai-suggestions[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ai-sug-item[data-v-48e69825] {
  background: #1a1a2e;
  border-radius: 6px;
  padding: 12px;
  border-left: 3px solid #2d3a5c;
}
.ai-sug-item .sug-header[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.ai-sug-item .sug-header .sug-badge[data-v-48e69825] {
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 8px;
}
.ai-sug-item .sug-header .sug-badge.sug-danger[data-v-48e69825] {
  background: rgba(196, 54, 54, 0.15);
  color: #ff6b6b;
}
.ai-sug-item .sug-header .sug-badge.sug-warn[data-v-48e69825] {
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
}
.ai-sug-item .sug-header .sug-badge.sug-info[data-v-48e69825] {
  background: rgba(0, 102, 204, 0.15);
  color: #66aaff;
}
.ai-sug-item .sug-header .sug-title[data-v-48e69825] {
  font-size: 13px;
  font-weight: 600;
  color: #c8d0dc;
}
.ai-sug-item .sug-body[data-v-48e69825] {
  font-size: 12px;
  color: #8892b0;
  margin-bottom: 4px;
}
.ai-sug-item .sug-action[data-v-48e69825] {
  text-align: right;
}
.section-panel[data-v-48e69825] {
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  padding: 12px 16px;
}
.dna-table[data-v-48e69825] {
  --el-table-bg-color: #1a1a2e;
  --el-table-tr-bg-color: #1a1a2e;
  --el-table-header-bg-color: #0f1a2e;
  --el-table-border-color: #2d3a5c;
  --el-table-text-color: #c8d0dc;
  --el-table-header-text-color: #8892b0;
  --el-table-row-hover-bg-color: #0f3460;
}
.word-cloud[data-v-48e69825] {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
  min-height: 220px;
  padding: 10px;
}
.word-cloud .wc-word[data-v-48e69825] {
  font-weight: 600;
  transition: all 0.2s;
  cursor: default;
}
.word-cloud .wc-word[data-v-48e69825]:hover {
  transform: scale(1.1);
}
.word-cloud .wc-high[data-v-48e69825] {
  color: #ff6b6b;
}
.word-cloud .wc-mid[data-v-48e69825] {
  color: #f59e0b;
}
.word-cloud .wc-low[data-v-48e69825] {
  color: #66aaff;
}
.pricing-simulator .sim-form[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pricing-simulator .sim-row[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
}
.pricing-simulator .sim-row span[data-v-48e69825] {
  color: #8892b0;
}
.pricing-simulator .sim-row b[data-v-48e69825] {
  color: #c8d0dc;
}
.pricing-simulator .sim-result[data-v-48e69825] {
  background: #0f1a2e;
  border-radius: 6px;
  padding: 10px;
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pricing-simulator .sim-result .sim-item[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
}
.pricing-simulator .sim-result .sim-item span[data-v-48e69825] {
  color: #5a6a8a;
}
.alert-section[data-v-48e69825] {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.alert-item[data-v-48e69825] {
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.alert-item.alert-danger[data-v-48e69825] {
  background: rgba(196, 54, 54, 0.1);
  border: 1px solid rgba(196, 54, 54, 0.3);
  color: #ff6b6b;
}
.alert-item.alert-warn[data-v-48e69825] {
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #fbbf24;
}
.empty-state[data-v-48e69825] {
  text-align: center;
  padding: 50px 20px;
}
.empty-state .empty-icon[data-v-48e69825] {
  font-size: 48px;
  margin-bottom: 12px;
}
.empty-state .empty-title[data-v-48e69825] {
  font-size: 16px;
  color: #8892b0;
  margin: 0 0 8px;
}
.empty-state .empty-hint[data-v-48e69825] {
  font-size: 13px;
  color: #5a6a8a;
  margin: 0;
}
.timeline-area[data-v-48e69825] {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  min-height: 0;
}
.timeline-area[data-v-48e69825] .el-timeline {
  flex: 1;
}
.timeline-area .timeline-header[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid #2d3a5c;
}
.timeline-area .timeline-title[data-v-48e69825] {
  font-size: 15px;
  font-weight: 600;
  color: #b0bcd6;
  margin: 0;
}
.timeline-area .tl-view-switch[data-v-48e69825] {
  margin-bottom: 14px;
}
.timeline-area .tl-item[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.timeline-area .tl-item:hover strong[data-v-48e69825] {
  color: #0066CC;
}
.timeline-area .tl-item .tl-icon[data-v-48e69825] {
  font-size: 16px;
}
.timeline-area .tl-item strong[data-v-48e69825] {
  font-size: 13px;
  color: #c8d0dc;
  transition: color 0.2s;
}
.timeline-area .tl-desc[data-v-48e69825] {
  font-size: 11px;
  color: #5a6a8a;
  margin-top: 2px;
}
.timeline-area .btn-link[data-v-48e69825] {
  color: #0066CC;
  font-size: 12px;
}
.dna-dialog[data-v-48e69825] .el-dialog__body {
  max-height: 65vh;
  overflow-y: auto;
}
.dialog-header[data-v-48e69825] {
  font-size: 16px;
  font-weight: 600;
  color: #e0e6ed;
}
.edit-hint[data-v-48e69825] {
  font-size: 12px;
  color: #5a6a8a;
  margin: -8px 0 8px;
}
.btn-primary[data-v-48e69825] {
  background: #0066CC !important;
  border-color: #0066CC !important;
  color: #fff !important;
}
.btn-primary[data-v-48e69825]:hover {
  background: #0052a3 !important;
}
.btn-secondary[data-v-48e69825] {
  background: #38405c !important;
  border-color: #38405c !important;
  color: #c8d0dc !important;
}
.btn-secondary[data-v-48e69825]:hover {
  background: #4a5478 !important;
}
.btn-link[data-v-48e69825] {
  background: transparent !important;
  border: none !important;
  color: #66aaff;
  padding: 0;
  font-size: 12px;
  cursor: pointer;
  transition: color 0.2s;
}
.btn-link[data-v-48e69825]:hover {
  color: #0066CC;
}
.clickable-card[data-v-48e69825], .kpi-card[data-v-48e69825], .linked-op-card[data-v-48e69825], .diag-block[data-v-48e69825], .chart-panel[data-v-48e69825] {
  transition: all 0.2s ease;
}
.nc-actions .el-button[data-v-48e69825] {
  transition: all 0.15s ease;
}
.nc-actions .el-button[data-v-48e69825]:hover {
  transform: translateY(-1px);
}
.text-accent[data-v-48e69825] {
  color: #0066CC;
}
.text-green[data-v-48e69825] {
  color: #5fc88b;
}
.text-warn[data-v-48e69825] {
  color: #f59e0b;
}
.text-red[data-v-48e69825] {
  color: #ff6b6b;
}
.text-blue[data-v-48e69825] {
  color: #66aaff;
}
.text-muted[data-v-48e69825] {
  color: #5a6a8a;
}
.timeline-predict[data-v-48e69825] {
  padding: 10px 12px;
  margin-top: 8px;
  background: rgba(0, 102, 204, 0.06);
  border-radius: 8px;
  border: 1px dashed rgba(0, 102, 204, 0.3);
  display: flex;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
}
.predict-dot[data-v-48e69825] {
  font-size: 18px;
  flex-shrink: 0;
}
.predict-content .predict-label[data-v-48e69825] {
  font-size: 11px;
  color: #66aaff;
}
.predict-content .predict-title[data-v-48e69825] {
  font-size: 12px;
  color: #c8d0dc;
  margin-top: 2px;
}
.module-preview-card[data-v-48e69825] {
  position: fixed;
  z-index: 9999;
  width: 240px;
  background: #16213e;
  border: 1px solid #0066CC;
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
  padding: 12px;
  pointer-events: auto;
}
.module-preview-card .mp-header[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid #2d3a5c;
  font-size: 13px;
  font-weight: 600;
  color: #e0e6ed;
}
.module-preview-card .mp-body[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.module-preview-card .mp-row[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  padding: 3px 0;
  font-size: 11px;
}
.module-preview-card .mp-label[data-v-48e69825] {
  color: #5a6a8a;
}
.module-preview-card .mp-value[data-v-48e69825] {
  color: #c8d0dc;
  font-weight: 500;
}
.module-preview-card .mp-footer[data-v-48e69825] {
  margin-top: 8px;
  text-align: right;
}
.ai-summary-bar[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  margin-top: 12px;
  background: linear-gradient(90deg, rgba(0, 102, 204, 0.08), rgba(0, 102, 204, 0.02));
  border: 1px solid rgba(0, 102, 204, 0.2);
  border-radius: 8px;
  flex-shrink: 0;
}
.ai-summary-icon[data-v-48e69825] {
  font-size: 20px;
  flex-shrink: 0;
}
.ai-summary-text[data-v-48e69825] {
  flex: 1;
  font-size: 13px;
  color: #c8d0dc;
  line-height: 1.5;
}
.ai-summary-btn[data-v-48e69825] {
  flex-shrink: 0;
  background: #0066CC !important;
  border-color: #0066CC !important;
  color: #fff !important;
  font-size: 12px;
}
.link-analysis[data-v-48e69825] {
  color: #66aaff !important;
  font-size: 12px;
  margin-left: auto;
}
.link-analysis[data-v-48e69825]:hover {
  color: #0066CC !important;
  text-decoration: underline;
}
.metric-info-icon[data-v-48e69825] {
  font-size: 11px;
  color: #5a6a8a;
  cursor: help;
  transition: color 0.2s;
}
.metric-info-icon[data-v-48e69825]:hover {
  color: #0066CC;
}
.diag-block[data-v-48e69825] {
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  padding: 14px 18px;
}
.diag-subtitle[data-v-48e69825] {
  font-size: 14px;
  font-weight: 600;
  color: #b0bcd6;
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #2d3a5c;
}
.diag-subtitle-note[data-v-48e69825] {
  font-weight: 400;
  font-size: 12px;
  color: #5a6a8a;
}
.diag-subtitle-row[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #2d3a5c;
  flex-wrap: wrap;
  gap: 8px;
}
.diag-subtitle-row .diag-subtitle[data-v-48e69825] {
  margin: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.diagnose-summary-bar[data-v-48e69825] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border-radius: 8px;
  border: 1px solid #2d3a5c;
  background: #1a1a2e;
}
.diagnose-summary-bar.ds-good[data-v-48e69825] {
  border-color: rgba(34, 197, 94, 0.25);
  background: rgba(34, 197, 94, 0.04);
}
.diagnose-summary-bar.ds-ok[data-v-48e69825] {
  border-color: rgba(0, 102, 204, 0.2);
  background: rgba(0, 102, 204, 0.03);
}
.diagnose-summary-bar.ds-warn[data-v-48e69825] {
  border-color: rgba(245, 158, 11, 0.25);
  background: rgba(245, 158, 11, 0.04);
}
.diagnose-summary-bar.ds-danger[data-v-48e69825] {
  border-color: rgba(196, 54, 54, 0.3);
  background: rgba(196, 54, 54, 0.04);
}
.diagnose-summary-bar .ds-icon[data-v-48e69825] {
  font-size: 28px;
  flex-shrink: 0;
  margin-top: 2px;
}
.diagnose-summary-bar .ds-content[data-v-48e69825] {
  flex: 1;
}
.diagnose-summary-bar .ds-content .ds-title[data-v-48e69825] {
  font-size: 14px;
  color: #c8d0dc;
  line-height: 1.7;
  margin-bottom: 6px;
}
.diagnose-summary-bar .ds-meta[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
  flex-wrap: wrap;
}
.diagnose-summary-bar .ds-meta .ds-lifecycle[data-v-48e69825] {
  font-size: 12px;
  color: #8b5cf6;
}
.diagnose-summary-bar .ds-strategy[data-v-48e69825] {
  font-size: 12px;
  color: #8892b0;
  line-height: 1.5;
}
.prob-card-v2[data-v-48e69825] {
  margin-bottom: 8px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #2d3a5c;
  background: #0f1a2e;
}
.prob-card-v2.prob-card-danger[data-v-48e69825] {
  border-left: 3px solid #c43636;
}
.prob-card-v2.prob-card-warn[data-v-48e69825] {
  border-left: 3px solid #f59e0b;
}
.prob-card-v2.prob-card-info[data-v-48e69825] {
  border-left: 3px solid #0066CC;
}
.prob-card-v2 .prob-card-top[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  cursor: pointer;
  transition: background 0.15s;
}
.prob-card-v2 .prob-card-top[data-v-48e69825]:hover {
  background: rgba(0, 102, 204, 0.04);
}
.prob-card-v2 .prob-severity-bar[data-v-48e69825] {
  width: 4px;
  height: 20px;
  border-radius: 2px;
  flex-shrink: 0;
}
.prob-card-v2 .prob-severity-bar.sev-danger[data-v-48e69825] {
  background: #c43636;
}
.prob-card-v2 .prob-severity-bar.sev-warn[data-v-48e69825] {
  background: #f59e0b;
}
.prob-card-v2 .prob-severity-bar.sev-info[data-v-48e69825] {
  background: #0066CC;
}
.prob-card-v2 .prob-sev-badge[data-v-48e69825] {
  font-size: 10px;
  padding: 2px 7px;
  border-radius: 8px;
  font-weight: 600;
  white-space: nowrap;
}
.prob-card-v2 .prob-sev-badge.badge-danger[data-v-48e69825] {
  background: rgba(196, 54, 54, 0.18);
  color: #ff6b6b;
}
.prob-card-v2 .prob-sev-badge.badge-warn[data-v-48e69825] {
  background: rgba(245, 158, 11, 0.18);
  color: #fbbf24;
}
.prob-card-v2 .prob-sev-badge.badge-info[data-v-48e69825] {
  background: rgba(0, 102, 204, 0.18);
  color: #66aaff;
}
.prob-card-v2 .prob-title-v2[data-v-48e69825] {
  font-size: 13px;
  font-weight: 600;
  color: #e0e6ed;
  flex: 1;
}
.prob-card-v2 .prob-chevron[data-v-48e69825] {
  color: #5a6a8a;
  flex-shrink: 0;
}
.prob-card-v2 .prob-card-body[data-v-48e69825] {
  padding: 0 14px 12px 32px;
  font-size: 12px;
  color: #8892b0;
  line-height: 1.7;
}
.prob-card-v2 .prob-card-body .prob-attribution[data-v-48e69825] {
  margin-bottom: 4px;
}
.prob-card-v2 .prob-card-body .prob-suggestion-v2[data-v-48e69825] {
  color: #5fc88b;
}
.prob-card-v2 .prob-card-body b[data-v-48e69825] {
  color: #b0bcd6;
}
.prob-card-v2 .prob-actions-v2[data-v-48e69825] {
  margin-top: 8px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.benchmark-badge-row[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.benchmark-badge-row .benchmark-badge-label[data-v-48e69825] {
  font-size: 12px;
  color: #5a6a8a;
}
.benchmark-table-v2[data-v-48e69825] {
  border: 1px solid #2d3a5c;
  border-radius: 6px;
  overflow: hidden;
}
.benchmark-table-v2 .bt-header[data-v-48e69825] {
  display: flex;
  padding: 8px 12px;
  background: #0f1a2e;
  font-size: 11px;
  font-weight: 600;
  color: #5a6a8a;
  border-bottom: 1px solid #2d3a5c;
}
.benchmark-table-v2 .bt-row[data-v-48e69825] {
  display: flex;
  padding: 7px 12px;
  font-size: 12px;
  border-bottom: 1px solid rgba(45, 58, 92, 0.3);
}
.benchmark-table-v2 .bt-row[data-v-48e69825]:last-child {
  border-bottom: none;
}
.benchmark-table-v2 .bt-dim[data-v-48e69825] {
  width: 80px;
  color: #8892b0;
}
.benchmark-table-v2 .bt-val[data-v-48e69825] {
  width: 85px;
  text-align: center;
}
.benchmark-table-v2 .bt-current[data-v-48e69825] {
  color: #e0e6ed;
  font-weight: 600;
}
.benchmark-table-v2 .bt-target[data-v-48e69825] {
  color: #5a6a8a;
}
.benchmark-table-v2 .bt-diff[data-v-48e69825] {
  width: 60px;
  text-align: right;
  font-weight: 700;
}
.benchmark-table-v2 .bt-diff-up[data-v-48e69825] {
  color: #5fc88b;
}
.benchmark-table-v2 .bt-diff-down[data-v-48e69825] {
  color: #ff6b6b;
}
.diag-clean[data-v-48e69825] {
  text-align: center;
  padding: 24px;
  font-size: 14px;
  color: #5fc88b;
}
.diag-clean .diag-clean-icon[data-v-48e69825] {
  font-size: 28px;
  display: block;
  margin-bottom: 8px;
}
.attr-row[data-v-48e69825] {
  margin-bottom: 10px;
}
.attr-row[data-v-48e69825]:last-child {
  margin-bottom: 0;
}
.attr-header[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}
.attr-header .attr-factor[data-v-48e69825] {
  font-size: 13px;
  font-weight: 600;
  color: #c8d0dc;
}
.attr-header .attr-impact[data-v-48e69825] {
  font-size: 12px;
}
.attr-desc[data-v-48e69825] {
  font-size: 11px;
  color: #5a6a8a;
  margin-top: 4px;
  line-height: 1.5;
}
.strategy-cards[data-v-48e69825] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.strategy-card[data-v-48e69825] {
  padding: 12px;
  border-radius: 8px;
  border-left: 3px solid;
  background: #0f1a2e;
}
.strategy-card.stg-primary[data-v-48e69825] {
  border-left-color: #c43636;
  background: rgba(196, 54, 54, 0.05);
}
.strategy-card.stg-alternative[data-v-48e69825] {
  border-left-color: #f59e0b;
  background: rgba(245, 158, 11, 0.05);
}
.strategy-card .stg-header[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}
.strategy-card .stg-header .stg-title[data-v-48e69825] {
  font-size: 13px;
  font-weight: 600;
  color: #e0e6ed;
}
.strategy-card .stg-pros[data-v-48e69825] {
  font-size: 11px;
  color: #5fc88b;
  margin-bottom: 2px;
}
.strategy-card .stg-cons[data-v-48e69825] {
  font-size: 11px;
  color: #ff6b6b;
}
.batch-dialog[data-v-48e69825] .el-dialog__body {
  max-height: 70vh;
  overflow-y: auto;
}
.batch-toolbar[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.batch-toolbar .batch-info[data-v-48e69825] {
  font-size: 13px;
  color: #8892b0;
  margin-left: auto;
}
.batch-table-wrap[data-v-48e69825] {
  border: 1px solid #2d3a5c;
  border-radius: 6px;
  overflow: hidden;
}
.batch-result-header[data-v-48e69825] {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  padding: 10px 14px;
  background: #1a1a2e;
  border-radius: 6px;
  font-size: 13px;
  color: #8892b0;
}
.batch-result-header b[data-v-48e69825] {
  font-size: 15px;
}
.batch-summary[data-v-48e69825] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 12px 16px;
}
.batch-issue-row[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(45, 58, 92, 0.3);
  font-size: 13px;
}
.batch-issue-row[data-v-48e69825]:last-child {
  border-bottom: none;
}
.batch-issue-row .batch-issue-rank[data-v-48e69825] {
  color: #0066CC;
  font-weight: 700;
  width: 28px;
}
.batch-issue-row .batch-issue-text[data-v-48e69825] {
  color: #c8d0dc;
  flex: 1;
}
.batch-issue-row .batch-issue-count[data-v-48e69825] {
  color: #f59e0b;
  font-weight: 600;
}
.changelog-header[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  flex-wrap: wrap;
  gap: 8px;
}
.changelog-header .changelog-stats[data-v-48e69825] {
  font-size: 13px;
  color: #8892b0;
}
.changelog-header .changelog-stats b[data-v-48e69825] {
  color: #0066CC;
}
.changelog-header .changelog-filters[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cl-item[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.cl-item:hover strong[data-v-48e69825] {
  color: #0066CC;
}
.cl-item .cl-icon[data-v-48e69825] {
  font-size: 16px;
}
.cl-item .cl-content[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cl-item .cl-content strong[data-v-48e69825] {
  font-size: 13px;
  color: #c8d0dc;
}
.cl-action-tag[data-v-48e69825] {
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 8px;
}
.cl-tag-replenish[data-v-48e69825] {
  background: rgba(0, 102, 204, 0.15);
  color: #66aaff;
}
.cl-tag-price[data-v-48e69825] {
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
}
.cl-tag-distribute[data-v-48e69825] {
  background: rgba(34, 197, 94, 0.15);
  color: #5fc88b;
}
.cl-tag-archive[data-v-48e69825] {
  background: rgba(196, 54, 54, 0.15);
  color: #ff6b6b;
}
.cl-tag-edit[data-v-48e69825] {
  background: rgba(139, 92, 246, 0.15);
  color: #a78bfa;
}
.cl-tag-batch[data-v-48e69825] {
  background: rgba(0, 102, 204, 0.15);
  color: #66aaff;
}
.cl-tag-jump[data-v-48e69825] {
  background: rgba(139, 92, 246, 0.1);
  color: #8892b0;
}
.cl-desc[data-v-48e69825] {
  font-size: 12px;
  color: #5a6a8a;
  margin-top: 2px;
}
.cl-result[data-v-48e69825] {
  font-size: 11px;
  margin-top: 2px;
}
.linked-ops-panel[data-v-48e69825] {
  background: #16213e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  padding: 8px 12px;
  display: flex;
  flex-direction: column;
}
.linked-ops-title[data-v-48e69825] {
  font-size: 12px;
  font-weight: 600;
  color: #b0bcd6;
  margin-bottom: 6px;
}
.linked-ops-row[data-v-48e69825] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 6px;
  flex: 1;
}
.linked-op-card[data-v-48e69825] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 6px;
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  min-height: 0;
}
.linked-op-card[data-v-48e69825]:hover {
  border-color: #0066CC;
  background: #0f3460;
}
.linked-op-card .lop-icon[data-v-48e69825] {
  font-size: 18px;
  line-height: 1;
}
.linked-op-card .lop-label[data-v-48e69825] {
  font-size: 11px;
  color: #c8d0dc;
  font-weight: 600;
  line-height: 1.2;
}
.price-compare[data-v-48e69825] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.price-card[data-v-48e69825] {
  flex: 1;
  padding: 14px 16px;
  border-radius: 8px;
  text-align: center;
}
.price-card-current[data-v-48e69825] {
  background: #1a1a2e;
  border: 1px solid #2d3a5c;
}
.price-card-suggested[data-v-48e69825] {
  background: rgba(34, 197, 94, 0.06);
  border: 1px solid rgba(34, 197, 94, 0.25);
}
.price-card-label[data-v-48e69825] {
  font-size: 12px;
  color: #8892b0;
  margin-bottom: 4px;
}
.price-card-value[data-v-48e69825] {
  font-size: 22px;
  font-weight: 700;
  color: #e0e6ed;
  margin: 4px 0;
}
.price-card-sub[data-v-48e69825] {
  font-size: 11px;
  color: #5a6a8a;
}
.price-arrow[data-v-48e69825] {
  font-size: 20px;
  color: #0066CC;
  flex-shrink: 0;
}
.track-card[data-v-48e69825] {
  background: rgba(0, 102, 204, 0.05);
  border: 1px solid rgba(0, 102, 204, 0.2);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 12px;
}
.track-header[data-v-48e69825] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  font-weight: 600;
  color: #66aaff;
  margin-bottom: 8px;
}
.track-body[data-v-48e69825] {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.track-metric[data-v-48e69825] {
  display: flex;
  gap: 8px;
  font-size: 12px;
}
.track-metric .track-label[data-v-48e69825] {
  color: #5a6a8a;
}
.btn-action-accent[data-v-48e69825] {
  background: rgba(139, 92, 246, 0.2) !important;
  border-color: rgba(139, 92, 246, 0.4) !important;
  color: #a78bfa !important;
}
.btn-action-accent[data-v-48e69825]:hover {
  background: rgba(139, 92, 246, 0.35) !important;
  color: #c4b5fd !important;
}
.timeline-report-btn[data-v-48e69825] {
  margin-top: 10px;
  flex-shrink: 0;
}
.verify-item[data-v-48e69825] {
  display: flex;
  align-items: center;
  padding: 6px 0;
}
.verify-label[data-v-48e69825] {
  font-size: 12px;
  color: #8892b0;
  width: 110px;
  flex-shrink: 0;
}
.verify-value[data-v-48e69825] {
  font-size: 14px;
  font-weight: 700;
  color: #e0e6ed;
  width: 45px;
  text-align: right;
}
.verify-detail[data-v-48e69825] {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #2d3a5c;
  font-size: 12px;
  color: #5a6a8a;
  line-height: 1.8;
}
.verify-detail p[data-v-48e69825] {
  margin: 2px 0;
}
@media (min-width: 1920px) {
.dna-page[data-v-48e69825] {
    max-width: 1800px;
    margin: 0 auto;
}
}
@media (max-width: 1366px) {
.kpi-row .kpi-card[data-v-48e69825] {
    min-width: 130px;
}
}
@media (max-width: 768px) {
.dna-page[data-v-48e69825] {
    padding: 12px;
}
.product-namecard[data-v-48e69825] {
    flex-direction: column;
    align-items: flex-start;
}
.product-namecard .nc-right[data-v-48e69825] {
    align-items: flex-start;
}
.kpi-row .kpi-card[data-v-48e69825] {
    min-width: 140px;
}
}
.lifecycle-page[data-v-f4c08ac4] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 16px 20px 40px;
  color: #e0e0e0;
}
.breadcrumb[data-v-f4c08ac4] {
  margin-bottom: 12px;
}
.breadcrumb[data-v-f4c08ac4] .el-breadcrumb__inner {
  color: #8c8c8c;
  font-size: 13px;
}
.breadcrumb[data-v-f4c08ac4] .el-breadcrumb__separator {
  color: #8c8c8c;
}

/* Tab */
.lifecycle-tabs[data-v-f4c08ac4] .el-tabs__header {
  background: #16213e;
  border-bottom: 1px solid #333;
  padding: 0 16px;
  border-radius: 10px 10px 0 0;
  margin-bottom: 0;
}
.lifecycle-tabs[data-v-f4c08ac4] .el-tabs__nav-wrap::after {
  display: none;
}
.lifecycle-tabs[data-v-f4c08ac4] .el-tabs__item {
  color: #8c8c8c;
  font-size: 14px;
  height: 44px;
  line-height: 44px;
  padding: 0 24px;
}
.lifecycle-tabs[data-v-f4c08ac4] .el-tabs__item.is-active {
  color: #409eff;
  font-weight: 600;
}
.lifecycle-tabs[data-v-f4c08ac4] .el-tabs__active-bar {
  background: #409eff;
}
.lifecycle-tabs[data-v-f4c08ac4] .el-tabs__content {
  padding-top: 16px;
}

/* KPI */
.overview-kpis[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.kpi-card[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  border: 1px solid #333;
  transition: border-color 0.2s, transform 0.2s;
}
.kpi-card[data-v-f4c08ac4]:hover {
  border-color: #409eff;
  transform: translateY(-2px);
}
.kpi-icon[data-v-f4c08ac4] {
  font-size: 24px;
  flex-shrink: 0;
}
.kpi-info[data-v-f4c08ac4] {
  flex: 1;
  min-width: 0;
}
.kpi-value[data-v-f4c08ac4] {
  font-size: 18px;
  font-weight: bold;
  color: #e0e0e0;
}
.kpi-label[data-v-f4c08ac4] {
  font-size: 11px;
  color: #8c8c8c;
  margin-top: 2px;
}
.kpi-change[data-v-f4c08ac4] {
  font-size: 11px;
  margin-top: 2px;
}
.kpi-change.up[data-v-f4c08ac4] {
  color: #67c23a;
}
.kpi-change.down[data-v-f4c08ac4] {
  color: #f56c6c;
}
.kpi-change.danger[data-v-f4c08ac4] {
  color: #f56c6c;
}

/* P2: 预测卡片 */
.prediction-cards[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.pred-card[data-v-f4c08ac4] {
  padding: 14px;
  background: #16213e;
  border-radius: 8px;
  border: 1px solid #333;
  text-align: center;
}
.pred-icon[data-v-f4c08ac4] {
  font-size: 22px;
  margin-bottom: 6px;
}
.pred-title[data-v-f4c08ac4] {
  font-size: 12px;
  color: #8c8c8c;
}
.pred-value[data-v-f4c08ac4] {
  font-size: 17px;
  font-weight: bold;
  color: #e0e0e0;
  margin: 4px 0;
}
.pred-value.danger[data-v-f4c08ac4] {
  color: #f56c6c;
}
.pred-value.warning[data-v-f4c08ac4] {
  color: #e6a23c;
}
.pred-value.normal[data-v-f4c08ac4] {
  color: #67c23a;
}
.pred-confidence[data-v-f4c08ac4], .pred-date[data-v-f4c08ac4] {
  font-size: 11px;
  color: #8c8c8c;
}

/* 图表 */
.overview-charts[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.chart-card[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
}
.chart-card-header[data-v-f4c08ac4] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.chart-card-header h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin: 0;
}
.chart-hint[data-v-f4c08ac4] {
  font-size: 10px;
  color: #8c8c8c;
  font-weight: normal;
}
.back-link[data-v-f4c08ac4] {
  font-size: 12px;
}
.chart-period-tabs[data-v-f4c08ac4] .el-radio-button__inner {
  padding: 4px 10px;
  font-size: 11px;
}
.chart[data-v-f4c08ac4] {
  height: 220px;
  width: 100%;
}

/* 风险预警 */
.risk-alerts[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}
.risk-alerts h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin-bottom: 10px;
}
.risk-level-tabs[data-v-f4c08ac4] {
  margin-bottom: 12px;
}
.risk-item[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #2a2a3e;
}
.risk-item[data-v-f4c08ac4]:last-child {
  border-bottom: none;
}
.risk-text[data-v-f4c08ac4] {
  flex: 1;
  font-size: 13px;
  color: #c0c0c0;
}
.risk-actions[data-v-f4c08ac4] {
  display: flex;
  gap: 6px;
  margin-left: auto;
}

/* 预警分页 */
.pagination-wrap[data-v-f4c08ac4] {
  display: flex;
  justify-content: flex-end;
  padding: 12px 0 4px;
}
[data-v-f4c08ac4] .pagination-wrap .el-pagination {
  --el-pagination-button-bg-color: #1a1a3e;
  --el-pagination-hover-color: #409eff;
  color: #c0c0c0;
  font-size: 12px;
}
[data-v-f4c08ac4] .pagination-wrap .el-pager li {
  background: #1a1a3e;
  color: #c0c0c0;
}
[data-v-f4c08ac4] .pagination-wrap .el-pager li.is-active {
  background: #409eff;
  color: #fff;
}
[data-v-f4c08ac4] .pagination-wrap .el-pagination button {
  background: #1a1a3e;
  color: #c0c0c0;
}

/* 快捷操作 */
.quick-actions[data-v-f4c08ac4] {
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

/* Tab2 */
.filters[data-v-f4c08ac4] {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.filter-schemes[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 8px;
}
.batch-toolbar[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(64, 158, 255, 0.1);
  border: 1px solid rgba(64, 158, 255, 0.3);
  border-radius: 8px;
  margin-bottom: 12px;
  font-size: 13px;
  color: #409eff;
}

/* 阶段面板 */
.stage-panels[data-v-f4c08ac4] .el-collapse {
  --el-collapse-header-bg-color: transparent;
  --el-collapse-content-bg-color: transparent;
  border: none;
}
.stage-panels[data-v-f4c08ac4] .el-collapse-item__header {
  background: #16213e;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: 0 16px;
  height: 52px;
  color: #e0e0e0;
  font-size: 14px;
  border-radius: 8px;
  margin-bottom: 4px;
}
.stage-panels[data-v-f4c08ac4] .el-collapse-item__header:hover {
  background: rgb(26.0071428571, 39.0107142857, 73.2928571429);
}
.stage-panels[data-v-f4c08ac4] .el-collapse-item__wrap {
  background: transparent;
  border: none;
  margin-bottom: 8px;
}
.stage-panels[data-v-f4c08ac4] .el-collapse-item__content {
  padding: 8px 0;
}
.stage-header[data-v-f4c08ac4] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.stage-header-right[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
}
.stage-name[data-v-f4c08ac4] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e0e0;
}
.stage-metrics[data-v-f4c08ac4] {
  font-size: 11px;
  color: #8c8c8c;
}

/* Tab3 */
.review-kpis[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.review-card[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
  text-align: center;
  border: 1px solid #333;
}
.review-value[data-v-f4c08ac4] {
  font-size: 24px;
  font-weight: bold;
  color: #409eff;
}
.review-label[data-v-f4c08ac4] {
  font-size: 12px;
  color: #8c8c8c;
  margin: 4px 0;
}
.review-change[data-v-f4c08ac4] {
  font-size: 11px;
}
.review-change.up[data-v-f4c08ac4] {
  color: #67c23a;
}
.review-change.down[data-v-f4c08ac4] {
  color: #f56c6c;
}
.selection-review[data-v-f4c08ac4], .archived-review[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}
.selection-review h4[data-v-f4c08ac4], .archived-review h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin-bottom: 8px;
}
.export-section[data-v-f4c08ac4] {
  margin-top: 16px;
  padding: 16px;
  background: #16213e;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.export-hint[data-v-f4c08ac4] {
  font-size: 12px;
  color: #8c8c8c;
}

/* P1: 行业对标 */
.industry-benchmark[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}
.industry-benchmark h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin: 0 0 12px;
}
.benchmark-cards[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.bm-card[data-v-f4c08ac4] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 12px;
  text-align: center;
}
.bm-label[data-v-f4c08ac4] {
  font-size: 11px;
  color: #8c8c8c;
}
.bm-value[data-v-f4c08ac4] {
  font-size: 20px;
  font-weight: bold;
  color: #409eff;
  margin: 4px 0;
}
.bm-vs[data-v-f4c08ac4] {
  font-size: 11px;
  color: #a0a0a0;
}
.bm-vs .up[data-v-f4c08ac4] {
  color: #67c23a;
}
.bm-vs .down[data-v-f4c08ac4] {
  color: #f56c6c;
}

/* P2: 自动流转规则 */
.rule-section[data-v-f4c08ac4] {
  padding: 12px 0;
  border-bottom: 1px solid #2a2a3e;
}
.rule-section h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin: 0 0 8px;
}
.rule-config-item[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  font-size: 13px;
  color: #c0c0c0;
}
.rule-mode[data-v-f4c08ac4] {
  margin-top: 8px;
}

/* P2: AI策略 */
.strategy-content[data-v-f4c08ac4] {
  padding: 8px;
}
.strategy-phase h4[data-v-f4c08ac4] {
  font-size: 14px;
  color: #e0e0e0;
  margin-bottom: 12px;
}
.strategy-card[data-v-f4c08ac4] {
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 12px;
  position: relative;
}
.strategy-card.recommended[data-v-f4c08ac4] {
  background: rgba(64, 158, 255, 0.08);
  border: 1px solid rgba(64, 158, 255, 0.3);
}
.strategy-card.alternative[data-v-f4c08ac4] {
  background: rgba(230, 162, 60, 0.08);
  border: 1px solid rgba(230, 162, 60, 0.3);
}
.strategy-badge[data-v-f4c08ac4] {
  position: absolute;
  top: 8px;
  right: 8px;
  background: #409eff;
  color: #fff;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
}
.strategy-badge.alt[data-v-f4c08ac4] {
  background: #e6a23c;
}
.strategy-title[data-v-f4c08ac4] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e0e0;
  margin: 8px 0 4px;
}
.strategy-desc[data-v-f4c08ac4] {
  font-size: 12px;
  color: #a0a0a0;
  line-height: 1.6;
}
.strategy-metrics[data-v-f4c08ac4] {
  display: flex;
  gap: 20px;
  margin: 12px 0;
}
.str-metric[data-v-f4c08ac4] {
  text-align: center;
}
.str-metric .str-label[data-v-f4c08ac4] {
  display: block;
  font-size: 11px;
  color: #8c8c8c;
}
.str-metric .str-value[data-v-f4c08ac4] {
  display: block;
  font-size: 14px;
  font-weight: bold;
  color: #67c23a;
  margin-top: 2px;
}

/* P3: 悬浮预览 */
.row-preview[data-v-f4c08ac4] {
  position: fixed;
  z-index: 9999;
  background: #16213e;
  border: 1px solid #409eff;
  border-radius: 8px;
  padding: 12px;
  min-width: 220px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  pointer-events: none;
}
.preview-header[data-v-f4c08ac4] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid #2a2a3e;
}
.preview-header strong[data-v-f4c08ac4] {
  color: #e0e0e0;
  font-size: 13px;
}
.preview-body[data-v-f4c08ac4] {
  font-size: 12px;
}
.preview-item[data-v-f4c08ac4] {
  display: flex;
  justify-content: space-between;
  padding: 3px 0;
  color: #c0c0c0;
}
.preview-item span[data-v-f4c08ac4] {
  color: #8c8c8c;
  margin-right: 12px;
}

/* P3: 骨架屏/空状态/错误状态 */
.skeleton-container[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 16px 0;
}
.skeleton-card[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
}
.skeleton-line[data-v-f4c08ac4] {
  height: 12px;
  background: linear-gradient(90deg, #1a1a2e 25%, #2a2a3e 50%, #1a1a2e 75%);
  background-size: 200% 100%;
  animation: shimmer-f4c08ac4 1.5s infinite;
  border-radius: 4px;
  margin: 8px 0;
}
@keyframes shimmer-f4c08ac4 {
0% {
    background-position: 200% 0;
}
100% {
    background-position: -200% 0;
}
}
.empty-state[data-v-f4c08ac4] {
  text-align: center;
  padding: 60px 20px;
  color: #8c8c8c;
}
.empty-state p[data-v-f4c08ac4] {
  margin-top: 8px;
  font-size: 13px;
}
.error-state[data-v-f4c08ac4] {
  text-align: center;
  padding: 60px 20px;
}
.error-state p[data-v-f4c08ac4] {
  margin: 8px 0 16px;
  font-size: 13px;
  color: #c0c0c0;
}

/* P4: 审计日志 */
.audit-section[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 8px;
  padding: 16px;
  margin-top: 16px;
}
.audit-section h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin: 0 0 12px;
}

/* 弹窗/日志 */
.log-header-dialog[data-v-f4c08ac4] {
  margin-bottom: 16px;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.log-header-dialog .log-sku-dialog[data-v-f4c08ac4] {
  font-weight: 700;
  color: #58a6ff;
  font-size: 14px;
}
.log-header-dialog .log-name-dialog[data-v-f4c08ac4] {
  color: #8c8c8c;
  font-size: 13px;
}
.log-content[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #c0c0c0;
}

/* 规则条 */
.rules-banner[data-v-f4c08ac4] {
  padding: 12px 20px;
}
.rules-banner .rule-item[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
}
.rules-banner .rule-item .rule-arrow[data-v-f4c08ac4] {
  color: #58a6ff;
  font-weight: 600;
}
.rules-banner .rule-item .el-icon[data-v-f4c08ac4] {
  color: #8c8c8c;
  font-size: 12px;
}
.rules-banner .rule-item .rule-desc[data-v-f4c08ac4] {
  color: #8c8c8c;
  margin-left: 4px;
}
.card-container[data-v-f4c08ac4] {
  background: #16213e;
  border-radius: 10px;
  padding: 18px 20px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  margin-bottom: 16px;
}

/* 表格 */
[data-v-f4c08ac4] .el-table {
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: rgba(255,255,255,0.04);
  --el-table-row-hover-bg-color: rgba(255,255,255,0.06);
  --el-table-border-color: rgba(255,255,255,0.06);
  --el-table-text-color: $text-light;
  --el-table-header-text-color: $text-muted;
}
[data-v-f4c08ac4] .el-table th.el-table__cell {
  background-color: rgba(255, 255, 255, 0.04) !important;
  color: #8c8c8c;
  font-weight: 500;
  font-size: 12px;
}
[data-v-f4c08ac4] .el-table td.el-table__cell {
  color: #e0e0e0;
  font-size: 13px;
}

/* 弹窗 */
[data-v-f4c08ac4] .el-dialog {
  --el-dialog-bg-color: $card-bg;
  --el-dialog-title-font-size: 16px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
[data-v-f4c08ac4] .el-dialog .el-dialog__header {
  background: #0f3460;
  margin: 0;
  padding: 16px 20px;
  border-radius: 12px 12px 0 0;
}
[data-v-f4c08ac4] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e0e0;
}
[data-v-f4c08ac4] .el-dialog .el-dialog__header .el-dialog__headerbtn {
  color: #8c8c8c;
}
[data-v-f4c08ac4] .el-dialog .el-dialog__header .el-dialog__headerbtn:hover {
  color: #fff;
}
[data-v-f4c08ac4] .el-dialog .el-dialog__body {
  padding: 20px;
  color: #e0e0e0;
}
[data-v-f4c08ac4] .el-dialog .el-dialog__footer {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 12px 20px;
}

/* Drawer */
[data-v-f4c08ac4] .el-drawer {
  --el-drawer-bg-color: $card-bg;
}
[data-v-f4c08ac4] .el-drawer .el-drawer__header {
  color: #e0e0e0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: 16px 20px;
  margin-bottom: 0;
}
[data-v-f4c08ac4] .el-drawer .el-drawer__body {
  padding: 0 20px;
  color: #e0e0e0;
}
[data-v-f4c08ac4] .el-drawer .el-drawer__footer {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 12px 20px;
}

/* 时间线 */
[data-v-f4c08ac4] .el-timeline {
  padding-left: 12px;
}
[data-v-f4c08ac4] .el-timeline .el-timeline-item__timestamp {
  color: #8c8c8c;
  font-size: 12px;
}
[data-v-f4c08ac4] .el-timeline .el-timeline-item__content {
  color: #e0e0e0;
  font-size: 13px;
}

/* 暗色控件 */
[data-v-f4c08ac4] .el-select {
  --el-select-bg-color: #1a1a2e;
  --el-select-input-color: $text-light;
  --el-select-border-color: rgba(255,255,255,0.12);
}
[data-v-f4c08ac4] .el-input__wrapper {
  background: #1a1a2e !important;
  border-color: rgba(255, 255, 255, 0.12);
}
[data-v-f4c08ac4] .el-input__inner {
  color: #e0e0e0;
}
[data-v-f4c08ac4] .el-input-number {
  --el-input-bg-color: #1a1a2e;
}
[data-v-f4c08ac4] .el-input-number .el-input__wrapper {
  background: #1a1a2e !important;
}

/* 按钮 */
.el-button[data-v-f4c08ac4] {
  --el-button-bg-color: $secondary;
  --el-button-border-color: rgba(255,255,255,0.1);
  --el-button-text-color: $text-light;
  --el-button-hover-bg-color: lighten($secondary, 8%);
  --el-button-hover-border-color: rgba(255,255,255,0.2);
  border-radius: 6px;
}
.el-button--primary[data-v-f4c08ac4] {
  --el-button-bg-color: $primary;
  --el-button-border-color: $primary;
  --el-button-text-color: #fff;
  --el-button-hover-bg-color: lighten($primary, 10%);
  --el-button-hover-border-color: lighten($primary, 10%);
}
.el-button--warning[data-v-f4c08ac4] {
  --el-button-bg-color: #e6a23c;
  --el-button-border-color: #e6a23c;
  --el-button-text-color: #fff;
}

/* 标签 */
[data-v-f4c08ac4] .el-tag--success {
  background: rgba(103, 194, 58, 0.15);
  border-color: rgba(103, 194, 58, 0.5);
  color: #67c23a;
}
[data-v-f4c08ac4] .el-tag--warning {
  background: rgba(230, 162, 60, 0.15);
  border-color: rgba(230, 162, 60, 0.5);
  color: #e6a23c;
}
[data-v-f4c08ac4] .el-tag--danger {
  background: rgba(245, 108, 108, 0.15);
  border-color: rgba(245, 108, 108, 0.5);
  color: #f56c6c;
}
[data-v-f4c08ac4] .el-tag--info {
  background: rgba(160, 160, 160, 0.15);
  border-color: rgba(160, 160, 160, 0.5);
  color: #a0a0a0;
}
[data-v-f4c08ac4] .el-tag {
  background: rgba(64, 158, 255, 0.12);
  border-color: rgba(64, 158, 255, 0.3);
  color: #409eff;
}
[data-v-f4c08ac4] .el-radio-button__inner {
  background: #38405c;
  border-color: rgba(255, 255, 255, 0.1);
  color: #8c8c8c;
}
[data-v-f4c08ac4] .el-radio-button.is-active .el-radio-button__inner {
  background: #0066cc;
  border-color: #0066cc;
  color: #fff;
}
[data-v-f4c08ac4] .el-collapse-item__header {
  color: #e0e0e0;
}
[data-v-f4c08ac4] .el-checkbox {
  --el-checkbox-text-color: #c0c0c0;
}
[data-v-f4c08ac4] .el-drawer .el-input-number .el-input__wrapper {
  background: #1a1a2e !important;
}

/* ── V6.1/V6.2: KPI弹窗 / 操作弹窗 / 归档详情 ── */
.kpi-dialog-body[data-v-f4c08ac4] {
  display: flex;
  gap: 20px;
}
.kpi-dialog-left[data-v-f4c08ac4] {
  width: 200px;
  flex-shrink: 0;
  text-align: center;
  padding: 20px 16px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
}
.kpi-dialog-icon[data-v-f4c08ac4] {
  font-size: 48px;
  margin-bottom: 8px;
}
.kpi-dialog-value[data-v-f4c08ac4] {
  font-size: 28px;
  font-weight: bold;
  color: #409eff;
}
.kpi-dialog-label[data-v-f4c08ac4] {
  font-size: 13px;
  color: #8c8c8c;
  margin: 4px 0;
}
.kpi-dialog-desc[data-v-f4c08ac4] {
  font-size: 11px;
  color: #8c8c8c;
  margin: 8px 0;
}
.kpi-dialog-actions[data-v-f4c08ac4] {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kpi-dialog-right[data-v-f4c08ac4] {
  flex: 1;
  min-width: 0;
}
.pred-card[data-v-f4c08ac4] {
  cursor: pointer;
}
.pred-card[data-v-f4c08ac4]:hover {
  border-color: #409eff;
  transform: translateY(-2px);
}
.op-dialog-body[data-v-f4c08ac4] {
  color: #e0e0e0;
}
.op-info-row[data-v-f4c08ac4] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.op-info-row span[data-v-f4c08ac4] {
  color: #8c8c8c;
  font-size: 13px;
}
.op-info-row strong[data-v-f4c08ac4] {
  color: #e0e0e0;
  font-size: 14px;
}
.op-metrics[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 12px 0;
}
.op-metric[data-v-f4c08ac4] {
  background: rgba(255, 255, 255, 0.04);
  border-radius: 6px;
  padding: 10px;
  text-align: center;
}
.op-metric span[data-v-f4c08ac4] {
  display: block;
  font-size: 11px;
  color: #8c8c8c;
}
.op-metric b[data-v-f4c08ac4] {
  display: block;
  font-size: 16px;
  color: #e0e0e0;
  margin-top: 4px;
}
.op-metric.highlight b[data-v-f4c08ac4] {
  color: #409eff;
}
.op-warning[data-v-f4c08ac4] {
  background: rgba(245, 108, 108, 0.1);
  border: 1px solid rgba(245, 108, 108, 0.3);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 12px;
  color: #f56c6c;
  margin-top: 12px;
}
.op-sku-list[data-v-f4c08ac4] {
  font-size: 12px;
  color: #8c8c8c;
  word-break: break-all;
}
.archived-detail[data-v-f4c08ac4] {
  color: #e0e0e0;
}
.ad-section[data-v-f4c08ac4] {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
}
.ad-section h4[data-v-f4c08ac4] {
  font-size: 13px;
  color: #e0e0e0;
  margin: 0 0 10px;
}
.ad-kpis[data-v-f4c08ac4] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.ad-kpi[data-v-f4c08ac4] {
  text-align: center;
  padding: 10px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 6px;
}
.ad-kpi span[data-v-f4c08ac4] {
  display: block;
  font-size: 11px;
  color: #8c8c8c;
}
.ad-kpi b[data-v-f4c08ac4] {
  display: block;
  font-size: 18px;
  color: #409eff;
  margin-top: 4px;
}
.ad-benchmark[data-v-f4c08ac4] {
  font-size: 12px;
  color: #8c8c8c;
  margin-top: 10px;
  text-align: center;
}
.ad-benchmark span[data-v-f4c08ac4] {
  color: #8c8c8c;
}
[data-v-f4c08ac4] .el-steps .el-step__title {
  font-size: 11px;
  color: #8c8c8c;
}
[data-v-f4c08ac4] .el-steps .el-step__description {
  font-size: 10px;
  color: #8c8c8c;
}

/* V6.3: 批量确认弹窗 */
.batch-confirm[data-v-f4c08ac4] {
  text-align: center;
  padding: 12px 0;
}
.batch-confirm .el-icon[data-v-f4c08ac4] {
  margin-bottom: 8px;
}
.confirm-title[data-v-f4c08ac4] {
  font-size: 16px;
  font-weight: 600;
  color: #e0e0e0;
  margin: 8px 0 4px;
}
.confirm-desc[data-v-f4c08ac4] {
  font-size: 13px;
  color: #8c8c8c;
}
.confirm-desc strong[data-v-f4c08ac4] {
  color: #409eff;
}
.change-text[data-v-f4c08ac4] {
  font-size: 12px;
  color: #c0c0c0;
  display: inline-block;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
  margin-right: 6px;
}

/* V6.3: 弹窗 z-index 修复 */
[data-v-f4c08ac4] .el-dialog {
  max-width: 1200px;
  max-height: 90vh;
}
[data-v-f4c08ac4] .el-dialog .el-dialog__body {
  max-height: calc(90vh - 120px);
  overflow-y: auto;
}
[data-v-f4c08ac4] .el-overlay {
  z-index: 1999 !important;
}
[data-v-f4c08ac4] .change-detail-box {
  z-index: 3600 !important;
}

/* 滚动条 */
[data-v-f4c08ac4]::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
[data-v-f4c08ac4]::-webkit-scrollbar-track {
  background: #1a1a2e;
}
[data-v-f4c08ac4]::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 3px;
}
[data-v-f4c08ac4]::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}.pod-product[data-v-c2f330bf] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px 24px;
  color: #e0e0e0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.breadcrumb[data-v-c2f330bf] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-c2f330bf] .el-breadcrumb__inner {
  color: #8892a4;
  font-size: 13px;
}
.breadcrumb[data-v-c2f330bf] .el-breadcrumb__inner.is-link {
  color: #8892a4;
}
.breadcrumb[data-v-c2f330bf] .el-breadcrumb__inner.is-link:hover {
  color: #0066CC;
}
.breadcrumb[data-v-c2f330bf] .el-breadcrumb__separator {
  color: #8892a4;
}
.page-header[data-v-c2f330bf] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.page-title[data-v-c2f330bf] {
  font-size: 22px;
  font-weight: 600;
  color: #e0e0e0;
  margin: 0;
}
.view-toggle[data-v-c2f330bf] {
  display: flex;
  gap: 4px;
}
.view-toggle .el-button[data-v-c2f330bf] {
  padding: 6px 10px;
  background: #38405c;
  border-color: #2a3a5c;
  color: #8892a4;
}
.view-toggle .el-button[data-v-c2f330bf]:hover {
  color: #fff;
  border-color: #0066CC;
}
.view-toggle .el-button.el-button--primary[data-v-c2f330bf] {
  background: #0066CC;
  border-color: #0066CC;
  color: #fff;
}
.favorites-bar[data-v-c2f330bf] {
  margin-bottom: 16px;
}
.favorites-bar .fav-btn[data-v-c2f330bf] {
  background: #38405c;
  border-color: #2a3a5c;
  color: #e0e0e0;
}
.favorites-bar .fav-btn[data-v-c2f330bf]:hover {
  border-color: #e74c3c;
  color: #e74c3c;
}
.favorites-bar .fav-btn .fav-icon[data-v-c2f330bf] {
  margin-left: 4px;
  color: #e74c3c;
}
.filter-row[data-v-c2f330bf] {
  background: #16213e;
  padding: 16px 20px;
  border-radius: 8px;
  margin-bottom: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  border: 1px solid #2a3a5c;
}
.filter-row .el-form-item[data-v-c2f330bf] {
  margin-bottom: 0;
  margin-right: 8px;
}
.filter-row[data-v-c2f330bf] .el-input__wrapper,
.filter-row[data-v-c2f330bf] .el-select .el-input__wrapper,
.filter-row[data-v-c2f330bf] .el-input-number .el-input__wrapper {
  background: #1a1a2e;
  border-color: #2a3a5c;
  box-shadow: none;
}
.filter-row[data-v-c2f330bf] .el-input__inner {
  color: #e0e0e0;
}
.filter-row[data-v-c2f330bf] .el-input-number__decrease,
.filter-row[data-v-c2f330bf] .el-input-number__increase {
  background: #38405c;
  color: #e0e0e0;
  border-color: #2a3a5c;
}
.filter-row[data-v-c2f330bf] .el-select .el-select__caret {
  color: #8892a4;
}
.filter-row .el-button[data-v-c2f330bf] {
  margin-left: 0;
}
.filter-row .btn-secondary[data-v-c2f330bf] {
  background: #38405c;
  border-color: #2a3a5c;
  color: #e0e0e0;
}
.filter-row .btn-secondary[data-v-c2f330bf]:hover {
  background: rgb(71.4378378378, 81.6432432432, 117.3621621622);
}
.loading-wrap[data-v-c2f330bf] {
  padding: 40px;
}
.loading-wrap[data-v-c2f330bf] .el-skeleton__item {
  background: #16213e;
}
.card-grid[data-v-c2f330bf] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 18px;
  margin-bottom: 24px;
}
.product-card[data-v-c2f330bf] {
  background: #16213e;
  border-radius: 10px;
  border: 1px solid #2a3a5c;
  overflow: hidden;
  position: relative;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.product-card[data-v-c2f330bf]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}
.product-card.is-favorite[data-v-c2f330bf] {
  border-color: #e74c3c;
}
.congestion-tag[data-v-c2f330bf] {
  position: absolute;
  top: 8px;
  left: 8px;
  background: #c43636;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  z-index: 2;
  line-height: 1.4;
}
.fav-heart[data-v-c2f330bf] {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.4);
  border: none;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #999;
  transition: color 0.2s, background 0.2s;
  z-index: 2;
}
.fav-heart[data-v-c2f330bf]:hover {
  background: rgba(231, 76, 60, 0.5);
  color: #e74c3c;
}
.fav-heart.active[data-v-c2f330bf] {
  color: #e74c3c;
  background: rgba(231, 76, 60, 0.2);
}
.card-img[data-v-c2f330bf] {
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 56px;
  background: linear-gradient(135deg, rgb(17.9928571429, 26.9892857143, 50.7071428571), #16213e);
  border-bottom: 1px solid #2a3a5c;
  user-select: none;
}
.card-body[data-v-c2f330bf] {
  padding: 14px;
}
.card-name[data-v-c2f330bf] {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 6px;
  color: #e0e0e0;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.card-supplier[data-v-c2f330bf] {
  font-size: 12px;
  color: #8892a4;
  margin: 0 0 8px;
}
.card-supplier .supplier-link[data-v-c2f330bf] {
  color: #0066CC;
  cursor: pointer;
  text-decoration: none;
}
.card-supplier .supplier-link[data-v-c2f330bf]:hover {
  text-decoration: underline;
}
.card-score[data-v-c2f330bf] {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-bottom: 8px;
}
.card-score .star[data-v-c2f330bf] {
  font-size: 14px;
  color: #444;
}
.card-score .star.filled[data-v-c2f330bf] {
  color: #f59e0b;
}
.card-score .score-num[data-v-c2f330bf] {
  font-size: 13px;
  color: #8892a4;
  margin-left: 4px;
}
.card-meta[data-v-c2f330bf] {
  display: flex;
  gap: 14px;
  font-size: 12px;
  color: #8892a4;
  margin-bottom: 12px;
}
.card-actions[data-v-c2f330bf] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.card-actions .el-button[data-v-c2f330bf] {
  font-size: 12px;
  padding: 4px 10px;
}
.btn-secondary[data-v-c2f330bf] {
  background: #38405c !important;
  border-color: #2a3a5c !important;
  color: #e0e0e0 !important;
}
.btn-secondary[data-v-c2f330bf]:hover {
  background: rgb(71.4378378378, 81.6432432432, 117.3621621622) !important;
  border-color: rgb(54.7880597015, 75.6597014925, 120.0119402985) !important;
}
.btn-danger[data-v-c2f330bf] {
  background: #c43636 !important;
  border-color: rgb(164.0128, 45.1872, 45.1872) !important;
  color: #fff !important;
}
.btn-danger[data-v-c2f330bf]:hover {
  background: rgb(207.6528, 83.1472, 83.1472) !important;
}
.product-table[data-v-c2f330bf] {
  background: transparent;
}
.product-table[data-v-c2f330bf] .el-table__header th {
  background: #16213e;
  color: #8892a4;
  font-weight: 500;
  border-bottom: 1px solid #2a3a5c;
}
.product-table[data-v-c2f330bf] .el-table__body td {
  background: #1a1a2e;
  color: #e0e0e0;
  border-bottom: 1px solid #2a3a5c;
}
.product-table[data-v-c2f330bf] .el-table__body tr:hover td {
  background: rgb(26.0071428571, 39.0107142857, 73.2928571429);
}
.product-table[data-v-c2f330bf] .el-table__inner-wrapper::before,
.product-table[data-v-c2f330bf] .el-table__border-left-patch {
  background: #2a3a5c;
}
.product-table[data-v-c2f330bf] .el-table__fixed-header-wrapper th,
.product-table[data-v-c2f330bf] .el-table__fixed-body-wrapper td {
  background: #16213e;
}
.table-emoji[data-v-c2f330bf] {
  font-size: 28px;
  line-height: 1;
}
.score-badge[data-v-c2f330bf] {
  display: inline-block;
  background: #0066CC;
  color: #fff;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 13px;
  font-weight: 600;
}
.pagination-wrap[data-v-c2f330bf] {
  display: flex;
  justify-content: center;
  padding: 20px 0;
}
.pagination-wrap[data-v-c2f330bf] .el-pagination {
  --el-pagination-bg-color: #16213e;
  --el-pagination-button-color: #e0e0e0;
  --el-pagination-border-color: #2a3a5c;
  --el-pagination-hover-color: #0066CC;
  --el-pagination-disabled-color: #8892a4;
}
.pagination-wrap[data-v-c2f330bf] .el-pagination .el-pagination__total,
.pagination-wrap[data-v-c2f330bf] .el-pagination .el-pagination__jump {
  color: #8892a4;
}
.pagination-wrap[data-v-c2f330bf] .el-pagination .btn-prev,
.pagination-wrap[data-v-c2f330bf] .el-pagination .btn-next,
.pagination-wrap[data-v-c2f330bf] .el-pagination .el-pager li {
  background: #16213e;
  color: #e0e0e0;
  border-color: #2a3a5c;
}
.pagination-wrap[data-v-c2f330bf] .el-pagination .btn-prev:hover,
.pagination-wrap[data-v-c2f330bf] .el-pagination .btn-next:hover,
.pagination-wrap[data-v-c2f330bf] .el-pagination .el-pager li:hover {
  color: #0066CC;
}
.pagination-wrap[data-v-c2f330bf] .el-pagination .btn-prev.is-active,
.pagination-wrap[data-v-c2f330bf] .el-pagination .btn-next.is-active,
.pagination-wrap[data-v-c2f330bf] .el-pagination .el-pager li.is-active {
  background: #0066CC;
  color: #fff;
  border-color: #0066CC;
}
[data-v-c2f330bf] .dark-dialog .el-dialog {
  background: #16213e;
  border: 1px solid #2a3a5c;
  border-radius: 10px;
}
[data-v-c2f330bf] .dark-dialog .el-dialog .el-dialog__header {
  background: #0f3460;
  padding: 16px 20px;
  border-radius: 10px 10px 0 0;
}
[data-v-c2f330bf] .dark-dialog .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e0e0;
  font-size: 16px;
  font-weight: 600;
}
[data-v-c2f330bf] .dark-dialog .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #8892a4;
}
[data-v-c2f330bf] .dark-dialog .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #fff;
}
[data-v-c2f330bf] .dark-dialog .el-dialog .el-dialog__body {
  padding: 20px;
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-dialog .el-dialog__footer {
  padding: 12px 20px 20px;
}
[data-v-c2f330bf] .dark-dialog .el-form-item__label {
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-input__wrapper,[data-v-c2f330bf] .dark-dialog .el-textarea__inner {
  background: #1a1a2e;
  border-color: #2a3a5c;
  box-shadow: none;
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-input__inner {
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-textarea__inner {
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-select .el-input__wrapper {
  background: #1a1a2e;
}
[data-v-c2f330bf] .dark-dialog .el-descriptions {
  --el-descriptions-table-border-color: #2a3a5c;
  --el-descriptions-item-bordered-label-background: #0f3460;
  --el-descriptions-item-bordered-content-background: #1a1a2e;
}
[data-v-c2f330bf] .dark-dialog .el-descriptions__cell {
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-descriptions__label {
  color: #8892a4;
}
[data-v-c2f330bf] .dark-dialog .el-descriptions__content {
  color: #e0e0e0;
}
[data-v-c2f330bf] .dark-dialog .el-table {
  background-color: transparent;
}
[data-v-c2f330bf] .dark-dialog .el-table th {
  background: #0f3460;
  color: #e0e0e0;
  border-bottom-color: #2a3a5c;
}
[data-v-c2f330bf] .dark-dialog .el-table td {
  background: #1a1a2e;
  color: #e0e0e0;
  border-bottom-color: #2a3a5c;
}
[data-v-c2f330bf] .dark-dialog .el-table tr:hover td {
  background: rgb(31.525, 31.525, 55.775);
}
.congestion-warning[data-v-c2f330bf] {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: rgba(196, 54, 54, 0.15);
  border: 1px solid rgba(196, 54, 54, 0.3);
  padding: 12px;
  border-radius: 6px;
  margin-bottom: 16px;
  color: #f0a0a0;
  font-size: 14px;
}
.congestion-warning .warn-icon[data-v-c2f330bf] {
  flex-shrink: 0;
  margin-top: 2px;
  color: #f59e0b;
}
.follow-preview[data-v-c2f330bf] {
  margin-bottom: 16px;
}
.follow-shop-select[data-v-c2f330bf] {
  margin-bottom: 0;
}
.follow-shop-select .el-form-item__label[data-v-c2f330bf] {
  color: #e0e0e0;
}
.follow-success[data-v-c2f330bf] {
  text-align: center;
  padding: 30px 0;
}
.follow-success .success-icon[data-v-c2f330bf] {
  margin-bottom: 12px;
}
.follow-success p[data-v-c2f330bf] {
  margin: 6px 0;
  font-size: 15px;
}
.follow-success .success-sub[data-v-c2f330bf] {
  color: #8892a4;
  font-size: 13px;
}
.ai-generating[data-v-c2f330bf] {
  text-align: center;
  padding: 40px 20px;
}
.ai-generating .ai-hint[data-v-c2f330bf] {
  margin-top: 16px;
  color: #8892a4;
  font-size: 14px;
}
.ai-timeout .el-alert[data-v-c2f330bf] {
  margin-bottom: 16px;
}
.ai-version-bar[data-v-c2f330bf] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.ai-version-bar .version-label[data-v-c2f330bf] {
  color: #8892a4;
  font-size: 13px;
  white-space: nowrap;
}
.ai-version-content .ai-copy-block[data-v-c2f330bf] {
  margin-bottom: 14px;
}
.ai-version-content .ai-copy-block .copy-label[data-v-c2f330bf] {
  color: #8892a4;
  font-size: 13px;
  margin-bottom: 4px;
}
.ai-version-content .ai-copy-block .bullet-row[data-v-c2f330bf] {
  margin-bottom: 6px;
}
.ai-version-content .ai-copy-block .bullet-row[data-v-c2f330bf]:last-child {
  margin-bottom: 0;
}
.fav-compare-table[data-v-c2f330bf] .el-table__header th {
  background: #0f3460;
  color: #e0e0e0;
  border-bottom-color: #2a3a5c;
}
.fav-compare-table[data-v-c2f330bf] .el-table__body td {
  background: #1a1a2e;
  color: #e0e0e0;
  border-bottom-color: #2a3a5c;
}
.fav-compare-table[data-v-c2f330bf] .el-table__body tr:hover td {
  background: rgb(31.525, 31.525, 55.775);
}
/* ═══ Page Layout ═══ */
.pod-hot-page[data-v-c302b422] {
  background: #1a1a2e;
  min-height: 100%;
  padding: 20px 24px 40px;
  color: #e8ecf1;
}

/* ═══ Breadcrumb ═══ */
[data-v-c302b422] .el-breadcrumb {
  margin-bottom: 16px;
}
[data-v-c302b422] .el-breadcrumb .el-breadcrumb__inner {
  color: #8899aa;
  font-size: 13px;
}
[data-v-c302b422] .el-breadcrumb .el-breadcrumb__inner.is-link {
  color: #3b82f6;
}
[data-v-c302b422] .el-breadcrumb .el-breadcrumb__inner.is-link:hover {
  color: #60a5fa;
}
[data-v-c302b422] .el-breadcrumb .el-breadcrumb__separator {
  color: #4a5568;
}
[data-v-c302b422] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #e8ecf1;
  font-weight: 600;
}

/* ═══ Stat Cards ═══ */
.stat-row[data-v-c302b422] {
  margin-bottom: 16px;
}
.stat-card[data-v-c302b422] {
  background: #16213e;
  border-radius: 10px;
  padding: 18px 20px;
  border: 1px solid rgba(59, 130, 246, 0.08);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.stat-card[data-v-c302b422]:hover {
  border-color: rgba(59, 130, 246, 0.25);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.stat-card .stat-label[data-v-c302b422] {
  font-size: 13px;
  color: #8899aa;
  margin-bottom: 6px;
}
.stat-card .stat-value[data-v-c302b422] {
  font-size: 28px;
  font-weight: 700;
  color: #e8ecf1;
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-variant-numeric: tabular-nums;
}
.stat-card .stat-value.accent[data-v-c302b422] {
  color: #00d4ff;
}
.stat-card .stat-trend[data-v-c302b422] {
  font-size: 12px;
  margin-top: 6px;
}
.stat-card .stat-trend.up[data-v-c302b422] {
  color: #00c48c;
}
.stat-card .stat-trend.down[data-v-c302b422] {
  color: #ff4d4f;
}

/* ═══ Filter Row ═══ */
.filter-row[data-v-c302b422] {
  background: #16213e;
  border-radius: 10px;
  padding: 16px 20px;
  margin-bottom: 16px;
  border: 1px solid rgba(59, 130, 246, 0.08);
}
.filter-label[data-v-c302b422] {
  font-size: 13px;
  color: #8899aa;
  margin-right: 6px;
  white-space: nowrap;
}
.filter-sep[data-v-c302b422] {
  color: #4a5568;
  margin: 0 4px;
}
.filter-actions[data-v-c302b422] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.selected-hint[data-v-c302b422] {
  font-size: 12px;
  color: #3b82f6;
  margin-left: 4px;
}

/* ═══ Dark Input Number Overrides ═══ */
[data-v-c302b422] .dark-input-num {
  width: 110px;
}
[data-v-c302b422] .dark-input-num .el-input__wrapper {
  background: #0f1a33;
  border: 1px solid #2a3a5e;
  box-shadow: none;
}
[data-v-c302b422] .dark-input-num .el-input__wrapper:hover,[data-v-c302b422] .dark-input-num .el-input__wrapper.is-focus {
  border-color: #3b82f6;
}
[data-v-c302b422] .dark-input-num .el-input__inner {
  color: #e8ecf1;
  background: transparent;
}
[data-v-c302b422] .dark-input-num .el-input-number__increase,[data-v-c302b422] .dark-input-num .el-input-number__decrease {
  background: #1a2340;
  border-color: #2a3a5e;
  color: #8899aa;
}
[data-v-c302b422] .dark-input-num .el-input-number__increase:hover,[data-v-c302b422] .dark-input-num .el-input-number__decrease:hover {
  background: #253050;
  color: #e8ecf1;
}
[data-v-c302b422] .dark-select {
  width: 100%;
}
[data-v-c302b422] .dark-select .el-input__wrapper {
  background: #0f1a33;
  border: 1px solid #2a3a5e;
  box-shadow: none;
}
[data-v-c302b422] .dark-select .el-input__wrapper:hover,[data-v-c302b422] .dark-select .el-input__wrapper.is-focus {
  border-color: #3b82f6;
}
[data-v-c302b422] .dark-select .el-input__inner {
  color: #e8ecf1;
  background: transparent;
}
[data-v-c302b422] .dark-select .el-select__caret {
  color: #8899aa;
}

/* ═══ Table ═══ */
.table-wrap[data-v-c302b422] {
  background: #16213e;
  border-radius: 10px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(59, 130, 246, 0.08);
}
[data-v-c302b422] .dark-table {
  width: 100%;
  background: transparent;
  color: #e8ecf1;
  --el-table-border-color: #1e2d50;
  --el-table-header-bg-color: #0f1a33;
  --el-table-tr-bg-color: transparent;
  --el-table-row-hover-bg-color: #1a2340;
  --el-table-striped-row-bg-color: rgba(15, 26, 51, 0.4);
}
[data-v-c302b422] .dark-table th.el-table__cell {
  background: #0f1a33;
  color: #8899aa;
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid #1e2d50;
}
[data-v-c302b422] .dark-table td.el-table__cell {
  border-bottom: 1px solid #1a2a45;
  font-size: 13px;
}
[data-v-c302b422] .dark-table .el-table__body-wrapper {
  background: transparent;
}
[data-v-c302b422] .dark-table .el-table__empty-text {
  color: #556677;
}
[data-v-c302b422] .dark-table .el-checkbox__inner {
  background: #0f1a33;
  border-color: #2a3a5e;
}
[data-v-c302b422] .dark-table .el-checkbox__inner:hover {
  border-color: #3b82f6;
}
[data-v-c302b422] .dark-table .el-checkbox__input.is-checked .el-checkbox__inner {
  background: #0066cc;
  border-color: #0066cc;
}

/* ═══ Product Cell ═══ */
.product-emoji[data-v-c302b422] {
  font-size: 26px;
  line-height: 1;
  display: inline-block;
}
.product-name[data-v-c302b422] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.product-name .product-channel-tag[data-v-c302b422] {
  font-size: 11px;
  color: #556677;
  background: rgba(85, 102, 119, 0.15);
  padding: 1px 6px;
  border-radius: 3px;
  display: inline-block;
  width: fit-content;
}

/* ═══ Saturation Cell ═══ */
.saturation-cell[data-v-c302b422] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: default;
}
.saturation-cell.dot-red[data-v-c302b422] {
  cursor: pointer;
}
.saturation-dot[data-v-c302b422] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.saturation-dot.dot-green[data-v-c302b422] {
  background: #00c48c;
  box-shadow: 0 0 6px rgba(0, 196, 140, 0.4);
}
.saturation-dot.dot-yellow[data-v-c302b422] {
  background: #ffa726;
  box-shadow: 0 0 6px rgba(255, 167, 38, 0.4);
}
.saturation-dot.dot-red[data-v-c302b422] {
  background: #ff4d4f;
  box-shadow: 0 0 6px rgba(255, 77, 79, 0.5);
  animation: pulse-red-c302b422 1.5s infinite;
}
@keyframes pulse-red-c302b422 {
0%, 100% {
    box-shadow: 0 0 6px rgba(255, 77, 79, 0.5);
}
50% {
    box-shadow: 0 0 12px rgba(255, 77, 79, 0.8);
}
}
.saturation-value[data-v-c302b422] {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 14px;
}
.saturation-warn-icon[data-v-c302b422] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #ff4d4f;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}

/* ═══ Lifecycle Tags ═══ */
[data-v-c302b422] .tag-up {
  background: rgba(0, 196, 140, 0.2) !important;
  border: 1px solid rgba(0, 196, 140, 0.4) !important;
  color: #00c48c !important;
  font-weight: 600;
}
[data-v-c302b422] .tag-boom {
  background: rgba(59, 130, 246, 0.2) !important;
  border: 1px solid rgba(59, 130, 246, 0.4) !important;
  color: #60a5fa !important;
  font-weight: 600;
}
[data-v-c302b422] .tag-decline {
  background: rgba(136, 153, 170, 0.15) !important;
  border: 1px solid rgba(136, 153, 170, 0.3) !important;
  color: #8899aa !important;
}

/* ═══ Profit ═══ */
.profit-value[data-v-c302b422] {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  color: #00c48c;
  font-weight: 600;
  font-size: 14px;
}

/* ═══ Table Footer ═══ */
.table-footer[data-v-c302b422] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  border-top: 1px solid #1e2d50;
  background: #0f1a33;
}
.total-info[data-v-c302b422] {
  font-size: 13px;
  color: #8899aa;
}
[data-v-c302b422] .el-pagination {
  --el-pagination-bg-color: transparent;
  --el-pagination-button-bg-color: #1a2340;
  --el-pagination-button-color: #8899aa;
  --el-pagination-hover-bg-color: #253050;
  --el-pagination-hover-color: #e8ecf1;
  --el-pagination-disabled-bg-color: #0f1a33;
}
[data-v-c302b422] .el-pagination button {
  background: #1a2340;
  color: #8899aa;
  border: 1px solid #2a3a5e;
}
[data-v-c302b422] .el-pagination button:hover {
  background: #253050;
  color: #e8ecf1;
}
[data-v-c302b422] .el-pagination button:disabled {
  background: #0f1a33;
  color: #3a4556;
}
[data-v-c302b422] .el-pagination .el-pager li {
  background: #1a2340;
  color: #8899aa;
  border: 1px solid #2a3a5e;
  margin: 0 2px;
  border-radius: 4px;
}
[data-v-c302b422] .el-pagination .el-pager li.is-active {
  background: #0066cc;
  color: #fff;
  border-color: #0066cc;
}
[data-v-c302b422] .el-pagination .el-pager li:hover:not(.is-active) {
  background: #253050;
  color: #e8ecf1;
}
[data-v-c302b422] .el-pagination .el-pagination__sizes .el-input__wrapper {
  background: #0f1a33;
  border-color: #2a3a5e;
  box-shadow: none;
}
[data-v-c302b422] .el-pagination .el-pagination__sizes .el-input__inner {
  color: #e8ecf1;
}
[data-v-c302b422] .el-pagination .el-pagination__total {
  color: #8899aa;
}

/* ═══ Custom Buttons (no white buttons) ═══ */
.btn-primary[data-v-c302b422] {
  background: #0066cc !important;
  border: 1px solid #0066cc !important;
  color: #ffffff !important;
}
.btn-primary[data-v-c302b422]:hover {
  background: #0052a3 !important;
  border-color: #0052a3 !important;
}
.btn-primary[data-v-c302b422]:active {
  background: #004080 !important;
}
.btn-primary.is-disabled[data-v-c302b422] {
  background: #2a3a5e !important;
  border-color: #2a3a5e !important;
  color: #556677 !important;
  opacity: 0.6;
}
.btn-secondary[data-v-c302b422] {
  background: #38405c !important;
  border: 1px solid #38405c !important;
  color: #e8ecf1 !important;
}
.btn-secondary[data-v-c302b422]:hover {
  background: #45506b !important;
  border-color: #45506b !important;
}
.btn-secondary[data-v-c302b422]:active {
  background: #2d344d !important;
}
.btn-danger[data-v-c302b422] {
  background: #c43636 !important;
  border: 1px solid #c43636 !important;
  color: #ffffff !important;
}
.btn-danger[data-v-c302b422]:hover {
  background: #ab2f2f !important;
  border-color: #ab2f2f !important;
}
.btn-danger[data-v-c302b422]:active {
  background: #922828 !important;
}
.btn-sm[data-v-c302b422] {
  padding: 5px 12px !important;
  font-size: 12px !important;
}

/* ═══ Dialogs ═══ */
[data-v-c302b422] .dialog-dark .el-dialog {
  background: #16213e;
  border: 1px solid #2a3a5e;
  border-radius: 12px;
}
[data-v-c302b422] .dialog-dark .el-dialog__title {
  color: #e8ecf1;
  font-weight: 600;
}
[data-v-c302b422] .dialog-dark .el-dialog__headerbtn .el-dialog__close {
  color: #8899aa;
}
[data-v-c302b422] .dialog-dark .el-dialog__headerbtn .el-dialog__close:hover {
  color: #e8ecf1;
}
[data-v-c302b422] .dialog-dark .el-dialog__body {
  color: #c8d0d8;
  padding: 20px 24px;
}
[data-v-c302b422] .dialog-dark .el-divider {
  border-color: #2a3a5e;
  margin: 14px 0;
}
[data-v-c302b422] .dialog-dark .el-form-item__label {
  color: #8899aa;
}

/* ═══ Batch Dialog ═══ */
.batch-info p[data-v-c302b422] {
  font-size: 14px;
}
.batch-info p strong[data-v-c302b422] {
  color: #60a5fa;
  font-size: 16px;
}
.est-profit[data-v-c302b422] {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  color: #00c48c;
  font-size: 18px;
  font-weight: 700;
}
.est-profit-hint[data-v-c302b422] {
  font-size: 12px;
  color: #556677;
  margin-left: 8px;
}
.selected-list[data-v-c302b422] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.selected-item-tag[data-v-c302b422] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #0f1a33;
  border: 1px solid #2a3a5e;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 12px;
  color: #c8d0d8;
}

/* ═══ Price Dialog ═══ */
.price-display[data-v-c302b422] {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 16px;
  color: #e8ecf1;
  font-weight: 600;
}
.margin-preview[data-v-c302b422] {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 16px;
  font-weight: 700;
}
.margin-preview.margin-good[data-v-c302b422] {
  color: #00c48c;
}
.margin-preview.margin-poor[data-v-c302b422] {
  color: #ff4d4f;
}
.margin-warn[data-v-c302b422] {
  font-size: 12px;
  font-weight: 400;
  margin-left: 6px;
  color: #ffa726;
}

/* ═══ Confirm Dialog Overrides ═══ */
[data-v-c302b422] .confirm-dark .el-message-box {
  background: #16213e;
  border: 1px solid #2a3a5e;
  border-radius: 12px;
}
[data-v-c302b422] .confirm-dark .el-message-box__title {
  color: #e8ecf1;
}
[data-v-c302b422] .confirm-dark .el-message-box__content {
  color: #c8d0d8;
}
[data-v-c302b422] .confirm-dark .el-message-box__headerbtn .el-message-box__close {
  color: #8899aa;
}
[data-v-c302b422] .confirm-dark .el-message-box__headerbtn .el-message-box__close:hover {
  color: #e8ecf1;
}
[data-v-c302b422] .confirm-dark .el-message-box__btns .el-button--primary {
  background: #0066cc !important;
  border-color: #0066cc !important;
  color: #fff !important;
}
[data-v-c302b422] .confirm-dark .el-message-box__btns .el-button--primary:hover {
  background: #0052a3 !important;
}
[data-v-c302b422] .confirm-dark .el-message-box__btns .el-button--default {
  background: #38405c !important;
  border-color: #38405c !important;
  color: #e8ecf1 !important;
}
[data-v-c302b422] .confirm-dark .el-message-box__btns .el-button--default:hover {
  background: #45506b !important;
}

/* ═══ Element Plus Override for non-white default buttons ═══ */
[data-v-c302b422] .el-button--default {
  background: #38405c !important;
  border-color: #38405c !important;
  color: #e8ecf1 !important;
}
[data-v-c302b422] .el-button--default:hover {
  background: #45506b !important;
  border-color: #45506b !important;
}
[data-v-c302b422] .el-button--default:active {
  background: #2d344d !important;
}
[data-v-c302b422] .el-button--primary {
  --el-button-bg-color: #0066cc;
  --el-button-border-color: #0066cc;
  --el-button-hover-bg-color: #0052a3;
  --el-button-hover-border-color: #0052a3;
  --el-button-active-bg-color: #004080;
  --el-button-active-border-color: #004080;
}
[data-v-c302b422] .el-button--danger {
  --el-button-bg-color: #c43636;
  --el-button-border-color: #c43636;
  --el-button-hover-bg-color: #ab2f2f;
  --el-button-hover-border-color: #ab2f2f;
  --el-button-active-bg-color: #922828;
  --el-button-active-border-color: #922828;
}

/* ═══ Card Container (shared) ═══ */
.card-container[data-v-c302b422] {
  background: #16213e;
  border-radius: 10px;
  border: 1px solid rgba(59, 130, 246, 0.08);
}

/* ═══ Global Element Plus Dark Overrides ═══ */
[data-v-c302b422] .el-tooltip__popper {
  background: #0f1a33 !important;
  border: 1px solid #2a3a5e !important;
  color: #c8d0d8 !important;
  font-size: 12px !important;
}.pod-test-page[data-v-ec24e7f6] {
  min-height: 100vh;
  background: #1a1a2e;
  padding: 20px 24px;
  color: #e0e6ed;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.pod-test-page[data-v-ec24e7f6] .el-breadcrumb {
  margin-bottom: 16px;
}
.pod-test-page[data-v-ec24e7f6] .el-breadcrumb .el-breadcrumb__inner {
  color: #8899aa;
  font-size: 13px;
}
.pod-test-page[data-v-ec24e7f6] .el-breadcrumb .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.pod-test-page[data-v-ec24e7f6] .el-breadcrumb .el-breadcrumb__inner.is-link:hover {
  color: rgb(0, 127.5, 255);
}
.pod-test-page[data-v-ec24e7f6] .el-breadcrumb .el-breadcrumb__separator {
  color: #8899aa;
}
.pod-test-page[data-v-ec24e7f6] .risk-dialog .el-dialog__header {
  background: #16213e;
  border-bottom: 1px solid #2a3a5e;
  padding: 16px 20px;
}
.pod-test-page[data-v-ec24e7f6] .risk-dialog .el-dialog__header .el-dialog__title {
  color: #e0e6ed;
  font-size: 16px;
}
.pod-test-page[data-v-ec24e7f6] .risk-dialog .el-dialog__body {
  background: #16213e;
  padding: 30px 20px;
}
.pod-test-page[data-v-ec24e7f6] .risk-dialog .el-dialog__footer {
  background: #16213e;
  border-top: 1px solid #2a3a5e;
  padding: 12px 20px;
}
.pod-test-page .risk-content[data-v-ec24e7f6] {
  text-align: center;
  padding: 10px 0;
}
.pod-test-page .risk-icon[data-v-ec24e7f6] {
  margin-bottom: 16px;
}
.pod-test-page .risk-text[data-v-ec24e7f6] {
  font-size: 15px;
  line-height: 1.6;
  color: #e0e6ed;
  margin: 0;
}
.pod-test-page .risk-text strong[data-v-ec24e7f6] {
  color: #e6a23c;
  font-size: 18px;
}
.pod-test-page .notice-bar[data-v-ec24e7f6] {
  display: flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, #1e2a4a, #2a1e3e);
  border: 1px solid #3a4a6a;
  border-radius: 8px;
  padding: 14px 20px;
  margin-bottom: 16px;
}
.pod-test-page .notice-bar .notice-icon[data-v-ec24e7f6] {
  color: #e6a23c;
  font-size: 18px;
  flex-shrink: 0;
}
.pod-test-page .notice-bar .notice-text[data-v-ec24e7f6] {
  font-size: 14px;
  color: #e0e6ed;
  line-height: 1.5;
}
.pod-test-page .notice-bar .price-original[data-v-ec24e7f6] {
  color: #e6a23c;
  text-decoration: line-through;
  font-weight: 600;
}
.pod-test-page .notice-bar .price-test[data-v-ec24e7f6] {
  color: #67c23a;
  font-weight: 700;
  font-size: 16px;
}
.pod-test-page .filter-row[data-v-ec24e7f6] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #16213e;
  border: 1px solid #2a3a5e;
  border-radius: 8px;
  padding: 14px 20px;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}
.pod-test-page .filter-left[data-v-ec24e7f6] {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.pod-test-page .filter-item[data-v-ec24e7f6] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pod-test-page .filter-label[data-v-ec24e7f6] {
  font-size: 13px;
  color: #8899aa;
  white-space: nowrap;
}
.pod-test-page .filter-select[data-v-ec24e7f6] {
  width: 150px;
}
.pod-test-page .filter-date[data-v-ec24e7f6] {
  width: 260px;
}
.pod-test-page .filter-actions[data-v-ec24e7f6] {
  gap: 8px;
}
.pod-test-page .filter-right[data-v-ec24e7f6] {
  display: flex;
  align-items: center;
}
.pod-test-page .view-toggle[data-v-ec24e7f6] {
  display: flex;
  gap: 4px;
}
.pod-test-page .btn-primary[data-v-ec24e7f6] {
  background: #0066CC;
  border-color: #0066CC;
  color: #fff;
}
.pod-test-page .btn-primary[data-v-ec24e7f6]:hover {
  background: rgb(0, 122.4, 244.8);
  border-color: rgb(0, 122.4, 244.8);
  color: #fff;
}
.pod-test-page .btn-primary[data-v-ec24e7f6]:active {
  background: rgb(0, 89.25, 178.5);
  border-color: rgb(0, 89.25, 178.5);
}
.pod-test-page .btn-primary.is-disabled[data-v-ec24e7f6] {
  background: rgb(0, 63.75, 127.5);
  border-color: rgb(0, 63.75, 127.5);
  color: rgba(255, 255, 255, 0.5);
}
.pod-test-page .btn-secondary[data-v-ec24e7f6] {
  background: #38405c;
  border-color: #38405c;
  color: #e0e6ed;
}
.pod-test-page .btn-secondary[data-v-ec24e7f6]:hover {
  background: rgb(71.4378378378, 81.6432432432, 117.3621621622);
  border-color: rgb(71.4378378378, 81.6432432432, 117.3621621622);
  color: #fff;
}
.pod-test-page .btn-secondary[data-v-ec24e7f6]:active {
  background: rgb(46.3513513514, 52.972972973, 76.1486486486);
  border-color: rgb(46.3513513514, 52.972972973, 76.1486486486);
}
.pod-test-page .btn-danger[data-v-ec24e7f6] {
  background: #c43636;
  border-color: #c43636;
  color: #fff;
}
.pod-test-page .btn-danger[data-v-ec24e7f6]:hover {
  background: rgb(207.6528, 83.1472, 83.1472);
  border-color: rgb(207.6528, 83.1472, 83.1472);
  color: #fff;
}
.pod-test-page .btn-danger[data-v-ec24e7f6]:active {
  background: rgb(176.008, 48.492, 48.492);
  border-color: rgb(176.008, 48.492, 48.492);
}
.pod-test-page .btn-toggle[data-v-ec24e7f6] {
  padding: 6px 10px;
  font-size: 16px;
  line-height: 1;
  border-radius: 4px;
}
.pod-test-page .btn-toggle[data-v-ec24e7f6]:hover {
  opacity: 0.85;
}
.pod-test-page .btn-toggle-active[data-v-ec24e7f6] {
  background: #0066CC;
  border-color: #0066CC;
  color: #fff;
}
.pod-test-page .btn-toggle-active[data-v-ec24e7f6]:hover {
  background: rgb(0, 122.4, 244.8);
  border-color: rgb(0, 122.4, 244.8);
}
.pod-test-page .btn-sm[data-v-ec24e7f6] {
  padding: 5px 12px;
  font-size: 12px;
}
.pod-test-page .card-grid[data-v-ec24e7f6] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-bottom: 16px;
  min-height: 200px;
}
.pod-test-page .product-card[data-v-ec24e7f6] {
  background: #16213e;
  border: 1px solid #2a3a5e;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
}
.pod-test-page .product-card[data-v-ec24e7f6]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}
.pod-test-page .product-card.card-void[data-v-ec24e7f6] {
  opacity: 0.6;
  filter: grayscale(0.4);
}
.pod-test-page .product-card.card-void .card-header .card-id[data-v-ec24e7f6] {
  text-decoration: line-through;
}
.pod-test-page .card-header[data-v-ec24e7f6] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid #2a3a5e;
}
.pod-test-page .card-id[data-v-ec24e7f6] {
  font-size: 12px;
  color: #8899aa;
  font-family: "Courier New", Courier, monospace;
}
.pod-test-page .card-body[data-v-ec24e7f6] {
  padding: 14px 16px;
}
.pod-test-page .card-name[data-v-ec24e7f6] {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px 0;
  color: #e0e6ed;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pod-test-page .card-info[data-v-ec24e7f6] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pod-test-page .info-row[data-v-ec24e7f6] {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
}
.pod-test-page .info-label[data-v-ec24e7f6] {
  color: #8899aa;
}
.pod-test-page .info-value[data-v-ec24e7f6] {
  color: #e0e6ed;
}
.pod-test-page .info-value.price[data-v-ec24e7f6] {
  color: #67c23a;
  font-weight: 600;
}
.pod-test-page .card-footer[data-v-ec24e7f6] {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 16px;
  border-top: 1px solid #2a3a5e;
}
.pod-test-page .empty-state[data-v-ec24e7f6] {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  background: #16213e;
  border: 1px solid #2a3a5e;
  border-radius: 8px;
}
.pod-test-page .list-container[data-v-ec24e7f6] {
  background: #16213e;
  border: 1px solid #2a3a5e;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 16px;
}
.pod-test-page[data-v-ec24e7f6] .data-table {
  width: 100%;
}
.pod-test-page[data-v-ec24e7f6] .data-table .el-table__header-wrapper {
  background: rgb(19.3285714286, 28.9928571429, 54.4714285714);
}
.pod-test-page[data-v-ec24e7f6] .data-table th.el-table__cell {
  background: rgb(19.3285714286, 28.9928571429, 54.4714285714);
  color: #8899aa;
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid #2a3a5e;
}
.pod-test-page[data-v-ec24e7f6] .data-table th.el-table__cell .el-table__column-sort-wrapper .caret-wrapper .sort-caret.ascending {
  border-bottom-color: #8899aa;
}
.pod-test-page[data-v-ec24e7f6] .data-table th.el-table__cell .el-table__column-sort-wrapper .caret-wrapper .sort-caret.descending {
  border-top-color: #8899aa;
}
.pod-test-page[data-v-ec24e7f6] .data-table td.el-table__cell {
  background: #16213e;
  color: #e0e6ed;
  font-size: 13px;
  border-bottom: 1px solid rgb(34.125, 47.125, 76.375);
}
.pod-test-page[data-v-ec24e7f6] .data-table .el-table__body tr:hover > td.el-table__cell {
  background: rgb(26.0071428571, 39.0107142857, 73.2928571429);
}
.pod-test-page[data-v-ec24e7f6] .data-table .el-table__empty-block {
  background: #16213e;
}
.pod-test-page[data-v-ec24e7f6] .data-table .el-table__empty-text {
  color: #8899aa;
}
.pod-test-page .pagination-bar[data-v-ec24e7f6] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 4px;
}
.pod-test-page .total-info[data-v-ec24e7f6] {
  font-size: 13px;
  color: #8899aa;
}
.pod-test-page[data-v-ec24e7f6] .archive-dialog .el-dialog__header {
  background: #16213e;
  border-bottom: 1px solid #2a3a5e;
  padding: 16px 20px;
}
.pod-test-page[data-v-ec24e7f6] .archive-dialog .el-dialog__header .el-dialog__title {
  color: #e0e6ed;
  font-size: 16px;
}
.pod-test-page[data-v-ec24e7f6] .archive-dialog .el-dialog__body {
  background: #16213e;
  padding: 20px;
}
.pod-test-page[data-v-ec24e7f6] .archive-dialog .el-dialog__footer {
  background: #16213e;
  border-top: 1px solid #2a3a5e;
  padding: 12px 20px;
}
.pod-test-page .archive-descriptions[data-v-ec24e7f6] .el-descriptions__label {
  background: rgb(19.3285714286, 28.9928571429, 54.4714285714);
  color: #8899aa;
  font-size: 13px;
  width: 110px;
}
.pod-test-page .archive-descriptions[data-v-ec24e7f6] .el-descriptions__content {
  background: #16213e;
  color: #e0e6ed;
  font-size: 13px;
}
.pod-test-page .archive-descriptions[data-v-ec24e7f6] .el-descriptions__cell {
  border-color: #2a3a5e;
}
.pod-test-page .archive-descriptions[data-v-ec24e7f6] .el-rate {
  display: inline-flex;
  align-items: center;
}
.pod-test-page .score-text[data-v-ec24e7f6] {
  margin-left: 6px;
  font-size: 12px;
  color: #8899aa;
  vertical-align: middle;
}
.pod-test-page[data-v-ec24e7f6] .submit-dialog .el-dialog__header {
  background: #16213e;
  border-bottom: 1px solid #2a3a5e;
  padding: 16px 20px;
}
.pod-test-page[data-v-ec24e7f6] .submit-dialog .el-dialog__header .el-dialog__title {
  color: #e0e6ed;
  font-size: 16px;
}
.pod-test-page[data-v-ec24e7f6] .submit-dialog .el-dialog__body {
  background: #16213e;
  padding: 24px 20px;
}
.pod-test-page[data-v-ec24e7f6] .submit-dialog .el-dialog__footer {
  background: #16213e;
  border-top: 1px solid #2a3a5e;
  padding: 12px 20px;
}
.pod-test-page .submit-content[data-v-ec24e7f6] {
  text-align: center;
}
.pod-test-page .submit-content p[data-v-ec24e7f6] {
  font-size: 15px;
  color: #e0e6ed;
  margin: 8px 0;
}
.pod-test-page .submit-icon[data-v-ec24e7f6] {
  margin-bottom: 12px;
}
.pod-test-page .submit-hint[data-v-ec24e7f6] {
  font-size: 13px;
  color: #8899aa;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__header {
  background: #16213e;
  padding: 16px 20px;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__header .el-message-box__title {
  color: #e0e6ed;
  font-size: 16px;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__header .el-message-box__title .el-icon {
  color: #c43636;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__content {
  background: #16213e;
  padding: 24px 20px;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__content .el-message-box__message {
  color: #e0e6ed;
  font-size: 14px;
  line-height: 1.6;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__btns {
  background: #16213e;
  padding: 12px 20px;
  border-top: 1px solid #2a3a5e;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__btns .el-button--primary {
  background: #c43636;
  border-color: #c43636;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__btns .el-button--primary:hover {
  background: rgb(207.6528, 83.1472, 83.1472);
  border-color: rgb(207.6528, 83.1472, 83.1472);
}
[data-v-ec24e7f6] .void-message-box .el-message-box__btns .el-button--default {
  background: #38405c;
  border-color: #38405c;
  color: #e0e6ed;
}
[data-v-ec24e7f6] .void-message-box .el-message-box__btns .el-button--default:hover {
  background: rgb(71.4378378378, 81.6432432432, 117.3621621622);
  border-color: rgb(71.4378378378, 81.6432432432, 117.3621621622);
  color: #fff;
}
[data-v-ec24e7f6] .el-select,[data-v-ec24e7f6] .el-date-editor,[data-v-ec24e7f6] .el-pagination {
  --el-bg-color: $bg-card;
  --el-border-color: $border-color;
  --el-text-color-primary: $text-primary;
  --el-text-color-placeholder: $text-secondary;
  --el-fill-color-light: darken($bg-card, 2%);
}
[data-v-ec24e7f6] .el-select-dropdown {
  background: #16213e;
  border: 1px solid #2a3a5e;
}
[data-v-ec24e7f6] .el-select-dropdown .el-select-dropdown__item {
  color: #e0e6ed;
}
[data-v-ec24e7f6] .el-select-dropdown .el-select-dropdown__item:hover {
  background: rgb(27.3428571429, 41.0142857143, 77.0571428571);
}
[data-v-ec24e7f6] .el-select-dropdown .el-select-dropdown__item.selected {
  color: #0066CC;
  font-weight: 600;
}
[data-v-ec24e7f6] .el-picker-panel {
  background: #16213e;
  border: 1px solid #2a3a5e;
}
[data-v-ec24e7f6] .el-picker-panel .el-date-table th {
  color: #8899aa;
}
[data-v-ec24e7f6] .el-picker-panel .el-date-table td .el-date-table-cell {
  color: #e0e6ed;
}
[data-v-ec24e7f6] .el-picker-panel .el-date-table td.available:hover .el-date-table-cell {
  background: rgb(27.3428571429, 41.0142857143, 77.0571428571);
}
[data-v-ec24e7f6] .el-picker-panel .el-date-table td.current:not(.disabled) .el-date-table-cell {
  background: #0066CC;
  color: #fff;
}
[data-v-ec24e7f6] .el-picker-panel .el-date-table td.in-range .el-date-table-cell {
  background: rgb(26.0071428571, 39.0107142857, 73.2928571429);
}
[data-v-ec24e7f6] .el-picker-panel .el-date-picker__header .el-date-picker__header-label {
  color: #e0e6ed;
}
[data-v-ec24e7f6] .el-rate {
  --el-rate-star-color: #555;
  --el-rate-star-active-color: #e6a23c;
}
[data-v-ec24e7f6] .el-pagination {
  --el-pagination-bg-color: transparent;
  --el-pagination-button-bg-color: $btn-secondary;
  --el-pagination-button-color: $text-primary;
  --el-pagination-button-hover-bg-color: lighten($btn-secondary, 8%);
  --el-pagination-button-disabled-bg-color: darken($btn-secondary, 5%);
  --el-pagination-button-disabled-color: $text-secondary;
}
[data-v-ec24e7f6] .el-pagination button.el-pager.number {
  background: #38405c;
  color: #e0e6ed;
  border-radius: 4px;
}
[data-v-ec24e7f6] .el-pagination button.el-pager.number:hover {
  background: rgb(71.4378378378, 81.6432432432, 117.3621621622);
}
[data-v-ec24e7f6] .el-pagination button.el-pager.number.active {
  background: #0066CC;
  color: #fff;
}
[data-v-ec24e7f6] .el-pagination .el-pagination__sizes .el-input__wrapper {
  background: #16213e;
  border-color: #2a3a5e;
  box-shadow: none;
}
[data-v-ec24e7f6] .el-pagination .el-pagination__sizes .el-input__inner {
  color: #e0e6ed;
}
[data-v-ec24e7f6] .el-tag {
  --el-tag-bg-color: transparent;
  --el-tag-border-color: transparent;
}
[data-v-ec24e7f6] .el-tag.el-tag--info {
  background: rgba(144, 147, 153, 0.15);
  color: #909399;
  border-color: #909399;
}
[data-v-ec24e7f6] .el-tag.el-tag--warning {
  background: rgba(230, 162, 60, 0.15);
  color: #e6a23c;
  border-color: #e6a23c;
}
[data-v-ec24e7f6] .el-tag.el-tag--success {
  background: rgba(103, 194, 58, 0.15);
  color: #67c23a;
  border-color: #67c23a;
}
[data-v-ec24e7f6] .el-tag.el-tag--danger {
  background: rgba(196, 54, 54, 0.15);
  color: #c43636;
  border-color: #c43636;
}.pod-pricing-page[data-v-f989e8fc] {
  padding: 20px;
  min-height: 100vh;
  background: #1a1a2e;
  color: #e0e0e0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
[data-v-f989e8fc] .el-breadcrumb {
  font-size: 13px;
  margin-bottom: 16px;
}
[data-v-f989e8fc] .el-breadcrumb .el-breadcrumb__inner {
  color: #8892b0 !important;
}
[data-v-f989e8fc] .el-breadcrumb .el-breadcrumb__inner.is-link {
  color: #64b5f6 !important;
}
[data-v-f989e8fc] .el-breadcrumb .el-breadcrumb__inner.is-link:hover {
  color: #90caf9 !important;
}
[data-v-f989e8fc] .el-breadcrumb .el-breadcrumb__separator {
  color: #4a5568;
}
.page-header[data-v-f989e8fc] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.header-left[data-v-f989e8fc] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.pod-badge[data-v-f989e8fc] {
  background: #0066cc !important;
  border: none !important;
  color: #fff !important;
  font-weight: 600;
  letter-spacing: 0.5px;
}
.page-title[data-v-f989e8fc] {
  font-size: 20px;
  font-weight: 700;
  color: #f0f0f0;
}
.card-container[data-v-f989e8fc] {
  background: #16213e;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 16px;
  border: 1px solid #1e2d50;
}
.search-bar[data-v-f989e8fc] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
  box-shadow: none;
  border-radius: 6px;
}
.search-bar[data-v-f989e8fc] .el-input__inner {
  color: #e0e0e0;
}
.search-bar[data-v-f989e8fc] .el-select .el-input__wrapper {
  background: #1a1a2e;
}
.search-bar[data-v-f989e8fc] .el-select .el-input__inner {
  color: #e0e0e0;
}
.search-actions[data-v-f989e8fc] {
  display: flex;
  gap: 8px;
  align-items: center;
}
.table-wrapper[data-v-f989e8fc] {
  padding: 0;
  overflow: hidden;
}
[data-v-f989e8fc] .el-table {
  background: #16213e;
  color: #e0e0e0;
  border: none;
}
[data-v-f989e8fc] .el-table th.el-table__cell {
  background: #1a1a2e;
  color: #8892b0;
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid #2a3a5c;
}
[data-v-f989e8fc] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2d50;
}
[data-v-f989e8fc] .el-table .el-table__row:hover > td {
  background: #1c2a4a !important;
}
[data-v-f989e8fc] .el-table .el-table__body tr.current-row > td {
  background: #1c2a4a;
}
[data-v-f989e8fc] .el-table .el-table__empty-text {
  color: #5a6a8a;
}
[data-v-f989e8fc] .el-table .el-table__header-wrapper {
  border-radius: 8px 8px 0 0;
}
.channel-tag[data-v-f989e8fc] {
  background: #1e3a5f !important;
  border: 1px solid #2d5a8a !important;
  color: #90caf9 !important;
  border-radius: 4px;
  margin-right: 4px;
  margin-bottom: 2px;
  font-size: 11px;
}
.price-text[data-v-f989e8fc] {
  color: #f0c040;
  font-weight: 600;
}
[data-v-f989e8fc] .el-table__column-resize-proxy {
  border-left-color: #2a3a5c;
}
[data-v-f989e8fc] .el-table__body-wrapper::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
[data-v-f989e8fc] .el-table__body-wrapper::-webkit-scrollbar-track {
  background: #1a1a2e;
}
[data-v-f989e8fc] .el-table__body-wrapper::-webkit-scrollbar-thumb {
  background: #38405c;
  border-radius: 3px;
}
.page-footer[data-v-f989e8fc] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-top: 1px solid #1e2d50;
}
.total-info[data-v-f989e8fc] {
  color: #8892b0;
  font-size: 13px;
}
[data-v-f989e8fc] .el-pagination .btn-prev,[data-v-f989e8fc] .el-pagination .btn-next,[data-v-f989e8fc] .el-pagination .el-pager li {
  background: #1a1a2e !important;
  color: #8892b0 !important;
  border: 1px solid #2a3a5c !important;
  border-radius: 4px;
  margin: 0 2px;
  min-width: 28px;
  height: 28px;
  line-height: 26px;
  font-size: 12px;
}
[data-v-f989e8fc] .el-pagination .btn-prev.active,[data-v-f989e8fc] .el-pagination .btn-next.active,[data-v-f989e8fc] .el-pagination .el-pager li.active {
  background: #0066cc !important;
  border-color: #0066cc !important;
  color: #fff !important;
}
[data-v-f989e8fc] .el-pagination .btn-prev:hover,[data-v-f989e8fc] .el-pagination .btn-next:hover,[data-v-f989e8fc] .el-pagination .el-pager li:hover {
  color: #90caf9 !important;
}
[data-v-f989e8fc] .el-pagination .el-pagination__sizes .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
  box-shadow: none;
  border-radius: 4px;
}
[data-v-f989e8fc] .el-pagination .el-pagination__sizes .el-input__inner {
  color: #e0e0e0;
  font-size: 12px;
}
.btn-primary[data-v-f989e8fc] {
  background: #0066cc !important;
  border: 1px solid #0066cc !important;
  color: #ffffff !important;
  border-radius: 6px;
  font-weight: 500;
  transition: all 0.2s;
}
.btn-primary[data-v-f989e8fc]:hover {
  background: #0077dd !important;
  border-color: #0077dd !important;
}
.btn-primary[data-v-f989e8fc]:active {
  background: #0055bb !important;
}
.btn-primary[data-v-f989e8fc]:focus {
  background: #0066cc !important;
}
.btn-secondary[data-v-f989e8fc] {
  background: #38405c !important;
  border: 1px solid #4a5578 !important;
  color: #c8d0e0 !important;
  border-radius: 6px;
  transition: all 0.2s;
}
.btn-secondary[data-v-f989e8fc]:hover {
  background: #4a5578 !important;
  border-color: #5a6590 !important;
  color: #e8ecf4 !important;
}
.btn-secondary[data-v-f989e8fc]:active {
  background: #2e3650 !important;
}
.btn-secondary[data-v-f989e8fc]:focus {
  background: #38405c !important;
}
.btn-danger[data-v-f989e8fc] {
  background: #c43636 !important;
  border: 1px solid #c43636 !important;
  color: #ffffff !important;
  border-radius: 6px;
  transition: all 0.2s;
}
.btn-danger[data-v-f989e8fc]:hover {
  background: #d94444 !important;
  border-color: #d94444 !important;
}
.btn-danger[data-v-f989e8fc]:active {
  background: #b22e2e !important;
}
.btn-danger[data-v-f989e8fc]:focus {
  background: #c43636 !important;
}
.btn-sm[data-v-f989e8fc] {
  padding: 4px 10px;
  font-size: 12px;
}
.pricing-dialog[data-v-f989e8fc] .el-dialog {
  background: #16213e;
  border: 1px solid #2a3a5c;
  border-radius: 10px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}
.pricing-dialog[data-v-f989e8fc] .el-dialog__header {
  border-bottom: 1px solid #1e2d50;
  padding: 16px 20px;
  margin: 0;
}
.pricing-dialog[data-v-f989e8fc] .el-dialog__title {
  color: #f0f0f0;
  font-size: 16px;
  font-weight: 600;
}
.pricing-dialog[data-v-f989e8fc] .el-dialog__headerbtn .el-dialog__close {
  color: #8892b0;
}
.pricing-dialog[data-v-f989e8fc] .el-dialog__headerbtn .el-dialog__close:hover {
  color: #e0e0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-dialog__body {
  padding: 20px;
  color: #e0e0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-dialog__footer {
  border-top: 1px solid #1e2d50;
  padding: 12px 20px;
}
.pricing-dialog[data-v-f989e8fc] .el-form-item__label {
  color: #a8b2d0;
}
.pricing-dialog[data-v-f989e8fc] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
  box-shadow: none;
  border-radius: 6px;
}
.pricing-dialog[data-v-f989e8fc] .el-input__inner {
  color: #e0e0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-textarea__inner {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
  color: #e0e0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-select .el-input__wrapper {
  background: #1a1a2e;
}
.pricing-dialog[data-v-f989e8fc] .el-input-number {
  width: 100%;
}
.pricing-dialog[data-v-f989e8fc] .el-input-number .el-input-number__decrease, .pricing-dialog[data-v-f989e8fc] .el-input-number .el-input-number__increase {
  background: #1a1a2e;
  color: #8892b0;
  border: 1px solid #2a3a5c;
}
.pricing-dialog[data-v-f989e8fc] .el-input-number .el-input-number__decrease:hover, .pricing-dialog[data-v-f989e8fc] .el-input-number .el-input-number__increase:hover {
  color: #e0e0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-radio {
  color: #c8d0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-radio .el-radio__inner {
  border-color: #4a5578;
  background: #1a1a2e;
}
.pricing-dialog[data-v-f989e8fc] .el-radio .el-radio__input.is-checked .el-radio__inner {
  background: #0066cc;
  border-color: #0066cc;
}
.pricing-dialog[data-v-f989e8fc] .el-checkbox {
  color: #c8d0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-checkbox .el-checkbox__inner {
  background: #1a1a2e;
  border-color: #4a5578;
}
.pricing-dialog[data-v-f989e8fc] .el-checkbox .el-checkbox__input.is-checked .el-checkbox__inner {
  background: #0066cc;
  border-color: #0066cc;
}
.pricing-dialog[data-v-f989e8fc] .el-switch .el-switch__label {
  color: #8892b0;
}
.pricing-dialog[data-v-f989e8fc] .el-switch .el-switch__label.is-active {
  color: #e0e0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-popper {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
}
.pricing-dialog[data-v-f989e8fc] .el-popper .el-select-dropdown__item {
  color: #c8d0e0;
}
.pricing-dialog[data-v-f989e8fc] .el-popper .el-select-dropdown__item:hover, .pricing-dialog[data-v-f989e8fc] .el-popper .el-select-dropdown__item.hover {
  background: #1e2d50;
}
.pricing-dialog[data-v-f989e8fc] .el-popper .el-select-dropdown__item.selected {
  color: #90caf9;
  background: #1e3a5f;
}
.pricing-dialog[data-v-f989e8fc] .el-checkbox-group .el-checkbox {
  margin-right: 16px;
  margin-bottom: 6px;
}
.delete-body[data-v-f989e8fc] {
  padding: 8px 0;
}
.delete-body p[data-v-f989e8fc] {
  margin: 8px 0;
  line-height: 1.6;
}
.del-rule-name[data-v-f989e8fc] {
  font-size: 16px;
  font-weight: 700;
  color: #f0c040;
  padding: 4px 0;
}
.del-warning[data-v-f989e8fc] {
  color: #f85149 !important;
  font-size: 13px;
  background: rgba(196, 54, 54, 0.1);
  border-left: 3px solid #c43636;
  padding: 8px 12px;
  border-radius: 4px;
  margin-top: 12px !important;
}
.del-hint[data-v-f989e8fc] {
  color: #8892b0;
  font-size: 13px;
}
.version-list[data-v-f989e8fc] {
  max-height: 460px;
  overflow-y: auto;
}
.version-list[data-v-f989e8fc]::-webkit-scrollbar {
  width: 5px;
}
.version-list[data-v-f989e8fc]::-webkit-scrollbar-track {
  background: #1a1a2e;
}
.version-list[data-v-f989e8fc]::-webkit-scrollbar-thumb {
  background: #38405c;
  border-radius: 3px;
}
.version-item[data-v-f989e8fc] {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 10px;
  transition: border-color 0.2s;
}
.version-item[data-v-f989e8fc]:hover {
  border-color: #3a5a8a;
}
.version-header[data-v-f989e8fc] {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.version-badge[data-v-f989e8fc] {
  display: inline-block;
  background: #0066cc;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.3px;
}
.version-time[data-v-f989e8fc] {
  color: #8892b0;
  font-size: 12px;
}
.version-detail[data-v-f989e8fc] {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 13px;
  color: #b0b8d0;
  margin-bottom: 10px;
}
.version-actions[data-v-f989e8fc] {
  display: flex;
  gap: 8px;
}
.version-empty[data-v-f989e8fc] {
  text-align: center;
  color: #5a6a8a;
  padding: 40px 0;
  font-size: 14px;
}
.compare-container[data-v-f989e8fc] {
  display: flex;
  gap: 16px;
}
.compare-col[data-v-f989e8fc] {
  flex: 1;
}
.compare-col h4[data-v-f989e8fc] {
  color: #f0f0f0;
  font-size: 14px;
  font-weight: 600;
  margin: 0 0 12px;
}
[data-v-f989e8fc] .el-descriptions {
  background: #1a1a2e;
  border-radius: 6px;
}
[data-v-f989e8fc] .el-descriptions .el-descriptions__table {
  border-collapse: collapse;
}
[data-v-f989e8fc] .el-descriptions .el-descriptions__cell {
  background: #1a1a2e;
  border: 1px solid #2a3a5c;
  color: #e0e0e0;
  padding: 8px 12px;
  font-size: 13px;
}
[data-v-f989e8fc] .el-descriptions .el-descriptions__label {
  color: #8892b0;
  font-weight: 500;
}.spot-selection[data-v-95e48fc2] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px 24px 60px;
  color: #e0e6f0;
}
.spot-selection[data-v-95e48fc2] .el-breadcrumb .el-breadcrumb__inner {
  color: #8899b4;
  font-size: 13px;
}
.spot-selection[data-v-95e48fc2] .el-breadcrumb .el-breadcrumb__inner.is-link:hover {
  color: #0066cc;
}
.spot-selection[data-v-95e48fc2] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #e0e6f0;
  font-weight: 500;
}
.spot-selection[data-v-95e48fc2] .el-breadcrumb .el-breadcrumb__separator {
  color: #5a6a84;
}
.page-header[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 18px 0 16px;
}
.page-header .header-left[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.page-header .orange-tag[data-v-95e48fc2] {
  display: inline-block;
  background: rgba(255, 140, 0, 0.15);
  color: #ff8c00;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 4px;
  letter-spacing: 1px;
}
.page-header .header-title[data-v-95e48fc2] {
  font-size: 18px;
  font-weight: 600;
  color: #e0e6f0;
}
.page-header .header-count[data-v-95e48fc2] {
  font-size: 13px;
  color: #8899b4;
}
.filter-bar[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  background: #16213e;
  border: 1px solid #2a3a5a;
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 20px;
}
.filter-bar .filter-item[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.filter-bar .filter-label[data-v-95e48fc2] {
  font-size: 13px;
  color: #8899b4;
  white-space: nowrap;
}
.filter-bar .filter-select[data-v-95e48fc2],
.filter-bar .filter-input[data-v-95e48fc2] {
  width: 140px;
}
.filter-bar .price-range[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  gap: 4px;
}
.filter-bar .price-range .price-input[data-v-95e48fc2] {
  width: 90px;
}
.filter-bar .price-range .price-separator[data-v-95e48fc2] {
  color: #5a6a84;
  font-size: 13px;
}
.product-grid[data-v-95e48fc2] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.product-card[data-v-95e48fc2] {
  background: #16213e;
  border: 1px solid #2a3a5a;
  border-radius: 10px;
  padding: 16px;
  position: relative;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
}
.product-card[data-v-95e48fc2]:hover {
  background: #1a2a4e;
  border-color: #3a4a6a;
  transform: translateY(-2px);
}
.card-badge[data-v-95e48fc2] {
  position: absolute;
  top: 8px;
  right: 8px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.5px;
}
.card-badge.badge-stock[data-v-95e48fc2] {
  background: rgba(34, 166, 109, 0.2);
  color: #22a66d;
}
.card-badge.badge-low[data-v-95e48fc2] {
  background: rgba(196, 54, 54, 0.2);
  color: #f56c6c;
}
.card-badge.badge-preorder[data-v-95e48fc2] {
  background: rgba(230, 162, 60, 0.2);
  color: #e6a23c;
}
.card-image[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  margin-bottom: 10px;
}
.card-image .card-emoji[data-v-95e48fc2] {
  font-size: 44px;
  line-height: 1;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
}
.card-body .card-name[data-v-95e48fc2] {
  font-size: 14px;
  font-weight: 600;
  color: #e0e6f0;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.card-body .card-pricing[data-v-95e48fc2] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.card-body .card-pricing .tier-row[data-v-95e48fc2] {
  background: rgba(0, 102, 204, 0.1);
  border: 1px solid rgba(0, 102, 204, 0.25);
  border-radius: 4px;
  padding: 2px 8px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}
.card-body .card-pricing .tier-row .tier-qty[data-v-95e48fc2] {
  color: #8899b4;
}
.card-body .card-pricing .tier-row .tier-price[data-v-95e48fc2] {
  color: #ff8c00;
  font-weight: 700;
}
.card-body .card-meta[data-v-95e48fc2] {
  border-top: 1px solid #2a3a5a;
  padding-top: 8px;
  margin-bottom: 8px;
}
.card-body .card-meta .meta-row[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  margin-bottom: 4px;
}
.card-body .card-meta .meta-row .meta-label[data-v-95e48fc2] {
  color: #5a6a84;
}
.card-body .card-meta .meta-row .meta-value[data-v-95e48fc2] {
  color: #8899b4;
}
.card-body .card-meta .meta-row .meta-value.low-stock[data-v-95e48fc2] {
  color: #f56c6c;
  font-weight: 600;
}
.card-body .card-meta .meta-row .supplier-level[data-v-95e48fc2] {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 4px;
  border-radius: 3px;
  margin-right: 4px;
}
.card-body .card-meta .meta-row .supplier-level.level-S[data-v-95e48fc2] {
  background: rgba(255, 140, 0, 0.2);
  color: #ff8c00;
}
.card-body .card-meta .meta-row .supplier-level.level-A[data-v-95e48fc2] {
  background: rgba(0, 102, 204, 0.2);
  color: #0066cc;
}
.card-body .card-meta .meta-row .supplier-level.level-B[data-v-95e48fc2] {
  background: rgba(34, 166, 109, 0.2);
  color: #22a66d;
}
.card-body .card-meta .meta-row .supplier-level.level-C[data-v-95e48fc2] {
  background: rgba(90, 106, 132, 0.2);
  color: #5a6a84;
}
.card-body .card-rating[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  gap: 2px;
}
.card-body .card-rating .rating-stars[data-v-95e48fc2] {
  color: #ff8c00;
  font-size: 14px;
}
.card-body .card-rating .rating-score[data-v-95e48fc2] {
  font-size: 12px;
  color: #8899b4;
  margin-left: 4px;
}
.card-actions[data-v-95e48fc2] {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid #2a3a5a;
}
.btn-sm[data-v-95e48fc2] {
  flex: 1;
  font-size: 12px;
  padding: 6px 8px;
}
.btn-primary[data-v-95e48fc2] {
  background: #0066cc;
  border-color: #0066cc;
  color: #fff;
}
.btn-primary[data-v-95e48fc2]:hover, .btn-primary[data-v-95e48fc2]:focus {
  background: rgb(0, 122.4, 244.8);
  border-color: rgb(0, 122.4, 244.8);
  color: #fff;
}
.btn-primary[data-v-95e48fc2]:active {
  background: rgb(0, 86.7, 173.4);
  border-color: rgb(0, 86.7, 173.4);
}
.btn-primary.is-disabled[data-v-95e48fc2] {
  background: rgb(11, 67.5, 133);
  border-color: rgb(11, 67.5, 133);
  color: rgba(255, 255, 255, 0.5);
}
.btn-secondary[data-v-95e48fc2] {
  background: #38405c;
  border-color: #38405c;
  color: #e0e6f0;
}
.btn-secondary[data-v-95e48fc2]:hover, .btn-secondary[data-v-95e48fc2]:focus {
  background: rgb(71.4378378378, 81.6432432432, 117.3621621622);
  border-color: rgb(71.4378378378, 81.6432432432, 117.3621621622);
  color: #fff;
}
.btn-secondary[data-v-95e48fc2]:active {
  background: rgb(44.4216216216, 50.7675675676, 72.9783783784);
  border-color: rgb(44.4216216216, 50.7675675676, 72.9783783784);
}
.btn-danger[data-v-95e48fc2] {
  background: #c43636;
  border-color: #c43636;
  color: #fff;
}
.btn-danger[data-v-95e48fc2]:hover, .btn-danger[data-v-95e48fc2]:focus {
  background: rgb(207.6528, 83.1472, 83.1472);
  border-color: rgb(207.6528, 83.1472, 83.1472);
  color: #fff;
}
.btn-danger[data-v-95e48fc2]:active {
  background: rgb(172.0096, 47.3904, 47.3904);
  border-color: rgb(172.0096, 47.3904, 47.3904);
}
.loading-skeleton[data-v-95e48fc2] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.loading-skeleton .skeleton-card[data-v-95e48fc2] {
  height: 340px;
  background: #16213e;
  border: 1px solid #2a3a5a;
  border-radius: 10px;
  animation: pulse-95e48fc2 1.5s ease-in-out infinite;
}
@keyframes pulse-95e48fc2 {
0% {
    opacity: 0.6;
}
50% {
    opacity: 1;
}
100% {
    opacity: 0.6;
}
}
.empty-state[data-v-95e48fc2] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  background: #16213e;
  border: 1px dashed #2a3a5a;
  border-radius: 10px;
}
.empty-state .empty-icon[data-v-95e48fc2] {
  font-size: 48px;
  color: #5a6a84;
  margin-bottom: 12px;
}
.empty-state p[data-v-95e48fc2] {
  color: #8899b4;
  font-size: 14px;
  margin-bottom: 16px;
}
.dark-dialog[data-v-95e48fc2] .el-dialog {
  background: #16213e;
  border: 1px solid #2a3a5a;
  border-radius: 12px;
}
.dark-dialog[data-v-95e48fc2] .el-dialog__header {
  border-bottom: 1px solid #2a3a5a;
  padding: 16px 20px;
  margin: 0;
}
.dark-dialog[data-v-95e48fc2] .el-dialog__header .el-dialog__title {
  color: #e0e6f0;
  font-size: 16px;
  font-weight: 600;
}
.dark-dialog[data-v-95e48fc2] .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #5a6a84;
}
.dark-dialog[data-v-95e48fc2] .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #e0e6f0;
}
.dark-dialog[data-v-95e48fc2] .el-dialog__body {
  padding: 20px;
}
.dark-dialog[data-v-95e48fc2] .el-dialog__footer {
  border-top: 1px solid #2a3a5a;
  padding: 12px 20px;
}
.threshold-form .form-text[data-v-95e48fc2] {
  color: #e0e6f0;
  font-size: 14px;
}
.threshold-form .form-text.highlight[data-v-95e48fc2] {
  color: #ff8c00;
  font-weight: 600;
}
.threshold-form .form-tip[data-v-95e48fc2] {
  color: #5a6a84;
  font-size: 12px;
  margin-top: 4px;
  line-height: 1.4;
}
.threshold-form[data-v-95e48fc2] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #2a3a5a;
  box-shadow: none;
}
.threshold-form[data-v-95e48fc2] .el-input__wrapper .el-input__inner {
  color: #e0e6f0;
  background: transparent;
}
.threshold-form[data-v-95e48fc2] .el-input-group__append {
  background: #1e2a4a;
  border: 1px solid #2a3a5a;
  border-left: none;
  color: #8899b4;
}
.threshold-form[data-v-95e48fc2] .el-checkbox__label {
  color: #8899b4;
}
.threshold-form[data-v-95e48fc2] .el-checkbox__input.is-checked .el-checkbox__inner {
  background: #0066cc;
  border-color: #0066cc;
}
.threshold-form[data-v-95e48fc2] .el-form-item__label {
  color: #8899b4;
}
.threshold-form[data-v-95e48fc2] .el-switch.is-checked .el-switch__core {
  background: #0066cc;
  border-color: #0066cc;
}
.listing-content .listing-icon[data-v-95e48fc2] {
  font-size: 36px;
  color: #ff8c00;
  display: block;
  margin: 0 auto 12px;
}
.listing-content .listing-title[data-v-95e48fc2] {
  text-align: center;
  color: #e0e6f0;
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 16px;
}
.listing-content .listing-products[data-v-95e48fc2] {
  max-height: 200px;
  overflow-y: auto;
  background: #1a1a2e;
  border: 1px solid #2a3a5a;
  border-radius: 6px;
  padding: 8px;
  margin-bottom: 12px;
}
.listing-content .listing-products .listing-product-item[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  font-size: 13px;
}
.listing-content .listing-products .listing-product-item .lp-emoji[data-v-95e48fc2] {
  font-size: 20px;
  flex-shrink: 0;
}
.listing-content .listing-products .listing-product-item .lp-name[data-v-95e48fc2] {
  flex: 1;
  color: #e0e6f0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.listing-content .listing-products .listing-product-item .lp-qty[data-v-95e48fc2] {
  color: #5a6a84;
  font-size: 12px;
}
.listing-content .listing-products .listing-product-item .lp-price[data-v-95e48fc2] {
  color: #ff8c00;
  font-weight: 600;
}
.listing-content .listing-summary[data-v-95e48fc2] {
  background: #1a1a2e;
  border: 1px solid #2a3a5a;
  border-radius: 6px;
  padding: 12px;
  margin-bottom: 12px;
}
.listing-content .listing-summary .summary-row[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: #8899b4;
}
.listing-content .listing-summary .summary-row + .summary-row[data-v-95e48fc2] {
  margin-top: 8px;
}
.listing-content .listing-summary .platform-select[data-v-95e48fc2] {
  width: 140px;
}
.listing-content .listing-notice[data-v-95e48fc2] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #5a6a84;
  background: rgba(230, 162, 60, 0.08);
  border: 1px solid rgba(230, 162, 60, 0.2);
  border-radius: 6px;
  padding: 8px 12px;
}
[data-v-95e48fc2] .el-select .el-select__wrapper {
  background: #1a1a2e;
  border: 1px solid #2a3a5a;
  box-shadow: none;
  border-radius: 6px;
  min-height: 34px;
}
[data-v-95e48fc2] .el-select .el-select__wrapper .el-select__placeholder {
  color: #5a6a84;
}
[data-v-95e48fc2] .el-select .el-select__wrapper .el-select__input {
  color: #e0e6f0;
}
[data-v-95e48fc2] .el-select .el-select__wrapper .el-select__suffix .el-icon {
  color: #5a6a84;
}
[data-v-95e48fc2] .el-select .el-select__wrapper.is-hovering {
  border-color: #0066cc;
}
[data-v-95e48fc2] .el-popper {
  background: #1e2a4a;
  border: 1px solid #2a3a5a;
}
[data-v-95e48fc2] .el-popper .el-select-dropdown__item {
  color: #8899b4;
}
[data-v-95e48fc2] .el-popper .el-select-dropdown__item.hover,[data-v-95e48fc2] .el-popper .el-select-dropdown__item:hover {
  background: rgba(0, 102, 204, 0.12);
  color: #e0e6f0;
}
[data-v-95e48fc2] .el-popper .el-select-dropdown__item.selected {
  color: #0066cc;
  font-weight: 600;
}
[data-v-95e48fc2] .el-popper .el-popper__arrow::before {
  background: #1e2a4a;
  border-color: #2a3a5a;
}
[data-v-95e48fc2] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #2a3a5a;
  box-shadow: none;
  border-radius: 6px;
}
[data-v-95e48fc2] .el-input__wrapper:hover {
  border-color: #3a4a6a;
}
[data-v-95e48fc2] .el-input__inner {
  color: #e0e6f0;
  background: transparent;
}
[data-v-95e48fc2] .el-input__inner::placeholder {
  color: #5a6a84;
}
[data-v-95e48fc2]::-webkit-scrollbar {
  width: 6px;
}
[data-v-95e48fc2]::-webkit-scrollbar-track {
  background: #1a1a2e;
}
[data-v-95e48fc2]::-webkit-scrollbar-thumb {
  background: #2a3a5a;
  border-radius: 3px;
}
[data-v-95e48fc2]::-webkit-scrollbar-thumb:hover {
  background: #3a4a6a;
}.spot-inventory[data-v-35054b35] {
  background: #1a1a2e;
  min-height: 100%;
  padding: 24px 28px;
  color: #c9d1d9;
}
.spot-inventory .breadcrumb[data-v-35054b35] {
  margin-bottom: 16px;
}
.spot-inventory .breadcrumb[data-v-35054b35] .el-breadcrumb__inner {
  color: #7d8590;
  font-size: 13px;
}
.spot-inventory .breadcrumb[data-v-35054b35] .el-breadcrumb__inner.is-link {
  color: #58a6ff;
}
.spot-inventory .breadcrumb[data-v-35054b35] .el-breadcrumb__inner.is-link:hover {
  color: #79b8ff;
}
.spot-inventory .breadcrumb[data-v-35054b35] .el-breadcrumb__separator {
  color: #484f58;
}
.spot-inventory .page-title[data-v-35054b35] {
  font-size: 22px;
  font-weight: 600;
  margin: 0 0 20px;
  color: #e6edf3;
  letter-spacing: 0.5px;
}
.spot-inventory[data-v-35054b35] {
  /* ===== Stat Cards ===== */
}
.spot-inventory .stat-grid[data-v-35054b35] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
.spot-inventory .stat-card[data-v-35054b35] {
  background: #16213e;
  border-radius: 10px;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid #1e2d4a;
  transition: transform 0.2s, box-shadow 0.2s;
}
.spot-inventory .stat-card[data-v-35054b35]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}
.spot-inventory .stat-card__icon[data-v-35054b35] {
  width: 50px;
  height: 50px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.spot-inventory .stat-card__body[data-v-35054b35] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow: hidden;
}
.spot-inventory .stat-card__label[data-v-35054b35] {
  font-size: 13px;
  color: #7d8590;
  white-space: nowrap;
}
.spot-inventory .stat-card__value[data-v-35054b35] {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.spot-inventory[data-v-35054b35] {
  /* ===== Tag Group ===== */
}
.spot-inventory .tag-group[data-v-35054b35] {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.spot-inventory .tag-group__title[data-v-35054b35] {
  font-size: 13px;
  color: #7d8590;
  flex-shrink: 0;
}
.spot-inventory .tag-group__items[data-v-35054b35] {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.spot-inventory .tag-group .el-tag[data-v-35054b35] {
  cursor: pointer;
  border-radius: 6px;
  font-size: 13px;
  padding: 0 14px;
  height: 30px;
  line-height: 28px;
  transition: all 0.2s;
}
.spot-inventory .tag-group .el-tag[data-v-35054b35]:hover {
  opacity: 0.85;
}
.spot-inventory .tag-group .el-tag--plain[data-v-35054b35] {
  background: transparent;
  border-color: #30363d;
  color: #8b949e;
}
.spot-inventory .tag-group .el-tag--plain[data-v-35054b35]:hover {
  border-color: #58a6ff;
  color: #58a6ff;
}
.spot-inventory .tag-group .tag-count[data-v-35054b35] {
  font-weight: 400;
  opacity: 0.8;
  margin-left: 2px;
}
.spot-inventory[data-v-35054b35] {
  /* ===== Filter Bar ===== */
}
.spot-inventory .filter-bar[data-v-35054b35] {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.spot-inventory .filter-bar .filter-item[data-v-35054b35] {
  width: 170px;
}
.spot-inventory .filter-bar[data-v-35054b35] .el-select__wrapper {
  background: #16213e;
  border: 1px solid #1e2d4a;
  box-shadow: none;
  border-radius: 6px;
  min-height: 36px;
}
.spot-inventory .filter-bar[data-v-35054b35] .el-select__placeholder {
  color: #484f58;
}
.spot-inventory .filter-bar[data-v-35054b35] .el-input__inner {
  color: #c9d1d9;
}
.spot-inventory .filter-bar .el-button--primary[data-v-35054b35] {
  background: #0066CC;
  border-color: #0066CC;
}
.spot-inventory .filter-bar .el-button--primary[data-v-35054b35]:hover {
  background: #005bb5;
  border-color: #005bb5;
}
.spot-inventory .filter-bar .el-button[data-v-35054b35]:not(.el-button--primary) {
  background: #38405c;
  border-color: #38405c;
  color: #c9d1d9;
}
.spot-inventory .filter-bar .el-button[data-v-35054b35]:not(.el-button--primary):hover {
  background: #434c6e;
  border-color: #434c6e;
}
.spot-inventory[data-v-35054b35] {
  /* ===== Table ===== */
}
.spot-inventory .table-wrap[data-v-35054b35] {
  background: #16213e;
  border-radius: 10px;
  border: 1px solid #1e2d4a;
  overflow: hidden;
}
.spot-inventory[data-v-35054b35] .el-table {
  --el-table-bg-color: #16213e;
  --el-table-tr-bg-color: #16213e;
  --el-table-header-bg-color: #111827;
  --el-table-row-hover-bg-color: #1a2a4a;
  --el-table-border-color: #1e2d4a;
  --el-table-text-color: #c9d1d9;
  --el-table-header-text-color: #7d8590;
  background: #16213e !important;
}
.spot-inventory[data-v-35054b35] .el-table th.el-table__cell {
  background: #111827 !important;
  border-bottom: 1px solid #1e2d4a;
  color: #7d8590;
  font-weight: 500;
  font-size: 13px;
}
.spot-inventory[data-v-35054b35] .el-table td.el-table__cell {
  border-bottom: 1px solid #1a2740;
}
.spot-inventory[data-v-35054b35] .el-table .el-table__body tr.current-row > td {
  background: #1a2a4a;
}
.spot-inventory[data-v-35054b35] .el-table .el-table__empty-text {
  color: #484f58;
}
.spot-inventory .stock-level--danger[data-v-35054b35] {
  color: #e05555;
  font-weight: 600;
}
.spot-inventory .stock-level--warning[data-v-35054b35] {
  color: #d4a017;
  font-weight: 600;
}
.spot-inventory .stock-level--info[data-v-35054b35] {
  color: #7d8590;
}
.spot-inventory[data-v-35054b35] .el-button--primary.is-link {
  color: #0066CC;
}
.spot-inventory[data-v-35054b35] .el-button--primary.is-link:hover {
  color: #3399FF;
}
.spot-inventory[data-v-35054b35] .el-button--danger.is-link {
  color: #c43636;
}
.spot-inventory[data-v-35054b35] .el-button--danger.is-link:hover {
  color: #e05555;
}
.spot-inventory[data-v-35054b35] {
  /* ===== Dialog ===== */
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog {
  background: #16213e;
  border: 1px solid #1e2d4a;
  border-radius: 12px;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2d4a;
  padding: 18px 24px;
  margin: 0;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog__title {
  color: #e6edf3;
  font-size: 16px;
  font-weight: 600;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog__headerbtn .el-dialog__close {
  color: #7d8590;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog__headerbtn .el-dialog__close:hover {
  color: #c9d1d9;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog__body {
  padding: 20px 24px;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-dialog__footer {
  border-top: 1px solid #1e2d4a;
  padding: 14px 24px;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-form-item__label {
  color: #7d8590 !important;
  font-size: 13px;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-input__wrapper,
.spot-inventory[data-v-35054b35] .replenish-dialog .el-input-number__decrease,
.spot-inventory[data-v-35054b35] .replenish-dialog .el-input-number__increase {
  background: #1a1a2e;
  border: 1px solid #1e2d4a;
  box-shadow: none;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-input__inner {
  color: #c9d1d9;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-input.is-disabled .el-input__wrapper {
  background: #111827;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-input.is-disabled .el-input__wrapper .el-input__inner {
  color: #6e7681;
  -webkit-text-fill-color: #6e7681;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-select__wrapper {
  background: #1a1a2e;
  border: 1px solid #1e2d4a;
  box-shadow: none;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-select__placeholder {
  color: #484f58;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .calc-hint {
  margin-top: 6px;
  font-size: 12px;
  color: #7d8590;
  line-height: 1.5;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .calc-hint strong {
  color: #58a6ff;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-button--primary {
  background: #0066CC;
  border-color: #0066CC;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-button--primary:hover {
  background: #005bb5;
  border-color: #005bb5;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-button:not(.el-button--primary) {
  background: #38405c;
  border-color: #38405c;
  color: #c9d1d9;
}
.spot-inventory[data-v-35054b35] .replenish-dialog .el-button:not(.el-button--primary):hover {
  background: #434c6e;
  border-color: #434c6e;
}.spot-hot[data-v-c2d38c48] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px 24px;
  color: #c8cedb;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}

/* ---- Breadcrumb ---- */
.breadcrumb[data-v-c2d38c48] {
  margin-bottom: 16px;
}
.breadcrumb[data-v-c2d38c48] .el-breadcrumb__inner {
  color: #6b7394;
  font-size: 13px;
}
.breadcrumb[data-v-c2d38c48] .el-breadcrumb__separator {
  color: #38405c;
  font-weight: 600;
}

/* ---- Title ---- */
.page-title[data-v-c2d38c48] {
  font-size: 22px;
  font-weight: 600;
  color: #e0e4f0;
  margin: 0 0 20px 0;
  letter-spacing: 0.5px;
}

/* ---- 4 Stat Cards ---- */
.stat-row[data-v-c2d38c48] {
  margin-bottom: 20px;
}
.stat-card[data-v-c2d38c48] {
  background: #16213e;
  border-radius: 8px;
  padding: 18px 20px;
  border: 1px solid #1e2d50;
  transition: box-shadow 0.25s ease, transform 0.2s ease;
}
.stat-card[data-v-c2d38c48]:hover {
  box-shadow: 0 4px 20px rgba(0, 102, 204, 0.18);
  transform: translateY(-2px);
}
.stat-label[data-v-c2d38c48] {
  font-size: 13px;
  color: #6b7394;
  margin-bottom: 8px;
}
.stat-value[data-v-c2d38c48] {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
}
.stat-trend[data-v-c2d38c48] {
  font-size: 12px;
  margin-top: 6px;
  font-weight: 500;
}
.stat-trend.up[data-v-c2d38c48] {
  color: #67c23a;
}
.stat-trend.down[data-v-c2d38c48] {
  color: #c43636;
}

/* ---- Filter Bar ---- */
.filter-bar[data-v-c2d38c48] {
  background: #16213e;
  border-radius: 8px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  border: 1px solid #1e2d50;
}
.filter-item[data-v-c2d38c48] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.filter-label[data-v-c2d38c48] {
  font-size: 13px;
  color: #8b93b0;
  white-space: nowrap;
}
.filter-sep[data-v-c2d38c48] {
  color: #38405c;
  font-size: 14px;
}
.filter-unit[data-v-c2d38c48] {
  color: #6b7394;
  font-size: 13px;
  margin-left: 2px;
}
[data-v-c2d38c48] .el-select .el-input__wrapper,[data-v-c2d38c48] .el-input-number .el-input__wrapper {
  background: #1a1a2e;
  border-color: #38405c;
  box-shadow: none;
}
[data-v-c2d38c48] .el-select .el-input__wrapper:hover,[data-v-c2d38c48] .el-input-number .el-input__wrapper:hover {
  border-color: #0066CC;
}
[data-v-c2d38c48] .el-select .el-input__wrapper.is-focus,[data-v-c2d38c48] .el-input-number .el-input__wrapper.is-focus {
  border-color: #0066CC;
  box-shadow: 0 0 0 1px #0066CC;
}
[data-v-c2d38c48] .el-select .el-input__inner,[data-v-c2d38c48] .el-input-number .el-input__inner {
  color: #c8cedb;
}
[data-v-c2d38c48] .el-select .el-input-number__decrease,[data-v-c2d38c48] .el-select .el-input-number__increase,[data-v-c2d38c48] .el-input-number .el-input-number__decrease,[data-v-c2d38c48] .el-input-number .el-input-number__increase {
  background: #1a1a2e;
  color: #6b7394;
  border-color: #38405c;
}
[data-v-c2d38c48] .el-select .el-input-number__decrease:hover,[data-v-c2d38c48] .el-select .el-input-number__increase:hover,[data-v-c2d38c48] .el-input-number .el-input-number__decrease:hover,[data-v-c2d38c48] .el-input-number .el-input-number__increase:hover {
  color: #0066CC;
}
[data-v-c2d38c48] .el-input__wrapper {
  background: #1a1a2e;
  border-color: #38405c;
  box-shadow: none;
}
[data-v-c2d38c48] .el-input__wrapper:hover {
  border-color: #0066CC;
}
[data-v-c2d38c48] .el-input__inner {
  color: #c8cedb;
}
[data-v-c2d38c48] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #1a7ae0;
  --el-button-hover-border-color: #1a7ae0;
}
[data-v-c2d38c48] .el-button {
  --el-button-text-color: #c8cedb;
  --el-button-bg-color: #38405c;
  --el-button-border-color: #38405c;
  --el-button-hover-text-color: #fff;
  --el-button-hover-bg-color: #4a5478;
  --el-button-hover-border-color: #4a5478;
}

/* ---- Batch Bar ---- */
.batch-bar[data-v-c2d38c48] {
  margin-bottom: 16px;
  display: flex;
  gap: 8px;
}

/* ---- Ranking Table ---- */
.ranking-table[data-v-c2d38c48] {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #16213e;
}
[data-v-c2d38c48] .el-table__body tr.current-row > td,[data-v-c2d38c48] .el-table__body tr:hover > td {
  background: #1a2745 !important;
}
[data-v-c2d38c48] .el-table--striped .el-table__body tr.el-table__row--striped td {
  background: #15203a !important;
}
[data-v-c2d38c48] .el-table__body .el-table__row > td {
  border-bottom: 1px solid #16213e;
}
.rank-num[data-v-c2d38c48] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #38405c;
  font-size: 13px;
  font-weight: 600;
  color: #b0b8d1;
}
.rank-num.rank-top[data-v-c2d38c48] {
  background: linear-gradient(135deg, #0066CC, #1a7ae0);
  color: #fff;
  width: 28px;
  height: 28px;
  font-size: 14px;
}
.goods-emoji[data-v-c2d38c48] {
  font-size: 26px;
  line-height: 1;
  display: inline-block;
}
.goods-name[data-v-c2d38c48] {
  font-size: 14px;
  color: #e0e4f0;
  font-weight: 500;
}

/* ---- Saturation Dots ---- */
.saturation-dot[data-v-c2d38c48] {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}
.saturation-dot.dot-green[data-v-c2d38c48] {
  background: #67c23a;
  box-shadow: 0 0 8px rgba(103, 194, 58, 0.6);
}
.saturation-dot.dot-yellow[data-v-c2d38c48] {
  background: #e6a23c;
  box-shadow: 0 0 8px rgba(230, 162, 60, 0.6);
}
.saturation-dot.dot-red[data-v-c2d38c48] {
  background: #c43636;
  box-shadow: 0 0 8px rgba(196, 54, 54, 0.6);
}
.saturation-text[data-v-c2d38c48] {
  font-size: 13px;
  color: #8b93b0;
  vertical-align: middle;
}
.profit-text[data-v-c2d38c48] {
  color: #67c23a;
  font-weight: 600;
  font-size: 14px;
}

/* ---- Dark Dialogs ---- */
.dark-dialog[data-v-c2d38c48] .el-dialog {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 10px;
}
.dark-dialog[data-v-c2d38c48] .el-dialog__title {
  color: #e0e4f0;
  font-weight: 600;
  font-size: 16px;
}
.dark-dialog[data-v-c2d38c48] .el-dialog__headerbtn .el-dialog__close {
  color: #6b7394;
}
.dark-dialog[data-v-c2d38c48] .el-dialog__headerbtn .el-dialog__close:hover {
  color: #c43636;
}
.dark-dialog[data-v-c2d38c48] .el-dialog__body {
  padding: 20px;
  color: #c8cedb;
}
.dark-dialog[data-v-c2d38c48] .el-form-item__label {
  color: #8b93b0;
  font-size: 13px;
}
.dark-dialog[data-v-c2d38c48] .el-alert--warning {
  background: #2a2040;
  border: 1px solid #8a6d3b;
  color: #e6c87a;
  --el-alert-title-color: #e6c87a;
  border-radius: 6px;
}
.dark-dialog[data-v-c2d38c48] .el-alert--info {
  background: #1a2745;
  border: 1px solid #1a3a6b;
  color: #7ab8e6;
  --el-alert-title-color: #7ab8e6;
  border-radius: 6px;
}
.dark-dialog[data-v-c2d38c48] .el-tag {
  background: #1a1a2e;
  border-color: #38405c;
  color: #c8cedb;
  border-radius: 4px;
}
.dark-dialog[data-v-c2d38c48] .el-tag .el-tag__close {
  color: #6b7394;
}
.dark-dialog[data-v-c2d38c48] .el-tag .el-tag__close:hover {
  color: #c43636;
  background: transparent;
}
.dark-dialog[data-v-c2d38c48] .el-radio {
  color: #c8cedb;
  margin-right: 16px;
}
.dark-dialog[data-v-c2d38c48] .el-radio__input.is-checked + .el-radio__label {
  color: #0066CC;
}
.dark-dialog[data-v-c2d38c48] .el-radio__inner {
  background: #1a1a2e;
  border-color: #38405c;
}
.dark-dialog[data-v-c2d38c48] .el-radio__input.is-checked .el-radio__inner {
  background: #0066CC;
  border-color: #0066CC;
}
.dark-dialog[data-v-c2d38c48] .el-date-editor .el-input__wrapper {
  background: #1a1a2e;
  border-color: #38405c;
}
.dark-dialog[data-v-c2d38c48] .el-picker-panel {
  background: #16213e;
  border-color: #1e2d50;
}
.dialog-body .selected-goods[data-v-c2d38c48] {
  margin: 12px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.price-current[data-v-c2d38c48] {
  margin-bottom: 16px;
  font-size: 14px;
  color: #8b93b0;
}
.price-current strong[data-v-c2d38c48] {
  color: #67c23a;
  font-size: 18px;
  margin-left: 4px;
}
.price-result[data-v-c2d38c48] {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #1e2d50;
  font-size: 15px;
  color: #8b93b0;
}
.price-result strong[data-v-c2d38c48] {
  font-size: 20px;
  margin-left: 4px;
}
.adjust-unit[data-v-c2d38c48] {
  margin-left: 6px;
  color: #6b7394;
  font-size: 14px;
  font-weight: 500;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
.spot-hot[data-v-c2d38c48] {
    padding: 12px;
}
.stat-row .el-col[data-v-c2d38c48] {
    margin-bottom: 12px;
}
.filter-bar[data-v-c2d38c48] {
    flex-direction: column;
    align-items: stretch;
}
.filter-item[data-v-c2d38c48] {
    flex-wrap: wrap;
}
}.spot-new-container[data-v-7a551c25] {
  min-height: 100%;
  padding: 20px 24px 40px;
  background: #1a1a2e;
  color: #c0c0c0;
}
.spot-new-container .breadcrumb[data-v-7a551c25] {
  margin-bottom: 20px;
}
.spot-new-container .breadcrumb[data-v-7a551c25] .el-breadcrumb__inner {
  color: #6b7a8f;
  font-size: 13px;
}
.spot-new-container .breadcrumb[data-v-7a551c25] .el-breadcrumb__inner.is-link {
  color: #6b7a8f;
}
.spot-new-container .breadcrumb[data-v-7a551c25] .el-breadcrumb__inner.is-link:hover {
  color: #a0b0c8;
}
.spot-new-container .breadcrumb[data-v-7a551c25] .el-breadcrumb__separator {
  color: #38405c;
}
.spot-new-container .breadcrumb[data-v-7a551c25] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #a0b0c8;
}
.spot-new-container .page-header[data-v-7a551c25] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.spot-new-container .page-header .header-left .page-title[data-v-7a551c25] {
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 600;
  color: #e0e8f0;
}
.spot-new-container .page-header .header-left .page-desc[data-v-7a551c25] {
  font-size: 13px;
  color: #6b7a8f;
}
.spot-new-container .page-header .header-right[data-v-7a551c25] {
  display: flex;
  gap: 10px;
}
.spot-new-container .custom-tabs[data-v-7a551c25] .el-tabs__item {
  color: #6b7a8f;
  font-size: 14px;
  font-weight: 500;
  padding: 0 20px;
}
.spot-new-container .custom-tabs[data-v-7a551c25] .el-tabs__item:hover {
  color: #a0b0c8;
}
.spot-new-container .custom-tabs[data-v-7a551c25] .el-tabs__item.is-active {
  color: #0066CC;
}
.spot-new-container .custom-tabs[data-v-7a551c25] .el-tabs__active-bar {
  background-color: #0066CC;
  height: 2px;
}
.spot-new-container .custom-tabs[data-v-7a551c25] .el-tabs__nav-wrap::after {
  background-color: #1a3a6b;
  height: 1px;
}
.spot-new-container .filter-bar[data-v-7a551c25] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  margin-bottom: 16px;
  background: #16213e;
  border-radius: 8px;
}
.spot-new-container .filter-bar .filter-select[data-v-7a551c25] {
  width: 180px;
}
.spot-new-container .filter-bar .filter-date[data-v-7a551c25] {
  width: 300px;
}
.spot-new-container .table-wrapper[data-v-7a551c25] {
  background: #16213e;
  border-radius: 8px;
  overflow: hidden;
}
.spot-new-container .table-wrapper[data-v-7a551c25] .el-table__body-wrapper {
  background: #16213e;
}
.spot-new-container .table-wrapper[data-v-7a551c25] .el-table__empty-text {
  color: #6b7a8f;
}
.spot-new-container .table-wrapper[data-v-7a551c25] .el-checkbox__inner {
  background-color: transparent;
  border-color: #38405c;
}
.spot-new-container .table-wrapper[data-v-7a551c25] .el-checkbox__input.is-checked .el-checkbox__inner {
  background-color: #0066CC;
  border-color: #0066CC;
}
.spot-new-container .table-wrapper[data-v-7a551c25] .el-table__body tr:hover > td {
  background-color: #1a2a4e !important;
}
.spot-new-container .status-tag[data-v-7a551c25] {
  border: none;
  font-size: 12px;
  padding: 2px 10px;
}
.spot-new-container .status-tag.el-tag--warning[data-v-7a551c25] {
  background: rgba(230, 162, 60, 0.15);
  color: #e6a23c;
}
.spot-new-container .status-tag.el-tag--success[data-v-7a551c25] {
  background: rgba(103, 194, 58, 0.15);
  color: #67c23a;
}
.spot-new-container .status-tag.el-tag--danger[data-v-7a551c25] {
  background: rgba(196, 54, 54, 0.15);
  color: #c43636;
}
.spot-new-container .link-btn[data-v-7a551c25] {
  padding: 0 6px;
  font-size: 13px;
}
.spot-new-container .link-btn[data-v-7a551c25]:hover {
  opacity: 0.8;
}
.spot-new-container .link-danger[data-v-7a551c25] {
  color: #c43636 !important;
}
.spot-new-container .pagination-bar[data-v-7a551c25] {
  display: flex;
  justify-content: flex-end;
  padding: 16px 0;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .el-pagination__total,
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .el-pagination__jump {
  color: #6b7a8f;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .btn-prev, .spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .btn-next {
  background: #16213e;
  color: #6b7a8f;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .btn-prev:hover, .spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .btn-next:hover {
  color: #0066CC;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .el-pager li {
  background: #16213e;
  color: #6b7a8f;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .el-pager li:hover {
  color: #0066CC;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .el-pager li.is-active {
  background: #0066CC;
  color: #e0e8f0;
}
.spot-new-container .pagination-bar[data-v-7a551c25] .el-pagination .el-select .el-input .el-input__inner {
  background: #16213e;
  color: #c0c0c0;
}.custom-dialog .el-dialog {
  background: #16213e;
  border: 1px solid #1a3a6b;
  border-radius: 10px;
}
.custom-dialog .el-dialog__header {
  padding: 18px 24px 12px;
  border-bottom: 1px solid #1a3a6b;
}
.custom-dialog .el-dialog__header .el-dialog__title {
  color: #e0e8f0;
  font-size: 16px;
  font-weight: 600;
}
.custom-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #6b7a8f;
}
.custom-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #c0c0c0;
}
.custom-dialog .el-dialog__body {
  padding: 20px 24px;
  color: #c0c0c0;
}
.custom-dialog .el-dialog__footer {
  padding: 12px 24px 18px;
  border-top: 1px solid #1a3a6b;
}
.custom-dialog .dialog-form .el-form-item__label {
  color: #a0b0c8;
}
.custom-dialog .dialog-form .el-input__inner,
.custom-dialog .dialog-form .el-input-number__increase,
.custom-dialog .dialog-form .el-input-number__decrease,
.custom-dialog .dialog-form .el-input-number--large .el-input-number__increase,
.custom-dialog .dialog-form .el-input-number--large .el-input-number__decrease,
.custom-dialog .dialog-form .el-textarea__inner {
  background: #1a1a2e;
  border-color: #38405c;
  color: #c0c0c0;
}
.custom-dialog .dialog-form .el-input__inner:focus,
.custom-dialog .dialog-form .el-textarea__inner:focus {
  border-color: #0066CC;
}
.custom-dialog .dialog-form .el-input-number__increase:hover,
.custom-dialog .dialog-form .el-input-number__decrease:hover {
  color: #0066CC;
}
.custom-dialog .dialog-form .el-select .el-input__inner {
  background: #1a1a2e;
}
.custom-dialog .reject-info {
  margin-bottom: 14px;
  font-size: 14px;
}
.custom-dialog .reject-info .reject-label {
  color: #6b7a8f;
}
.custom-dialog .reject-info .reject-name {
  color: #e0e8f0;
  font-weight: 500;
}
.custom-dialog .reject-textarea .el-textarea__inner {
  background: #1a1a2e;
  border-color: #38405c;
  color: #c0c0c0;
}
.custom-dialog .batch-info {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: rgba(0, 102, 204, 0.08);
  border-radius: 6px;
  margin-bottom: 14px;
  font-size: 14px;
  color: #a0b0c8;
}
.custom-dialog .batch-info .batch-icon {
  color: #e6a23c;
  font-size: 18px;
}
.custom-dialog .batch-info em {
  color: #e0e8f0;
  font-style: normal;
  font-weight: 600;
}
.custom-dialog .batch-list {
  max-height: 280px;
  overflow-y: auto;
}
.custom-dialog .batch-list .batch-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  margin-bottom: 4px;
  background: #1a1a2e;
  border-radius: 4px;
  font-size: 13px;
}
.custom-dialog .batch-list .batch-item .batch-item-name {
  color: #e0e8f0;
}
.custom-dialog .batch-list .batch-item .batch-item-meta {
  color: #6b7a8f;
}
.btn-primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #0052a3;
  --el-button-hover-border-color: #0052a3;
  --el-button-active-bg-color: #004080;
  --el-button-active-border-color: #004080;
  color: #e0e8f0 !important;
}
.btn-secondary {
  --el-button-bg-color: #38405c;
  --el-button-border-color: #38405c;
  --el-button-hover-bg-color: #2c334a;
  --el-button-hover-border-color: #2c334a;
  --el-button-active-bg-color: #23293b;
  --el-button-active-border-color: #23293b;
  color: #c0c0c0 !important;
}
.btn-cancel {
  --el-button-bg-color: transparent;
  --el-button-border-color: #38405c;
  --el-button-hover-bg-color: rgba(56, 64, 92, 0.2);
  --el-button-hover-border-color: #4a5a7a;
  --el-button-active-bg-color: rgba(56, 64, 92, 0.3);
  --el-button-active-border-color: #4a5a7a;
  color: #6b7a8f !important;
}
.btn-danger {
  --el-button-bg-color: #c43636;
  --el-button-border-color: #c43636;
  --el-button-hover-bg-color: #a82e2e;
  --el-button-hover-border-color: #a82e2e;
  --el-button-active-bg-color: #8f2626;
  --el-button-active-border-color: #8f2626;
  color: #e0e8f0 !important;
}
.custom-message {
  background: #16213e !important;
  border: 1px solid #1a3a6b !important;
  color: #c0c0c0 !important;
}
.custom-message .el-message__icon {
  font-size: 16px;
}
.custom-message .el-message__content {
  color: #c0c0c0;
}
/* ═══════════════════════════════════════
   现货铺货定价规则 — Spot Pricing Page
   Dark theme: bg #1a1a2e / card #16213e
   Primary: #0066CC / Secondary: #38405c / Danger: #c43636
   ═══════════════════════════════════════ */
.spot-pricing-page[data-v-2d032574] {
  /* ── Breadcrumb ── */
}
.spot-pricing-page .breadcrumb-area[data-v-2d032574] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.spot-pricing-page .breadcrumb-area[data-v-2d032574] .el-breadcrumb {
  font-size: 14px;
}
.spot-pricing-page .breadcrumb-area[data-v-2d032574] .el-breadcrumb .el-breadcrumb__inner {
  color: #8899aa;
}
.spot-pricing-page .breadcrumb-area[data-v-2d032574] .el-breadcrumb .el-breadcrumb__inner a {
  color: #58a6ff;
}
.spot-pricing-page .breadcrumb-area[data-v-2d032574] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #e8ecf1;
}
.spot-pricing-page .breadcrumb-area .exclusive-badge[data-v-2d032574] {
  font-size: 12px;
  padding: 0 8px;
  line-height: 22px;
  border-radius: 4px;
}
.spot-pricing-page[data-v-2d032574] {
  /* ── Override card-container for this page ── */
}
.spot-pricing-page .card-container[data-v-2d032574] {
  background: #16213e !important;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  padding: 16px;
}
.spot-pricing-page[data-v-2d032574] {
  /* ── Action buttons row ── */
}
.spot-pricing-page .action-btns[data-v-2d032574] {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.spot-pricing-page[data-v-2d032574] {
  /* ── Table ── */
}
.spot-pricing-page .table-wrap[data-v-2d032574] {
  padding: 0;
  overflow: hidden;
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table__header-wrapper {
  background: #16213e;
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table__header-wrapper th {
  background: #1a2a4a;
  color: #b0bec5;
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table__body-wrapper {
  background: #16213e;
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table__body-wrapper tr {
  background: #16213e;
  transition: background 0.15s;
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table__body-wrapper tr:hover td {
  background: #1e2f52;
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table__body-wrapper tr td {
  background: #16213e;
  color: #c8d0d8;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: 13px;
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-table--striped .el-table__body tr.el-table__row--striped td {
  background: rgba(255, 255, 255, 0.02);
}
.spot-pricing-page .pricing-table[data-v-2d032574] .el-loading-mask {
  background: rgba(22, 33, 62, 0.8);
}
.spot-pricing-page .rule-name[data-v-2d032574] {
  color: #e8ecf1;
  font-weight: 500;
}
.spot-pricing-page .price-val[data-v-2d032574] {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-variant-numeric: tabular-nums;
  color: #58a6ff;
}
.spot-pricing-page .mode-tag[data-v-2d032574] {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
}
.spot-pricing-page .mode-tag.mode-dynamic[data-v-2d032574] {
  background: rgba(0, 102, 204, 0.2);
  color: #58a6ff;
  border: 1px solid rgba(0, 102, 204, 0.3);
}
.spot-pricing-page .mode-tag.mode-tiered[data-v-2d032574] {
  background: rgba(255, 167, 38, 0.15);
  color: #ffa726;
  border: 1px solid rgba(255, 167, 38, 0.3);
}
.spot-pricing-page .mode-tag.mode-market[data-v-2d032574] {
  background: rgba(0, 196, 140, 0.15);
  color: #00c48c;
  border: 1px solid rgba(0, 196, 140, 0.3);
}
.spot-pricing-page .scope-tag[data-v-2d032574] {
  margin-right: 4px;
  margin-bottom: 2px;
  background: #38405c !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #e8ecf1 !important;
  font-size: 12px;
}
.spot-pricing-page .status-tag[data-v-2d032574] {
  font-size: 12px;
  font-weight: 500;
}
.spot-pricing-page .page-footer[data-v-2d032574] {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 12px 16px;
  background: #16213e;
}
.spot-pricing-page .page-footer .total-info[data-v-2d032574] {
  font-size: 13px;
  color: #8899aa;
  margin-right: 16px;
}
.spot-pricing-page .page-footer[data-v-2d032574] .el-pagination {
  --el-pagination-bg-color: #1a2a4a;
  --el-pagination-hover-color: #58a6ff;
  --el-pagination-button-bg-color: #1a2a4a;
  --el-pagination-button-color: #b0bec5;
}
.spot-pricing-page .page-footer[data-v-2d032574] .el-pagination .el-pagination__total {
  color: #8899aa;
}
.spot-pricing-page .page-footer[data-v-2d032574] .el-pagination .el-pager li {
  background: #1a2a4a;
  color: #b0bec5;
  border-radius: 4px;
}
.spot-pricing-page .page-footer[data-v-2d032574] .el-pagination .el-pager li.active {
  background: #0066cc;
  color: #ffffff;
}
.spot-pricing-page .page-footer[data-v-2d032574] .el-pagination .el-pagination__sizes .el-select .el-input {
  --el-input-bg-color: #1a2a4a;
}
.spot-pricing-page[data-v-2d032574] {
  /* ── Dialogs ── */
}
.spot-pricing-page[data-v-2d032574] .el-dialog {
  background: #16213e !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}
.spot-pricing-page[data-v-2d032574] .el-dialog .el-dialog__header {
  background: #1a2a4a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: 16px 20px;
}
.spot-pricing-page[data-v-2d032574] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e8ecf1;
  font-size: 16px;
  font-weight: 600;
}
.spot-pricing-page[data-v-2d032574] .el-dialog .el-dialog__body {
  background: #16213e;
  padding: 20px;
  color: #c8d0d8;
}
.spot-pricing-page[data-v-2d032574] .el-dialog .el-dialog__footer {
  background: #16213e;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  padding: 12px 20px;
}
.spot-pricing-page .pricing-form[data-v-2d032574] .el-form-item__label {
  color: #b0bec5;
  font-weight: 500;
}
.spot-pricing-page .pricing-form[data-v-2d032574] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 4px;
  box-shadow: none;
}
.spot-pricing-page .pricing-form[data-v-2d032574] .el-input__wrapper .el-input__inner {
  color: #e8ecf1;
}
.spot-pricing-page .pricing-form[data-v-2d032574] .el-select__wrapper {
  background: #1a1a2e;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: none;
}
.spot-pricing-page .pricing-form[data-v-2d032574] .el-select__wrapper .el-select__input {
  color: #e8ecf1;
}
.spot-pricing-page .pricing-form[data-v-2d032574] .el-input-number .el-input-number__decrease,
.spot-pricing-page .pricing-form[data-v-2d032574] .el-input-number .el-input-number__increase {
  background: #1a2a4a;
  color: #b0bec5;
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.spot-pricing-page .mode-radio-group[data-v-2d032574] .el-radio {
  margin-right: 20px;
}
.spot-pricing-page .mode-radio-group[data-v-2d032574] .el-radio .el-radio__label {
  color: #c8d0d8;
}
.spot-pricing-page .mode-radio-group[data-v-2d032574] .el-radio .el-radio__inner {
  background: #1a1a2e;
  border-color: rgba(255, 255, 255, 0.2);
}
.spot-pricing-page .mode-radio-group[data-v-2d032574] .el-radio.is-checked .el-radio__inner {
  background: #0066cc;
  border-color: #0066cc;
}
.spot-pricing-page .scope-check-group[data-v-2d032574] .el-checkbox {
  margin-right: 14px;
  margin-bottom: 4px;
}
.spot-pricing-page .scope-check-group[data-v-2d032574] .el-checkbox .el-checkbox__label {
  color: #c8d0d8;
  font-size: 13px;
}
.spot-pricing-page .scope-check-group[data-v-2d032574] .el-checkbox .el-checkbox__inner {
  background: #1a1a2e;
  border-color: rgba(255, 255, 255, 0.2);
}
.spot-pricing-page .scope-check-group[data-v-2d032574] .el-checkbox.is-checked .el-checkbox__inner {
  background: #0066cc;
  border-color: #0066cc;
}
.spot-pricing-page .btn-cancel[data-v-2d032574] {
  background: #38405c !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #e8ecf1 !important;
}
.spot-pricing-page .btn-cancel[data-v-2d032574]:hover {
  background: #4a5577 !important;
  border-color: #0066cc;
}
.spot-pricing-page .act-edit[data-v-2d032574] {
  background: rgba(0, 102, 204, 0.15) !important;
  border: 1px solid rgba(0, 102, 204, 0.3);
  color: #58a6ff !important;
}
.spot-pricing-page .act-edit[data-v-2d032574]:hover {
  background: rgba(0, 102, 204, 0.3) !important;
}
.spot-pricing-page .act-del[data-v-2d032574] {
  background: rgba(196, 54, 54, 0.15) !important;
  border: 1px solid rgba(196, 54, 54, 0.3);
  color: #f87171 !important;
}
.spot-pricing-page .act-del[data-v-2d032574]:hover {
  background: rgba(196, 54, 54, 0.3) !important;
}
.spot-pricing-page[data-v-2d032574] {
  /* ── Delete Dialog ── */
}
.spot-pricing-page .del-dialog .del-content[data-v-2d032574] {
  padding: 8px 0;
}
.spot-pricing-page .del-dialog .del-content .del-msg[data-v-2d032574] {
  font-size: 15px;
  color: #e8ecf1;
  margin-bottom: 12px;
}
.spot-pricing-page .del-dialog .del-content .del-msg b[data-v-2d032574] {
  color: #f87171;
}
.spot-pricing-page .del-dialog .del-content .del-error[data-v-2d032574] {
  background: rgba(196, 54, 54, 0.12);
  border: 1px solid rgba(196, 54, 54, 0.3);
  border-radius: 6px;
  padding: 10px 14px;
  color: #f87171;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.spot-pricing-page .del-dialog .del-content .del-error .del-icon[data-v-2d032574] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #c43636;
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
}
.spot-pricing-page .del-dialog .del-content .del-hint[data-v-2d032574] {
  color: #8899aa;
  font-size: 13px;
  padding: 4px 0;
}
.supplier-filter-page[data-v-163b84be] {
  min-height: 100vh;
  background: #1a1a2e;
  padding: 24px 28px;
  color: #d8dce8;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  /* ─── Breadcrumb ─── */
}
.supplier-filter-page[data-v-163b84be] .breadcrumb-nav {
  margin-bottom: 22px;
}
.supplier-filter-page[data-v-163b84be] .breadcrumb-nav .el-breadcrumb__inner {
  color: #7a8aaa;
}
.supplier-filter-page[data-v-163b84be] .breadcrumb-nav .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.supplier-filter-page[data-v-163b84be] .breadcrumb-nav .el-breadcrumb__separator {
  color: #38405c;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Page Header ─── */
}
.supplier-filter-page .page-header[data-v-163b84be] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}
.supplier-filter-page .page-header .page-title[data-v-163b84be] {
  font-size: 22px;
  font-weight: 700;
  color: #eaeaf2;
  margin: 0;
  letter-spacing: 0.5px;
}
.supplier-filter-page .page-header .header-actions[data-v-163b84be] {
  display: flex;
  align-items: center;
  gap: 14px;
}
.supplier-filter-page .page-header .header-actions .match-count[data-v-163b84be] {
  font-size: 13px;
  color: #7a8aaa;
}
.supplier-filter-page .page-header .header-actions .view-toggle-group[data-v-163b84be] {
  display: flex;
}
.supplier-filter-page .page-header .header-actions .view-toggle-group .el-button[data-v-163b84be] {
  border-color: #38405c;
  color: #b0b8cc;
  background: #16213e;
}
.supplier-filter-page .page-header .header-actions .view-toggle-group .el-button[data-v-163b84be]:first-child {
  border-radius: 4px 0 0 4px;
}
.supplier-filter-page .page-header .header-actions .view-toggle-group .el-button[data-v-163b84be]:last-child {
  border-radius: 0 4px 4px 0;
  margin-left: -1px;
}
.supplier-filter-page .page-header .header-actions .view-toggle-group .el-button.el-button--primary[data-v-163b84be] {
  background: #0066CC;
  border-color: #0066CC;
  color: #e8ecf8;
}
.supplier-filter-page .page-header .header-actions .view-toggle-group .el-button .el-icon[data-v-163b84be] {
  margin-right: 4px;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Filter Panel ─── */
}
.supplier-filter-page .filter-panel[data-v-163b84be] {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 20px;
}
.supplier-filter-page .filter-panel[data-v-163b84be] .el-form-item__label {
  color: #9aaac0;
  font-size: 13px;
  padding-bottom: 6px;
}
.supplier-filter-page .filter-panel .full-width[data-v-163b84be] {
  width: 100%;
}
.supplier-filter-page .filter-panel[data-v-163b84be] .el-select .el-input__wrapper,
.supplier-filter-page .filter-panel[data-v-163b84be] .el-input-number .el-input__wrapper,
.supplier-filter-page .filter-panel[data-v-163b84be] .el-input__wrapper {
  background: #1a1a2e;
  border-color: #2a3a5c;
  box-shadow: none;
}
.supplier-filter-page .filter-panel[data-v-163b84be] .el-select .el-input__wrapper .el-input__inner,
.supplier-filter-page .filter-panel[data-v-163b84be] .el-input-number .el-input__wrapper .el-input__inner,
.supplier-filter-page .filter-panel[data-v-163b84be] .el-input__wrapper .el-input__inner {
  color: #d8dce8;
}
.supplier-filter-page .filter-panel[data-v-163b84be] .el-slider__runway {
  background: #2a3a5c;
}
.supplier-filter-page .filter-panel[data-v-163b84be] .el-slider__bar {
  background: #0066CC;
}
.supplier-filter-page .filter-panel[data-v-163b84be] .el-slider__marks-text {
  color: #6a7a9a;
  font-size: 11px;
}
.supplier-filter-page .filter-panel .advanced-collapse-section[data-v-163b84be] {
  margin-top: 14px;
  border: none;
  background: transparent;
}
.supplier-filter-page .filter-panel .advanced-collapse-section[data-v-163b84be] .el-collapse-item__header {
  background: transparent;
  border: none;
  color: #7a8aaa;
  font-size: 13px;
  padding: 8px 0;
}
.supplier-filter-page .filter-panel .advanced-collapse-section[data-v-163b84be] .el-collapse-item__wrap {
  background: transparent;
  border: none;
}
.supplier-filter-page .filter-panel .advanced-collapse-section[data-v-163b84be] .el-collapse-item__content {
  padding-bottom: 6px;
}
.supplier-filter-page .filter-panel .filter-actions-row[data-v-163b84be] {
  margin-top: 18px;
  display: flex;
  gap: 12px;
}
.supplier-filter-page .filter-panel .filter-actions-row .el-button--primary[data-v-163b84be] {
  background: #0066CC;
  border-color: #0066CC;
}
.supplier-filter-page .filter-panel .filter-actions-row .el-button[data-v-163b84be]:not(.el-button--primary) {
  background: #38405c;
  border-color: #38405c;
  color: #b0b8cc;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Loading ─── */
}
.supplier-filter-page .loading-fallback[data-v-163b84be] {
  padding: 40px;
}
.supplier-filter-page .loading-fallback[data-v-163b84be] .skeleton-custom {
  --el-skeleton-color: #1e2d50;
  --el-skeleton-to-color: #2a3a5c;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Empty State ─── */
}
.supplier-filter-page .empty-state[data-v-163b84be] {
  padding: 60px 0;
}
.supplier-filter-page .empty-state[data-v-163b84be] .el-empty__description p {
  color: #7a8aaa;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Card Grid ─── */
}
.supplier-filter-page .supplier-card-grid[data-v-163b84be] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 16px;
  margin-bottom: 72px;
}
.supplier-filter-page .supplier-card[data-v-163b84be] {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
  padding: 16px;
  transition: border-color 0.25s, transform 0.2s;
  cursor: pointer;
}
.supplier-filter-page .supplier-card[data-v-163b84be]:hover {
  border-color: #0066CC;
  transform: translateY(-2px);
}
.supplier-filter-page .supplier-card.card-selected[data-v-163b84be] {
  border-color: #0066CC;
  box-shadow: 0 0 0 1px #0066CC inset;
}
.supplier-filter-page .supplier-card .card-top[data-v-163b84be] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 14px;
}
.supplier-filter-page .supplier-card .card-top .card-title-row[data-v-163b84be] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.supplier-filter-page .supplier-card .card-top .card-title-row .card-checkbox[data-v-163b84be] .el-checkbox__inner {
  background: #1a1a2e;
  border-color: #38405c;
}
.supplier-filter-page .supplier-card .card-top .card-title-row .card-checkbox[data-v-163b84be] .is-checked .el-checkbox__inner {
  background: #0066CC;
  border-color: #0066CC;
}
.supplier-filter-page .supplier-card .card-top .card-title-row .supplier-name[data-v-163b84be] {
  font-size: 15px;
  font-weight: 600;
  color: #eaeaf2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.supplier-filter-page .supplier-card .card-top .card-title-row .level-tag[data-v-163b84be] {
  margin-left: auto;
}
.supplier-filter-page .supplier-card .card-top .card-action-btns[data-v-163b84be] {
  flex-shrink: 0;
  display: flex;
  gap: 2px;
}
.supplier-filter-page .supplier-card .card-top .card-action-btns .el-button[data-v-163b84be] {
  color: #7a8aaa;
}
.supplier-filter-page .supplier-card .card-top .card-action-btns .el-button[data-v-163b84be]:hover {
  color: #0066CC;
}
.supplier-filter-page .supplier-card .card-body .card-field[data-v-163b84be] {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  font-size: 13px;
}
.supplier-filter-page .supplier-card .card-body .card-field .field-lbl[data-v-163b84be] {
  color: #7a8aaa;
  width: 72px;
  flex-shrink: 0;
}
.supplier-filter-page .supplier-card .card-body .card-field .field-val[data-v-163b84be] {
  color: #d0d6e6;
  flex: 1;
}
.supplier-filter-page .supplier-card .card-body .card-field .inline-rate[data-v-163b84be] .el-rate__icon {
  font-size: 14px;
}
.supplier-filter-page .supplier-card .card-body .card-field .inline-rate[data-v-163b84be] .el-rate__text {
  color: #d0d6e6;
  font-size: 12px;
}
.supplier-filter-page .supplier-card .card-footer[data-v-163b84be] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 12px;
  border-top: 1px solid #1e2d50;
  font-size: 12px;
}
.supplier-filter-page .supplier-card .card-footer .region-badge[data-v-163b84be] {
  color: #0066CC;
  background: rgba(0, 102, 204, 0.1);
  padding: 2px 10px;
  border-radius: 10px;
}
.supplier-filter-page .supplier-card .card-footer .coop-stat[data-v-163b84be] {
  color: #5a6a8a;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Table View ─── */
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] {
  margin-bottom: 72px;
  border-radius: 8px;
  overflow: hidden;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table {
  background: #16213e;
  border: 1px solid #1e2d50;
  color: #d0d6e6;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table th.el-table__cell {
  background: #1a1a2e;
  color: #7a8aaa;
  border-color: #1e2d50;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table td.el-table__cell {
  background: #16213e;
  border-color: #1e2d50;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table .el-table__row:hover td {
  background: #1a2a4a;
  cursor: pointer;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table .el-checkbox__inner {
  background: #1a1a2e;
  border-color: #38405c;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table .is-checked .el-checkbox__inner {
  background: #0066CC;
  border-color: #0066CC;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table .el-rate__icon {
  font-size: 14px;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table .el-button--text {
  color: #7a8aaa;
}
.supplier-filter-page .supplier-table-wrapper[data-v-163b84be] .dark-table .el-button--text:hover {
  color: #0066CC;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Compare Bottom Bar ─── */
}
.supplier-filter-page .compare-bottom-bar[data-v-163b84be] {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: #16213e;
  border-top: 2px solid #0066CC;
  padding: 12px 28px;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner[data-v-163b84be] {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 1400px;
  margin: 0 auto;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner .compare-hint[data-v-163b84be] {
  font-size: 13px;
  color: #7a8aaa;
  white-space: nowrap;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner .compare-hint strong[data-v-163b84be] {
  color: #0066CC;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner .compare-chips[data-v-163b84be] {
  display: flex;
  gap: 8px;
  flex: 1;
  overflow-x: auto;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner .compare-chips .compare-chip[data-v-163b84be] {
  background: #1a1a2e;
  border-color: #38405c;
  color: #b0b8cc;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner .el-button--primary[data-v-163b84be] {
  background: #0066CC;
  border-color: #0066CC;
}
.supplier-filter-page .compare-bottom-bar .compare-bar-inner .el-button--text[data-v-163b84be] {
  color: #7a8aaa;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Dialog Shared ─── */
}
.supplier-filter-page[data-v-163b84be] .el-dialog {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 10px;
}
.supplier-filter-page[data-v-163b84be] .el-dialog .el-dialog__title {
  color: #eaeaf2;
  font-weight: 600;
}
.supplier-filter-page[data-v-163b84be] .el-dialog .el-dialog__headerbtn .el-dialog__close {
  color: #7a8aaa;
}
.supplier-filter-page[data-v-163b84be] .el-dialog .el-dialog__headerbtn .el-dialog__close:hover {
  color: #c43636;
}
.supplier-filter-page[data-v-163b84be] .el-dialog .el-dialog__body {
  color: #d0d6e6;
  padding-top: 8px;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Profile Dialog ─── */
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-tabs__item {
  color: #7a8aaa;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-tabs__item.is-active {
  color: #0066CC;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-tabs__item:hover {
  color: #0066CC;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-tabs__active-bar {
  background: #0066CC;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-tabs__nav-wrap::after {
  background: #1e2d50;
}
.supplier-filter-page .profile-dialog .tab-body[data-v-163b84be] {
  padding: 6px 0;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-descriptions .el-descriptions__title {
  color: #eaeaf2;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-descriptions .el-descriptions__label {
  background: #1a1a2e;
  color: #7a8aaa;
  border-color: #1e2d50;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-descriptions .el-descriptions__content {
  background: #16213e;
  color: #d0d6e6;
  border-color: #1e2d50;
}
.supplier-filter-page .profile-dialog .bio-section[data-v-163b84be] {
  margin-top: 20px;
}
.supplier-filter-page .profile-dialog .bio-section h4[data-v-163b84be] {
  color: #c8cee0;
  margin: 0 0 8px;
  font-size: 15px;
}
.supplier-filter-page .profile-dialog .bio-section p[data-v-163b84be] {
  color: #7a8aaa;
  font-size: 13px;
  line-height: 1.7;
  margin: 0;
}
.supplier-filter-page .profile-dialog .section-subtitle[data-v-163b84be] {
  color: #c8cee0;
  font-size: 14px;
  margin: 0 0 12px;
}
.supplier-filter-page .profile-dialog .chart-area[data-v-163b84be] {
  background: #1a1a2e;
  border-radius: 6px;
  padding: 16px;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart[data-v-163b84be] {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 150px;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart .bar-column[data-v-163b84be] {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart .bar-column .bar-pair[data-v-163b84be] {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  width: 100%;
  height: 100%;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart .bar-column .bar-pair .bar[data-v-163b84be] {
  flex: 1;
  border-radius: 3px 3px 0 0;
  min-height: 4px;
  transition: height 0.3s;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart .bar-column .bar-pair .bar.bar-on-time[data-v-163b84be] {
  background: #0066CC;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart .bar-column .bar-pair .bar.bar-quality[data-v-163b84be] {
  background: #00a86b;
}
.supplier-filter-page .profile-dialog .chart-area .bar-chart .bar-column .bar-month[data-v-163b84be] {
  font-size: 10px;
  color: #5a6a8a;
  margin-top: 6px;
}
.supplier-filter-page .profile-dialog .chart-area .chart-keys[data-v-163b84be] {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 12px;
  font-size: 12px;
  color: #7a8aaa;
}
.supplier-filter-page .profile-dialog .chart-area .chart-keys .key-dot[data-v-163b84be] {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 6px;
}
.supplier-filter-page .profile-dialog .chart-area .chart-keys .key-dot.dot-ontime[data-v-163b84be] {
  background: #0066CC;
}
.supplier-filter-page .profile-dialog .chart-area .chart-keys .key-dot.dot-quality[data-v-163b84be] {
  background: #00a86b;
}
.supplier-filter-page .profile-dialog .kpi-strip[data-v-163b84be] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 18px;
}
.supplier-filter-page .profile-dialog .kpi-strip .kpi-item[data-v-163b84be] {
  text-align: center;
  padding: 12px 6px;
  background: #1a1a2e;
  border-radius: 6px;
}
.supplier-filter-page .profile-dialog .kpi-strip .kpi-item .kpi-number[data-v-163b84be] {
  display: block;
  font-size: 24px;
  font-weight: 700;
  color: #0066CC;
}
.supplier-filter-page .profile-dialog .kpi-strip .kpi-item .kpi-label[data-v-163b84be] {
  font-size: 12px;
  color: #5a6a8a;
  margin-top: 4px;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-timeline .el-timeline-item__timestamp {
  color: #7a8aaa;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-timeline .el-timeline-item__content .timeline-item-content strong {
  color: #d0d6e6;
  font-size: 14px;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-timeline .el-timeline-item__content .timeline-item-content p {
  color: #7a8aaa;
  font-size: 13px;
  margin: 4px 0;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .el-timeline .el-timeline-item__content .timeline-item-content .timeline-amount {
  color: #0066CC;
  font-size: 12px;
}
.supplier-filter-page .profile-dialog .risk-alert-item[data-v-163b84be] {
  margin-bottom: 12px;
}
.supplier-filter-page .profile-dialog .risk-alert-item[data-v-163b84be]:first-of-type {
  --el-alert-bg-color: rgba(204, 102, 0, 0.07);
}
.supplier-filter-page .profile-dialog .risk-alert-item[data-v-163b84be]:last-of-type {
  --el-alert-bg-color: rgba(196, 54, 54, 0.07);
}
.supplier-filter-page .profile-dialog .no-risk-placeholder[data-v-163b84be] {
  text-align: center;
  padding: 40px;
}
.supplier-filter-page .profile-dialog .no-risk-placeholder p[data-v-163b84be] {
  color: #7a8aaa;
  margin-top: 12px;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .inner-table {
  background: #1a1a2e;
  border-color: #1e2d50;
  color: #d0d6e6;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .inner-table th {
  background: #16213e;
  color: #7a8aaa;
  border-color: #1e2d50;
}
.supplier-filter-page .profile-dialog[data-v-163b84be] .inner-table td {
  background: #1a1a2e;
  border-color: #1e2d50;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Invite Dialog ─── */
}
.supplier-filter-page .invite-dialog .invite-body[data-v-163b84be] {
  text-align: center;
}
.supplier-filter-page .invite-dialog .invite-body .invite-big-icon[data-v-163b84be] {
  margin-bottom: 12px;
}
.supplier-filter-page .invite-dialog .invite-body h3[data-v-163b84be] {
  color: #eaeaf2;
  margin: 0 0 8px;
  font-size: 18px;
}
.supplier-filter-page .invite-dialog .invite-body > p[data-v-163b84be] {
  color: #7a8aaa;
  font-size: 14px;
  margin: 0 0 16px;
}
.supplier-filter-page .invite-dialog .invite-body > p strong[data-v-163b84be] {
  color: #d0d6e6;
}
.supplier-filter-page .invite-dialog .invite-body .invite-summary[data-v-163b84be] {
  text-align: left;
  background: #1a1a2e;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 14px;
}
.supplier-filter-page .invite-dialog .invite-body .invite-summary .invite-row[data-v-163b84be] {
  display: flex;
  padding: 5px 0;
  font-size: 13px;
}
.supplier-filter-page .invite-dialog .invite-body .invite-summary .invite-row .ilbl[data-v-163b84be] {
  color: #5a6a8a;
  width: 80px;
  flex-shrink: 0;
}
.supplier-filter-page .invite-dialog .invite-body .invite-summary .invite-row .ival[data-v-163b84be] {
  color: #d0d6e6;
}
.supplier-filter-page .invite-dialog .invite-body .invite-textarea[data-v-163b84be] .el-textarea__inner {
  background: #1a1a2e;
  border-color: #2a3a5c;
  color: #d8dce8;
  resize: none;
}
.supplier-filter-page .invite-dialog .invite-body .invite-textarea[data-v-163b84be] .el-textarea__inner::placeholder {
  color: #4a5a7a;
}
.supplier-filter-page .invite-dialog .el-dialog__footer .el-button--primary[data-v-163b84be] {
  background: #0066CC;
  border-color: #0066CC;
}
.supplier-filter-page .invite-dialog .el-dialog__footer .el-button[data-v-163b84be]:not(.el-button--primary) {
  background: #38405c;
  border-color: #38405c;
  color: #b0b8cc;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Comparison Dialog ─── */
}
.supplier-filter-page .comparison-dialog[data-v-163b84be] .el-table {
  background: #1a1a2e;
  border-color: #1e2d50;
  color: #d0d6e6;
}
.supplier-filter-page .comparison-dialog[data-v-163b84be] .el-table th.el-table__cell {
  background: #16213e;
  color: #9aaac0;
  border-color: #1e2d50;
}
.supplier-filter-page .comparison-dialog[data-v-163b84be] .el-table td.el-table__cell {
  background: #1a1a2e;
  border-color: #1e2d50;
}
.supplier-filter-page .comparison-dialog[data-v-163b84be] .el-table .text-excellent {
  color: #00c853;
  font-weight: 600;
}
.supplier-filter-page .comparison-dialog[data-v-163b84be] .el-table .text-good {
  color: #ffc107;
}
.supplier-filter-page .comparison-dialog[data-v-163b84be] .el-table .text-weak {
  color: #ff6b6b;
}
.supplier-filter-page .comparison-dialog .comparison-note[data-v-163b84be] {
  text-align: right;
  margin-top: 10px;
  font-size: 12px;
  color: #5a6a8a;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Tag Theming ─── */
}
.supplier-filter-page[data-v-163b84be] .el-tag.el-tag--success {
  background: rgba(0, 168, 107, 0.12);
  border-color: rgba(0, 168, 107, 0.25);
  color: #5cdb9a;
}
.supplier-filter-page[data-v-163b84be] .el-tag.el-tag--primary {
  background: rgba(0, 102, 204, 0.12);
  border-color: rgba(0, 102, 204, 0.25);
  color: #66b3ff;
}
.supplier-filter-page[data-v-163b84be] .el-tag.el-tag--info {
  background: rgba(56, 64, 92, 0.35);
  border-color: rgba(56, 64, 92, 0.45);
  color: #7a8aaa;
}
.supplier-filter-page[data-v-163b84be] .el-tag.el-tag--danger {
  background: rgba(196, 54, 54, 0.12);
  border-color: rgba(196, 54, 54, 0.25);
  color: #ff6b6b;
}
.supplier-filter-page[data-v-163b84be] {
  /* ─── Scrollbar ─── */
}
.supplier-filter-page[data-v-163b84be] ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.supplier-filter-page[data-v-163b84be] ::-webkit-scrollbar-track {
  background: #1a1a2e;
}
.supplier-filter-page[data-v-163b84be] ::-webkit-scrollbar-thumb {
  background: #38405c;
  border-radius: 3px;
}
.supplier-filter-page[data-v-163b84be] ::-webkit-scrollbar-thumb:hover {
  background: #4a5570;
}.coop-page[data-v-870a4587] {
  background-color: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #e0e0e0;
}
.breadcrumb[data-v-870a4587] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-870a4587] .el-breadcrumb__inner {
  color: #8899bb;
}
.breadcrumb[data-v-870a4587] .el-breadcrumb__inner.is-link {
  color: #4488cc;
}
.breadcrumb[data-v-870a4587] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #e0e0e0;
}
.stat-cards[data-v-870a4587] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}
.stat-card[data-v-870a4587] {
  background-color: #16213e;
  border-radius: 8px;
  padding: 20px;
  border: 1px solid #1e2d50;
}
.stat-label[data-v-870a4587] {
  font-size: 14px;
  color: #8899bb;
  margin-bottom: 8px;
}
.stat-value[data-v-870a4587] {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 6px;
}
.stat-sub[data-v-870a4587] {
  font-size: 12px;
  color: #667799;
}
.filter-section[data-v-870a4587] {
  background-color: #16213e;
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 20px;
  border: 1px solid #1e2d50;
}
.filter-section[data-v-870a4587] .el-form-item__label {
  color: #8899bb;
}
.filter-section[data-v-870a4587] .el-input__wrapper {
  background-color: #1a1a2e;
  border: 1px solid #2a3a5e;
  box-shadow: none;
}
.filter-section[data-v-870a4587] .el-input__inner {
  color: #e0e0e0;
}
.filter-section[data-v-870a4587] .el-select .el-input__wrapper {
  background-color: #1a1a2e;
  border: 1px solid #2a3a5e;
}
.filter-section .separator[data-v-870a4587] {
  color: #667799;
  margin: 0 8px;
}
.table-section[data-v-870a4587] {
  background-color: #16213e;
  border-radius: 8px;
  padding: 16px;
  border: 1px solid #1e2d50;
}
.table-section[data-v-870a4587] .el-table {
  background-color: transparent;
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-row-hover-bg-color: #1e2d50;
  --el-table-border-color: #1e2d50;
  --el-table-text-color: #e0e0e0;
  --el-table-header-text-color: #8899bb;
}
.table-section[data-v-870a4587] .el-table th.el-table__cell {
  background-color: #1a1a2e;
  border-bottom: 1px solid #1e2d50;
  color: #8899bb;
}
.table-section[data-v-870a4587] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2d50;
}
.table-section[data-v-870a4587] .el-table__body tr {
  background-color: transparent;
}
.table-section[data-v-870a4587] .el-table__body tr:hover > td {
  background-color: #1e2d50;
}
.table-section[data-v-870a4587] .el-table__header-wrapper {
  background-color: #1a1a2e;
}
[data-v-870a4587] .el-button {
  --el-button-bg-color: #38405c;
  --el-button-border-color: #38405c;
  --el-button-text-color: #e0e0e0;
  --el-button-hover-bg-color: #4a5578;
  --el-button-hover-border-color: #4a5578;
  --el-button-hover-text-color: #ffffff;
}
[data-v-870a4587] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-text-color: #ffffff;
  --el-button-hover-bg-color: #1a7ae0;
  --el-button-hover-border-color: #1a7ae0;
}
[data-v-870a4587] .el-tag {
  font-weight: 600;
  border: none;
}
[data-v-870a4587] .el-dialog {
  background-color: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
}
[data-v-870a4587] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2d50;
  padding: 16px 20px;
}
[data-v-870a4587] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e0e0;
}
[data-v-870a4587] .el-dialog .el-dialog__body {
  padding: 20px;
  color: #e0e0e0;
}
[data-v-870a4587] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2d50;
  padding: 12px 20px;
}
[data-v-870a4587] .el-dialog .el-dialog__close {
  color: #667799;
}.audit-page[data-v-7c0db582] {
  background-color: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #e0e0e0;
}
.breadcrumb[data-v-7c0db582] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-7c0db582] .el-breadcrumb__inner {
  color: #8899bb;
}
.breadcrumb[data-v-7c0db582] .el-breadcrumb__inner.is-link {
  color: #4488cc;
}
.breadcrumb[data-v-7c0db582] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #e0e0e0;
}
.tabs-section[data-v-7c0db582] {
  margin-bottom: 16px;
}
.tabs-section[data-v-7c0db582] .el-tabs__header {
  margin: 0;
  border-bottom: 1px solid #1e2d50;
}
.tabs-section[data-v-7c0db582] .el-tabs__item {
  color: #8899bb;
  font-size: 15px;
}
.tabs-section[data-v-7c0db582] .el-tabs__item.is-active {
  color: #0066CC;
}
.tabs-section[data-v-7c0db582] .el-tabs__active-bar {
  background-color: #0066CC;
}
.tabs-section[data-v-7c0db582] .el-tabs__nav-wrap::after {
  background-color: #1e2d50;
}
.filter-section[data-v-7c0db582] {
  background-color: #16213e;
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 20px;
  border: 1px solid #1e2d50;
}
.filter-section[data-v-7c0db582] .el-form-item__label {
  color: #8899bb;
}
.filter-section[data-v-7c0db582] .el-input__wrapper {
  background-color: #1a1a2e;
  border: 1px solid #2a3a5e;
  box-shadow: none;
}
.filter-section[data-v-7c0db582] .el-input__inner {
  color: #e0e0e0;
}
.filter-section[data-v-7c0db582] .el-date-editor .el-input__wrapper {
  width: 240px;
}
.table-section[data-v-7c0db582] {
  background-color: #16213e;
  border-radius: 8px;
  padding: 16px;
  border: 1px solid #1e2d50;
}
.table-section[data-v-7c0db582] .el-table {
  background-color: transparent;
  --el-table-bg-color: transparent;
  --el-table-tr-bg-color: transparent;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-row-hover-bg-color: #1e2d50;
  --el-table-border-color: #1e2d50;
  --el-table-text-color: #e0e0e0;
  --el-table-header-text-color: #8899bb;
}
.table-section[data-v-7c0db582] .el-table th.el-table__cell {
  background-color: #1a1a2e;
  border-bottom: 1px solid #1e2d50;
  color: #8899bb;
}
.table-section[data-v-7c0db582] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2d50;
}
.table-section[data-v-7c0db582] .el-table__body tr:hover > td {
  background-color: #1e2d50;
}
[data-v-7c0db582] .el-button {
  --el-button-bg-color: #38405c;
  --el-button-border-color: #38405c;
  --el-button-text-color: #e0e0e0;
  --el-button-hover-bg-color: #4a5578;
  --el-button-hover-border-color: #4a5578;
  --el-button-hover-text-color: #ffffff;
}
[data-v-7c0db582] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-text-color: #ffffff;
  --el-button-hover-bg-color: #1a7ae0;
  --el-button-hover-border-color: #1a7ae0;
}
[data-v-7c0db582] .el-tag {
  font-weight: 600;
  border: none;
}
[data-v-7c0db582] .el-dialog {
  background-color: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
}
[data-v-7c0db582] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2d50;
  padding: 16px 20px;
}
[data-v-7c0db582] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e0e0;
}
[data-v-7c0db582] .el-dialog .el-dialog__body {
  padding: 20px;
  color: #e0e0e0;
}
[data-v-7c0db582] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2d50;
  padding: 12px 20px;
}
[data-v-7c0db582] .el-dialog .el-dialog__close {
  color: #667799;
}
[data-v-7c0db582] .el-textarea__inner {
  background-color: #1a1a2e;
  border: 1px solid #2a3a5e;
  color: #e0e0e0;
  box-shadow: none;
}
.profile-content .profile-row[data-v-7c0db582] {
  display: flex;
  padding: 8px 0;
  border-bottom: 1px solid #1e2d50;
}
.profile-content .profile-row[data-v-7c0db582]:last-child {
  border-bottom: none;
}
.profile-content .profile-label[data-v-7c0db582] {
  width: 140px;
  flex-shrink: 0;
  color: #8899bb;
  font-size: 14px;
}
.profile-content .profile-value[data-v-7c0db582] {
  flex: 1;
  color: #e0e0e0;
  font-size: 14px;
}
.approve-content[data-v-7c0db582] {
  text-align: center;
  padding: 20px 0;
}
.approve-content .approve-icon[data-v-7c0db582] {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #0066CC;
  color: #ffffff;
  font-size: 28px;
  line-height: 56px;
  margin: 0 auto 16px;
}
.approve-content .approve-text[data-v-7c0db582] {
  font-size: 16px;
  color: #e0e0e0;
  margin-bottom: 8px;
}
.approve-content .approve-sub[data-v-7c0db582] {
  font-size: 13px;
  color: #667799;
}.recruit-page[data-v-492726be] {
  background-color: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #e0e0e0;
}
.breadcrumb[data-v-492726be] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-492726be] .el-breadcrumb__inner {
  color: #8899bb;
}
.breadcrumb[data-v-492726be] .el-breadcrumb__inner.is-link {
  color: #4488cc;
}
.breadcrumb[data-v-492726be] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #e0e0e0;
}
.filter-section[data-v-492726be] {
  background-color: #16213e;
  border-radius: 8px;
  padding: 16px 20px;
  margin-bottom: 20px;
  border: 1px solid #1e2d50;
}
.filter-section[data-v-492726be] .el-form-item__label {
  color: #8899bb;
}
.filter-section[data-v-492726be] .el-input__wrapper {
  background-color: #1a1a2e;
  border: 1px solid #2a3a5e;
  box-shadow: none;
}
.filter-section[data-v-492726be] .el-input__inner {
  color: #e0e0e0;
}
.filter-section[data-v-492726be] .el-select .el-input__wrapper {
  background-color: #1a1a2e;
  border: 1px solid #2a3a5e;
}
.card-grid-section[data-v-492726be] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
}
.recruit-card[data-v-492726be] {
  background-color: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.2s;
}
.recruit-card[data-v-492726be]:hover {
  border-color: #0066CC;
}
.card-header[data-v-492726be] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 16px 0;
}
.supplier-name[data-v-492726be] {
  font-size: 16px;
  font-weight: 600;
  color: #e0e0e0;
}
.card-body[data-v-492726be] {
  padding: 12px 16px;
  flex: 1;
}
.info-row[data-v-492726be] {
  display: flex;
  justify-content: space-between;
  padding: 5px 0;
}
.info-label[data-v-492726be] {
  color: #8899bb;
  font-size: 13px;
}
.info-value[data-v-492726be] {
  color: #e0e0e0;
  font-size: 13px;
  font-weight: 500;
}
.desc-row[data-v-492726be] {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #1e2d50;
  font-size: 13px;
  color: #667799;
  line-height: 1.6;
}
.card-footer[data-v-492726be] {
  padding: 12px 16px;
  border-top: 1px solid #1e2d50;
  display: flex;
  justify-content: flex-end;
}
.empty-state[data-v-492726be] {
  grid-column: 1/-1;
  text-align: center;
  padding: 60px 20px;
  color: #667799;
  font-size: 15px;
  background-color: #16213e;
  border-radius: 8px;
  border: 1px solid #1e2d50;
}
[data-v-492726be] .el-button {
  --el-button-bg-color: #38405c;
  --el-button-border-color: #38405c;
  --el-button-text-color: #e0e0e0;
  --el-button-hover-bg-color: #4a5578;
  --el-button-hover-border-color: #4a5578;
  --el-button-hover-text-color: #ffffff;
}
[data-v-492726be] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-text-color: #ffffff;
  --el-button-hover-bg-color: #1a7ae0;
  --el-button-hover-border-color: #1a7ae0;
}
[data-v-492726be] .el-tag {
  font-weight: 600;
  border: none;
}
[data-v-492726be] .el-dialog {
  background-color: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
}
[data-v-492726be] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2d50;
  padding: 16px 20px;
}
[data-v-492726be] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e0e0;
}
[data-v-492726be] .el-dialog .el-dialog__body {
  padding: 20px;
  color: #e0e0e0;
}
[data-v-492726be] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2d50;
  padding: 12px 20px;
}
[data-v-492726be] .el-dialog .el-dialog__close {
  color: #667799;
}
.invite-content .invite-title[data-v-492726be] {
  font-size: 15px;
  color: #e0e0e0;
  margin-bottom: 16px;
}
.invite-content .invite-detail[data-v-492726be] {
  background-color: #1a1a2e;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 16px;
}
.invite-content .invite-row[data-v-492726be] {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid #1e2d50;
}
.invite-content .invite-row[data-v-492726be]:last-child {
  border-bottom: none;
}
.invite-content .invite-label[data-v-492726be] {
  color: #8899bb;
  font-size: 14px;
}
.invite-content .invite-value[data-v-492726be] {
  color: #e0e0e0;
  font-size: 14px;
  font-weight: 500;
}
.invite-content .invite-note[data-v-492726be] {
  background-color: rgba(0, 102, 204, 0.1);
  border-left: 3px solid #0066CC;
  padding: 10px 14px;
  font-size: 13px;
  color: #8899bb;
  border-radius: 4px;
}.supplier-ability[data-v-186e198a] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #c8d0e0;
}
.supplier-ability[data-v-186e198a] .el-breadcrumb {
  margin-bottom: 16px;
}
.supplier-ability[data-v-186e198a] .el-breadcrumb .el-breadcrumb__inner {
  color: #8c9ab5;
}
.supplier-ability[data-v-186e198a] .el-breadcrumb .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.supplier-ability[data-v-186e198a] .el-breadcrumb .el-breadcrumb__separator {
  color: #38405c;
}
.supplier-ability .page-header[data-v-186e198a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.supplier-ability .page-header .page-title[data-v-186e198a] {
  font-size: 22px;
  font-weight: 600;
  color: #e0e6f0;
  margin: 0;
  padding: 0;
}
.supplier-ability .page-header .selector-wrapper[data-v-186e198a] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.supplier-ability .page-header .selector-wrapper .selector-label[data-v-186e198a] {
  font-size: 14px;
  color: #8c9ab5;
  white-space: nowrap;
}
.supplier-ability .page-header .selector-wrapper[data-v-186e198a] .el-select .el-input__wrapper {
  background: #16213e;
  border: 1px solid #1e2d50;
  box-shadow: none;
  border-radius: 6px;
}
.supplier-ability .page-header .selector-wrapper[data-v-186e198a] .el-select .el-input__wrapper .el-input__inner {
  color: #c8d0e0;
}
.supplier-ability .page-header .selector-wrapper[data-v-186e198a] .el-select .el-select__caret {
  color: #6a7a9a;
}
.supplier-ability[data-v-186e198a] .el-card {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
  margin-bottom: 16px;
  color: #c8d0e0;
}
.supplier-ability[data-v-186e198a] .el-card .el-card__body {
  padding: 20px;
}
.supplier-ability .stat-card[data-v-186e198a] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 18px 16px;
  border-top: 3px solid #0066CC;
  height: 100%;
  box-sizing: border-box;
}
.supplier-ability .stat-card .stat-label[data-v-186e198a] {
  font-size: 14px;
  color: #8c9ab5;
  margin-bottom: 10px;
}
.supplier-ability .stat-card .stat-value[data-v-186e198a] {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.supplier-ability .stat-card .stat-sub[data-v-186e198a] {
  font-size: 12px;
  color: #6a7a9a;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tabs .el-tabs__header {
  margin: 0 0 16px 0;
  border-bottom: 1px solid #1e2d50;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tabs .el-tabs__item {
  color: #8c9ab5;
  font-size: 14px;
  font-weight: 500;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tabs .el-tabs__item:hover {
  color: #0066CC;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tabs .el-tabs__item.is-active {
  color: #0066CC;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tabs .el-tabs__active-bar {
  background: #0066CC;
}
.supplier-ability .tabs-card .info-grid[data-v-186e198a] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.supplier-ability .tabs-card .info-grid .info-row[data-v-186e198a] {
  display: flex;
  padding: 12px 16px;
  border-bottom: 1px solid #1e2d50;
  align-items: flex-start;
}
.supplier-ability .tabs-card .info-grid .info-row[data-v-186e198a]:nth-last-child(-n+2) {
  border-bottom: none;
}
.supplier-ability .tabs-card .info-grid .info-row .info-label[data-v-186e198a] {
  width: 100px;
  flex-shrink: 0;
  font-size: 13px;
  color: #8c9ab5;
}
.supplier-ability .tabs-card .info-grid .info-row .info-value[data-v-186e198a] {
  font-size: 13px;
  color: #c8d0e0;
  flex: 1;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-table {
  background: transparent;
  color: #c8d0e0;
  border: none;
  --el-table-border-color: #1e2d50;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-tr-bg-color: transparent;
  --el-table-row-hover-bg-color: #1e2d50;
  --el-table-striped-row-bg-color: #1a1a2e;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-table th.el-table__cell {
  background: #1a1a2e;
  color: #8c9ab5;
  border-bottom: 1px solid #1e2d50;
  font-weight: 600;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2d50;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tag {
  border: none;
  font-weight: 500;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tag.el-tag--danger {
  background: #c43636;
  color: #c8d0e0;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tag.el-tag--warning {
  background: #e6a23c;
  color: #1a1a2e;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tag.el-tag--success {
  background: #52c41a;
  color: #1a1a2e;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-tag.el-tag--info {
  background: #38405c;
  color: #c8d0e0;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-rate .el-rate__icon {
  color: #38405c;
}
.supplier-ability .tabs-card[data-v-186e198a] .el-rate .el-rate__icon.is-active {
  color: #ff9900;
}
.supplier-ability .trend-list .trend-item[data-v-186e198a] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
}
.supplier-ability .trend-list .trend-item[data-v-186e198a]:last-child {
  margin-bottom: 0;
}
.supplier-ability .trend-list .trend-item .trend-period[data-v-186e198a] {
  font-size: 15px;
  font-weight: 600;
  color: #e0e6f0;
  margin-bottom: 12px;
}
.supplier-ability .trend-list .trend-item .trend-metrics[data-v-186e198a] {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
}
.supplier-ability .trend-list .trend-item .trend-metrics .trend-metric[data-v-186e198a] {
  flex: 1;
  min-width: 160px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.supplier-ability .trend-list .trend-item .trend-metrics .trend-metric .metric-label[data-v-186e198a] {
  font-size: 13px;
  color: #8c9ab5;
  width: 60px;
  flex-shrink: 0;
}
.supplier-ability .trend-list .trend-item .trend-metrics .trend-metric .metric-val[data-v-186e198a] {
  font-size: 13px;
  color: #c8d0e0;
  font-weight: 600;
  width: 50px;
  text-align: right;
  flex-shrink: 0;
}
.supplier-ability .trend-list .trend-item .trend-metrics .trend-metric[data-v-186e198a] .el-progress {
  flex: 1;
  min-width: 80px;
}
.supplier-ability .trend-list .trend-item .trend-metrics .trend-metric[data-v-186e198a] .el-progress .el-progress-bar__outer {
  background: #1e2d50;
}
.supplier-ability[data-v-186e198a] .el-empty .el-empty__description p {
  color: #6a7a9a;
}
.supplier-ability[data-v-186e198a] .el-table .el-loading-mask {
  background: rgba(26, 26, 46, 0.7);
}.inquiry-page[data-v-dc85439a] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px 24px;
  color: #c8d0e0;
}
.inquiry-page .page-header[data-v-dc85439a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 16px;
  margin-bottom: 16px;
  background: #16213e;
  padding: 0 20px;
  border-radius: 8px;
}
.inquiry-page .pagination-wrap[data-v-dc85439a] {
  display: flex;
  justify-content: flex-end;
  margin-top: 20px;
}
.inquiry-page .detail-wrap .quote-section[data-v-dc85439a] {
  margin-top: 24px;
}
.inquiry-page .detail-wrap .quote-section .section-title[data-v-dc85439a] {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 600;
  color: #c8d0e0;
  border-left: 3px solid #0066CC;
  padding-left: 10px;
  line-height: 1.4;
}
.inquiry-page .void-confirm[data-v-dc85439a] {
  text-align: center;
  padding: 16px 0;
}
.inquiry-page .void-confirm .void-icon[data-v-dc85439a] {
  color: #c43636;
  margin-bottom: 12px;
}
.inquiry-page .void-confirm p[data-v-dc85439a] {
  color: #c8d0e0;
  margin: 8px 0;
  font-size: 14px;
}
.inquiry-page .void-confirm .void-target[data-v-dc85439a] {
  font-weight: 600;
  font-size: 15px;
  color: #e0e6f0;
}
.inquiry-page .void-confirm .void-hint[data-v-dc85439a] {
  font-size: 13px;
  color: #8890a8;
  margin-top: 12px;
}
.inquiry-page .convert-wrap .convert-desc[data-v-dc85439a] {
  margin: 0 0 12px;
  color: #c8d0e0;
  font-size: 14px;
}
.inquiry-page .convert-wrap .convert-form[data-v-dc85439a] {
  margin-top: 16px;
}
.inquiry-page .upload-tip[data-v-dc85439a] {
  color: #8890a8;
  font-size: 12px;
  display: block;
  margin-top: 4px;
}
[data-v-dc85439a] .el-breadcrumb {
  margin-bottom: 0;
}
[data-v-dc85439a] .el-breadcrumb .el-breadcrumb__inner {
  color: #8890a8;
  font-size: 13px;
}
[data-v-dc85439a] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #0066CC;
}
[data-v-dc85439a] .el-tabs__item {
  color: #8890a8;
  font-size: 14px;
  height: 48px;
  line-height: 48px;
}
[data-v-dc85439a] .el-tabs__item.is-active {
  color: #0066CC;
}
[data-v-dc85439a] .el-table {
  --el-table-bg-color: #16213e;
  --el-table-tr-bg-color: #16213e;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-row-hover-bg-color: #1e2a4a;
  --el-table-border-color: #2a3555;
  --el-table-text-color: #c8d0e0;
  --el-table-header-text-color: #8890a8;
  border-radius: 8px;
}
[data-v-dc85439a] .el-table th.el-table__cell {
  background-color: #1a1a2e;
}
[data-v-dc85439a] .el-dialog {
  --el-dialog-bg-color: #16213e;
  --el-dialog-title-font-size: 17px;
  border-radius: 10px;
}
[data-v-dc85439a] .el-dialog .el-dialog__title {
  color: #c8d0e0;
}
[data-v-dc85439a] .el-dialog .el-dialog__body {
  color: #c8d0e0;
  padding-top: 12px;
}
[data-v-dc85439a] .el-descriptions {
  --el-descriptions-table-bg-color: #16213e;
  --el-descriptions-item-bg-color: #1a1a2e;
  --el-descriptions-item-label-color: #8890a8;
  --el-descriptions-item-content-color: #c8d0e0;
}
[data-v-dc85439a] .el-descriptions .el-descriptions__label {
  color: #8890a8;
}
[data-v-dc85439a] .el-descriptions .el-descriptions__content {
  color: #c8d0e0;
}
[data-v-dc85439a] .el-form-item__label {
  color: #a8b0c8;
}
[data-v-dc85439a] .el-input__wrapper {
  background-color: #1a1a2e;
  box-shadow: 0 0 0 1px #2a3555 inset;
}
[data-v-dc85439a] .el-input__wrapper .el-input__inner {
  color: #c8d0e0;
}
[data-v-dc85439a] .el-input-number__increase,[data-v-dc85439a] .el-input-number__decrease {
  background-color: #1a1a2e;
  color: #8890a8;
}
[data-v-dc85439a] .el-textarea__inner {
  background-color: #1a1a2e;
  border-color: #2a3555;
  color: #c8d0e0;
}
[data-v-dc85439a] .el-pagination {
  --el-pagination-bg-color: transparent;
  --el-pagination-button-color: #8890a8;
  --el-pagination-button-bg-color: #16213e;
  --el-pagination-hover-color: #0066CC;
}
[data-v-dc85439a] .el-pagination button.is-active {
  background-color: #0066CC;
  color: #c8d0e0;
}
[data-v-dc85439a] .el-tag--dark {
  border: none;
}
[data-v-dc85439a] .el-tag--dark.el-tag--warning {
  background-color: #b8860b;
  color: #e8d8a0;
}
[data-v-dc85439a] .el-tag--dark.el-tag--success {
  background-color: #1a6b3c;
  color: #a0e0b8;
}
[data-v-dc85439a] .el-tag--dark.el-tag--info {
  background-color: #38405c;
  color: #8890a8;
}
[data-v-dc85439a] .el-upload-list .el-upload-list__item {
  color: #c8d0e0;
}
[data-v-dc85439a] .el-button--text {
  color: #0066CC;
}
[data-v-dc85439a] .el-button--text[type=danger] {
  color: #c43636;
}
[data-v-dc85439a] .el-date-picker {
  --el-datepicker-bg-color: #16213e;
  --el-datepicker-border-color: #2a3555;
}.purchase-page[data-v-84706748] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px 24px;
  color: #c8d0e0;
}
.purchase-page .stat-cards[data-v-84706748] {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 16px;
}
.purchase-page .stat-cards .stat-card[data-v-84706748] {
  background: #16213e;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
}
.purchase-page .stat-cards .stat-card .stat-value[data-v-84706748] {
  font-size: 32px;
  font-weight: 700;
  color: #0066CC;
  line-height: 1.2;
}
.purchase-page .stat-cards .stat-card .stat-value.abnormal[data-v-84706748] {
  color: #c43636;
}
.purchase-page .stat-cards .stat-card .stat-label[data-v-84706748] {
  font-size: 14px;
  color: #8890a8;
  margin-top: 6px;
}
.purchase-page .page-header[data-v-84706748] {
  margin-top: 16px;
  margin-bottom: 16px;
  background: #16213e;
  padding: 0 20px;
  border-radius: 8px;
}
.purchase-page .pagination-wrap[data-v-84706748] {
  display: flex;
  justify-content: flex-end;
  margin-top: 20px;
}
.purchase-page .product-cell[data-v-84706748] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.purchase-page .product-cell .product-name[data-v-84706748] {
  color: #c8d0e0;
  font-weight: 500;
}
.purchase-page .product-cell .product-spec[data-v-84706748] {
  color: #8890a8;
  font-size: 12px;
}
.purchase-page .detail-wrap[data-v-84706748] {
  padding: 4px 0;
}
.purchase-page .terminate-confirm[data-v-84706748] {
  text-align: center;
  padding: 16px 0;
}
.purchase-page .terminate-confirm .terminate-icon[data-v-84706748] {
  color: #c43636;
  margin-bottom: 12px;
}
.purchase-page .terminate-confirm p[data-v-84706748] {
  color: #c8d0e0;
  margin: 8px 0;
  font-size: 14px;
}
.purchase-page .terminate-confirm .terminate-hint[data-v-84706748] {
  font-size: 13px;
  color: #8890a8;
  margin-top: 12px;
}
.purchase-page .stockin-wrap .stockin-form[data-v-84706748] {
  margin-top: 16px;
}
[data-v-84706748] .el-breadcrumb .el-breadcrumb__inner {
  color: #8890a8;
  font-size: 13px;
}
[data-v-84706748] .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #0066CC;
}
[data-v-84706748] .el-tabs__item {
  color: #8890a8;
  font-size: 14px;
  height: 48px;
  line-height: 48px;
}
[data-v-84706748] .el-tabs__item.is-active {
  color: #0066CC;
}
[data-v-84706748] .el-table {
  --el-table-bg-color: #16213e;
  --el-table-tr-bg-color: #16213e;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-row-hover-bg-color: #1e2a4a;
  --el-table-border-color: #2a3555;
  --el-table-text-color: #c8d0e0;
  --el-table-header-text-color: #8890a8;
  border-radius: 8px;
}
[data-v-84706748] .el-table th.el-table__cell {
  background-color: #1a1a2e;
}
[data-v-84706748] .el-dialog {
  --el-dialog-bg-color: #16213e;
  --el-dialog-title-font-size: 17px;
  border-radius: 10px;
}
[data-v-84706748] .el-dialog .el-dialog__title {
  color: #c8d0e0;
}
[data-v-84706748] .el-dialog .el-dialog__body {
  color: #c8d0e0;
  padding-top: 12px;
}
[data-v-84706748] .el-descriptions {
  --el-descriptions-table-bg-color: #16213e;
  --el-descriptions-item-bg-color: #1a1a2e;
  --el-descriptions-item-label-color: #8890a8;
  --el-descriptions-item-content-color: #c8d0e0;
}
[data-v-84706748] .el-descriptions .el-descriptions__label {
  color: #8890a8;
}
[data-v-84706748] .el-descriptions .el-descriptions__content {
  color: #c8d0e0;
}
[data-v-84706748] .el-form-item__label {
  color: #a8b0c8;
}
[data-v-84706748] .el-input__wrapper {
  background-color: #1a1a2e;
  box-shadow: 0 0 0 1px #2a3555 inset;
}
[data-v-84706748] .el-input__wrapper .el-input__inner {
  color: #c8d0e0;
}
[data-v-84706748] .el-input-number__increase,[data-v-84706748] .el-input-number__decrease {
  background-color: #1a1a2e;
  color: #8890a8;
}
[data-v-84706748] .el-textarea__inner {
  background-color: #1a1a2e;
  border-color: #2a3555;
  color: #c8d0e0;
}
[data-v-84706748] .el-pagination {
  --el-pagination-bg-color: transparent;
  --el-pagination-button-color: #8890a8;
  --el-pagination-button-bg-color: #16213e;
  --el-pagination-hover-color: #0066CC;
}
[data-v-84706748] .el-pagination button.is-active {
  background-color: #0066CC;
  color: #c8d0e0;
}
[data-v-84706748] .el-tag--dark {
  border: none;
}
[data-v-84706748] .el-tag--dark.el-tag--warning {
  background-color: #b8860b;
  color: #e8d8a0;
}
[data-v-84706748] .el-tag--dark.el-tag--success {
  background-color: #1a6b3c;
  color: #a0e0b8;
}
[data-v-84706748] .el-tag--dark.el-tag--info {
  background-color: #38405c;
  color: #8890a8;
}
[data-v-84706748] .el-tag--dark.el-tag--primary {
  background-color: #0066CC;
  color: #c8d0e0;
}
[data-v-84706748] .el-button--text {
  color: #0066CC;
}
[data-v-84706748] .el-button--text[type=danger] {
  color: #c43636;
}
[data-v-84706748] .el-select__wrapper {
  background-color: #1a1a2e;
  box-shadow: 0 0 0 1px #2a3555 inset;
}.fulfill-monitor[data-v-949c563b] {
  background: #1a1a2e;
  min-height: 100%;
  padding: 20px;
  color: #c8d0e0;
}
.breadcrumb[data-v-949c563b] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-949c563b] .el-breadcrumb__inner {
  color: #8892a8;
}
.breadcrumb[data-v-949c563b] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #c8d0e0;
}
.stat-cards[data-v-949c563b] {
  margin-bottom: 20px;
}
.stat-card[data-v-949c563b] {
  background: #16213e;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
  border: 1px solid transparent;
  transition: border 0.25s;
  cursor: default;
}
.stat-card[data-v-949c563b]:hover {
  border-color: #0066CC;
}
.stat-card--danger[data-v-949c563b] {
  border-left: 3px solid #c43636;
}
.stat-card__label[data-v-949c563b] {
  font-size: 13px;
  color: #8892a8;
  margin-bottom: 8px;
}
.stat-card__value[data-v-949c563b] {
  font-size: 30px;
  font-weight: 700;
  color: #0066CC;
}
.stat-card__value--red[data-v-949c563b] {
  color: #c43636;
}
.stat-card__unit[data-v-949c563b] {
  font-size: 12px;
  color: #8892a8;
  margin-top: 4px;
}
.filter-bar[data-v-949c563b] {
  background: #16213e;
  border-radius: 8px;
  padding: 14px 18px;
  margin-bottom: 16px;
}
.filter-bar[data-v-949c563b] .el-form-item__label {
  color: #8892a8;
}
.filter-bar[data-v-949c563b] .el-input__wrapper {
  background: #1a1a2e;
  box-shadow: 0 0 0 1px #38405c inset;
}
.filter-bar[data-v-949c563b] .el-input__inner {
  color: #c8d0e0;
}
.filter-bar[data-v-949c563b] .el-select .el-input__wrapper {
  background: #1a1a2e;
}
.table-card[data-v-949c563b] {
  background: #16213e;
  border: none;
  border-radius: 8px;
}
.table-card[data-v-949c563b] .el-table {
  background: transparent;
  --el-table-bg-color: transparent;
  --el-table-header-bg-color: $secondary;
  --el-table-header-text-color: $text;
  --el-table-row-hover-bg-color: rgba(0, 102, 204, 0.08);
  --el-table-border-color: $secondary;
  --el-table-text-color: $text;
}
.table-card[data-v-949c563b] th.el-table__cell {
  background-color: #38405c;
  color: #c8d0e0;
}
.table-card[data-v-949c563b] td.el-table__cell {
  background-color: transparent;
  border-bottom: 1px solid #38405c;
}
.overdue-text[data-v-949c563b] {
  color: #c43636;
  font-weight: 700;
}
.on-schedule[data-v-949c563b] {
  color: #8892a8;
}
.btn-urge--overdue[data-v-949c563b] {
  background: #c43636;
  border-color: #c43636;
}
.btn-urge--overdue[data-v-949c563b]:hover {
  opacity: 0.85;
}
.logistics-dialog__order[data-v-949c563b] {
  color: #8892a8;
  font-size: 13px;
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid #38405c;
}
.logistics-dialog__node[data-v-949c563b] {
  color: #c8d0e0;
  font-size: 13px;
}
.logistics-dialog[data-v-949c563b] .el-timeline-item__timestamp {
  color: #8892a8;
  font-size: 12px;
}
.logistics-dialog[data-v-949c563b] .el-timeline-item__content {
  color: #c8d0e0;
}.urge-message-box .el-message-box {
  background: #16213e;
  border: 1px solid #38405c;
}
.urge-message-box .el-message-box__title {
  color: #c8d0e0;
}
.urge-message-box .el-message-box__message {
  color: #8892a8;
}
.urge-message-box .el-message-box__btns .el-button--primary {
  background: #0066CC;
  border-color: #0066CC;
}
.urge-message-box .el-message-box__btns .el-button--default {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0e0;
}.quality-inspection[data-v-f54c9624] {
  background: #1a1a2e;
  min-height: 100%;
  padding: 20px;
  color: #c8d0e0;
}
.breadcrumb[data-v-f54c9624] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-f54c9624] .el-breadcrumb__inner {
  color: #8892a8;
}
.breadcrumb[data-v-f54c9624] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #c8d0e0;
}
.quality-tabs[data-v-f54c9624] {
  margin-bottom: 16px;
}
.quality-tabs[data-v-f54c9624] .el-tabs__item {
  color: #8892a8;
}
.quality-tabs[data-v-f54c9624] .el-tabs__item.is-active {
  color: #0066CC;
}
.quality-tabs[data-v-f54c9624] .el-tabs__active-bar {
  background-color: #0066CC;
}
.quality-tabs[data-v-f54c9624] .el-tabs__nav-wrap::after {
  background-color: #38405c;
}
.table-card[data-v-f54c9624] {
  background: #16213e;
  border: none;
  border-radius: 8px;
}
.table-card[data-v-f54c9624] .el-table {
  background: transparent;
  --el-table-bg-color: transparent;
  --el-table-header-bg-color: $secondary;
  --el-table-header-text-color: $text;
  --el-table-row-hover-bg-color: rgba(0, 102, 204, 0.08);
  --el-table-border-color: $secondary;
  --el-table-text-color: $text;
}
.table-card[data-v-f54c9624] th.el-table__cell {
  background-color: #38405c;
  color: #c8d0e0;
}
.table-card[data-v-f54c9624] td.el-table__cell {
  background-color: transparent;
  border-bottom: 1px solid #38405c;
}
.result-form[data-v-f54c9624] .el-form-item__label {
  color: #8892a8;
}
.result-form[data-v-f54c9624] .el-input__wrapper {
  background: #1a1a2e;
  box-shadow: 0 0 0 1px #38405c inset;
}
.result-form[data-v-f54c9624] .el-input__inner {
  color: #c8d0e0;
}
.result-form[data-v-f54c9624] .el-textarea__inner {
  background: #1a1a2e;
  color: #c8d0e0;
  border-color: #38405c;
}
.result-form[data-v-f54c9624] .el-radio.is-bordered {
  background: #1a1a2e;
  border-color: #38405c;
  color: #c8d0e0;
}
.result-form[data-v-f54c9624] .el-radio.is-bordered.is-checked {
  border-color: #0066CC;
}
.form-value[data-v-f54c9624] {
  color: #c8d0e0;
  font-size: 14px;
}
.record-detail[data-v-f54c9624] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.record-detail__row[data-v-f54c9624] {
  display: flex;
  align-items: flex-start;
}
.record-detail__label[data-v-f54c9624] {
  width: 80px;
  color: #8892a8;
  font-size: 13px;
  flex-shrink: 0;
}
.record-detail__value[data-v-f54c9624] {
  color: #c8d0e0;
  font-size: 13px;
}.return-message-box .el-message-box {
  background: #16213e;
  border: 1px solid #38405c;
}
.return-message-box .el-message-box__title {
  color: #c8d0e0;
}
.return-message-box .el-message-box__message {
  color: #8892a8;
}
.return-message-box .el-message-box__btns .el-button--primary {
  background: #c43636;
  border-color: #c43636;
}
.return-message-box .el-message-box__btns .el-button--default {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0e0;
}
.el-dialog {
  --el-dialog-bg-color: $card;
}
.el-dialog__title {
  color: #c8d0e0;
}
.el-dialog__headerbtn .el-dialog__close {
  color: #8892a8;
}
.el-dialog__body {
  color: #c8d0e0;
}.refund-manager[data-v-70859c7b] {
  background: #1a1a2e;
  min-height: 100%;
  padding: 20px;
  color: #c8d0e0;
}
.breadcrumb[data-v-70859c7b] {
  margin-bottom: 20px;
}
.breadcrumb[data-v-70859c7b] .el-breadcrumb__inner {
  color: #8892a8;
}
.breadcrumb[data-v-70859c7b] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #c8d0e0;
}
.refund-tabs[data-v-70859c7b] {
  margin-bottom: 16px;
}
.refund-tabs[data-v-70859c7b] .el-tabs__item {
  color: #8892a8;
}
.refund-tabs[data-v-70859c7b] .el-tabs__item.is-active {
  color: #0066CC;
}
.refund-tabs[data-v-70859c7b] .el-tabs__active-bar {
  background-color: #0066CC;
}
.refund-tabs[data-v-70859c7b] .el-tabs__nav-wrap::after {
  background-color: #38405c;
}
.table-card[data-v-70859c7b] {
  background: #16213e;
  border: none;
  border-radius: 8px;
}
.table-card[data-v-70859c7b] .el-table {
  background: transparent;
  --el-table-bg-color: transparent;
  --el-table-header-bg-color: $secondary;
  --el-table-header-text-color: $text;
  --el-table-row-hover-bg-color: rgba(0, 102, 204, 0.08);
  --el-table-border-color: $secondary;
  --el-table-text-color: $text;
}
.table-card[data-v-70859c7b] th.el-table__cell {
  background-color: #38405c;
  color: #c8d0e0;
}
.table-card[data-v-70859c7b] td.el-table__cell {
  background-color: transparent;
  border-bottom: 1px solid #38405c;
}
.amount-text[data-v-70859c7b] {
  color: #c43636;
  font-weight: 600;
}
.detail-view[data-v-70859c7b] {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.detail-view__row[data-v-70859c7b] {
  display: flex;
  align-items: flex-start;
}
.detail-view__label[data-v-70859c7b] {
  width: 80px;
  color: #8892a8;
  font-size: 13px;
  flex-shrink: 0;
}
.detail-view__value[data-v-70859c7b] {
  color: #c8d0e0;
  font-size: 13px;
}
.detail-view__divider[data-v-70859c7b] {
  height: 1px;
  background: #38405c;
  margin: 6px 0;
}
.detail-view__section-title[data-v-70859c7b] {
  color: #0066CC;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
}
.detail-view__log[data-v-70859c7b] {
  display: flex;
  gap: 12px;
  padding: 4px 0;
}
.detail-view__log-time[data-v-70859c7b] {
  color: #8892a8;
  font-size: 12px;
  width: 140px;
  flex-shrink: 0;
}
.detail-view__log-content[data-v-70859c7b] {
  color: #c8d0e0;
  font-size: 13px;
}
.push-form[data-v-70859c7b] .el-form-item__label {
  color: #8892a8;
}
.push-form[data-v-70859c7b] .el-input__wrapper {
  background: #1a1a2e;
  box-shadow: 0 0 0 1px #38405c inset;
}
.push-form[data-v-70859c7b] .el-input__inner {
  color: #c8d0e0;
}
.push-form[data-v-70859c7b] .el-textarea__inner {
  background: #1a1a2e;
  color: #c8d0e0;
  border-color: #38405c;
}
.push-form[data-v-70859c7b] .el-radio.is-bordered {
  background: #1a1a2e;
  border-color: #38405c;
  color: #c8d0e0;
}
.push-form[data-v-70859c7b] .el-radio.is-bordered.is-checked {
  border-color: #0066CC;
}
.form-value[data-v-70859c7b] {
  color: #c8d0e0;
  font-size: 14px;
}.archive-message-box .el-message-box {
  background: #16213e;
  border: 1px solid #38405c;
}
.archive-message-box .el-message-box__title {
  color: #c8d0e0;
}
.archive-message-box .el-message-box__message {
  color: #8892a8;
}
.archive-message-box .el-message-box__btns .el-button--primary {
  background: #0066CC;
  border-color: #0066CC;
}
.archive-message-box .el-message-box__btns .el-button--default {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0e0;
}
.el-dialog {
  --el-dialog-bg-color: $card;
}
.el-dialog__title {
  color: #c8d0e0;
}
.el-dialog__headerbtn .el-dialog__close {
  color: #8892a8;
}
.el-dialog__body {
  color: #c8d0e0;
}.cost-center[data-v-95f9b161] {
  padding: 24px;
  min-height: 100vh;
  background: #1a1a2e;
  color: #e0e0e0;
}
.breadcrumb[data-v-95f9b161] {
  margin-bottom: 24px;
}
.breadcrumb[data-v-95f9b161] .el-breadcrumb__inner {
  color: #a0a0b8;
}
.breadcrumb[data-v-95f9b161] .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.breadcrumb[data-v-95f9b161] .el-breadcrumb__inner.is-link:hover {
  color: rgb(25.5, 140.25, 255);
}
.breadcrumb[data-v-95f9b161] .el-breadcrumb__separator {
  color: #a0a0b8;
}
.stat-row[data-v-95f9b161] {
  margin-bottom: 24px;
}
.stat-card[data-v-95f9b161] {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  transition: transform 0.2s, box-shadow 0.2s;
}
.stat-card[data-v-95f9b161]:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.stat-card .stat-label[data-v-95f9b161] {
  font-size: 14px;
  color: #a0a0b8;
  margin-bottom: 12px;
}
.stat-card .stat-value[data-v-95f9b161] {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
}
.stat-card .stat-sub[data-v-95f9b161] {
  font-size: 12px;
  color: #a0a0b8;
}
.filter-bar[data-v-95f9b161] {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
  padding: 16px 20px;
  margin-bottom: 20px;
}
.filter-bar .filter-form[data-v-95f9b161] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.filter-bar[data-v-95f9b161] .el-form-item__label {
  color: #a0a0b8;
}
.filter-bar[data-v-95f9b161] .el-input__wrapper {
  background: #1a1a2e;
  box-shadow: 0 0 0 1px #2a2a4a inset;
}
.filter-bar[data-v-95f9b161] .el-input__wrapper:hover {
  box-shadow: 0 0 0 1px #0066CC inset;
}
.filter-bar[data-v-95f9b161] .el-input__inner {
  color: #e0e0e0;
}
.filter-bar[data-v-95f9b161] .el-date-editor {
  --el-date-editor-width: 240px;
}
.filter-select[data-v-95f9b161] {
  width: 140px;
}
.filter-date[data-v-95f9b161] {
  width: 260px !important;
}
.table-container[data-v-95f9b161] {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
  overflow: hidden;
}
.table-header[data-v-95f9b161] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid #2a2a4a;
}
.table-header .table-title[data-v-95f9b161] {
  font-size: 16px;
  font-weight: 600;
}
.table-header .table-count[data-v-95f9b161] {
  font-size: 12px;
  color: #a0a0b8;
}
.cost-dialog[data-v-95f9b161] .el-dialog {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 12px;
}
.cost-dialog[data-v-95f9b161] .el-dialog__title {
  color: #e0e0e0;
  font-weight: 600;
}
.cost-dialog[data-v-95f9b161] .el-dialog__headerbtn .el-dialog__close {
  color: #a0a0b8;
}
.cost-dialog[data-v-95f9b161] .el-dialog__headerbtn .el-dialog__close:hover {
  color: #e0e0e0;
}
.cost-dialog[data-v-95f9b161] .el-dialog__body {
  padding: 20px 24px;
}
.cost-dialog[data-v-95f9b161] .el-divider {
  border-color: #2a2a4a;
  margin: 20px 0;
}
.detail-section[data-v-95f9b161] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.detail-section .detail-item .detail-label[data-v-95f9b161] {
  color: #a0a0b8;
  font-size: 13px;
}
.detail-section .detail-item .detail-value[data-v-95f9b161] {
  color: #e0e0e0;
  font-size: 14px;
  font-weight: 500;
}
.detail-cost-grid[data-v-95f9b161] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.detail-cost-grid .cost-block[data-v-95f9b161] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 16px;
  text-align: center;
}
.detail-cost-grid .cost-block .cost-block-label[data-v-95f9b161] {
  font-size: 13px;
  color: #a0a0b8;
  margin-bottom: 8px;
}
.detail-cost-grid .cost-block .cost-block-value[data-v-95f9b161] {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 6px;
}
.detail-cost-grid .cost-block .cost-block-value.primary[data-v-95f9b161] {
  color: #0066CC;
}
.detail-cost-grid .cost-block .cost-block-value.secondary[data-v-95f9b161] {
  color: #38405c;
}
.detail-cost-grid .cost-block .cost-block-value.accent[data-v-95f9b161] {
  color: #5b8def;
}
.detail-cost-grid .cost-block .cost-block-value.highlight[data-v-95f9b161] {
  color: #00bcd4;
}
.detail-cost-grid .cost-block .cost-block-desc[data-v-95f9b161] {
  font-size: 11px;
  color: #a0a0b8;
}
.detail-breakdown .breakdown-title[data-v-95f9b161] {
  color: #e0e0e0;
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 12px;
}
[data-v-95f9b161] .el-table__body-wrapper::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
[data-v-95f9b161] .el-table__body-wrapper::-webkit-scrollbar-track {
  background: #1a1a2e;
}
[data-v-95f9b161] .el-table__body-wrapper::-webkit-scrollbar-thumb {
  background: #38405c;
  border-radius: 3px;
}
[data-v-95f9b161] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #1a7ae0;
  --el-button-hover-border-color: #1a7ae0;
  --el-button-active-bg-color: #0052a3;
  --el-button-active-border-color: #0052a3;
  --el-button-text-color: #ffffff;
}
[data-v-95f9b161] .el-button--default {
  --el-button-bg-color: #2a2a4a;
  --el-button-border-color: #38405c;
  --el-button-text-color: #c0c0d0;
  --el-button-hover-bg-color: #38405c;
  --el-button-hover-border-color: #4a5270;
  --el-button-hover-text-color: #ffffff;
  --el-button-active-bg-color: #2a2a4a;
  --el-button-active-border-color: #38405c;
}
[data-v-95f9b161] .el-select-dropdown {
  background: #16213e;
  border-color: #2a2a4a;
}
[data-v-95f9b161] .el-select-dropdown .el-select-dropdown__item {
  color: #e0e0e0;
}
[data-v-95f9b161] .el-select-dropdown .el-select-dropdown__item:hover {
  background: #1a1a2e;
}
[data-v-95f9b161] .el-select-dropdown .el-select-dropdown__item.selected {
  color: #0066CC;
}
[data-v-95f9b161] .el-picker-panel {
  background: #16213e;
  border-color: #2a2a4a;
}
[data-v-95f9b161] .el-picker-panel .el-date-table th {
  color: #a0a0b8;
}
[data-v-95f9b161] .el-picker-panel .el-date-table td .el-date-table-cell {
  color: #e0e0e0;
}
[data-v-95f9b161] .el-picker-panel .el-date-table td.available:hover .el-date-table-cell {
  background: #1a1a2e;
}
[data-v-95f9b161] .el-picker-panel .el-date-table td.today .el-date-table-cell {
  color: #0066CC;
}
[data-v-95f9b161] .el-picker-panel .el-date-table td.current:not(.disabled) .el-date-table-cell {
  background: #0066CC;
  color: #ffffff;
}
[data-v-95f9b161] .el-picker-panel .el-date-range-picker__header {
  color: #e0e0e0;
}.settle-management[data-v-41e7b87a] {
  padding: 24px;
  min-height: 100vh;
  background: #1a1a2e;
  color: #e0e0e0;
}
.breadcrumb[data-v-41e7b87a] {
  margin-bottom: 24px;
}
.breadcrumb[data-v-41e7b87a] .el-breadcrumb__inner {
  color: #a0a0b8;
}
.breadcrumb[data-v-41e7b87a] .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.breadcrumb[data-v-41e7b87a] .el-breadcrumb__inner.is-link:hover {
  color: rgb(25.5, 140.25, 255);
}
.breadcrumb[data-v-41e7b87a] .el-breadcrumb__separator {
  color: #a0a0b8;
}
.tabs-wrapper[data-v-41e7b87a] {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
  padding: 0 20px;
  margin-bottom: 20px;
}
.tabs-wrapper[data-v-41e7b87a] .el-tabs__header {
  margin: 0;
}
.tabs-wrapper[data-v-41e7b87a] .el-tabs__item {
  color: #a0a0b8;
  height: 48px;
  line-height: 48px;
  font-size: 14px;
}
.tabs-wrapper[data-v-41e7b87a] .el-tabs__item.is-active {
  color: #0066CC;
}
.tabs-wrapper[data-v-41e7b87a] .el-tabs__item:hover {
  color: #e0e0e0;
}
.tabs-wrapper[data-v-41e7b87a] .el-tabs__active-bar {
  background-color: #0066CC;
}
.tabs-wrapper[data-v-41e7b87a] .el-tabs__nav-wrap::after {
  background: #2a2a4a;
  height: 1px;
}
.table-container[data-v-41e7b87a] {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
  overflow: hidden;
}
.table-header[data-v-41e7b87a] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid #2a2a4a;
}
.table-header .table-title[data-v-41e7b87a] {
  font-size: 16px;
  font-weight: 600;
}
.table-header .table-count[data-v-41e7b87a] {
  font-size: 12px;
  color: #a0a0b8;
}
.pending-money[data-v-41e7b87a] {
  color: #ff6b6b;
  font-weight: 600;
}
.settle-dialog[data-v-41e7b87a] .el-dialog {
  background: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 12px;
}
.settle-dialog[data-v-41e7b87a] .el-dialog__title {
  color: #e0e0e0;
  font-weight: 600;
}
.settle-dialog[data-v-41e7b87a] .el-dialog__headerbtn .el-dialog__close {
  color: #a0a0b8;
}
.settle-dialog[data-v-41e7b87a] .el-dialog__headerbtn .el-dialog__close:hover {
  color: #e0e0e0;
}
.settle-dialog[data-v-41e7b87a] .el-dialog__body {
  padding: 20px 24px;
}
.settle-dialog[data-v-41e7b87a] .el-divider {
  border-color: #2a2a4a;
  margin: 18px 0;
}
.settle-dialog[data-v-41e7b87a] .el-input__wrapper {
  background: #1a1a2e;
  box-shadow: 0 0 0 1px #2a2a4a inset;
}
.settle-dialog[data-v-41e7b87a] .el-input__wrapper:hover {
  box-shadow: 0 0 0 1px #0066CC inset;
}
.settle-dialog[data-v-41e7b87a] .el-input__inner {
  color: #e0e0e0;
}
.settle-dialog[data-v-41e7b87a] .el-textarea__inner {
  background: #1a1a2e;
  color: #e0e0e0;
  border-color: #2a2a4a;
}
.settle-dialog[data-v-41e7b87a] .el-textarea__inner:focus {
  border-color: #0066CC;
}
.settle-dialog[data-v-41e7b87a] .el-input-number__decrease,
.settle-dialog[data-v-41e7b87a] .el-input-number__increase {
  background: #1a1a2e;
  color: #a0a0b8;
  border-color: #2a2a4a;
}
.settle-dialog[data-v-41e7b87a] .el-input-number__decrease:hover,
.settle-dialog[data-v-41e7b87a] .el-input-number__increase:hover {
  color: #0066CC;
}
.detail-grid[data-v-41e7b87a] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.detail-item .dl[data-v-41e7b87a] {
  color: #a0a0b8;
  font-size: 13px;
}
.detail-item .dv[data-v-41e7b87a] {
  color: #e0e0e0;
  font-size: 14px;
  font-weight: 500;
}
.section-title[data-v-41e7b87a] {
  color: #e0e0e0;
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px;
}
.form-tip[data-v-41e7b87a] {
  font-size: 12px;
  color: #a0a0b8;
  margin-top: 6px;
}
.confirm-content[data-v-41e7b87a] {
  text-align: center;
  padding: 16px 0;
}
.confirm-content .confirm-icon[data-v-41e7b87a] {
  color: #e6a23c;
}
.confirm-content .confirm-text[data-v-41e7b87a] {
  color: #e0e0e0;
  font-size: 15px;
  margin-top: 12px;
}
.confirm-detail[data-v-41e7b87a] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 16px;
  margin-top: 16px;
}
.confirm-row[data-v-41e7b87a] {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
}
.confirm-row .cl[data-v-41e7b87a] {
  color: #a0a0b8;
  font-size: 13px;
}
.confirm-row .cv[data-v-41e7b87a] {
  color: #e0e0e0;
  font-weight: 500;
}
[data-v-41e7b87a] .el-tag--danger {
  --el-tag-bg-color: rgba(196, 54, 54, 0.2);
  --el-tag-border-color: rgba(196, 54, 54, 0.4);
  --el-tag-text-color: #ff6b6b;
}
[data-v-41e7b87a] .el-tag--warning {
  --el-tag-bg-color: rgba(230, 162, 60, 0.2);
  --el-tag-border-color: rgba(230, 162, 60, 0.4);
  --el-tag-text-color: #e6a23c;
}
[data-v-41e7b87a] .el-tag--success {
  --el-tag-bg-color: rgba(103, 194, 58, 0.15);
  --el-tag-border-color: rgba(103, 194, 58, 0.3);
  --el-tag-text-color: #67c23a;
}
[data-v-41e7b87a] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #1a7ae0;
  --el-button-hover-border-color: #1a7ae0;
  --el-button-active-bg-color: #0052a3;
  --el-button-active-border-color: #0052a3;
  --el-button-text-color: #ffffff;
}
[data-v-41e7b87a] .el-button--default {
  --el-button-bg-color: #2a2a4a;
  --el-button-border-color: #38405c;
  --el-button-text-color: #c0c0d0;
  --el-button-hover-bg-color: #38405c;
  --el-button-hover-border-color: #4a5270;
  --el-button-hover-text-color: #ffffff;
  --el-button-active-bg-color: #2a2a4a;
  --el-button-active-border-color: #38405c;
}
[data-v-41e7b87a] .el-table__body-wrapper::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
[data-v-41e7b87a] .el-table__body-wrapper::-webkit-scrollbar-track {
  background: #1a1a2e;
}
[data-v-41e7b87a] .el-table__body-wrapper::-webkit-scrollbar-thumb {
  background: #38405c;
  border-radius: 3px;
}
[data-v-41e7b87a] .el-picker-panel {
  background: #16213e;
  border-color: #2a2a4a;
}
[data-v-41e7b87a] .el-picker-panel .el-time-panel {
  background: #16213e;
  border-color: #2a2a4a;
}
[data-v-41e7b87a] .el-picker-panel .el-time-spinner__item {
  color: #e0e0e0;
}
[data-v-41e7b87a] .el-picker-panel .el-time-spinner__item:hover {
  background: #1a1a2e;
}
[data-v-41e7b87a] .el-picker-panel .el-time-spinner__item.active {
  color: #0066CC;
}.supplier-risk[data-v-9d0042d0] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-breadcrumb {
  margin-bottom: 16px;
}
.supplier-risk[data-v-9d0042d0] .el-breadcrumb .el-breadcrumb__inner {
  color: #8c9ab5;
}
.supplier-risk[data-v-9d0042d0] .el-breadcrumb .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.supplier-risk[data-v-9d0042d0] .el-breadcrumb .el-breadcrumb__separator {
  color: #38405c;
}
.supplier-risk .page-title[data-v-9d0042d0] {
  font-size: 22px;
  font-weight: 600;
  color: #e0e6f0;
  margin: 0 0 20px 0;
  padding: 0;
}
.supplier-risk[data-v-9d0042d0] .el-card {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
  margin-bottom: 16px;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-card .el-card__body {
  padding: 20px;
}
.supplier-risk .stat-card[data-v-9d0042d0] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 18px 16px;
  border-top: 3px solid #0066CC;
  height: 100%;
  box-sizing: border-box;
}
.supplier-risk .stat-card .stat-label[data-v-9d0042d0] {
  font-size: 14px;
  color: #8c9ab5;
  margin-bottom: 10px;
}
.supplier-risk .stat-card .stat-value[data-v-9d0042d0] {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tabs .el-tabs__header {
  margin: 0 0 16px 0;
  border-bottom: 1px solid #1e2d50;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tabs .el-tabs__item {
  color: #8c9ab5;
  font-size: 14px;
  font-weight: 500;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tabs .el-tabs__item:hover {
  color: #0066CC;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tabs .el-tabs__item.is-active {
  color: #0066CC;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tabs .el-tabs__active-bar {
  background: #0066CC;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table {
  background: transparent;
  color: #c8d0e0;
  border: none;
  --el-table-border-color: #1e2d50;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-tr-bg-color: transparent;
  --el-table-row-hover-bg-color: #1e2d50;
  --el-table-striped-row-bg-color: #1a1a2e;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table th.el-table__cell {
  background: #1a1a2e;
  color: #8c9ab5;
  border-bottom: 1px solid #1e2d50;
  font-weight: 600;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2d50;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link {
  padding: 4px 8px;
  font-size: 13px;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link.el-button--primary {
  color: #0066CC;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link.el-button--primary:hover {
  color: #3399ff;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link.el-button--danger {
  color: #c43636;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link.el-button--danger:hover {
  color: #e06060;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link.el-button--success {
  color: #52c41a;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-table .el-button.is-link.el-button--success:hover {
  color: #73d13d;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tag {
  border: none;
  font-weight: 500;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tag.el-tag--danger {
  background: #c43636;
  color: #c8d0e0;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tag.el-tag--warning {
  background: #e6a23c;
  color: #1a1a2e;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tag.el-tag--info {
  background: #38405c;
  color: #c8d0e0;
}
.supplier-risk .tab-card[data-v-9d0042d0] .el-tag.el-tag--success {
  background: #52c41a;
  color: #1a1a2e;
}
.supplier-risk[data-v-9d0042d0] .el-dialog {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 10px;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2d50;
  padding: 16px 24px;
  margin: 0;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e6f0;
  font-size: 18px;
  font-weight: 600;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #6a7a9a;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__body {
  padding: 20px 24px;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2d50;
  padding: 12px 24px;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button:not(.el-button--primary):not(.el-button--danger):not(.el-button--success) {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button:not(.el-button--primary):not(.el-button--danger):not(.el-button--success):hover {
  background: #2d3548;
  border-color: #2d3548;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button--primary {
  background: #0066CC;
  border-color: #0066CC;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button--primary:hover {
  background: #0052a3;
  border-color: #0052a3;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button--danger {
  background: #c43636;
  border-color: #c43636;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button--danger:hover {
  background: #a82b2b;
  border-color: #a82b2b;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button--success {
  background: #52c41a;
  border-color: #52c41a;
  color: #1a1a2e;
}
.supplier-risk[data-v-9d0042d0] .el-dialog .el-dialog__footer .el-button--success:hover {
  background: #45a815;
  border-color: #45a815;
}
.supplier-risk .dialog-header-info[data-v-9d0042d0] {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #1e2d50;
}
.supplier-risk .dialog-header-info .dlg-label[data-v-9d0042d0] {
  color: #8c9ab5;
  font-size: 14px;
}
.supplier-risk .dialog-header-info .dlg-value[data-v-9d0042d0] {
  color: #e0e6f0;
  font-size: 14px;
  font-weight: 600;
}
.supplier-risk .info-text[data-v-9d0042d0] {
  color: #0066CC;
  font-weight: 600;
  font-size: 16px;
}
.supplier-risk .freeze-body[data-v-9d0042d0] {
  text-align: center;
  padding: 16px 0;
}
.supplier-risk .freeze-body .freeze-icon[data-v-9d0042d0] {
  margin-bottom: 12px;
}
.supplier-risk .freeze-body .freeze-text[data-v-9d0042d0] {
  color: #c8d0e0;
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}
.supplier-risk[data-v-9d0042d0] .el-form-item__label {
  color: #8c9ab5 !important;
}
.supplier-risk[data-v-9d0042d0] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #1e2d50;
  box-shadow: none;
  border-radius: 6px;
}
.supplier-risk[data-v-9d0042d0] .el-input__wrapper .el-input__inner {
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-textarea__inner {
  background: #1a1a2e;
  border: 1px solid #1e2d50;
  box-shadow: none;
  border-radius: 6px;
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-radio__label {
  color: #c8d0e0;
}
.supplier-risk[data-v-9d0042d0] .el-radio__input.is-checked .el-radio__inner {
  background: #0066CC;
  border-color: #0066CC;
}
.supplier-risk[data-v-9d0042d0] .el-radio__input.is-checked + .el-radio__label {
  color: #0066CC;
}
.supplier-risk[data-v-9d0042d0] .el-input-number .el-input-number__decrease, .supplier-risk[data-v-9d0042d0] .el-input-number .el-input-number__increase {
  background: #38405c;
  color: #c8d0e0;
  border-color: #1e2d50;
}
.supplier-risk[data-v-9d0042d0] .el-table .el-loading-mask {
  background: rgba(26, 26, 46, 0.7);
}.profit-analysis[data-v-228bcbb0] {
  background: #1a1a2e;
  min-height: 100vh;
  padding: 20px;
  color: #c8d0e0;
}
.profit-analysis[data-v-228bcbb0] .el-breadcrumb {
  margin-bottom: 16px;
}
.profit-analysis[data-v-228bcbb0] .el-breadcrumb .el-breadcrumb__inner {
  color: #8c9ab5;
}
.profit-analysis[data-v-228bcbb0] .el-breadcrumb .el-breadcrumb__inner.is-link {
  color: #0066CC;
}
.profit-analysis[data-v-228bcbb0] .el-breadcrumb .el-breadcrumb__separator {
  color: #38405c;
}
.profit-analysis .page-title[data-v-228bcbb0] {
  font-size: 22px;
  font-weight: 600;
  color: #e0e6f0;
  margin: 0 0 20px 0;
  padding: 0;
}
.profit-analysis[data-v-228bcbb0] .el-card {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 8px;
  margin-bottom: 16px;
  color: #c8d0e0;
}
.profit-analysis[data-v-228bcbb0] .el-card .el-card__header {
  border-bottom: 1px solid #1e2d50;
  padding: 14px 20px;
  color: #e0e6f0;
  font-weight: 600;
}
.profit-analysis[data-v-228bcbb0] .el-card .el-card__body {
  padding: 20px;
}
.profit-analysis .stat-cards-card .el-row[data-v-228bcbb0] {
  margin: 0 !important;
}
.profit-analysis .stat-card[data-v-228bcbb0] {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 18px 16px;
  border-top: 3px solid #0066CC;
  height: 100%;
  box-sizing: border-box;
}
.profit-analysis .stat-card .stat-label[data-v-228bcbb0] {
  font-size: 14px;
  color: #8c9ab5;
  margin-bottom: 10px;
}
.profit-analysis .stat-card .stat-value[data-v-228bcbb0] {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}
.profit-analysis .stat-card .stat-footer[data-v-228bcbb0] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #6a7a9a;
}
.profit-analysis .stat-card .stat-footer .trend-up[data-v-228bcbb0] {
  color: #52c41a;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.profit-analysis .stat-card .stat-footer .trend-down[data-v-228bcbb0] {
  color: #c43636;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.profit-analysis .stat-card .stat-footer .trend-label[data-v-228bcbb0] {
  color: #6a7a9a;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-form-item__label {
  color: #8c9ab5 !important;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #1e2d50;
  box-shadow: none;
  border-radius: 6px;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-input__wrapper .el-input__inner {
  color: #c8d0e0;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-range-separator {
  color: #8c9ab5;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-input__icon {
  color: #6a7a9a;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-button--primary {
  background: #0066CC;
  border-color: #0066CC;
  color: #c8d0e0;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-button--primary:hover {
  background: #0052a3;
  border-color: #0052a3;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-button:not(.el-button--primary) {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0e0;
}
.profit-analysis .filter-card[data-v-228bcbb0] .el-button:not(.el-button--primary):hover {
  background: #2d3548;
  border-color: #2d3548;
}
.profit-analysis .table-card .card-header[data-v-228bcbb0] {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.profit-analysis .table-card .card-header span[data-v-228bcbb0] {
  font-size: 16px;
  font-weight: 600;
  color: #e0e6f0;
}
.profit-analysis .table-card[data-v-228bcbb0] .el-table {
  background: transparent;
  color: #c8d0e0;
  border: none;
  --el-table-border-color: #1e2d50;
  --el-table-header-bg-color: #1a1a2e;
  --el-table-tr-bg-color: transparent;
  --el-table-row-hover-bg-color: #1e2d50;
  --el-table-striped-row-bg-color: #1a1a2e;
}
.profit-analysis .table-card[data-v-228bcbb0] .el-table th.el-table__cell {
  background: #1a1a2e;
  color: #8c9ab5;
  border-bottom: 1px solid #1e2d50;
  font-weight: 600;
}
.profit-analysis .table-card[data-v-228bcbb0] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2d50;
}
.profit-analysis .table-card[data-v-228bcbb0] .el-table .el-button.is-link {
  color: #0066CC;
}
.profit-analysis .table-card[data-v-228bcbb0] .el-table .el-button.is-link:hover {
  color: #3399ff;
}
.profit-analysis[data-v-228bcbb0] .el-dialog {
  background: #16213e;
  border: 1px solid #1e2d50;
  border-radius: 10px;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2d50;
  padding: 16px 24px;
  margin: 0;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__header .el-dialog__title {
  color: #e0e6f0;
  font-size: 18px;
  font-weight: 600;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #6a7a9a;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #c8d0e0;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__body {
  padding: 20px 24px;
  color: #c8d0e0;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2d50;
  padding: 12px 24px;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__footer .el-button {
  background: #38405c;
  border-color: #38405c;
  color: #c8d0e0;
}
.profit-analysis[data-v-228bcbb0] .el-dialog .el-dialog__footer .el-button:hover {
  background: #2d3548;
  border-color: #2d3548;
}
.profit-analysis .dialog-header[data-v-228bcbb0] {
  margin-bottom: 16px;
}
.profit-analysis .dialog-header .dialog-category[data-v-228bcbb0] {
  font-size: 18px;
  font-weight: 600;
  color: #0066CC;
  margin-right: 12px;
}
.profit-analysis .dialog-header .dialog-subtitle[data-v-228bcbb0] {
  font-size: 14px;
  color: #8c9ab5;
}
.profit-analysis[data-v-228bcbb0] .el-table .el-loading-mask {
  background: rgba(26, 26, 46, 0.7);
}.connector-page[data-v-90901d4f] {
  min-height: 100vh;
  background: #1a1a2e;
  padding: 24px;
}
.breadcrumb-wrap[data-v-90901d4f] {
  margin-bottom: 20px;
}
.breadcrumb-wrap[data-v-90901d4f] .el-breadcrumb__inner {
  color: #5a6a8a;
  font-size: 13px;
}
.breadcrumb-wrap[data-v-90901d4f] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #8899bb;
}
.page-header[data-v-90901d4f] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 24px;
}
.page-header .header-left .page-title[data-v-90901d4f] {
  font-size: 22px;
  font-weight: 600;
  color: #c8d6e5;
  margin: 0 0 6px 0;
}
.page-header .header-left .page-desc[data-v-90901d4f] {
  font-size: 13px;
  color: #5a6a8a;
  margin: 0;
}
.data-card[data-v-90901d4f] {
  background: #16213e;
  border: 1px solid #1e2a4a;
  border-radius: 8px;
}
.data-card[data-v-90901d4f] .el-card__body {
  padding: 0;
}
.data-card[data-v-90901d4f] .el-table {
  background: transparent;
  color: #c8d6e5;
  --el-table-border-color: $border;
  --el-table-header-bg-color: $bg-card;
  --el-table-tr-bg-color: $bg-card;
  --el-table-row-hover-bg-color: #1e2a4a;
  --el-table-striped-row-bg-color: #182442;
}
.data-card[data-v-90901d4f] .el-table th.el-table__cell {
  background: #16213e;
  color: #8899bb;
  font-weight: 500;
  border-bottom: 1px solid #1e2a4a;
}
.data-card[data-v-90901d4f] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2a4a;
}
.key-masked[data-v-90901d4f] {
  font-family: "Courier New", monospace;
  color: #5a6a8a;
  letter-spacing: 0.5px;
  margin-right: 6px;
}
.full-width[data-v-90901d4f] {
  width: 100%;
}
.theme-dialog[data-v-90901d4f] .el-dialog {
  background: #16213e;
  border: 1px solid #1e2a4a;
  border-radius: 10px;
}
.theme-dialog[data-v-90901d4f] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2a4a;
  padding: 18px 24px;
  margin: 0;
}
.theme-dialog[data-v-90901d4f] .el-dialog .el-dialog__header .el-dialog__title {
  color: #c8d6e5;
  font-size: 16px;
  font-weight: 600;
}
.theme-dialog[data-v-90901d4f] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #5a6a8a;
}
.theme-dialog[data-v-90901d4f] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #8899bb;
}
.theme-dialog[data-v-90901d4f] .el-dialog .el-dialog__body {
  padding: 24px;
}
.theme-dialog[data-v-90901d4f] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2a4a;
  padding: 14px 24px;
}
.theme-dialog[data-v-90901d4f] .el-form-item__label {
  color: #8899bb;
}
.theme-dialog[data-v-90901d4f] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #1e2a4a;
  border-radius: 6px;
  box-shadow: none;
}
.theme-dialog[data-v-90901d4f] .el-input__wrapper:hover {
  border-color: #2a3a5a;
}
.theme-dialog[data-v-90901d4f] .el-input__wrapper.is-focus {
  border-color: #0066CC;
}
.theme-dialog[data-v-90901d4f] .el-input__inner {
  color: #c8d6e5;
  background: transparent;
}
.theme-dialog[data-v-90901d4f] .el-input__inner::placeholder {
  color: #5a6a8a;
}
.theme-dialog[data-v-90901d4f] .el-select-dropdown {
  background: #16213e;
  border: 1px solid #1e2a4a;
}
.theme-dialog[data-v-90901d4f] .el-select-dropdown .el-select-dropdown__item {
  color: #8899bb;
}
.theme-dialog[data-v-90901d4f] .el-select-dropdown .el-select-dropdown__item:hover, .theme-dialog[data-v-90901d4f] .el-select-dropdown .el-select-dropdown__item.hover {
  background: #1e2a4a;
  color: #c8d6e5;
}
.theme-dialog[data-v-90901d4f] .el-select-dropdown .el-select-dropdown__item.selected {
  color: #0066CC;
  font-weight: 600;
}
.theme-dialog[data-v-90901d4f] .el-tag--success {
  background: rgba(46, 204, 113, 0.15);
  border-color: transparent;
  color: #2ecc71;
}
.theme-dialog[data-v-90901d4f] .el-tag--danger {
  background: rgba(196, 54, 54, 0.15);
  border-color: transparent;
  color: #c43636;
}
.btn-cancel[data-v-90901d4f] {
  background-color: #38405c;
  border-color: #38405c;
  color: #8899bb;
}
.btn-cancel[data-v-90901d4f]:hover {
  background-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  border-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  color: #c8d6e5;
}
.readonly-field[data-v-90901d4f] {
  color: #c8d6e5;
  font-size: 14px;
}
.view-key-body .view-key-label[data-v-90901d4f] {
  color: #8899bb;
  margin-bottom: 10px;
  font-size: 14px;
}
.view-key-body .view-key-input[data-v-90901d4f] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #1e2a4a;
}
.view-key-body .view-key-input[data-v-90901d4f] .el-input__inner {
  color: #00e676;
  font-family: "Courier New", monospace;
}
.view-key-body .view-key-hint[data-v-90901d4f] {
  color: #c43636;
  font-size: 12px;
  margin-top: 10px;
}
.delete-body[data-v-90901d4f] {
  text-align: center;
  padding: 8px 0;
}
.delete-body .delete-icon[data-v-90901d4f] {
  font-size: 42px;
  color: #c43636;
  margin-bottom: 14px;
}
.delete-body .delete-text[data-v-90901d4f] {
  color: #c8d6e5;
  font-size: 15px;
  margin: 0 0 8px 0;
}
.delete-body .delete-text .delete-highlight[data-v-90901d4f] {
  color: #c43636;
  font-weight: 600;
}
.delete-body .delete-hint[data-v-90901d4f] {
  color: #5a6a8a;
  font-size: 13px;
  margin: 0;
}
.btn-icon[data-v-90901d4f] {
  margin-right: 4px;
}.route-page[data-v-acc7d8e7] {
  min-height: 100vh;
  background: #1a1a2e;
  padding: 24px;
}
.breadcrumb-wrap[data-v-acc7d8e7] {
  margin-bottom: 20px;
}
.breadcrumb-wrap[data-v-acc7d8e7] .el-breadcrumb__inner {
  color: #5a6a8a;
  font-size: 13px;
}
.breadcrumb-wrap[data-v-acc7d8e7] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #8899bb;
}
.page-header[data-v-acc7d8e7] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 24px;
}
.page-header .header-left .page-title[data-v-acc7d8e7] {
  font-size: 22px;
  font-weight: 600;
  color: #c8d6e5;
  margin: 0 0 6px 0;
}
.page-header .header-left .page-desc[data-v-acc7d8e7] {
  font-size: 13px;
  color: #5a6a8a;
  margin: 0;
}
.data-card[data-v-acc7d8e7] {
  background: #16213e;
  border: 1px solid #1e2a4a;
  border-radius: 8px;
}
.data-card[data-v-acc7d8e7] .el-card__body {
  padding: 0;
}
.data-card[data-v-acc7d8e7] .el-table {
  background: transparent;
  color: #c8d6e5;
  --el-table-border-color: $border;
  --el-table-header-bg-color: $bg-card;
  --el-table-tr-bg-color: $bg-card;
  --el-table-row-hover-bg-color: #1e2a4a;
  --el-table-striped-row-bg-color: #182442;
}
.data-card[data-v-acc7d8e7] .el-table th.el-table__cell {
  background: #16213e;
  color: #8899bb;
  font-weight: 500;
  border-bottom: 1px solid #1e2a4a;
}
.data-card[data-v-acc7d8e7] .el-table td.el-table__cell {
  border-bottom: 1px solid #1e2a4a;
}
.weight-text[data-v-acc7d8e7] {
  color: #0066CC;
  font-weight: 600;
}
.full-width[data-v-acc7d8e7] {
  width: 100%;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog {
  background: #16213e;
  border: 1px solid #1e2a4a;
  border-radius: 10px;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #1e2a4a;
  padding: 18px 24px;
  margin: 0;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog .el-dialog__header .el-dialog__title {
  color: #c8d6e5;
  font-size: 16px;
  font-weight: 600;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #5a6a8a;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #8899bb;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog .el-dialog__body {
  padding: 24px;
}
.theme-dialog[data-v-acc7d8e7] .el-dialog .el-dialog__footer {
  border-top: 1px solid #1e2a4a;
  padding: 14px 24px;
}
.theme-dialog[data-v-acc7d8e7] .el-form-item__label {
  color: #8899bb;
}
.theme-dialog[data-v-acc7d8e7] .el-input__wrapper {
  background: #1a1a2e;
  border: 1px solid #1e2a4a;
  border-radius: 6px;
  box-shadow: none;
}
.theme-dialog[data-v-acc7d8e7] .el-input__wrapper:hover {
  border-color: #2a3a5a;
}
.theme-dialog[data-v-acc7d8e7] .el-input__wrapper.is-focus {
  border-color: #0066CC;
}
.theme-dialog[data-v-acc7d8e7] .el-input__inner {
  color: #c8d6e5;
  background: transparent;
}
.theme-dialog[data-v-acc7d8e7] .el-input__inner::placeholder {
  color: #5a6a8a;
}
.theme-dialog[data-v-acc7d8e7] .el-input-number__decrease,
.theme-dialog[data-v-acc7d8e7] .el-input-number__increase {
  background: #1a1a2e;
  color: #8899bb;
  border-color: #1e2a4a;
}
.theme-dialog[data-v-acc7d8e7] .el-input-number__decrease:hover,
.theme-dialog[data-v-acc7d8e7] .el-input-number__increase:hover {
  color: #0066CC;
}
.theme-dialog[data-v-acc7d8e7] .el-select-dropdown {
  background: #16213e;
  border: 1px solid #1e2a4a;
}
.theme-dialog[data-v-acc7d8e7] .el-select-dropdown .el-select-dropdown__item {
  color: #8899bb;
}
.theme-dialog[data-v-acc7d8e7] .el-select-dropdown .el-select-dropdown__item:hover, .theme-dialog[data-v-acc7d8e7] .el-select-dropdown .el-select-dropdown__item.hover {
  background: #1e2a4a;
  color: #c8d6e5;
}
.theme-dialog[data-v-acc7d8e7] .el-select-dropdown .el-select-dropdown__item.selected {
  color: #0066CC;
  font-weight: 600;
}
.theme-dialog[data-v-acc7d8e7] .el-slider__runway {
  background: #1e2a4a;
}
.theme-dialog[data-v-acc7d8e7] .el-slider__bar {
  background: #0066CC;
}
.theme-dialog[data-v-acc7d8e7] .el-slider__button {
  border-color: #0066CC;
  background: #16213e;
}
.theme-dialog[data-v-acc7d8e7] .el-tag--success {
  background: rgba(46, 204, 113, 0.15);
  border-color: transparent;
  color: #2ecc71;
}
.theme-dialog[data-v-acc7d8e7] .el-tag--danger {
  background: rgba(196, 54, 54, 0.15);
  border-color: transparent;
  color: #c43636;
}
.theme-dialog[data-v-acc7d8e7] .el-tag--info {
  background: rgba(90, 106, 138, 0.2);
  border-color: transparent;
  color: #8899bb;
}
.btn-cancel[data-v-acc7d8e7] {
  background-color: #38405c;
  border-color: #38405c;
  color: #8899bb;
}
.btn-cancel[data-v-acc7d8e7]:hover {
  background-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  border-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  color: #c8d6e5;
}
.delete-body[data-v-acc7d8e7] {
  text-align: center;
  padding: 8px 0;
}
.delete-body .delete-icon[data-v-acc7d8e7] {
  font-size: 42px;
  color: #c43636;
  margin-bottom: 14px;
}
.delete-body .delete-text[data-v-acc7d8e7] {
  color: #c8d6e5;
  font-size: 15px;
  margin: 0 0 8px 0;
}
.delete-body .delete-text .delete-highlight[data-v-acc7d8e7] {
  color: #c43636;
  font-weight: 600;
}
.delete-body .delete-hint[data-v-acc7d8e7] {
  color: #5a6a8a;
  font-size: 13px;
  margin: 0;
}
.btn-icon[data-v-acc7d8e7] {
  margin-right: 4px;
}.white-label[data-v-bc84bebb] {
  min-height: 100%;
  background-color: #1a1a2e;
  padding: 20px 24px 40px;
}
.white-label .app-breadcrumb[data-v-bc84bebb] {
  margin-bottom: 20px;
}
.white-label .app-breadcrumb[data-v-bc84bebb] .el-breadcrumb__inner {
  color: #5a6785;
  font-size: 13px;
}
.white-label .app-breadcrumb[data-v-bc84bebb] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #8892b0;
}
.white-label .page-header[data-v-bc84bebb] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.white-label .page-header .page-title[data-v-bc84bebb] {
  font-size: 20px;
  font-weight: 600;
  color: #c9d1d9;
  margin: 0;
}
.white-label .page-header .btn-icon[data-v-bc84bebb] {
  margin-right: 4px;
}
.white-label .section-title[data-v-bc84bebb] {
  font-size: 16px;
  font-weight: 600;
  color: #c9d1d9;
  margin: 0 0 20px 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #2a2a4a;
}
.white-label .data-card[data-v-bc84bebb] {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 8px;
}
.white-label .data-card[data-v-bc84bebb] .el-table {
  background-color: transparent;
  color: #c9d1d9;
  --el-table-border-color: $border-color;
  --el-table-header-bg-color: $bg-page;
  --el-table-tr-bg-color: $bg-card;
  --el-table-row-hover-bg-color: $bg-hover;
  --el-table-striped-row-bg-color: $bg-page;
}
.white-label .data-card[data-v-bc84bebb] .el-table th.el-table__cell {
  background-color: #1a1a2e;
  color: #8892b0;
  font-weight: 500;
  border-bottom: 1px solid #2a2a4a;
}
.white-label .data-card[data-v-bc84bebb] .el-table td.el-table__cell {
  border-bottom: 1px solid #2a2a4a;
}
.white-label .logo-uploader[data-v-bc84bebb] .el-upload {
  border: 1px dashed #2a2a4a;
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.2s;
}
.white-label .logo-uploader[data-v-bc84bebb] .el-upload:hover {
  border-color: #0066CC;
}
.white-label .logo-uploader .logo-placeholder[data-v-bc84bebb] {
  width: 120px;
  height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.white-label .logo-uploader .logo-placeholder .logo-icon[data-v-bc84bebb] {
  font-size: 32px;
  color: #5a6785;
}
.white-label .logo-uploader .logo-placeholder .logo-text[data-v-bc84bebb] {
  font-size: 12px;
  color: #5a6785;
}
.white-label .logo-uploader .logo-placeholder .logo-preview[data-v-bc84bebb] {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.white-label[data-v-bc84bebb] .el-dialog {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
}
.white-label[data-v-bc84bebb] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #2a2a4a;
  padding: 18px 24px;
  margin: 0;
}
.white-label[data-v-bc84bebb] .el-dialog .el-dialog__header .el-dialog__title {
  color: #c9d1d9;
  font-size: 16px;
  font-weight: 600;
}
.white-label[data-v-bc84bebb] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #5a6785;
}
.white-label[data-v-bc84bebb] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #8892b0;
}
.white-label[data-v-bc84bebb] .el-dialog .el-dialog__body {
  padding: 24px;
  color: #8892b0;
}
.white-label[data-v-bc84bebb] .el-dialog .el-dialog__footer {
  border-top: 1px solid #2a2a4a;
  padding: 14px 24px;
}
.white-label[data-v-bc84bebb] .el-form-item__label {
  color: #8892b0;
  font-size: 14px;
}
.white-label[data-v-bc84bebb] .el-input__wrapper {
  background-color: #1e2a4a;
  border: 1px solid #2a2a4a;
  border-radius: 6px;
  box-shadow: none;
  transition: border-color 0.2s;
}
.white-label[data-v-bc84bebb] .el-input__wrapper:hover {
  border-color: #38405c;
}
.white-label[data-v-bc84bebb] .el-input__wrapper.is-focus {
  border-color: #0066CC;
}
.white-label[data-v-bc84bebb] .el-input__inner {
  color: #c9d1d9;
  background-color: transparent;
}
.white-label[data-v-bc84bebb] .el-input__inner::placeholder {
  color: #5a6785;
}
.white-label .delete-confirm-body[data-v-bc84bebb] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 0;
}
.white-label .delete-confirm-body .del-warn-icon[data-v-bc84bebb] {
  font-size: 22px;
  color: #f0ad4e;
  flex-shrink: 0;
  margin-top: 2px;
}
.white-label .delete-confirm-body .del-warn-text[data-v-bc84bebb] {
  color: #8892b0;
  font-size: 14px;
  line-height: 1.6;
}
.white-label .delete-confirm-body .del-warn-text em[data-v-bc84bebb] {
  color: #c43636;
  font-style: normal;
  font-weight: 600;
}
.white-label .btn-cancel[data-v-bc84bebb] {
  background-color: #38405c;
  color: #8892b0;
  border: 1px solid #2a2a4a;
}
.white-label .btn-cancel[data-v-bc84bebb]:hover {
  background-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  color: #c9d1d9;
  border-color: #38405c;
}
.white-label[data-v-bc84bebb] .el-tag--success {
  background-color: rgba(46, 204, 113, 0.15);
  border-color: transparent;
  color: #2ecc71;
}
.white-label[data-v-bc84bebb] .el-tag--danger {
  background-color: rgba(196, 54, 54, 0.15);
  border-color: transparent;
  color: #c43636;
}
.white-label[data-v-bc84bebb] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #0052a3;
  --el-button-hover-border-color: #0052a3;
  --el-button-active-bg-color: #004080;
  --el-button-active-border-color: #004080;
}
.white-label[data-v-bc84bebb] .el-button--danger {
  --el-button-bg-color: #c43636;
  --el-button-border-color: #c43636;
  --el-button-hover-bg-color: #a82a2a;
  --el-button-hover-border-color: #a82a2a;
  --el-button-active-bg-color: #8f1f1f;
  --el-button-active-border-color: #8f1f1f;
}
.white-label[data-v-bc84bebb] .el-loading-mask {
  background-color: rgba(26, 26, 46, 0.6);
}.supply-auto[data-v-91ca8f07] {
  min-height: 100%;
  background-color: #1a1a2e;
  padding: 20px 24px 40px;
}
.supply-auto .app-breadcrumb[data-v-91ca8f07] {
  margin-bottom: 20px;
}
.supply-auto .app-breadcrumb[data-v-91ca8f07] .el-breadcrumb__inner {
  color: #5a6785;
  font-size: 13px;
}
.supply-auto .app-breadcrumb[data-v-91ca8f07] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #8892b0;
}
.supply-auto .page-header[data-v-91ca8f07] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.supply-auto .page-header .page-title[data-v-91ca8f07] {
  font-size: 20px;
  font-weight: 600;
  color: #c9d1d9;
  margin: 0;
}
.supply-auto .page-header .header-status[data-v-91ca8f07] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.supply-auto .page-header .header-status .status-dot[data-v-91ca8f07] {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}
.supply-auto .page-header .header-status .status-dot.dot-active[data-v-91ca8f07] {
  background-color: #2ecc71;
  box-shadow: 0 0 6px rgba(46, 204, 113, 0.5);
}
.supply-auto .page-header .header-status .status-dot.dot-inactive[data-v-91ca8f07] {
  background-color: #5a6785;
}
.supply-auto .page-header .header-status .status-label[data-v-91ca8f07] {
  font-size: 13px;
  color: #8892b0;
}
.supply-auto .page-header .btn-icon[data-v-91ca8f07] {
  margin-right: 4px;
}
.supply-auto .data-card[data-v-91ca8f07] {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 8px;
  padding-bottom: 8px;
}
.supply-auto .data-card .section-title[data-v-91ca8f07] {
  font-size: 16px;
  font-weight: 600;
  color: #c9d1d9;
  margin: 0 0 6px 0;
}
.supply-auto .data-card .section-desc[data-v-91ca8f07] {
  color: #5a6785;
  font-size: 13px;
  margin: 0 0 24px 0;
  line-height: 1.5;
}
.supply-auto .toggle-grid[data-v-91ca8f07] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.supply-auto .toggle-grid .toggle-item[data-v-91ca8f07] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-radius: 8px;
  background-color: rgba(26, 26, 46, 0.3);
  transition: background-color 0.2s;
}
.supply-auto .toggle-grid .toggle-item[data-v-91ca8f07]:hover {
  background-color: rgba(26, 26, 46, 0.6);
}
.supply-auto .toggle-grid .toggle-item .toggle-info[data-v-91ca8f07] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-icon-box[data-v-91ca8f07] {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-icon-box .toggle-svg[data-v-91ca8f07] {
  font-size: 20px;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-icon-box.icon-stock[data-v-91ca8f07] {
  background-color: rgba(0, 102, 204, 0.15);
  color: #0066CC;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-icon-box.icon-urge[data-v-91ca8f07] {
  background-color: rgba(240, 173, 78, 0.15);
  color: #f0ad4e;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-icon-box.icon-return[data-v-91ca8f07] {
  background-color: rgba(196, 54, 54, 0.15);
  color: #c43636;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-icon-box.icon-replenish[data-v-91ca8f07] {
  background-color: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-text[data-v-91ca8f07] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-text .toggle-label[data-v-91ca8f07] {
  font-size: 15px;
  font-weight: 600;
  color: #c9d1d9;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-text .toggle-desc[data-v-91ca8f07] {
  font-size: 13px;
  color: #8892b0;
  line-height: 1.4;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-text .toggle-meta[data-v-91ca8f07] {
  font-size: 12px;
  color: #0066CC;
}
.supply-auto .toggle-grid .toggle-item .toggle-info .toggle-text .toggle-meta.muted[data-v-91ca8f07] {
  color: #5a6785;
}
.supply-auto .toggle-grid .toggle-item .toggle-control[data-v-91ca8f07] {
  flex-shrink: 0;
  margin-left: 20px;
}
.supply-auto .global-toggle-section[data-v-91ca8f07] {
  margin-top: 8px;
  padding: 0 20px;
}
.supply-auto .global-toggle-section .section-divider[data-v-91ca8f07] {
  border-color: #2a2a4a;
  margin: 12px 0;
}
.supply-auto .global-toggle-section .global-toggle-row[data-v-91ca8f07] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0 16px;
}
.supply-auto .global-toggle-section .global-toggle-row .global-toggle-info[data-v-91ca8f07] {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.supply-auto .global-toggle-section .global-toggle-row .global-toggle-info .global-toggle-label[data-v-91ca8f07] {
  font-size: 14px;
  font-weight: 600;
  color: #c9d1d9;
}
.supply-auto .global-toggle-section .global-toggle-row .global-toggle-info .global-toggle-desc[data-v-91ca8f07] {
  font-size: 12px;
  color: #5a6785;
}
.supply-auto .save-bar[data-v-91ca8f07] {
  margin-top: 24px;
  display: flex;
  justify-content: center;
}
.supply-auto .save-bar .btn-icon[data-v-91ca8f07] {
  margin-right: 4px;
}
.supply-auto[data-v-91ca8f07] .el-dialog {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
}
.supply-auto[data-v-91ca8f07] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #2a2a4a;
  padding: 18px 24px;
  margin: 0;
}
.supply-auto[data-v-91ca8f07] .el-dialog .el-dialog__header .el-dialog__title {
  color: #c9d1d9;
  font-size: 16px;
  font-weight: 600;
}
.supply-auto[data-v-91ca8f07] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #5a6785;
}
.supply-auto[data-v-91ca8f07] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #8892b0;
}
.supply-auto[data-v-91ca8f07] .el-dialog .el-dialog__body {
  padding: 24px;
  color: #8892b0;
}
.supply-auto[data-v-91ca8f07] .el-dialog .el-dialog__footer {
  border-top: 1px solid #2a2a4a;
  padding: 14px 24px;
}
.supply-auto .delete-confirm-body[data-v-91ca8f07] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 0;
}
.supply-auto .delete-confirm-body .del-warn-icon[data-v-91ca8f07] {
  font-size: 22px;
  color: #f0ad4e;
  flex-shrink: 0;
  margin-top: 2px;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-title[data-v-91ca8f07] {
  color: #c9d1d9;
  font-size: 15px;
  font-weight: 600;
  display: block;
  margin-bottom: 12px;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-summary[data-v-91ca8f07] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-summary li[data-v-91ca8f07] {
  font-size: 14px;
  color: #8892b0;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-summary li .summary-label[data-v-91ca8f07] {
  display: inline-block;
  min-width: 110px;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-summary li .summary-value[data-v-91ca8f07] {
  font-weight: 600;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-summary li .summary-value.val-on[data-v-91ca8f07] {
  color: #2ecc71;
}
.supply-auto .delete-confirm-body .confirm-text-block .confirm-summary li .summary-value.val-off[data-v-91ca8f07] {
  color: #5a6785;
}
.supply-auto .btn-cancel[data-v-91ca8f07] {
  background-color: #38405c;
  color: #8892b0;
  border: 1px solid #2a2a4a;
}
.supply-auto .btn-cancel[data-v-91ca8f07]:hover {
  background-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  color: #c9d1d9;
  border-color: #38405c;
}
.supply-auto[data-v-91ca8f07] .el-switch__core {
  border-color: #2a2a4a;
  background-color: #38405c;
}
.supply-auto[data-v-91ca8f07] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #0052a3;
  --el-button-hover-border-color: #0052a3;
  --el-button-active-bg-color: #004080;
  --el-button-active-border-color: #004080;
}
.supply-auto[data-v-91ca8f07] .el-loading-mask {
  background-color: rgba(26, 26, 46, 0.6);
}.supply-code[data-v-7dbca928] {
  min-height: 100%;
  background-color: #1a1a2e;
  padding: 20px 24px 40px;
}
.supply-code .app-breadcrumb[data-v-7dbca928] {
  margin-bottom: 20px;
}
.supply-code .app-breadcrumb[data-v-7dbca928] .el-breadcrumb__inner {
  color: #5a6785;
  font-size: 13px;
}
.supply-code .app-breadcrumb[data-v-7dbca928] .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  color: #8892b0;
}
.supply-code .page-header[data-v-7dbca928] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
.supply-code .page-header .page-title[data-v-7dbca928] {
  font-size: 20px;
  font-weight: 600;
  color: #c9d1d9;
  margin: 0;
}
.supply-code .page-header .header-actions[data-v-7dbca928] {
  display: flex;
  align-items: center;
  gap: 8px;
}
.supply-code .page-header .btn-icon[data-v-7dbca928] {
  margin-right: 4px;
}
.supply-code .data-card[data-v-7dbca928] {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 8px;
}
.supply-code .data-card[data-v-7dbca928] .el-table {
  background-color: transparent;
  color: #c9d1d9;
  --el-table-border-color: $border-color;
  --el-table-header-bg-color: $bg-page;
  --el-table-tr-bg-color: $bg-card;
  --el-table-row-hover-bg-color: $bg-hover;
  --el-table-striped-row-bg-color: $bg-page;
}
.supply-code .data-card[data-v-7dbca928] .el-table th.el-table__cell {
  background-color: #1a1a2e;
  color: #8892b0;
  font-weight: 500;
  border-bottom: 1px solid #2a2a4a;
}
.supply-code .data-card[data-v-7dbca928] .el-table td.el-table__cell {
  border-bottom: 1px solid #2a2a4a;
}
.supply-code .data-card .code-badge[data-v-7dbca928] {
  display: inline-block;
  background-color: rgba(0, 102, 204, 0.12);
  color: #0066CC;
  font-family: "Courier New", monospace;
  font-size: 13px;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 4px;
}
.supply-code .data-card .custom-code-val[data-v-7dbca928] {
  color: #c9d1d9;
  font-family: "Courier New", monospace;
  font-size: 13px;
}
.supply-code .data-card .no-code[data-v-7dbca928] {
  color: #5a6785;
  font-size: 13px;
}
.supply-code .data-card .notes-tags[data-v-7dbca928] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.supply-code .notes-input-wrapper .tag-list[data-v-7dbca928] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.supply-code[data-v-7dbca928] .el-dialog {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
  border-radius: 10px;
}
.supply-code[data-v-7dbca928] .el-dialog .el-dialog__header {
  border-bottom: 1px solid #2a2a4a;
  padding: 18px 24px;
  margin: 0;
}
.supply-code[data-v-7dbca928] .el-dialog .el-dialog__header .el-dialog__title {
  color: #c9d1d9;
  font-size: 16px;
  font-weight: 600;
}
.supply-code[data-v-7dbca928] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
  color: #5a6785;
}
.supply-code[data-v-7dbca928] .el-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close:hover {
  color: #8892b0;
}
.supply-code[data-v-7dbca928] .el-dialog .el-dialog__body {
  padding: 24px;
  color: #8892b0;
}
.supply-code[data-v-7dbca928] .el-dialog .el-dialog__footer {
  border-top: 1px solid #2a2a4a;
  padding: 14px 24px;
}
.supply-code[data-v-7dbca928] .el-form-item__label {
  color: #8892b0;
  font-size: 14px;
}
.supply-code[data-v-7dbca928] .el-input__wrapper {
  background-color: #1e2a4a;
  border: 1px solid #2a2a4a;
  border-radius: 6px;
  box-shadow: none;
  transition: border-color 0.2s;
}
.supply-code[data-v-7dbca928] .el-input__wrapper:hover {
  border-color: #38405c;
}
.supply-code[data-v-7dbca928] .el-input__wrapper.is-focus {
  border-color: #0066CC;
}
.supply-code[data-v-7dbca928] .el-input__inner {
  color: #c9d1d9;
  background-color: transparent;
}
.supply-code[data-v-7dbca928] .el-input__inner::placeholder {
  color: #5a6785;
}
.supply-code[data-v-7dbca928] .el-input__prefix {
  color: #5a6785;
}
.supply-code[data-v-7dbca928] .el-select-dropdown {
  background-color: #16213e;
  border: 1px solid #2a2a4a;
}
.supply-code[data-v-7dbca928] .el-select-dropdown .el-select-dropdown__item {
  color: #8892b0;
}
.supply-code[data-v-7dbca928] .el-select-dropdown .el-select-dropdown__item:hover, .supply-code[data-v-7dbca928] .el-select-dropdown .el-select-dropdown__item.hover {
  background-color: #1e2a4a;
  color: #c9d1d9;
}
.supply-code[data-v-7dbca928] .el-select-dropdown .el-select-dropdown__item.selected {
  color: #0066CC;
  font-weight: 600;
}
.supply-code .delete-confirm-body[data-v-7dbca928] {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 4px 0;
}
.supply-code .delete-confirm-body .del-warn-icon[data-v-7dbca928] {
  font-size: 22px;
  color: #f0ad4e;
  flex-shrink: 0;
  margin-top: 2px;
}
.supply-code .delete-confirm-body .del-warn-text[data-v-7dbca928] {
  color: #8892b0;
  font-size: 14px;
  line-height: 1.6;
}
.supply-code .delete-confirm-body .del-warn-text em[data-v-7dbca928] {
  color: #c43636;
  font-style: normal;
  font-weight: 600;
}
.supply-code .edit-label[data-v-7dbca928] {
  color: #c9d1d9;
  font-size: 14px;
}
.supply-code .btn-cancel[data-v-7dbca928] {
  background-color: #38405c;
  color: #8892b0;
  border: 1px solid #2a2a4a;
}
.supply-code .btn-cancel[data-v-7dbca928]:hover {
  background-color: rgb(65.6486486486, 75.027027027, 107.8513513514);
  color: #c9d1d9;
  border-color: #38405c;
}
.supply-code[data-v-7dbca928] .el-tag--success {
  background-color: rgba(46, 204, 113, 0.15);
  border-color: transparent;
  color: #2ecc71;
}
.supply-code[data-v-7dbca928] .el-tag--danger {
  background-color: rgba(196, 54, 54, 0.15);
  border-color: transparent;
  color: #c43636;
}
.supply-code[data-v-7dbca928] .el-tag--warning {
  background-color: rgba(240, 173, 78, 0.15);
  border-color: transparent;
  color: #f0ad4e;
}
.supply-code[data-v-7dbca928] .el-tag--primary {
  background-color: rgba(0, 102, 204, 0.15);
  border-color: transparent;
  color: #0066CC;
}
.supply-code[data-v-7dbca928] .el-tag--info {
  background-color: rgba(90, 103, 133, 0.2);
  border-color: transparent;
  color: #8892b0;
}
.supply-code[data-v-7dbca928] .el-tag {
  background-color: rgba(90, 103, 133, 0.2);
  border-color: transparent;
  color: #8892b0;
}
.supply-code[data-v-7dbca928] .el-button--primary {
  --el-button-bg-color: #0066CC;
  --el-button-border-color: #0066CC;
  --el-button-hover-bg-color: #0052a3;
  --el-button-hover-border-color: #0052a3;
  --el-button-active-bg-color: #004080;
  --el-button-active-border-color: #004080;
}
.supply-code[data-v-7dbca928] .el-button--danger {
  --el-button-bg-color: #c43636;
  --el-button-border-color: #c43636;
  --el-button-hover-bg-color: #a82a2a;
  --el-button-hover-border-color: #a82a2a;
  --el-button-active-bg-color: #8f1f1f;
  --el-button-active-border-color: #8f1f1f;
}
.supply-code[data-v-7dbca928] .el-loading-mask {
  background-color: rgba(26, 26, 46, 0.6);
}
.df-page[data-v-cdf712af]{padding:24px;padding-top:48px;min-height:100%;background:#0f172a;color:#c9d1d9}
.df-cards[data-v-cdf712af]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.df-card[data-v-cdf712af]{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:20px 16px;text-align:center;transition:transform .2s,border-color .2s,box-shadow .2s;cursor:pointer;position:relative;overflow:hidden}
.df-card[data-v-cdf712af]:hover{transform:translateY(-3px);box-shadow:0 8px 25px rgba(0,0,0,.35)}
.df-card[data-v-cdf712af]:active{transform:translateY(-1px) scale(.98)}
.df-card[data-v-cdf712af]::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.card-blue[data-v-cdf712af]{border-color:rgba(59,130,246,.35)}.card-blue[data-v-cdf712af]::before{background:linear-gradient(90deg,#3B82F6,#60A5FA)}.card-blue[data-v-cdf712af]:hover{border-color:#3B82F6;box-shadow:0 8px 30px rgba(59,130,246,.2)}
.card-orange[data-v-cdf712af]{border-color:rgba(245,158,11,.35)}.card-orange[data-v-cdf712af]::before{background:linear-gradient(90deg,#F59E0B,#FBBF24)}.card-orange[data-v-cdf712af]:hover{border-color:#F59E0B;box-shadow:0 8px 30px rgba(245,158,11,.2)}
.card-red[data-v-cdf712af]{border-color:rgba(239,68,68,.35)}.card-red[data-v-cdf712af]::before{background:linear-gradient(90deg,#EF4444,#F87171)}.card-red[data-v-cdf712af]:hover{border-color:#EF4444;box-shadow:0 8px 30px rgba(239,68,68,.2)}
.dfc-icon[data-v-cdf712af]{margin-bottom:8px;display:flex;justify-content:center}
.card-blue .dfc-icon[data-v-cdf712af]{color:#3B82F6}.card-orange .dfc-icon[data-v-cdf712af]{color:#F59E0B}.card-red .dfc-icon[data-v-cdf712af]{color:#EF4444}
.dfc-num[data-v-cdf712af]{font-size:36px;font-weight:800;color:#f8fafc;line-height:1.1;font-family:'JetBrains Mono','Fira Code',monospace}
.dfc-lbl[data-v-cdf712af]{font-size:13px;color:#94a3b8;margin-top:8px}
.df-block[data-v-cdf712af]{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:20px;margin-bottom:20px}
.chart-header[data-v-cdf712af]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.chart-title[data-v-cdf712af]{font-size:14px;font-weight:600;color:#e2e8f0}
.chart-filters[data-v-cdf712af]{display:flex;gap:6px}
.chart-body[data-v-cdf712af]{min-height:350px}
.chart-canvas[data-v-cdf712af]{width:100%;height:350px}
.chart-empty[data-v-cdf712af]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:350px;color:#64748b;gap:12px;font-size:14px}
.df-table-card[data-v-cdf712af]{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:4px;overflow:hidden}
.df-bar[data-v-cdf712af]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding:12px 16px}
.df-pager[data-v-cdf712af]{display:flex;justify-content:flex-end;padding:14px}
.empty-state[data-v-cdf712af]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;color:#64748b;gap:12px}
.empty-state p[data-v-cdf712af]{margin:0;font-size:14px}

/* ── 表格行 hover ── */
[data-v-cdf712af] .log-row{transition:background .15s}
[data-v-cdf712af] .log-row:hover{background:rgba(59,130,246,.06)!important}

/* ── 详情弹窗纵向布局 ── */
.intrusion-detail-dialog .detail-section[data-v-cdf712af]{display:flex;flex-direction:column;gap:16px;padding:8px 0}
.detail-row[data-v-cdf712af]{display:flex;align-items:flex-start;gap:16px;padding:8px 12px;background:rgba(30,41,59,.5);border-radius:6px;border:1px solid rgba(51,65,85,.3)}
.detail-label[data-v-cdf712af]{flex-shrink:0;width:80px;color:#94a3b8;font-size:13px;line-height:24px}
.detail-value[data-v-cdf712af]{color:#e2e8f0;font-size:13px;line-height:24px;word-break:break-all;font-family:'JetBrains Mono','Fira Code',monospace}
.page[data-v-d04dcd37] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-d04dcd37] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-d04dcd37] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-d04dcd37] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-103fc423] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-103fc423] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-103fc423] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-103fc423] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-ecc73fd9] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-ecc73fd9] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-ecc73fd9] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-ecc73fd9] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.page[data-v-0028f6df] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-0028f6df] {
  display: flex;
  just-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-0028f6df] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-0028f6df] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}
.df-page[data-v-cec0d4d7]{padding:24px;padding-top:48px;min-height:100%;background:#0f172a;color:#c9d1d9}
.df-cards[data-v-cec0d4d7]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.df-card[data-v-cec0d4d7]{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:20px 16px;text-align:center;transition:transform .2s,border-color .2s,box-shadow .2s;position:relative;overflow:hidden}
.df-card[data-v-cec0d4d7]:hover{transform:translateY(-3px);box-shadow:0 8px 25px rgba(0,0,0,.35)}
.df-card[data-v-cec0d4d7]::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.card-blue[data-v-cec0d4d7]{border-color:rgba(59,130,246,.35)}.card-blue[data-v-cec0d4d7]::before{background:linear-gradient(90deg,#3B82F6,#60A5FA)}.card-blue[data-v-cec0d4d7]:hover{border-color:#3B82F6;box-shadow:0 8px 30px rgba(59,130,246,.2)}
.card-green[data-v-cec0d4d7]{border-color:rgba(16,185,129,.35)}.card-green[data-v-cec0d4d7]::before{background:linear-gradient(90deg,#10B981,#34D399)}.card-green[data-v-cec0d4d7]:hover{border-color:#10B981;box-shadow:0 8px 30px rgba(16,185,129,.2)}
.card-gray[data-v-cec0d4d7]{border-color:rgba(107,114,128,.35)}.card-gray[data-v-cec0d4d7]::before{background:linear-gradient(90deg,#6B7280,#9CA3AF)}.card-gray[data-v-cec0d4d7]:hover{border-color:#6B7280;box-shadow:0 8px 30px rgba(107,114,128,.2)}
.card-red[data-v-cec0d4d7]{border-color:rgba(239,68,68,.35)}.card-red[data-v-cec0d4d7]::before{background:linear-gradient(90deg,#EF4444,#F87171)}.card-red[data-v-cec0d4d7]:hover{border-color:#EF4444;box-shadow:0 8px 30px rgba(239,68,68,.2)}
.dfc-icon[data-v-cec0d4d7]{margin-bottom:8px;display:flex;justify-content:center}
.card-blue .dfc-icon[data-v-cec0d4d7]{color:#3B82F6}.card-green .dfc-icon[data-v-cec0d4d7]{color:#10B981}.card-gray .dfc-icon[data-v-cec0d4d7]{color:#6B7280}.card-red .dfc-icon[data-v-cec0d4d7]{color:#EF4444}
.dfc-num[data-v-cec0d4d7]{font-size:36px;font-weight:800;color:#f8fafc;line-height:1.1;font-family:'JetBrains Mono','Fira Code',monospace}
.dfc-lbl[data-v-cec0d4d7]{font-size:13px;color:#94a3b8;margin-top:8px}
.df-table-card[data-v-cec0d4d7]{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:4px;overflow:hidden}
.df-bar[data-v-cec0d4d7]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding:12px 16px}
.df-pager[data-v-cec0d4d7]{display:flex;justify-content:flex-end;padding:14px}
.empty-state[data-v-cec0d4d7]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0;color:#64748b;gap:12px}
.empty-state p[data-v-cec0d4d7]{margin:0;font-size:14px}
[data-v-cec0d4d7] .df-row{transition:background .15s}
[data-v-cec0d4d7] .df-row:hover{background:rgba(59,130,246,.06)!important}

/* ── 导入区域 ── */
.import-area[data-v-cec0d4d7]{display:flex;flex-direction:column;gap:12px}
.import-toolbar[data-v-cec0d4d7]{display:flex;align-items:center;gap:12px}
.import-hint[data-v-cec0d4d7]{font-size:12px;color:#94a3b8}
.import-error[data-v-cec0d4d7]{display:flex;align-items:flex-start;gap:6px;padding:8px 12px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:13px;line-height:1.5}
.page[data-v-8209d6ca] {
  padding: 24px;
  min-height: 100%;
  box-sizing: border-box;
}
.page-header[data-v-8209d6ca] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.page-title[data-v-8209d6ca] {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #e0e4ec;
}
.card[data-v-8209d6ca] {
  background: #1d2028;
  border-color: #2a2d35;
  color: #c0c6d0;
}.not-found-page[data-v-7e3fb3c5] {
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #1a1d25;
}
.code[data-v-7e3fb3c5] {
  font-size: 80px;
  font-weight: 800;
  color: #409eff;
  margin: 0;
}
.msg[data-v-7e3fb3c5] {
  font-size: 18px;
  color: #6b7280;
  margin: 8px 0 24px;
}/*$vite$:1*/