:root{color:#17243d;background:#f5f7fb;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;background:#f5f7fb}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh}.app-sider{position:sticky!important;top:0;height:100vh;z-index:4;border-right:1px solid #e9edf4;box-shadow:none!important}.brand-block{height:56px;display:flex;align-items:center;gap:10px;padding:0 20px;font-size:18px;font-weight:700;color:#17243d;white-space:nowrap;overflow:hidden}.brand-mark{width:30px;height:30px;flex:0 0 30px;border-radius:7px;background:#2f6feb;color:#fff;display:grid;place-items:center}.app-sider .ant-menu{border-inline-end:none!important;padding:12px 8px}.app-sider .ant-menu-item{margin-block:4px;font-weight:500}.collapse-button{position:absolute;bottom:20px;left:12px;color:#7a8597}.app-header{height:56px;padding:0 24px;background:#fffffff5!important;border-bottom:1px solid #e9edf4;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:3}.header-context{min-width:0}.header-context .ant-breadcrumb{color:#7d8899}.user-button{height:42px!important}.user-button .ant-avatar{color:#2f6feb;background:#e4efff}.app-content{padding:16px;min-width:0;height:calc(100vh - 56px);overflow:auto}.app-content:has(.ledger-page){padding-top:0}.page-stack{width:100%;min-height:100%;display:flex;flex-direction:column;gap:12px}.projects-page{height:100%;min-height:0;overflow:hidden}.page-loading{min-height:calc(100vh - 100px);display:grid;place-items:center}.page-title-row{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.page-title-row .ant-typography{margin:0}.page-title-row h2.ant-typography{font-size:26px;margin-bottom:4px}.project-overview,.financial-summary{background:#fff;border:1px solid #edf0f5;border-radius:8px}.project-overview{display:grid;grid-template-columns:repeat(4,1fr);padding:24px 28px}.project-overview>div{min-width:0;display:flex;flex-direction:column;gap:8px;border-right:1px solid #e7ebf1;padding:0 28px}.project-overview>div:first-child{padding-left:0}.project-overview>div:last-child{border-right:0}.project-overview span{color:#788397;font-size:13px}.project-overview strong{font-size:25px;color:#17243d;font-variant-numeric:tabular-nums}.table-panel,.chart-panel,.project-hero{background:#fff;border:1px solid #edf0f5;border-radius:8px;overflow:hidden}.list-toolbar{min-height:76px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.list-toolbar h2,.section-heading h2,.recent-header h2{margin:0;font-size:16px;line-height:1.5}.list-toolbar>div:first-child span{display:block;color:#8a94a6;font-size:12px;margin-top:2px}.list-toolbar .ant-input-affix-wrapper{width:280px}.list-toolbar .ant-select{width:124px}.project-list-actions{justify-content:flex-end}.project-list-panel .ant-table-wrapper{border-top:1px solid #eef1f5}.project-name-button,.breadcrumb-button{border:0;padding:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.project-name-button strong,.project-name-button span{display:block}.project-name-button strong{font-weight:600;color:#1c2b45;margin-bottom:4px}.project-name-button span{color:#8a94a6;font-size:12px}.project-name-button:hover strong,.breadcrumb-button:hover{color:#2f6feb}.project-income{color:#24a875;font-weight:600}.project-expense{color:#ef665d;font-weight:600}.project-list-panel{min-height:0;flex:1;display:flex;flex-direction:column}.project-list-panel .ant-table-wrapper{min-height:0;flex:1}.project-list-panel .ant-pagination{margin:12px 16px!important}@media(min-width:1101px){.project-list-panel .ant-table-body{overflow-x:hidden!important}}.project-hero{padding:12px 20px 0}.project-hero-top{display:flex;justify-content:space-between;gap:20px}.project-selector-field{min-width:290px;max-width:380px;height:42px;display:flex;align-items:center;gap:10px;padding:4px 8px 4px 12px;border:1px solid #b9cef5;border-radius:7px;background:#f3f7ff;box-shadow:0 0 0 2px #2f6feb0a}.project-selector-label{display:inline-flex;align-items:center;gap:6px;color:#5270a6;font-size:12px;white-space:nowrap}.project-switcher{width:270px}.project-switcher.ant-select{height:32px!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;font-size:16px!important;font-weight:600!important;color:#17243d!important}.project-switcher .ant-select-content{padding-inline-end:24px!important;line-height:32px!important}.project-switcher .ant-select-suffix{color:#7c8798}.project-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:6px;color:#748095;font-size:13px}.project-meta i{width:1px;height:13px;background:#d6dce5}.hero-actions{display:flex;align-items:center;gap:24px}.project-progress{width:260px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;color:#748095;font-size:13px}.project-progress .ant-progress{margin:0}.project-progress strong{color:#536077;font-weight:500}.financial-summary{border:0;border-radius:0;margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.financial-summary>div{position:relative;min-height:62px;display:flex;flex-direction:column;justify-content:center;padding:6px 36px}.financial-summary>div:first-child{padding-left:0}.financial-summary>div+div:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:1px;background:#e1e6ee}.summary-metric span{color:#7a8598;font-size:13px;margin-bottom:3px}.financial-summary strong{font-size:25px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.4px}.summary-income strong{color:#22a874}.summary-expense strong{color:#f06b61}.analytics-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.chart-panel{min-height:196px;padding:10px 16px 6px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2 small{color:#8791a2;font-size:12px;font-weight:400}.section-heading .ant-badge-status-text{color:#617087;font-size:12px}.structure-content{display:grid;grid-template-columns:46% 54%;align-items:center;height:150px}.donut-wrap{height:148px;min-width:0}.structure-legend{padding-right:4px}.legend-row{display:grid;grid-template-columns:10px minmax(62px,1fr) auto 40px;gap:8px;align-items:center;font-size:12px;color:#536078;margin:9px 0;white-space:nowrap}.legend-dot{width:8px;height:8px;border-radius:50%;background:#4d86f7}.dot-1{background:#ffad32}.dot-2{background:#ff746c}.legend-name{color:#455168}.legend-percent{color:#8b95a6;text-align:right}.ledger-page{height:100%;min-height:0;overflow:hidden}.recent-panel{min-height:0;flex:1;display:flex;flex-direction:column}.recent-header{min-height:58px;padding:8px 20px 6px;display:flex;align-items:center;justify-content:space-between;gap:16px}.recent-header>div:first-child{display:flex;flex-direction:column;gap:8px}.recent-header .ant-picker{width:265px}.recent-panel .ant-table-wrapper{min-height:0;flex:1;padding:0 20px}.recent-panel .ant-table-thead>tr>th{padding-block:8px}.recent-panel .ant-table-tbody>tr>td{padding-block:7px}.recent-panel .ant-table-cell:first-child{white-space:nowrap}.type-tag{border:0;font-weight:500;margin:0}.type-income{background:#e1f7ee;color:#169d69}.type-expense{background:#ffebe8;color:#ec5f55}.amount{font-variant-numeric:tabular-nums}.amount-income{color:#20a471}.amount-expense{color:#f0645b}.voucher{color:#6e7b91;white-space:nowrap}.attachment-download{max-width:142px;display:inline-flex;align-items:center;gap:5px;color:#2f6feb;line-height:22px;padding-inline:0!important}.attachment-download>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-auth-loading{min-height:100vh;display:grid;place-items:center;background:#f5f7fb}.no-attachment{color:#9aa3b2;white-space:nowrap}.recent-footer{min-height:38px;padding:2px 16px 4px 20px;display:flex;justify-content:space-between;align-items:center;color:#7e899c;font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.transaction-form{padding-top:12px}.source-create-row{padding:0 8px 8px}.source-add-button{color:#2f6feb;text-align:left}.source-option-row{min-height:24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.source-option-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.source-option-row .ant-btn{flex:0 0 auto;opacity:.55}.source-option-row:hover .ant-btn,.source-option-row .ant-btn:focus,.source-option-row .ant-btn.ant-btn-loading{opacity:1}.ant-modal-body:has(.transaction-form){max-height:68vh;overflow-y:auto;padding-right:4px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(430px,1.08fr) minmax(480px,.92fr);background:#fff}.login-intro{min-height:100vh;padding:48px clamp(48px,6vw,96px);background:#17335e;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700}.intro-copy{max-width:590px;margin:auto 0}.eyebrow{color:#8fb8ff;letter-spacing:2.5px;font-size:12px;font-weight:600}.intro-copy h1{font-size:clamp(34px,3.2vw,52px);line-height:1.34;letter-spacing:-1px;margin:20px 0}.intro-copy p{max-width:480px;color:#b9c9df;font-size:16px;line-height:1.8}.security-note{margin-top:42px;color:#dce8f7;display:flex;gap:8px;align-items:center}.login-copyright{color:#8499b7;font-size:12px}.login-form-side{display:grid;place-items:center;padding:48px}.login-form-wrap{width:min(100%,390px)}.login-form-wrap h2{margin:0 0 6px;font-size:30px}.login-form-wrap>.ant-typography{display:block;margin-bottom:34px}.login-form-wrap .ant-form-item{margin-bottom:22px}.login-form-wrap .ant-btn-primary{height:46px;margin-top:12px}.login-options{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 12px}.login-options .ant-btn{padding-inline:0}.demo-tip{text-align:center;color:#a0a8b5;font-size:12px;margin-top:18px}@media(max-width:1100px){.analytics-grid{grid-template-columns:1fr}.ledger-page{height:auto;overflow:visible}.recent-panel{min-height:480px}.project-hero-top{flex-direction:column;gap:16px}.hero-actions{justify-content:space-between}.project-overview{grid-template-columns:repeat(2,1fr);row-gap:24px}.project-overview>div:nth-child(2){border-right:0}.project-overview>div:nth-child(3){padding-left:0}.login-page{grid-template-columns:1fr 1fr}}@media(max-width:900px){.app-content{padding:10px}.projects-page{height:auto;overflow:visible}.project-list-panel{min-height:480px}.app-header{padding:0 12px}.user-button .ant-typography{display:none}.page-title-row,.list-toolbar,.recent-header{align-items:stretch;flex-direction:column}.list-toolbar .ant-space,.list-toolbar .ant-input-affix-wrapper,.list-toolbar .ant-select,.recent-header .ant-picker{width:100%}.project-list-actions{justify-content:flex-start}.project-hero{padding-inline:18px}.project-selector-field{min-width:0;width:100%}.project-switcher{width:100%}.project-switcher.ant-select{font-size:15px!important}.hero-actions{flex-direction:column}.project-progress{width:100%}.financial-summary{grid-template-columns:1fr}.financial-summary>div{min-height:76px;padding-inline:0}.financial-summary>div+div:before{top:0;bottom:auto;right:0;width:auto;height:1px}.structure-content{grid-template-columns:1fr;height:auto}.structure-legend{padding:0 18px 10px}.project-overview{grid-template-columns:1fr}.project-overview>div{border-right:0;border-bottom:1px solid #e7ebf1;padding:0 0 18px}.project-overview>div:last-child{border-bottom:0;padding-bottom:0}.form-grid{grid-template-columns:1fr;gap:0}.login-page{grid-template-columns:1fr}.login-intro{display:none}.login-form-side{min-height:100vh;padding:28px}}
