*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #5b6abf;--color-primary-light: #eef1fb;--color-text: #1a1f36;--color-text-secondary: #6b7280;--color-border: #e8ecf4;--color-bg-layout: #f0f4f8;--shadow-card: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 12px rgba(15, 23, 42, .04);--radius-lg: 12px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background:var(--color-bg-layout)}#root,.app-layout{min-height:100vh}.app-sider{background:linear-gradient(180deg,#1e2a4a,#151c32)!important;box-shadow:2px 0 8px #00000014}.app-sider-logo{height:64px;display:flex;align-items:center;justify-content:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08);padding:0 12px}.app-sider-logo-icon{width:32px;height:32px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#ffffff0f;box-shadow:inset 0 0 0 1px #ffffff14}.app-sider-logo-icon img{width:100%;height:100%;object-fit:cover;display:block;opacity:.78;filter:saturate(.55) brightness(1.08)}.app-sider-logo-text{color:#fff;margin:0;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-sider .ant-menu-dark{background:transparent}.app-sider .ant-menu-dark .ant-menu-item-selected{background:#5b6abf59!important;border-radius:8px;margin:0 8px;width:calc(100% - 16px)}.app-header{padding:0 24px!important;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 4px #0000000f!important;border-bottom:1px solid var(--color-border)}.app-header-user{cursor:pointer;display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:8px;transition:background .2s}.app-header-user:hover{background:var(--color-primary-light)}.app-header-user-name{font-weight:500;color:var(--color-text)}.app-content{margin:20px!important;padding:0!important;background:transparent!important;min-height:calc(100vh - 104px)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-header-title{font-size:20px;font-weight:600;color:var(--color-text);margin:0;line-height:1.4}.page-header-subtitle{margin:4px 0 0;font-size:13px;color:var(--color-text-secondary)}.page-header-extra{flex-shrink:0}.page-card{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-card)!important;border:1px solid var(--color-border)!important}.page-card .ant-card-body{padding:20px 24px}.page-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-table .ant-table-thead>tr>th{background:#f8fafc!important;font-weight:600;color:var(--color-text)}.page-table .ant-table-tbody>tr:hover>td{background:#f8faff!important}.dashboard-welcome{background:linear-gradient(135deg,#5b6abf,#6d7ec8,#8b9ad8);border-radius:var(--radius-lg);padding:24px 28px;margin-bottom:20px;color:#fff;box-shadow:0 8px 24px #5b6abf40}.dashboard-welcome h2{margin:0 0 6px;font-size:20px;font-weight:600;color:#fff}.dashboard-welcome p{margin:0;opacity:.9;font-size:14px}.stat-card{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-card)!important;border:1px solid var(--color-border)!important;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0f172a14!important}.stat-card .ant-statistic-title{color:var(--color-text-secondary);font-size:13px}.stat-card .ant-statistic-content{font-weight:600}.section-card{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-card)!important;border:1px solid var(--color-border)!important}.section-card .ant-card-head{border-bottom:1px solid var(--color-border);font-weight:600}.expense-summary-table .ant-table-thead>tr>th,.expense-summary-table .ant-table-tbody>tr>td,.expense-summary-table .ant-table-summary>tr>td{text-align:center!important}.expense-summary-table .summary-category-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:100%;white-space:nowrap}.expense-summary-table .summary-category-select{width:auto!important;min-width:0;max-width:100%}.expense-summary-table .summary-category-select .ant-select-selector{padding:0 8px!important}.expense-summary-table .summary-no-invoice-tag{margin:0!important;flex-shrink:0}.expense-summary-table .summary-desc-cell{display:inline-flex;align-items:center;justify-content:center;gap:2px;max-width:100%}.expense-summary-table .summary-desc-text{flex:0 1 auto;min-width:0;text-align:center}.expense-summary-table .summary-desc-edit{padding:0 2px!important;height:22px;flex-shrink:0}.expense-summary-table .summary-desc-empty{color:#c0c4cc;font-size:13px}.expense-summary-table .summary-desc-content{margin-bottom:0!important;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--color-text);text-align:center}.expense-summary-table td.summary-desc-cell--has-text{vertical-align:middle}.expense-summary-table .summary-category-text{font-size:13px;line-height:1.4;white-space:nowrap}.expense-summary-table .summary-amount-text{font-weight:600;font-size:13px;white-space:nowrap}.expense-summary-table .summary-attach-cell{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:32px}.expense-summary-table .summary-attach-upload{padding:0!important;height:22px;font-size:12px;line-height:22px}.expense-summary-table .summary-attach-empty{color:#c0c4cc;font-size:13px}.expense-summary-table .summary-attach-thumbs{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px}.expense-summary-table .summary-attach-thumb{border-radius:4px;overflow:hidden;cursor:pointer;flex-shrink:0}.expense-summary-table .summary-attach-thumb .ant-image-img{object-fit:cover}.expense-summary-table .summary-attach-thumb--pdf{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #ffd6d6;background:#fff5f5;color:#cf1322;font-size:16px;padding:0}.expense-summary-table .summary-attach-thumb--pdf:hover{border-color:#ff7875;background:#ffecec}.expense-summary-table .summary-attach-more{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 4px;border:1px dashed #d9d9d9;border-radius:4px;background:#fafafa;color:#666;font-size:11px;cursor:pointer}.expense-summary-table .summary-attach-more:hover{color:var(--color-primary);border-color:var(--color-primary)}.invoice-preview-footer{display:flex;align-items:center;justify-content:center;gap:16px}.invoice-preview-page{color:var(--color-text-secondary);font-size:13px;min-width:100px;text-align:center}.invoice-preview-modal{display:flex;flex-direction:column;gap:16px}.invoice-preview-media{display:flex;align-items:center;justify-content:center;min-height:360px;max-height:60vh;background:#f8fafc;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.invoice-preview-image{max-width:100%;max-height:60vh;object-fit:contain}.invoice-preview-image .ant-image-img{max-height:60vh;object-fit:contain}.invoice-preview-pdf{width:100%;height:60vh;border:0}.invoice-preview-empty{color:var(--color-text-secondary);padding:40px}.invoice-preview-info{margin-bottom:0}.invoice-card-extra-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end}.invoice-upload-limit-hint{margin-bottom:10px;line-height:1.5}.page-card .ant-card-head-wrapper{align-items:center}.page-card .ant-card-extra{margin-inline-start:16px}.invoice-list-table .invoice-list-count-hint{display:block;font-size:12px;line-height:18px;margin-bottom:8px}.invoice-list-table .ant-table-body{overflow:auto!important}.invoice-list-table .ant-table-wrapper .ant-table-pagination{margin:12px 0 4px}
