:root{--c-primary: #4A90E2;--c-primary-hover: #3D7EC7;--c-primary-bg: #EDF5FF;--c-primary-bd: #C7DEFF;--c-success: #16A34A;--c-success-bg: #E8F5E9;--c-success-bd: #B7E0BC;--c-warning: #D48806;--c-warning-bg: #FFF7E6;--c-warning-bd: #FFE7C2;--c-danger: #DC2626;--c-danger-bg: #FFF1F0;--c-danger-bd: #FFD6D3;--c-expense: #6366F1;--t-1: #1a1a2e;--t-2: #333333;--t-3: #666666;--t-4: #86909C;--t-5: #BBBBBB;--bd-1: #E5E6EB;--bd-2: #F0F0F0;--bg-page: #F5F7FA;--bg-card: #FFFFFF;--bg-sub: #F7F8FA;--bg-seg: #EBEEF3;--fs-1: 20px;--fs-2: 16px;--fs-3: 14px;--fs-4: 13px;--fs-5: 12px;--fs-6: 11px;--r-1: 4px;--r-2: 8px;--r-3: 12px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--sh-1: 0 1px 4px rgba(0, 0, 0, .06);--sh-2: 0 2px 12px rgba(0, 0, 0, .06);--sh-3: 0 4px 20px rgba(0, 0, 0, .12)}.ui-btn,.ui-tag,.ui-tabs,.ui-tab,.ui-table,.ui-msg,.ui-card{box-sizing:border-box}.ui-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;font-size:var(--fs-4);font-weight:600;line-height:1.2;border:1px solid transparent;border-radius:var(--r-1);cursor:pointer;background:none;transition:box-shadow .15s,transform .15s,background .15s;white-space:nowrap}.ui-btn-main{background:var(--c-primary);color:#fff;box-shadow:0 2px 6px #4a90e259}.ui-btn-main:hover{background:var(--c-primary-hover);box-shadow:0 5px 12px #4a90e26b;transform:translateY(-1px)}.ui-btn-sec{background:#fff;border-color:var(--c-primary);color:var(--c-primary);box-shadow:0 2px 6px #4a90e224}.ui-btn-sec:hover{box-shadow:0 5px 12px #4a90e238;transform:translateY(-1px)}.ui-btn-ghost{background:#fff;border-color:var(--bd-1);color:var(--t-3);font-weight:400;box-shadow:0 2px 6px #00000014}.ui-btn-ghost:hover{box-shadow:0 5px 12px #0000001f;transform:translateY(-1px)}.ui-btn-dashed{background:var(--c-warning-bg);border:1px dashed var(--c-warning);color:var(--c-warning);box-shadow:0 2px 6px #d488062e}.ui-btn-dashed:hover{box-shadow:0 5px 12px #d4880642;transform:translateY(-1px)}.ui-btn-danger{background:var(--c-danger);color:#fff;box-shadow:0 2px 6px #dc262647}.ui-btn-danger:hover{box-shadow:0 5px 12px #dc26265c;transform:translateY(-1px)}.ui-btn-text{border:none;color:var(--c-primary);padding:4px 6px;font-weight:500;box-shadow:none}.ui-btn-sm{padding:5px 10px;font-size:var(--fs-5)}.ui-btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.ui-tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-6);line-height:1.7;padding:1px 8px;border-radius:var(--r-1);border:1px solid transparent;white-space:nowrap}.ui-tag-primary{background:var(--c-primary-bg);color:var(--c-primary);border-color:var(--c-primary-bd)}.ui-tag-success{background:var(--c-success-bg);color:var(--c-success);border-color:var(--c-success-bd)}.ui-tag-warning{background:var(--c-warning-bg);color:var(--c-warning);border-color:var(--c-warning-bd)}.ui-tag-danger{background:var(--c-danger-bg);color:var(--c-danger);border-color:var(--c-danger-bd)}.ui-tag-grey{background:var(--bg-sub);color:var(--t-4);border-color:var(--bd-1)}.ui-tag-pill{border-radius:var(--r-pill)}.ui-table{width:100%;border-collapse:collapse;font-size:var(--fs-5)}.ui-table th{background:var(--bg-sub);color:var(--t-3);font-weight:600;text-align:center;padding:8px 10px;border-bottom:1px solid var(--bd-1);white-space:nowrap}.ui-table td{padding:8px 10px;color:var(--t-2);text-align:center;border-bottom:1px solid var(--bd-2);font-variant-numeric:tabular-nums}.ui-table tr:hover td{background:#fafbfc}.ui-table .tl{text-align:left}.ui-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:2px solid var(--bd-1);scrollbar-width:none;-ms-overflow-style:none}.ui-tabs::-webkit-scrollbar{display:none}.ui-tab{padding:8px 16px;font-size:var(--fs-4);color:var(--t-3);cursor:pointer;white-space:nowrap;border:none;border-bottom:2px solid transparent;background:none;font-family:inherit;margin-bottom:-2px;transition:color .15s}.ui-tab:hover{color:var(--c-primary)}.ui-tab.on{color:var(--c-primary);border-bottom-color:var(--c-primary);font-weight:600}@media (max-width: 768px){.ui-tabs{display:flex;width:100%;background:var(--bg-seg);border:1px solid var(--bd-1);border-radius:var(--r-2);padding:3px;gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.ui-tabs::-webkit-scrollbar{display:none}.ui-tab{flex:0 0 auto;padding:6px 12px;font-size:var(--fs-5);color:var(--t-3);border-bottom:none;margin-bottom:0;border-radius:var(--r-1)}.ui-tab.on{background:#fff;color:var(--c-primary);font-weight:600;border-bottom-color:transparent;box-shadow:0 1px 4px #0000001a}.ui-btn{padding:6px 12px;font-size:var(--fs-5)}.ui-pill{padding:6px 11px;font-size:var(--fs-5)}}.ui-msg{display:flex;align-items:center;gap:var(--s-2);padding:8px 14px;border-radius:var(--r-2);font-size:var(--fs-5);border:1px solid transparent}.ui-msg-ok{background:var(--c-success-bg);color:var(--c-success);border-color:var(--c-success-bd)}.ui-msg-warn{background:var(--c-warning-bg);color:var(--c-warning);border-color:var(--c-warning-bd)}.ui-msg-bad{background:var(--c-danger-bg);color:var(--c-danger);border-color:var(--c-danger-bd)}.ui-msg-info{background:var(--c-primary-bg);color:var(--c-primary);border-color:var(--c-primary-bd)}.ui-card{background:var(--bg-card);border-radius:var(--r-2);box-shadow:var(--sh-1)}.ui-card-lg{border-radius:var(--r-3);box-shadow:var(--sh-2)}.ui-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:var(--r-pill);font-size:var(--fs-4);font-weight:500;line-height:1.2;text-decoration:none;white-space:nowrap;background:#fff;border:1px solid var(--bd-1);color:var(--t-2);box-shadow:0 1px 3px #0000000d;transition:all .16s ease}.ui-pill svg{width:14px;height:14px;color:var(--t-4);transition:color .16s ease}.ui-pill:hover{border-color:var(--c-primary-bd);color:var(--c-primary);transform:translateY(-1px);box-shadow:0 4px 12px #4a90e238}.ui-pill:hover svg{color:var(--c-primary)}.ui-pill-main{background:var(--c-primary-bg);border-color:var(--c-primary-bd);color:var(--c-primary)}.ui-pill-main svg{color:var(--c-primary)}.ui-pill-main:hover{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.ui-pill-main:hover svg{color:#fff}.ui-pill-dashed{background:var(--c-warning-bg);border:1px dashed var(--c-warning);color:var(--c-warning)}.ui-pill-dashed svg{color:var(--c-warning)}.ui-pill-dashed:hover{border-style:solid;transform:translateY(-1px);box-shadow:0 4px 12px #d488063d}.ui-pill-xs{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:500;line-height:1.4;text-decoration:none;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid var(--bd-1);color:var(--t-2);box-shadow:0 1px 2px #0000000a;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,color .16s ease,background-color .16s ease}.ui-pill-xs svg{width:12px;height:12px;color:var(--t-4);transition:color .16s ease}.ui-pill-xs:hover{border-color:var(--c-primary-bd);color:var(--c-primary);transform:translateY(-1px);box-shadow:0 4px 10px #4a90e233}.ui-pill-xs:hover svg{color:var(--c-primary)}.ui-pill-xs:active{transform:translateY(0) scale(.97);box-shadow:0 1px 3px #00000014}.ui-pill-xs:focus-visible{outline:2px solid var(--c-primary-bd);outline-offset:2px}.ui-close{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--bd-1);color:var(--t-4);cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:all .16s ease}.ui-close svg{width:16px;height:16px}.ui-close:hover{background:var(--c-danger-bg);border-color:var(--c-danger-bd);color:var(--c-danger)}.ui-seg{display:inline-flex;align-items:center;padding:2px;gap:2px;background:#fff;border:1px solid var(--bd-1);border-radius:var(--r-pill);box-shadow:0 1px 3px #0000000d}.ui-seg-btn{padding:4px 11px;border:none;border-radius:var(--r-pill);background:transparent;color:var(--t-3);cursor:pointer;font-size:var(--fs-5);font-weight:600;line-height:1.2;-webkit-user-select:none;user-select:none;transition:all .15s ease}.ui-seg-btn:hover{background:var(--bg-sub);color:var(--c-primary)}.ui-stat-grid{display:grid;gap:10px;margin-bottom:12px;grid-template-columns:1fr 1fr}.ui-stat-grid .ui-stat-wide{grid-column:1 / -1;display:flex;align-items:center}@media (min-width: 769px){.ui-stat-grid{grid-template-columns:.9fr .9fr 2.2fr}.ui-stat-grid .ui-stat-wide{grid-column:auto}}.ui-stat-card{background:#fff;border:1px solid var(--bd-1);border-radius:10px;padding:10px 14px;min-width:0}.ui-stat-title{font-size:12px;color:var(--t-4);margin-bottom:2px}.ui-stat-main{font-size:20px;font-weight:700;color:#1d2129;line-height:1.3}.ui-stat-main .unit{font-size:12px;font-weight:400;color:var(--t-4)}.ui-stat-sub{font-size:12px;color:var(--t-3)}.lit-meta{flex:0 0 auto;min-width:120px;text-align:right;display:flex;flex-direction:column;align-items:flex-end}.lit-meta-no{font-size:13px;color:var(--t-4);word-break:break-all;max-width:360px}.lit-meta-amt{font-size:17px;font-weight:700;color:#1d2129;white-space:nowrap;margin-top:2px}@media (max-width: 768px){.lit-meta{flex:1 1 100%;min-width:0;flex-direction:row;align-items:baseline;justify-content:space-between;text-align:left;gap:12px}.lit-meta-no{max-width:none;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lit-meta-amt{margin-top:0;flex:0 0 auto}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#4e5969}#root{min-height:100vh}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--c-primary) 0%,#4364f7 50%,#6fb1fc 100%)}.login-card{width:400px;padding:40px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0000001f}.dashboard-container{min-height:0;background:#fff}.header{background:#fff;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #0000000f}.page-content{padding:24px 32px}.card{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f}.table-container{overflow-x:auto;margin-top:16px}.upload-area{border:2px dashed var(--bd-1);border-radius:12px;padding:40px;text-align:center;cursor:pointer;transition:all .3s;background:var(--bg-sub)}.upload-area:hover{border-color:var(--c-primary);background:#f5f8ff}.result-tables{margin-top:24px}.table-section{margin-bottom:32px}.table-title{font-size:18px;font-weight:600;margin-bottom:16px;color:#1d2129}.summary-row{font-weight:600;background:var(--bg-page)}@keyframes uiFeedbackIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes uiFeedbackFade{0%{opacity:0}to{opacity:1}}.btn-pay-shine,.btn-shine-warn{position:relative;overflow:hidden}.btn-pay-shine{box-shadow:0 2px 8px #2970e24d}.btn-shine-warn{box-shadow:0 2px 8px #d488064d}.btn-pay-shine:after,.btn-shine-warn:after{content:"";position:absolute;top:-2px;bottom:-2px;left:0;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:translate(-160%) skew(-18deg);animation:paySheen 5s ease-in-out infinite;pointer-events:none}@keyframes genSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes paySheen{0%{transform:translate(-160%) skew(-18deg)}20%{transform:translate(340%) skew(-18deg)}to{transform:translate(340%) skew(-18deg)}}@media (prefers-reduced-motion: reduce){.btn-pay-shine:after,.btn-shine-warn:after{animation:none}}
