:root{--c4s-bg:#eef2f7;--c4s-bg-panel:#fff;--c4s-bg-soft:#f5f8fc;--c4s-sidebar:#0b1526;--c4s-sidebar-2:#122033;--c4s-accent:#0f9f9c;--c4s-accent-2:#1a7fbf;--c4s-accent-soft:#0f9f9c1f;--c4s-text:#1a2433;--c4s-text-secondary:#5b6b7c;--c4s-border:#d7e0ea;--c4s-radius:10px;--c4s-font:"IBM Plex Sans", "PingFang SC", "Microsoft YaHei", sans-serif;--c4s-font-display:"Orbitron", "IBM Plex Sans", sans-serif;--el-color-primary:#0f9f9c;--el-color-primary-light-3:#3fb5b2;--el-color-primary-light-5:#6fc8c6;--el-color-primary-light-7:#9fdad9;--el-color-primary-light-9:#e7f7f6;--el-color-primary-dark-2:#0c7f7d;--el-border-radius-base:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;font-family:var(--c4s-font);background:var(--c4s-bg);color:var(--c4s-text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.page-shell{position:relative}.page-shell:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#1a7fbf09 1px,#0000 1px),linear-gradient(90deg,#1a7fbf09 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at top,#000 35%,#0000 75%);mask-image:radial-gradient(at top,#000 35%,#0000 75%)}.page-shell>*{z-index:1;position:relative}.el-card{border:1px solid var(--c4s-border)!important;border-radius:var(--c4s-radius)!important;background:linear-gradient(#fff 0%,#fbfcfe 100%)!important;box-shadow:0 1px #0f233c08!important}.el-card__header{letter-spacing:.2px;font-weight:600;border-bottom-color:var(--c4s-border)!important}.el-table{--el-table-border-color:var(--c4s-border);--el-table-header-bg-color:#f3f7fb}.el-button--primary{--el-button-bg-color:var(--c4s-accent);--el-button-border-color:var(--c4s-accent);--el-button-hover-bg-color:#12b3b0;--el-button-hover-border-color:#12b3b0}.card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-pulse{0%,to{opacity:.55}50%{opacity:1}}.fade-up{animation:.45s both fade-up}
