*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.flex{display:flex}.table{display:table}.hidden{display:none}.flex-shrink{flex-shrink:1}.flex-wrap{flex-wrap:wrap}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--brand:#7c3aed;--brand-d:#6d28d9;--brand-l:#a78bfa;--brand-ll:#f3eeff;--brand-bg:#fbfaff;--ink:#303133;--ink-2:#606266;--ink-3:#909399;--line:#e4e7ed;--ok:#67c23a;--warn:#e6a23c;--danger:#f56c6c}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}body,html{background:#f5f6fa;color:var(--ink);font:14px/1.6 Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;margin:0;padding:0}a{color:inherit;text-decoration:none}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:#ddd6fe;border-radius:4px}.page-title{color:var(--ink);font-size:17px;font-weight:700;margin-bottom:4px}.page-sub{color:var(--ink-3);font-size:12px;margin-bottom:16px}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.toolbar .sp{flex:1}.btn{align-items:center;background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);cursor:pointer;display:inline-flex;font-size:13px;font-weight:400;gap:5px;justify-content:center;line-height:1.2;padding:8px 16px;transition:all .2s;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.45}.btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-d);border-color:var(--brand-d);color:#fff}.btn-outline{background:#fff;border-color:var(--brand);color:var(--brand-d)}.btn-outline:hover:not(:disabled){background:var(--brand-ll)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink-2)}.btn-ghost:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.btn-danger{background:#fff;border-color:#fbc4c4;color:var(--danger)}.btn-danger:hover:not(:disabled){background:#fef0f0;border-color:var(--danger);color:var(--danger)}.btn-sm{border-radius:6px;font-size:12px;padding:4px 10px}.link-btn{background:none;border:none;color:var(--brand);cursor:pointer;font-size:13px;padding:0}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--danger)}.card,.page-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000a;margin-bottom:16px;padding:16px 18px}.panel-title{color:var(--ink);font-size:14px;font-weight:700;margin-bottom:12px}.field-label{color:var(--ink-2);display:block;font-size:13px;font-weight:400;margin-bottom:5px}.field-label .req{color:var(--danger);font-style:normal;margin-left:2px}.field{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);font-family:inherit;font-size:13px;outline:none;padding:7px 10px;transition:border-color .2s;width:100%}.field:focus{border-color:var(--brand)}.field::-moz-placeholder{color:#a8abb2}.field::placeholder{color:#a8abb2}textarea.field{line-height:1.7;resize:vertical}select.field{cursor:pointer}.field-hint{color:var(--ink-3);font-size:12px;margin-top:4px}.field-hint.warn{color:var(--warn)}.form-row{margin-bottom:14px}.form{display:grid;gap:12px 22px;grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}.tbl{border-collapse:collapse;width:100%}.tbl,.tbl th{font-size:13px}.tbl th{background:#f7f8fc;border-bottom:1px solid var(--line);color:var(--ink-3);font-weight:500;text-align:left;white-space:nowrap}.tbl td,.tbl th{padding:9px 12px}.tbl td{border-bottom:1px solid #f0f1f5;color:var(--ink);vertical-align:middle}.tbl tbody tr:hover td{background:#fafbff}.tbl .cell-sub{color:var(--ink-3);font-size:12px;margin-top:2px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:400;padding:2px 9px}.badge-ok{background:#f0f9eb;color:var(--ok)}.badge-off{background:#f4f4f5;color:var(--ink-3)}.badge-brand{background:var(--brand-ll);color:var(--brand)}.badge-warn{background:#fdf6ec;color:var(--warn)}.badge-danger{background:#fef0f0;color:var(--danger)}.side-link{align-items:center;border-left:3px solid transparent;border-radius:0;color:#a8a3c0;cursor:pointer;display:flex;font-size:13px;gap:9px;margin:0;padding:10px 18px;transition:all .15s}.side-link:hover{background:#7c3aed26;color:#fff}.side-link.active{background:linear-gradient(90deg,#7c3aede6,#6d28d966);border-left-color:var(--brand-l);color:#fff;font-weight:400}.side-group{align-items:center;color:#6b6590;cursor:pointer;display:flex;font-size:13px;font-weight:700;height:50px;justify-content:space-between;letter-spacing:1px;margin-top:6px;padding:0 18px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.side-group:hover{color:#c9c5dd}.side-group .arrow{display:inline-block;font-size:12px;transition:transform .2s}.side-group .arrow.collapsed{transform:rotate(-90deg)}.drawer-mask{background:#0006;inset:0;position:fixed;z-index:90}.drawer-panel{animation:slidein .22s ease-out;background:#fff;bottom:0;box-shadow:-8px 0 30px #00000026;display:flex;flex-direction:column;max-width:94vw;overflow-y:auto;padding:20px 24px;position:fixed;right:0;top:0;width:520px;z-index:95}@keyframes slidein{0%{opacity:.4;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.drawer-head{align-items:center;display:flex;font-size:15px;font-weight:700;justify-content:space-between;margin-bottom:16px}.drawer-head .x{color:var(--ink-3);cursor:pointer;font-size:18px;font-weight:400}.drawer-body{flex:1;overflow-y:auto}.drawer-foot{background:#fff;display:flex;gap:10px;justify-content:flex-end;padding-top:14px}.modal-mask{align-items:center;animation:fadein .18s;background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:96}@keyframes fadein{0%{opacity:0}to{opacity:1}}.modal-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #1a0b3b59;padding:24px;width:100%}.toast-wrap{align-items:center;display:flex;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:fixed;top:70px;transform:translate(-50%);z-index:120}.toast-item{animation:fadein .2s;border-radius:6px;box-shadow:0 2px 8px #0003;font-size:13px;font-weight:400;padding:10px 20px}.toast-err,.toast-item,.toast-ok{background:#303133;color:#fff}.toast-err{border:1px solid hsla(0,0%,100%,.15)}.switch{display:inline-block;flex-shrink:0;height:20px;position:relative;vertical-align:middle;width:36px}.switch input{height:0;opacity:0;width:0}.switch .track{background:#dcdfe6;border-radius:10px;cursor:pointer;inset:0;position:absolute;transition:background .2s}.switch .track:before{background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000040;content:"";height:16px;left:2px;position:absolute;top:2px;transition:left .2s;width:16px}.switch input:checked+.track{background:var(--brand)}.switch input:checked+.track:before{left:18px}.switch input:disabled+.track{cursor:not-allowed;opacity:.5}.upload-box{align-items:center;background:#fbfaff;border:1.5px dashed #c8c9e8;border-radius:8px;color:var(--ink-3);cursor:pointer;display:flex;flex-direction:column;font-size:12px;gap:3px;justify-content:center;overflow:hidden;position:relative;transition:all .2s}.upload-box:hover{border-color:var(--brand);color:var(--brand)}.upload-box.has-img{border-style:solid}.upload-box .plus{color:var(--ink-3);font-size:22px;line-height:1}.upload-box img{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.upload-box .file-name{background:#1f2937b8;bottom:0;color:#fff;font-size:12px;left:0;overflow:hidden;padding:4px 8px;position:absolute;right:0;text-overflow:ellipsis;white-space:nowrap}.pagebar{align-items:center;display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;padding-top:12px}.pagebar,.pagebar .total{color:var(--ink-3);font-size:12px}.pagebar .pages{align-items:center;display:flex;gap:5px}.pg-btn{background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--ink-2);cursor:pointer;font-size:12px;min-width:26px;padding:4px 9px;transition:all .15s}.pg-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.pg-btn.active{background:var(--brand);border-color:var(--brand);color:#fff}.pg-btn:disabled{cursor:not-allowed;opacity:.4}.tabs{border-bottom:1px solid var(--line);display:flex;gap:4px;margin-bottom:16px}.tab{border-bottom:2px solid transparent;color:var(--ink-3);cursor:pointer;font-size:13px;margin-bottom:-1px;padding:9px 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tab.active,.tab:hover{color:var(--brand)}.tab.active{border-bottom-color:var(--brand)}.notice{background:#fdf6ec;border:1px solid #f5dab1;border-radius:6px;color:#b88230;font-size:12px;margin-bottom:14px;padding:9px 13px}.thumb{background:linear-gradient(135deg,#8b5cf6,#4c1d95);border-radius:4px;height:36px;-o-object-fit:cover;object-fit:cover;width:52px}.thumb.sq{border-radius:6px;height:60px;width:60px}.step-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.step-head h3{font-size:14px;margin:0}.empty-tip{color:var(--ink-3);padding:48px 0}.empty-tip,.loading-tip{font-size:14px;text-align:center}.loading-tip{color:var(--brand-d);padding:32px 0}.stat-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.stat{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000a;padding:16px 18px}.stat .lb{color:var(--ink-3);font-size:12px}.stat .v{color:var(--ink);font-size:26px;font-weight:700;margin:4px 0 2px}.stat .delta{font-size:12px}.delta.up{color:var(--ok)}.delta.down{color:var(--danger)}.grid2{display:grid;gap:16px;grid-template-columns:1fr 1fr}.media-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}.media-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.media-card .img{align-items:center;background-position:50%;background-size:cover;background:#251a4d;color:#fff;display:flex;font-size:13px;height:110px;justify-content:center;padding:0 10px;text-align:center}.media-card .img.contain{background-repeat:no-repeat;background-size:contain;height:150px}.media-card .body{padding:10px 12px}.media-card .row{align-items:center;color:var(--ink-3);display:flex;font-size:12px;gap:8px;margin-bottom:8px}.media-card .ops{display:flex;gap:6px;margin-top:8px}.media-card .ops .btn{flex:1}.cert-grid{display:grid;gap:12px;grid-template-columns:repeat(5,1fr)}.cert-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding:8px}.cert-img{align-items:center;aspect-ratio:3/4;background-color:#fbfaff;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:4px;color:var(--brand-d);display:flex;font-size:13px;font-weight:600;justify-content:center;padding:0 8px;width:100%}.cert-img,.ud{text-align:center}.ud{border:1px solid var(--line);border-radius:4px;color:var(--ink-3);cursor:pointer;flex-shrink:0;font-size:11px;height:20px;line-height:18px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:20px}.ud:hover{border-color:var(--brand);color:var(--brand)}.ud.danger{color:var(--danger)}.ud.danger:hover{border-color:var(--danger)}.hbar{align-items:center;display:flex;font-size:12px;gap:10px;margin-bottom:9px}.hbar .name{color:var(--ink-3);text-align:right;width:52px}.hbar .track{background:#f2f3f7;border-radius:7px;flex:1;height:14px;overflow:hidden}.hbar .fill{background:linear-gradient(90deg,#8b5cf6,#6d28d9);border-radius:7px;height:100%}.hbar .n{color:var(--ink);width:44px}.chart-area{align-items:flex-end;gap:14px;height:170px;padding:6px 4px 0}.chart-area,.chart-col{display:flex;position:relative}.chart-col{align-items:center;cursor:default;flex:1;flex-direction:column;height:100%;justify-content:flex-end;min-width:6px}.chart-col .bar{border-radius:3px 3px 0 0;transition:height .3s;width:16px}.chart-col .bar.pv{background:linear-gradient(180deg,#8b5cf6,#6d28d9)}.chart-col .bar.uv{background:#d8ccf7}.chart-col .bars{align-items:flex-end;display:flex;gap:3px;height:100%;justify-content:center;width:100%}.chart-col:hover .bar{filter:brightness(1.15)}.chart-x{display:flex;gap:14px;padding:5px 4px 0}.chart-x .x-label{color:var(--ink-3);flex:1;font-size:11px;min-width:6px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.chart-col .tip{background:#303133;border-radius:5px;bottom:100%;box-shadow:0 2px 8px #0003;color:#fff;display:none;font-size:11px;left:50%;margin-bottom:8px;padding:4px 10px;pointer-events:none;position:absolute;transform:translate(-50%);white-space:nowrap;z-index:5}.chart-col:hover .tip{display:block}.chart-legend{color:var(--ink-3);display:flex;font-size:12px;gap:16px;margin-bottom:8px}.chart-legend .dot{border-radius:2px;display:inline-block;height:10px;margin-right:5px;vertical-align:-1px;width:10px}
