:root{--primary: #4a90e2;--primary-deep: #3a7bd5;--accent: #8e7cf3;--success: #34c77b;--warning: #f5a623;--danger: #e35d6a;--text-1: #1f2d3d;--text-2: #5a6a7e;--text-3: #9aa7b8;--glass-bg: rgba(255, 255, 255, .62);--glass-bg-strong: rgba(255, 255, 255, .78);--glass-border: rgba(255, 255, 255, .65);--glass-shadow: 0 8px 32px rgba(31, 45, 61, .08);--glass-blur: 20px;--radius-lg: 20px;--radius-md: 14px;--radius-sm: 10px}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{font-family:PingFang SC,HarmonyOS Sans SC,Microsoft YaHei,-apple-system,sans-serif;color:var(--text-1);-webkit-font-smoothing:antialiased;overflow:hidden}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:linear-gradient(135deg,#eef4fd,#f3effc 45%,#e8f6f1)}.app-bg:before,.app-bg:after{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;animation:blob-float 18s ease-in-out infinite alternate}.app-bg:before{width:480px;height:480px;left:-120px;top:-100px;background:radial-gradient(circle,#a8c8f0 0%,transparent 70%)}.app-bg:after{width:560px;height:560px;right:-160px;bottom:-140px;background:radial-gradient(circle,#cabcf5 0%,transparent 70%);animation-delay:-9s}@keyframes blob-float{0%{transform:translate(0) scale(1)}50%{transform:translate(60px,40px) scale(1.12)}to{transform:translate(-40px,70px) scale(.95)}}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;cursor:pointer;font-size:14px;padding:9px 18px;border-radius:var(--radius-sm);transition:all .22s ease;font-family:inherit}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:#fff;box-shadow:0 4px 14px #4a90e259}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #4a90e273}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-ghost{background:#ffffff8c;color:var(--text-2);border:1px solid rgba(31,45,61,.1)}.btn-ghost:hover{background:#ffffffd9;color:var(--primary)}.btn-danger-ghost{background:transparent;color:var(--danger);border:1px solid rgba(227,93,106,.35)}.btn-danger-ghost:hover{background:#e35d6a14}.input{width:100%;padding:11px 14px;border:1px solid rgba(31,45,61,.12);border-radius:var(--radius-sm);background:#ffffffb3;font-size:14px;color:var(--text-1);outline:none;transition:border-color .2s,box-shadow .2s;font-family:inherit}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4a90e226}.select{padding:8px 12px;border:1px solid rgba(31,45,61,.12);border-radius:var(--radius-sm);background:#ffffffb3;font-size:13px;color:var(--text-2);outline:none;cursor:pointer;font-family:inherit}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;padding:12px 14px;color:var(--text-3);font-weight:500;font-size:12.5px;border-bottom:1px solid rgba(31,45,61,.08);white-space:nowrap}.table td{padding:13px 14px;border-bottom:1px solid rgba(31,45,61,.05);color:var(--text-1)}.table tbody tr{transition:background .18s}.table tbody tr:hover{background:#4a90e20d}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.badge-blue{background:#4a90e21f;color:var(--primary-deep)}.badge-green{background:#34c77b24;color:#1d9d5f}.badge-orange{background:#f5a62326;color:#c77f0a}.badge-red{background:#e35d6a21;color:var(--danger)}.badge-gray{background:#9aa7b829;color:var(--text-2)}.badge-purple{background:#8e7cf324;color:#6a54e8}.page-enter-active{transition:opacity .32s ease,transform .32s ease}.page-leave-active{transition:opacity .18s ease}.page-enter-from{opacity:0;transform:translateY(14px)}.page-leave-to{opacity:0}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.stagger-item{opacity:0;animation:rise-in .5s cubic-bezier(.22,.72,.28,1) forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#1f2d3d29;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#1f2d3d47}::-webkit-scrollbar-track{background:transparent}.empty-tip{text-align:center;color:var(--text-3);font-size:13.5px;padding:44px 0}
