:root{--ink: #171717;--seal-red: #CC262C;--navy: #1B2A4A;--navy-dark: #121C33;--gold: #B8964A;--bg: #F5F6F8;--surface: #FFFFFF;--border: #E4E7EB;--border-strong: #C7CBD2;--text-primary: #1A1F2B;--text-secondary: #596373;--text-tertiary: #8A94A3;--success: #1B7F4D;--success-bg: #F1F4EC;--danger: #CC262C;--danger-bg: #FDF0F0;--warn: #8A6D2F;--warn-bg: #F6F1E3;--info-bg: #EEF1F6;--sidebar-w: 240px;--topbar-h: 64px;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--r-xl: 10px;--r-2xl: 12px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--shadow-card: 0 2px 8px rgba(16, 21, 32, .04);--shadow-btn: 0 6px 14px rgba(11, 18, 33, .28);--shadow-btn-hover: 0 8px 20px rgba(11, 18, 33, .32);--shadow-pop: 0 20px 60px rgba(11, 18, 33, .25);--shadow-hover: 0 6px 18px rgba(16, 21, 32, .09);--dur-instant: 90ms;--dur-fast: .15s;--dur-base: .22s;--dur-slow: .32s;--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.32, .64, 1);--font-sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-serif: "Noto Serif SC", "Songti SC", "SimSun", serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg);font-size:14px;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer}input{font-family:inherit;outline:none}.view-login{display:flex;width:100%;height:100%;min-height:640px;background:var(--surface)}.login-brand{width:560px;flex-shrink:0;background:var(--navy-dark);display:flex;flex-direction:column;justify-content:space-between;padding:48px 56px}.brand-middle{display:flex;flex-direction:column;gap:20px}.brand-accent{width:56px;height:4px;background:var(--seal-red);border-radius:2px}.brand-title{font-family:var(--font-serif);font-size:34px;font-weight:700;color:#fff;line-height:48px;letter-spacing:1px}.brand-desc{font-size:15px;color:#8a97ad;line-height:26px}.brand-bottom{display:flex;flex-direction:column;gap:10px}.brand-contact,.brand-tel{font-size:12px;color:#66748c}.logo{display:flex;align-items:center;gap:12px}.logo-mark{width:44px;height:44px;border-radius:6px;object-fit:contain;flex-shrink:0}.logo-mark-sm{width:38px;height:38px}.logo-name{font-size:15px;font-weight:600;color:#fff;white-space:nowrap}.logo-en{font-size:8px;color:#9aa7bc;letter-spacing:.8px;white-space:nowrap}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:0 96px}.login-form{width:400px;display:flex;flex-direction:column}.form-title{font-size:28px;font-weight:700;color:var(--text-primary)}.form-sub{font-size:14px;color:var(--text-tertiary);margin-top:4px}.form-gap{height:20px}.field-label{font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.input-wrap{display:flex;align-items:center;gap:10px;height:46px;padding:0 14px;margin-bottom:14px;border:1px solid var(--border-strong);border-radius:var(--r-lg);background:#fff}.input-wrap:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px #1b2a4a14}.input-icon{flex-shrink:0}.input-wrap input{flex:1;border:none;font-size:14px;color:var(--text-primary);background:transparent}.input-wrap input::placeholder{color:#a0a9b5}.options-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.remember{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.checkbox{width:16px;height:16px;border-radius:4px;background:var(--navy);display:flex;align-items:center;justify-content:center}.checkbox:not(.checked){background:#fff;border:1px solid var(--border-strong)}.checkbox:not(.checked) svg{opacity:0}.forgot{font-size:13px;color:var(--navy)}.btn-login{width:100%;height:48px;background:var(--navy);color:#fff;font-size:16px;font-weight:500;letter-spacing:4px;border:none;border-radius:var(--r-lg);box-shadow:var(--shadow-btn);transition:opacity .2s}.btn-login:hover{opacity:.9}.divider{display:flex;align-items:center;gap:12px;margin:20px 0 4px}.divider .line{flex:1;height:1px;background:var(--border)}.divider .text{font-size:12px;color:#a0a9b5}.channels{display:flex;justify-content:center;gap:16px;margin-top:4px}.channel{width:96px;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:var(--r-xl);background:#f7f8fa;color:var(--text-secondary);font-size:12px;transition:border-color .2s}.channel:hover{border-color:var(--navy)}.footer-note{text-align:center;font-size:12px;color:#a0a9b5;margin-top:22px}.view-app{display:flex;width:100%;height:100%}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--navy-dark);display:flex;flex-direction:column;padding:24px 16px 20px;overflow-y:auto}.sidebar .logo{margin-bottom:8px}.nav-group{display:flex;flex-direction:column;gap:2px;padding:8px 0}.nav-label{font-size:10px;font-weight:500;color:#5e6c85;letter-spacing:1px;padding:16px 0 6px 4px}.nav-item{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:var(--r-lg);color:#c6d0e0;font-size:14px;transition:background .15s;cursor:pointer}.nav-item svg{flex-shrink:0}.nav-item:hover{background:#ffffff0f}.nav-item.active{background:#ffffff14;color:#fff;font-weight:500}.nav-spacer{flex:1}.user-card{display:flex;align-items:center;gap:10px;height:52px;padding:0 10px;border-radius:var(--r-xl);background:#ffffff0d}.avatar{width:32px;height:32px;border-radius:50%;background:var(--seal-red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;flex-shrink:0}.avatar-top{width:34px;height:34px;background:var(--navy);font-size:14px;border-radius:50%}.user-info{flex:1;display:flex;flex-direction:column;gap:1px}.user-name{font-size:13px;font-weight:500;color:#fff}.user-role{font-size:11px;color:#7e8ca3}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-h);flex-shrink:0;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 24px}.page-title{font-size:18px;font-weight:600;color:var(--text-primary);white-space:nowrap}.topbar-spacer{flex:1}.search{display:flex;align-items:center;gap:8px;width:220px;height:36px;padding:0 12px;background:#f2f4f7;border-radius:var(--r-lg);color:#a0a9b5;font-size:13px}.bell{width:36px;height:36px;border-radius:var(--r-lg);background:#f2f4f7;display:flex;align-items:center;justify-content:center;cursor:pointer}.page{flex:1;overflow-y:auto;padding:20px 24px 24px;display:flex;flex-direction:column;gap:20px}.greeting{font-size:14px;color:var(--text-secondary)}.stats-row{display:flex;gap:20px}.stat-card{flex:1;height:116px;background:#fff;border-radius:var(--r-2xl);box-shadow:var(--shadow-card);display:flex;align-items:center;gap:16px;padding:0 20px}.icon-wrap{width:52px;height:52px;border-radius:var(--r-2xl);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.stat-label{font-size:13px;color:var(--text-secondary)}.stat-value{font-size:30px;font-weight:700;line-height:34px;color:var(--text-primary);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-trend{font-size:12px;color:var(--text-tertiary)}.stat-trend.up{color:var(--seal-red)}.stat-trend.good{color:var(--success)}.card{background:#fff;border-radius:var(--r-2xl);box-shadow:var(--shadow-card);padding:18px 20px;display:flex;flex-direction:column;gap:14px}.card-header{display:flex;align-items:center;gap:8px}.card-title{font-size:15px;font-weight:600;color:var(--text-primary)}.card-spacer{flex:1}.card-more{font-size:12px;color:var(--navy);cursor:pointer}.mid-row{display:flex;gap:20px}.mid-row .card,.mid-row .card.wide{flex:1}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:500;color:#7e8ca3;background:#f8f9fb;height:40px;padding:0 12px;white-space:nowrap;position:sticky;top:0;z-index:2}.table td{font-size:13px;padding:0 12px;height:56px;border-bottom:1px solid #F0F2F5;white-space:nowrap}.table td.cell-name{font-weight:500;color:var(--text-primary)}.table td.cell-muted{color:var(--text-secondary);font-size:12px}.table td.cell-muted-2{color:var(--text-tertiary);font-size:12px}.table tr:last-child td{border-bottom:none}.table .text-right{text-align:right}.table .text-center{text-align:center}.card-table{overflow:hidden}.card-table>.table-scroll{flex:1;min-height:220px;overflow:auto}.tag{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:var(--r-sm);font-size:11px;font-weight:500;white-space:nowrap}.tag-red{background:var(--danger-bg);color:var(--danger)}.tag-navy{background:var(--info-bg);color:var(--navy)}.tag-green{background:var(--success-bg);color:var(--success)}.tag-gold{background:var(--warn-bg);color:var(--warn)}.progress{display:flex;align-items:center;gap:8px}.progress .bar{width:80px;height:6px;border-radius:3px;background:#f0f2f5;overflow:hidden;flex-shrink:0}.progress .bar>i{display:block;height:100%;border-radius:3px}.progress .bar>i.red{background:var(--seal-red)}.progress .bar>i.navy{background:var(--navy)}.progress .bar>i.green{background:var(--success)}.progress span{font-size:11px;font-weight:500;color:var(--text-secondary);flex-shrink:0;min-width:34px}.action-link{font-size:12px;font-weight:500;color:var(--navy);cursor:pointer;white-space:nowrap}.todo-item{display:flex;align-items:center;gap:10px;padding:8px 0}.todo-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.todo-info{flex:1;min-width:0}.todo-title{font-size:13px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-meta{font-size:11px;color:var(--text-tertiary)}.schedule-item{display:flex;align-items:center;gap:12px;padding:10px 0}.schedule-time{width:48px;font-size:14px;font-weight:600;color:var(--text-primary);flex-shrink:0}.schedule-info{flex:1;min-width:0}.schedule-case{font-size:13px;font-weight:500;color:var(--text-primary)}.schedule-court{font-size:11px;color:var(--text-tertiary)}.kpi-row{display:flex;gap:16px}.kpi-card{flex:1;height:88px;background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);display:flex;align-items:center;padding:0 18px}.kpi-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.kpi-label{font-size:12px;color:var(--text-tertiary)}.kpi-value-row{display:flex;align-items:baseline;gap:8px}.kpi-value{font-size:26px;font-weight:700;line-height:30px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.kpi-unit{font-size:12px;color:var(--text-tertiary)}.kpi-trend{font-size:11px;color:var(--text-tertiary)}.kpi-trend.up{color:var(--seal-red)}.kpi-trend.good{color:var(--success)}.toolbar{display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:12px 18px}.tab{height:32px;padding:0 14px;border-radius:var(--r-md);background:#f5f6f8;color:var(--text-secondary);font-size:12px;display:flex;align-items:center;cursor:pointer;border:none;white-space:nowrap}.tab.active{background:var(--navy);color:#fff;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--r-md);font-size:12px;border:none;white-space:nowrap}.btn-primary{background:var(--seal-red);color:#fff;font-weight:500}.btn-primary:hover{opacity:.9}.btn-secondary{background:#fff;color:var(--text-secondary);border:1px solid var(--border-strong)}.btn-secondary:hover{border-color:var(--navy);color:var(--navy)}.search-row{display:flex;align-items:center;gap:10px}.search-input{display:flex;align-items:center;gap:8px;width:240px;height:36px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:#fff;color:#a0a9b5;font-size:12px}.search-input input{flex:1;border:none;background:transparent;font-size:12px;color:var(--text-primary)}.select-filter{height:36px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:#fff;color:var(--text-secondary);font-size:12px;display:flex;align-items:center;gap:8px;cursor:pointer}.select-filter select{border:none;background:transparent;color:var(--text-secondary);font-size:12px;outline:none;cursor:pointer}.card-table{background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);overflow:hidden;flex:1;display:flex;flex-direction:column}.pagination{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 20px}.page-info{font-size:12px;color:var(--text-tertiary)}.page-size{height:30px;padding:0 6px 0 10px;margin-left:12px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;font-size:12px;color:var(--text-secondary);cursor:pointer;vertical-align:middle}.page-size:hover{border-color:var(--navy)}.page-size:focus{outline:none;border-color:var(--navy)}.page-ctrl{display:flex;align-items:center;gap:6px}.page-btn{width:32px;height:32px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:12px;border:none;background:#f5f6f8;color:var(--text-secondary)}.page-btn.active{background:var(--navy);color:#fff;font-weight:500}.page-btn.dots{background:transparent}.page-btn:disabled{opacity:.4;cursor:not-allowed}.body-split{display:flex;gap:16px;align-items:flex-start}.col-left{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.col-right{flex:1;display:flex;flex-direction:column;min-width:0}.type-card{background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:4px 0}.type-card .card-header{padding:14px 16px 8px}.type-item{display:flex;align-items:center;gap:10px;height:40px;padding:0 16px;cursor:pointer;font-size:13px;color:var(--text-secondary)}.type-item.active{background:#f8f9fb;color:var(--navy);font-weight:500}.type-item .count{margin-left:auto;height:20px;padding:0 8px;border-radius:10px;background:#f0f2f5;color:var(--text-secondary);font-size:11px;font-weight:500;display:flex;align-items:center}.type-item.active .count{background:var(--navy);color:#fff}.filter-card{background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:16px}.filter-card .filter-title{font-size:14px;font-weight:600;margin-bottom:12px}.filter-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;cursor:pointer}.filter-row input[type=checkbox]{accent-color:var(--navy);width:14px;height:14px}.filter-row .f-name{flex:1;color:var(--text-secondary)}.filter-row .f-count{color:var(--text-tertiary);font-size:11px}.mini-kpi-row{display:flex;gap:12px}.mini-kpi{flex:1;height:76px;background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);display:flex;align-items:center;padding:0 16px}.mini-kpi .kpi-info{gap:2px}.mini-kpi .kpi-label{font-size:11px}.mini-kpi .kpi-value{font-size:22px;line-height:28px}.fin-kpi{flex:1;height:108px;border-radius:var(--r-2xl);padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;gap:4px}.fin-kpi.dark{background:var(--navy)}.fin-kpi.dark .fk-label{color:#9aa7bc}.fin-kpi.dark .fk-value{color:#fff}.fin-kpi.dark .fk-trend{color:#7bd7a3}.fin-kpi.light{background:#fff;box-shadow:var(--shadow-card)}.fin-kpi .fk-label{font-size:12px;color:var(--text-tertiary)}.fin-kpi .fk-value{font-size:28px;font-weight:700;line-height:32px;color:var(--text-primary)}.fin-kpi .fk-trend{font-size:11px;color:var(--text-tertiary)}.fin-kpi .fk-trend.red{color:var(--seal-red)}.bar-row{display:flex;flex-direction:column;gap:6px}.bar-row .bar-head{display:flex;align-items:center;gap:8px}.bar-row .bar-name{font-size:12px;font-weight:500;color:var(--text-primary);width:100px;flex-shrink:0}.bar-row .bar-track{flex:1;height:14px;border-radius:var(--r-sm);background:#f0f2f5;overflow:hidden}.bar-row .bar-track>i{display:block;height:100%}.bar-row .bar-pct{width:60px;text-align:right;font-size:12px;font-weight:500;color:var(--text-primary);flex-shrink:0}.bar-row .bar-amt{font-size:11px;color:var(--text-tertiary);padding-left:108px}.ledger-item{display:flex;align-items:center;gap:12px;padding:6px 0}.ledger-icon{width:32px;height:32px;border-radius:var(--r-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.ledger-info{flex:1;min-width:0}.ledger-title{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-meta{font-size:10px;color:var(--text-tertiary)}.ledger-amount{font-size:13px;font-weight:700;white-space:nowrap}.ledger-amount.in{color:var(--success)}.ledger-amount.out{color:var(--seal-red)}.divider-line{height:1px;background:#f0f2f5}.settings-split{display:flex;gap:20px;flex:1;min-height:0;align-items:flex-start}.settings-nav{width:232px;flex-shrink:0;background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:8px;position:sticky;top:0;animation:cz-fade-up var(--dur-slow) var(--ease-out) both}.settings-nav-title{font-size:11px;font-weight:500;color:var(--text-tertiary);letter-spacing:.8px;padding:10px 10px 6px}.settings-nav-item{display:flex;align-items:center;gap:10px;height:42px;padding:0 10px;margin-bottom:2px;border-radius:var(--r-lg);font-size:13px;color:var(--text-secondary);cursor:pointer;position:relative;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.settings-nav-item svg{flex-shrink:0;transition:color var(--dur-fast) var(--ease-out)}.settings-nav-item:hover{background:#f5f6f8;color:var(--text-primary)}.settings-nav-item.active{background:#f2f4f8;color:var(--navy);font-weight:500}.settings-nav-item.active:before{content:"";position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:0 3px 3px 0;background:var(--seal-red);animation:cz-fade-in var(--dur-base) var(--ease-out) both}.settings-nav-item .nav-badge{margin-left:auto;font-size:10px;color:var(--text-tertiary)}.settings-nav-item.active .nav-badge{color:var(--navy)}.settings-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:20px}.settings-section{scroll-margin-top:12px}.settings-section .card-header{padding:18px 20px 14px;border-bottom:1px solid var(--border)}.settings-section .card-body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:16px}.section-hint{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--r-md);background:var(--info-bg);color:var(--text-secondary);font-size:12px;line-height:18px}.section-hint svg{flex-shrink:0;margin-top:2px}.form-item .field-note{font-size:11px;color:var(--text-tertiary)}.form-item .field-err{font-size:11px;color:var(--seal-red)}.form-item.has-error input{border-color:var(--seal-red)}.form-item.has-error input:focus{box-shadow:0 0 0 3px #cc262c1a}.input-affix{display:flex;align-items:center;height:38px;padding:0 10px;gap:6px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:#fff;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.input-affix:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px #1b2a4a14}.input-affix .affix{font-size:12px;color:var(--text-tertiary);flex-shrink:0}.input-affix input{flex:1;border:none;background:transparent;font-size:13px;color:var(--text-primary);outline:none}.pwd-strength{display:flex;align-items:center;gap:8px;margin-top:2px}.pwd-strength .track{flex:1;height:4px;border-radius:2px;background:#f0f2f5;overflow:hidden;display:flex;gap:3px}.pwd-strength .track>i{flex:1;height:100%;border-radius:2px;background:#e4e7eb;transition:background var(--dur-base) var(--ease-out)}.pwd-strength .label{font-size:11px;color:var(--text-tertiary);white-space:nowrap;min-width:28px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;border-top:1px solid #F0F2F5;margin-top:4px;padding-top:16px}.form-actions .actions-spacer{flex:1}.form-actions .msg{font-size:12px}.form-actions .msg.ok{color:var(--success)}.form-actions .msg.bad{color:var(--seal-red)}.info-list{display:flex;flex-direction:column}.info-row{display:flex;align-items:center;gap:12px;min-height:42px;padding:6px 0;border-bottom:1px solid #F0F2F5;font-size:13px}.info-row:last-child{border-bottom:none}.info-row .k{width:108px;flex-shrink:0;color:var(--text-tertiary);font-size:12px}.info-row .v{color:var(--text-primary)}.info-row .v.mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.cal-cell{transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.cal-event{transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.cal-event:hover{transform:translate(2px);box-shadow:0 2px 6px #1015201f}.file-icon{transition:transform var(--dur-fast) var(--ease-out)}tr:hover .file-icon{transform:scale(1.06)}.nav-item svg{transition:transform var(--dur-base) var(--ease-out)}.nav-item:hover svg{transform:translate(1.5px)}.nav-item.active svg{transform:none}.topbar .search{transition:width var(--dur-base) var(--ease-out),background var(--dur-fast) var(--ease-out)}.bell{transition:background var(--dur-fast) var(--ease-out)}.bell:hover{background:#e8ebf0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-item{display:flex;flex-direction:column;gap:6px}.form-item label{font-size:12px;font-weight:500;color:var(--text-secondary)}.form-item input,.form-item select{height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);font-size:13px;color:var(--text-primary);background:#fff;width:100%}.form-item select{cursor:pointer}.form-item textarea{padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);font-size:13px;font-family:inherit;color:var(--text-primary);background:#fff;resize:vertical}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#121c3373;display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:640px;max-width:calc(100vw - 48px);background:#fff;border-radius:var(--r-2xl);overflow:hidden;box-shadow:var(--shadow-pop)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border)}.modal-head .modal-title{font-size:15px;font-weight:600;color:var(--text-primary)}.modal-close{font-size:24px;color:var(--text-tertiary);cursor:pointer;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:20px 24px;max-height:60vh;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--border);background:#f8f9fb}.chart-area{flex:1;position:relative;min-height:200px}.chart-gridline{position:absolute;left:0;right:0;height:1px;background:#f0f2f5}.chart-bars{position:absolute;top:24px;right:8px;bottom:0;left:8px;display:flex;align-items:flex-end;gap:18px}.chart-col{flex:1;display:flex;justify-content:center;align-items:flex-end;gap:5px;height:100%}.chart-col .bar-a,.chart-col .bar-b{width:40%;border-radius:3px}.chart-col .bar-a{background:var(--navy)}.chart-col .bar-b{background:var(--seal-red)}.chart-months{position:absolute;left:8px;right:8px;bottom:0;display:flex;justify-content:space-between;font-size:10px;color:#a0a9b5}.chart-months span{width:22px;text-align:center}.btn-login:disabled{opacity:.6;cursor:not-allowed}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#c7cbd2;border-radius:3px}::-webkit-scrollbar-track{background:transparent}@media(max-width:1280px){.login-brand{width:440px}.stat-value{font-size:26px}}@keyframes cz-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cz-fade-in{0%{opacity:0}to{opacity:1}}@keyframes cz-modal-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cz-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes cz-grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes cz-shimmer{0%{background-position:-420px 0}to{background-position:420px 0}}@keyframes cz-spin{to{transform:rotate(360deg)}}@keyframes cz-toast-in{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cz-pulse-soft{0%,to{opacity:1}50%{opacity:.55}}.page{animation:cz-fade-in var(--dur-base) var(--ease-out) both}.stat-card,.kpi-card,.mini-kpi,.fin-kpi{animation:cz-fade-up var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 45ms);transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.stat-card:hover,.kpi-card:hover,.fin-kpi:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.mini-kpi:hover{box-shadow:var(--shadow-hover)}.card{animation:cz-fade-up var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 45ms + 60ms);transition:box-shadow var(--dur-base) var(--ease-out)}.card-table{animation-delay:.12s}.toolbar{animation:cz-fade-up var(--dur-slow) var(--ease-out) both;animation-delay:40ms}.search-row{animation:cz-fade-up var(--dur-slow) var(--ease-out) both;animation-delay:90ms}.table tbody tr{animation:cz-fade-in var(--dur-base) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 26ms);transition:background var(--dur-fast) var(--ease-out)}.table tbody tr:hover{background:#fafbfc}.table td{transition:background var(--dur-fast) var(--ease-out)}.progress .bar>i{animation:cz-grow-x var(--dur-slow) var(--ease-out) both;transform-origin:left center;transition:width var(--dur-slow) var(--ease-out)}.bar-row .bar-track>i{animation:cz-grow-x var(--dur-slow) var(--ease-out) both;transform-origin:left center}.chart-col .bar-a,.chart-col .bar-b{transform-origin:bottom center;animation:cz-grow-y var(--dur-slow) var(--ease-out) both;transition:filter var(--dur-fast) var(--ease-out)}.chart-col .bar-a{animation-delay:calc(var(--i, 0) * 32ms + 90ms);animation-duration:.38s}.chart-col .bar-b{animation-delay:calc(var(--i, 0) * 32ms);animation-duration:.38s}.chart-col:hover .bar-a,.chart-col:hover .bar-b{filter:brightness(1.12)}.btn,.btn-login,.tab,.page-btn,.channel,.action-link,.nav-item,.type-item,.user-menu-item{transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-instant) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.btn:not(:disabled):active,.btn-login:not(:disabled):active,.tab:active,.page-btn:not(:disabled):active{transform:translateY(1px) scale(.985)}.btn-primary:not(:disabled):hover{box-shadow:0 4px 12px #cc262c47;opacity:1;filter:brightness(1.06)}.btn-primary:disabled,.btn-login:disabled{cursor:not-allowed;opacity:.6}.btn-secondary:not(:disabled):hover{background:#fbfcfd;box-shadow:0 2px 8px #1015200f}.btn-login:not(:disabled):hover{box-shadow:var(--shadow-btn-hover);opacity:1;filter:brightness(1.08)}.btn-spinner{width:13px;height:13px;flex-shrink:0;border:1.6px solid currentColor;border-top-color:transparent;border-radius:50%;animation:cz-spin .62s linear infinite}.tab{position:relative}.tab:hover:not(.active){background:#edeff3;color:var(--text-primary)}.tab.active{transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}.form-item input,.form-item select,.search-input,.select-filter,.input-wrap{transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.form-item input:hover,.form-item select:hover{border-color:#aab2be}.form-item input:focus,.form-item select:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1b2a4a14}.search-input:focus-within,.select-filter:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px #1b2a4a14}.modal-mask{animation:cz-fade-in var(--dur-fast) var(--ease-out) both;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.modal{animation:cz-modal-in var(--dur-base) var(--ease-out) both;box-shadow:var(--shadow-pop)}.modal-close{transition:color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.modal-close:hover{color:var(--text-primary);transform:rotate(90deg)}.user-menu{transform-origin:bottom center;animation:cz-modal-in var(--dur-fast) var(--ease-out) both}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg,#eff1f4 25%,#f7f8fa,#eff1f4 75%);background-size:420px 100%;animation:cz-shimmer 1.35s linear infinite}.skeleton-row td{padding-top:16px;padding-bottom:16px}.skeleton-line{height:12px;width:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 0;color:var(--text-tertiary);animation:cz-fade-in var(--dur-base) var(--ease-out) both}.empty-state svg{opacity:.5}.empty-state .empty-text{font-size:13px}.loading-state{display:flex;align-items:center;justify-content:center;gap:10px;padding:56px 0;color:var(--text-tertiary);font-size:13px;animation:cz-fade-in var(--dur-fast) var(--ease-out) both}.cz-spinner{width:15px;height:15px;flex:0 0 auto;border:2px solid var(--border-strong);border-top-color:var(--navy);border-radius:50%;animation:cz-spin .7s linear infinite}.btn-ghost{background:transparent;color:var(--text-tertiary);border:1px solid transparent;font-weight:400}.btn-ghost:hover{background:var(--bg-subtle, #F2F4F7);color:var(--text-secondary)}.toast-layer{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;background:#fff;border-radius:var(--r-lg);box-shadow:0 8px 28px #0b12212e;font-size:13px;color:var(--text-primary);border-left:3px solid var(--navy);animation:cz-toast-in var(--dur-base) var(--ease-spring) both}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--seal-red)}.saved-hint{animation:cz-fade-in var(--dur-base) var(--ease-out) both;color:var(--success)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
