:root{--primary:#4f6af0;--primary-hover:#3b55e0;--primary-active:#2f47cc;--primary-light:#eef0ff;--primary-bg:#f8f9ff;--primary-deep:#1e40af;--accent:#06b6d4;--accent-light:#ecfeff;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--bg-body:#f6f8fc;--bg-card:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inverse:#fff;--border:#e5eaf3;--border-light:#f1f5f9;--shadow-sm:0 0 0 1px #0f172a0a, 0 1px 2px -1px #0f172a0f, 0 2px 4px 0 #0f172a0a;--shadow-md:0 0 0 1px #0f172a0d, 0 2px 4px -1px #0f172a0f, 0 6px 16px -2px #0f172a14;--shadow-lg:0 0 0 1px #1e40af14, 0 8px 20px -4px #1e40af1f, 0 20px 48px -8px #1e40af29;--shadow-glow:0 8px 28px #4f6af029, 0 2px 8px #0f172a0d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Monaco, "Cascadia Code", monospace}*{box-sizing:border-box}html,body{font-family:var(--font-sans);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background:radial-gradient(1000px 460px at 90% -6%, #4f6af00d 0%, transparent 62%), radial-gradient(900px 440px at -6% 10%, #06b6d40a 0%, transparent 62%), var(--bg-body)}::selection{color:#0f172a;background:#4f6af029}.ant-table-tbody>tr>td,.ant-statistic-content,.ant-table-thead>tr>th{font-variant-numeric:tabular-nums}.ant-btn:focus-visible,.ant-input:focus-visible,.ant-select-selector:focus-visible,.ant-picker:focus-visible,.ant-input-affix-wrapper:focus-within{border-radius:8px;outline-offset:1px!important;outline:2px solid #1677ff!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus-within,.ant-select-focused .ant-select-selector,.ant-picker-focused{box-shadow:none!important;border-color:#d9d9d9!important}.ant-input-affix-wrapper:focus-within .ant-input:focus-visible{outline:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c7d3e6;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a8c8}.ant-card{border-radius:var(--radius-md)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-sm)!important;transition:box-shadow .25s,transform .25s,border-color .25s!important}.ant-card-hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)!important;border-color:#c7d6f8!important}.ant-table-wrapper .ant-table-thead>tr>th{color:var(--text-primary)!important;border-bottom:1px solid var(--border)!important;background:linear-gradient(#fafbff 0%,#f1f5ff 100%)!important;font-weight:600!important}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f6f9ff!important}.ant-btn{border-radius:var(--radius-sm)!important;transition:all .2s!important}.ant-btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.ant-btn-primary:not(.ant-btn-dangerous){background:linear-gradient(135deg,#4f6af0 0%,#3b82f6 100%)!important;border:none!important;box-shadow:0 4px 12px #4f6af047!important}.ant-btn-primary:not(.ant-btn-dangerous):hover{background:linear-gradient(135deg,#4360f2 0%,#2e6ff5 100%)!important;box-shadow:0 6px 16px #4f6af061!important}.ant-btn-primary:not(.ant-btn-dangerous):active{background:linear-gradient(135deg,#3a56e8 0%,#255fe8 100%)!important;box-shadow:0 2px 8px #4f6af04d!important}.ant-btn-primary.ant-btn-background-ghost:not(.ant-btn-dangerous),.ant-btn-primary.ant-btn-background-ghost:not(.ant-btn-dangerous):hover,.ant-btn-primary.ant-btn-background-ghost:not(.ant-btn-dangerous):active{color:#4f6af0!important;box-shadow:none!important;background:0 0!important;border:1px solid #4f6af0!important;transform:none!important}.ant-btn-primary.ant-btn-background-ghost:not(.ant-btn-dangerous):hover{color:#3b55e0!important;background:#4f6af00f!important;border-color:#3b55e0!important}.ant-modal-content{box-shadow:0 12px 40px -8px #1e40af38,0 2px 8px #0f172a14!important}.ant-dropdown .ant-dropdown-menu,.ant-select-dropdown,.ant-picker-dropdown{border-radius:12px!important;box-shadow:0 10px 32px #0f172a1f!important}.login-card{border-radius:20px!important}.glass-header{-webkit-backdrop-filter:blur(12px);background:#ffffffd1!important;border-bottom:1px solid #e2e8f0d9!important;box-shadow:0 1px 2px #0f172a08,0 10px 28px -14px #1e40af29!important}.header-icon-btn{transition:all .18s!important}.header-icon-btn:hover{transform:translateY(-1px);color:var(--primary)!important;background:#4f6af014!important}.header-user:hover{background:#f3f6ff}.page-toolbar{z-index:99;-webkit-backdrop-filter:blur(12px);background:#ffffffd1;border-bottom:1px solid #e2e8f0cc;align-items:center;gap:12px;padding:8px 24px;display:flex;position:sticky;top:56px}.dash-hero{box-shadow:var(--shadow-lg);background:linear-gradient(120deg,#1e40af 0%,#2563eb 48%,#0891b2 100%);border-radius:18px;position:relative;overflow:hidden}.dash-hero:before{content:"";pointer-events:none;will-change:transform;background:radial-gradient(circle,#ffffff38 0%,#0000 62%);border-radius:50%;width:280px;height:280px;animation:10s ease-in-out infinite alternate heroOrbA;position:absolute;top:-90px;right:-60px}.dash-hero:after{content:"";pointer-events:none;will-change:transform;background:radial-gradient(circle,#06b6d459 0%,#0000 65%);border-radius:50%;width:240px;height:240px;animation:13s ease-in-out infinite alternate heroOrbB;position:absolute;bottom:-120px;left:36%}.dash-hero>*{z-index:1;position:relative}@keyframes heroOrbA{0%{transform:translate(0,0)scale(1)}to{transform:translate(-26px,18px)scale(1.16)}}@keyframes heroOrbB{0%{transform:translate(0,0)scale(1)}to{transform:translate(22px,-18px)scale(1.12)}}.side-nav-item{cursor:pointer;color:#475569;border-radius:10px;align-items:center;gap:10px;margin:2px 10px;padding:8px 12px 8px 14px;text-decoration:none;transition:background .18s,color .18s,box-shadow .18s;display:flex;position:relative}.side-nav-item:focus-visible{outline-offset:-2px;outline:2px solid #4f6af0}.side-nav-item:hover{color:#2563eb;background:#f3f6ff}.side-nav-item.active{color:#2563eb;background:linear-gradient(90deg,#eef2ff 0%,#f6f9ff 100%);font-weight:600;box-shadow:inset 0 0 0 1px #4f6af01f}.side-nav-item.active:before{content:"";background:linear-gradient(#4f6af0,#06b6d4);border-radius:0 4px 4px 0;width:4px;height:20px;position:absolute;top:50%;left:-10px;transform:translateY(-50%);box-shadow:0 0 8px #4f6af080}.side-nav-item .nav-ic{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;transition:background .18s,box-shadow .18s,transform .18s;display:flex}.side-nav-item:hover .nav-ic{transform:scale(1.06)}.side-nav-item.active .nav-ic{transform:scale(1.05);box-shadow:0 2px 6px #4f6af033;color:#2563eb!important;background:#fff!important}.side-summary{background:linear-gradient(#f8faff 0%,#f4f8ff 100%);border:1px solid #e7edfa;border-radius:12px;padding:12px 14px}.side-warn{background:linear-gradient(135deg,#fffbeb 0%,#fff7e6 100%);border:1px solid #fde68a;border-radius:12px;padding:12px 14px}.side-todo-row{cursor:pointer;border-radius:8px;align-items:center;gap:8px;margin:0 -8px;padding:6px 8px;transition:background .15s;display:flex}.side-todo-row:hover{background:#4f6af00f}.alert-card{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:14px;padding:16px 18px;transition:box-shadow .22s,transform .22s,border-color .22s;display:flex}.alert-card:hover{box-shadow:var(--shadow-glow);border-color:#c7d6f8;transform:translateY(-3px)}.alert-ic{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:19px;display:flex}.alert-num{color:#0f172a;font-size:21px;font-weight:800;line-height:1}.alert-t{color:#64748b;margin-top:4px;font-size:12px}.alert-go{color:#2563eb;margin-left:auto;font-size:13px;transition:transform .2s}.alert-card:hover .alert-go{transform:translate(3px)}.stat-card{position:relative;overflow:hidden}.stat-card:before{content:"";opacity:0;z-index:1;background:linear-gradient(90deg,#4f6af0,#06b6d4);height:3px;transition:opacity .25s;position:absolute;top:0;left:0;right:0}.stat-card:hover:before{opacity:1}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)!important}.cat-card{transition:transform .22s,box-shadow .22s,border-color .22s!important}.cat-card:hover{transform:translateY(-3px);border-color:#c7d6f8!important;box-shadow:0 10px 28px #4f6af021,0 2px 6px #0f172a0d!important}.cat-card .cat-go{transition:transform .2s}.cat-card:hover .cat-go{transform:translate(4px)}.cat-stat{transition:transform .2s,box-shadow .2s}.cat-stat:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0f172a12}.login-bg{background:radial-gradient(1000px 620px at 85% -10%,#4f6af024 0%,#0000 62%),radial-gradient(820px 520px at -8% 25%,#06b6d41f 0%,#0000 60%),radial-gradient(720px 420px at 50% 118%,#2563eb1a 0%,#0000 60%),linear-gradient(160deg,#f2f6ff 0%,#f8fafc 46%,#edfbfe 100%)}.login-bg:before{content:"";pointer-events:none;background-image:linear-gradient(#4f6af00d 1px,#0000 1px),linear-gradient(90deg,#4f6af00d 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#0000008c 0%,#0000 78%);mask-image:radial-gradient(#0000008c 0%,#0000 78%)}.login-glow-a{pointer-events:none;will-change:transform;background:radial-gradient(circle,#2563eb1f 0%,#0000 65%);border-radius:50%;width:520px;height:520px;animation:9s ease-in-out infinite alternate glowDriftA;position:absolute;top:-140px;right:-100px}.login-glow-b{pointer-events:none;will-change:transform;background:radial-gradient(circle,#06b6d41f 0%,#0000 65%);border-radius:50%;width:460px;height:460px;animation:11s ease-in-out infinite alternate glowDriftB;position:absolute;bottom:-160px;left:-120px}@keyframes glowDriftA{0%{transform:translate(0,0)scale(1)}to{transform:translate(-30px,26px)scale(1.12)}}@keyframes glowDriftB{0%{transform:translate(0,0)scale(1)}to{transform:translate(26px,-22px)scale(1.1)}}.page-enter{animation:.26s pageFadeIn}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media print{.glass-header,.page-toolbar{display:none!important}}@media (prefers-reduced-motion:reduce){.ant-card,.ant-btn,.alert-card,.stat-card,.cat-card,.cat-stat,.side-nav-item,.header-user,.side-todo-row,.dash-hero,.login-glow-a,.login-glow-b{transition:none!important;animation:none!important;transform:none!important}.dash-hero:before,.dash-hero:after,.page-enter{animation:none}}.ledger-sheet .ant-table{border:none!important;border-radius:0!important}.ledger-sheet .ant-table-container,.ledger-sheet .ant-table-content,.ledger-sheet .ant-table-body{border-radius:0!important}.ledger-sheet .ant-table-cell{line-height:20px;border-radius:0!important}.ledger-sheet .ant-table .ant-table-thead>tr>th{letter-spacing:.06em;white-space:nowrap;color:#6b7280!important;background:0 0!important;border:none!important;border-bottom:1px solid #e5e7eb!important;padding:12px!important;font-size:12px!important;font-weight:600!important}.ledger-sheet .ant-table-tbody>tr>td{white-space:nowrap;font-size:13.5px;background:0 0!important;border:none!important;border-bottom:1px solid #eff1f4!important;padding:13px 12px!important}.ledger-sheet .ant-table-tbody>tr:last-child>td{border-bottom:1px solid #e5e7eb!important}.ledger-sheet .ant-table-tbody>tr:hover>td{background:#f9fafb!important}.ledger-sheet .ant-table-tbody>tr.ant-table-expanded-row>td{background:#fafbfc!important}.ledger-sheet .ant-table-summary>tr>td{color:#6b7280!important;background:0 0!important;border:none!important;border-top:1px solid #e5e7eb!important;padding:12px!important;font-weight:600!important}.ledger-sheet .ant-table-sticky-holder{box-shadow:0 1px #e5e7eb;background:#fff!important;border:none!important}
