:root { --bg:#f5f7f8; --card:#fff; --text:#17212b; --muted:#718096; --line:#e8edf0; --primary:#0f766e; --primary-dark:#115e59; --danger:#dc5b58; --amber:#c77917; --blue:#4677b8; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; font-size:14px; }
button,input,select { font:inherit; }
button { border:0; background:none; color:inherit; }
.app-shell { max-width:680px; margin:0 auto; padding:18px 16px 100px; }
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.eyebrow { color:var(--muted); font-size:12px; margin-bottom:4px; }
.company-switch { font-size:19px; font-weight:700; padding:0; }
.company-switch span { color:var(--muted); font-size:16px; }
.icon-btn { width:38px; height:38px; border-radius:50%; background:#d9ece9; color:var(--primary-dark); font-weight:700; }
.hero-card { background:linear-gradient(145deg,#0f766e,#134e4a); color:#fff; border-radius:22px; padding:22px; box-shadow:0 10px 26px rgba(15,118,110,.18); }
.hero-label { opacity:.75; font-size:13px; }.hero-amount { font-size:35px; font-weight:750; letter-spacing:.3px; margin:7px 0 15px; }.hero-meta { display:flex; gap:22px; color:rgba(255,255,255,.72); font-size:12px; }.hero-meta b { display:block; color:#fff; font-size:15px; margin-top:3px; }.account-pills { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }.account-pills span { background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:6px 10px; font-size:12px; }
.quick-actions { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:18px 0 8px; }.quick-action { display:flex; flex-direction:column; align-items:center; gap:7px; color:#44515c; font-size:12px; }.qa-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:15px; font-size:25px; font-weight:300; }.danger{background:#fff0f0;color:var(--danger)}.success{background:#e9f8f1;color:#15936d}.amber{background:#fff6e9;color:var(--amber)}.blue{background:#edf4ff;color:var(--blue)}
.section-head { display:flex; justify-content:space-between; align-items:center; margin:18px 0 10px; }.section-head h2 { margin:0; font-size:17px; }.text-btn { color:var(--primary); font-size:12px; }
.metric-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }.metric-card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:15px; }.metric-card span,.metric-card small { color:var(--muted); display:block; font-size:12px; }.metric-card strong { display:block; font-size:22px; margin:9px 0 3px; }
.record-list,.project-list { background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; }.record-row,.project-row { display:flex; align-items:center; gap:11px; padding:14px; border-bottom:1px solid var(--line); }.record-row:last-child,.project-row:last-child{border-bottom:0}.record-icon { width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#eef7f6;color:var(--primary);font-size:16px; }.record-main,.project-main{min-width:0;flex:1}.record-title,.project-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-sub,.project-sub{font-size:12px;color:var(--muted);margin-top:4px}.record-amount{font-weight:700;text-align:right;min-width:92px}.minus{color:var(--danger)}.plus{color:#15936d}.empty{padding:25px;text-align:center;color:var(--muted)}.project-progress{width:65px}.progress-track{height:6px;background:#edf0f1;border-radius:9px;overflow:hidden}.progress-bar{height:100%;background:var(--primary);border-radius:9px}.progress-num{font-size:11px;color:var(--muted);text-align:right;margin-top:4px}
.bottom-nav { position:fixed; bottom:0; left:0; right:0; height:72px; padding:7px max(16px,calc((100vw - 680px)/2)); padding-bottom:max(7px,env(safe-area-inset-bottom)); display:grid; grid-template-columns:repeat(5,1fr); background:rgba(255,255,255,.96); border-top:1px solid var(--line); backdrop-filter:blur(14px); z-index:10; }.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#9aa5ad;font-size:22px}.nav-item small{font-size:10px}.nav-item.active{color:var(--primary)}.add-nav span{width:42px;height:42px;display:grid;place-items:center;background:var(--primary);color:white;border-radius:15px;box-shadow:0 6px 16px rgba(15,118,110,.22)}
.sheet-backdrop{position:fixed;inset:0;background:rgba(18,31,37,.4);opacity:0;pointer-events:none;transition:.25s;z-index:20}.sheet-backdrop.show{opacity:1;pointer-events:auto}.bottom-sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,105%);width:min(680px,100%);background:#fff;border-radius:24px 24px 0 0;padding:10px 18px max(22px,env(safe-area-inset-bottom));z-index:21;transition:.28s;max-height:92vh;overflow:auto}.bottom-sheet.show{transform:translate(-50%,0)}.sheet-handle{width:38px;height:4px;border-radius:4px;background:#d8dfe2;margin:3px auto 12px}.sheet-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.sheet-title h2{font-size:18px;margin:0}.close-btn{font-size:27px;color:var(--muted);line-height:1}label{display:block;font-size:12px;color:#5f6b74;margin-bottom:13px}input,select{display:block;width:100%;border:1px solid #dfe6e9;border-radius:11px;padding:12px;margin-top:6px;background:#fff;color:var(--text);outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,118,110,.1)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-box{border:1px dashed #bfd4d0;border-radius:12px;padding:12px;color:var(--primary);background:#f6fbfa}.upload-box input{display:none}.upload-box small{display:block;color:var(--muted);margin-top:5px}.primary-btn{width:100%;border-radius:12px;padding:13px;background:var(--primary);color:#fff;font-weight:700;margin-top:3px}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,15px);background:#26343b;color:#fff;padding:10px 15px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}
@media (min-width:600px){.app-shell{padding-top:28px}.metric-grid{grid-template-columns:repeat(4,1fr)}.bottom-nav{border-radius:22px 22px 0 0}}
.page-view { padding-top: 4px; }
.page-title { font-size: 22px; margin: 8px 0 4px; }
.page-subtitle { color: var(--muted); font-size: 12px; margin-bottom: 18px; }
.filter-row { display:flex; gap:8px; overflow:auto; margin-bottom:12px; padding-bottom:2px; }
.ledger-date-tools{margin:14px 0}.date-periods{gap:7px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.date-periods::-webkit-scrollbar{display:none}.date-periods .filter-chip{flex:0 0 auto;white-space:nowrap;min-height:36px}.date-range-label{font-size:11px;color:var(--muted);margin:7px 0 12px}.date-custom{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:end;gap:7px;padding:12px;background:#fff;border-radius:12px}.date-custom[hidden]{display:none!important}.date-custom label{display:block;min-width:0;font-size:11px;color:var(--muted);margin:0}.date-custom input{display:block;min-width:0;width:100%;height:38px;margin-top:5px;padding:6px;font-size:12px;box-sizing:border-box}.date-custom>span{align-self:center;padding-top:16px;color:var(--muted);font-size:11px}.date-apply{height:38px;padding:0 12px;border:0;border-radius:9px;background:#137d77;color:#fff;font-size:12px;cursor:pointer}.ledger-period-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}.ledger-period-summary span{display:block;font-size:12px;color:var(--muted)}.ledger-period-summary b{display:block;font-size:clamp(14px,4vw,20px);margin-top:6px;overflow-wrap:anywhere}.ledger-period-summary>div:last-of-type b{color:#b97721}.ledger-period-summary small{grid-column:1/-1;color:var(--muted);font-size:11px}@media(max-width:360px){.date-custom{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.date-apply{grid-column:1/-1}.ledger-period-summary{padding:12px;gap:8px}}
.filter-chip { flex:none; border:1px solid var(--line); background:#fff; padding:8px 13px; border-radius:999px; color:var(--muted); font-size:12px; }
.filter-chip.active { background:#e7f5f3; color:var(--primary); border-color:#b9ded8; }
.date-periods{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;overscroll-behavior-x:contain;touch-action:auto;cursor:grab;user-select:none;-webkit-user-select:none}.date-periods.is-dragging,.date-periods.is-dragging button{cursor:grabbing}.date-periods button{cursor:inherit}.ledger-date-tools{min-width:0}
.full-row { background:#fff; border:1px solid var(--line); border-radius:15px; margin-bottom:9px; }
.row-extra { display:flex; justify-content:space-between; color:var(--muted); font-size:11px; margin-top:7px; }
.status { font-size:11px; padding:4px 7px; border-radius:999px; background:#fff4df; color:#aa7017; }
.status.ok { background:#e9f8f1; color:#17835f; }.status.rejected{background:#fff0f0;color:#d9534f}.status-tag{display:block;margin-top:4px;font-size:10px;line-height:1;font-weight:600}.status-tag.approved{color:#17835f}.status-tag.rejected{color:#d9534f}.status-tag.pending{color:#aa7017}
.report-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px; margin-bottom:11px; }
.report-card h3 { margin:0 0 13px; font-size:14px; }
.report-line { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; }.report-line:last-child{border-bottom:0}.report-line b{font-size:15px}

.row-actions{display:flex;gap:8px;margin-top:10px}.approve-btn,.reject-btn{padding:6px 12px;border-radius:8px;font-size:12px}.approve-btn{background:#e7f5f3;color:var(--primary)}.reject-btn{background:#fff0f0;color:var(--danger)}
.project-click{cursor:pointer}.project-click:active{background:#f6fbfa}
.project-card-progress{padding:12px 14px 14px}
#recentRecords{border-radius:18px;box-shadow:0 3px 12px rgba(29,60,70,.025)}
.recent-record{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:start;gap:10px;padding:16px}
.recent-record+.recent-record{border-top:1px solid #edf1f3}
.recent-record-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;overflow:hidden;background:#eef3f6;color:#7894a2;align-self:center}
.recent-income .recent-record-avatar{background:#eaf7f1;color:#279d78}
.recent-record-avatar>svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.recent-record-content{min-width:0}
.recent-record-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;font-weight:600;color:#2e4654;line-height:1.5;overflow-wrap:anywhere}
.recent-record-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:10px;line-height:1.6;color:#82959f;margin-top:5px;overflow-wrap:anywhere}
.recent-record-date{display:block;color:#a0adb4;font-size:10px;line-height:1.6;margin-top:2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.recent-record-payment{display:flex;align-items:center;gap:6px;color:#82959f}
.recent-record-payment:before{content:'';width:3px;height:3px;border-radius:50%;background:#c1cdd2;flex:none}
.recent-record-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-top:1px}
.recent-record-amount{font-size:clamp(16px,4.5vw,18px);font-weight:650;line-height:1.4;color:#d96963;white-space:nowrap;font-variant-numeric:tabular-nums}
.recent-income .recent-record-amount{color:#15936d}
.recent-record-status{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:4px 7px;font-size:10px;line-height:1.4;white-space:nowrap}
.recent-record-status i{width:4px;height:4px;border-radius:50%;background:currentColor}
.recent-record-status.approved{background:#edf7f2;color:#31886c}
.recent-record-status.pending{background:#fff6e8;color:#b37a23}
.recent-record-status.rejected{background:#feeeee;color:#c45d60}
@media(max-width:359px){.recent-record{padding:14px 12px;grid-template-columns:30px minmax(0,1fr) auto;gap:8px}.recent-record-avatar{width:30px;height:30px;border-radius:10px}.recent-record-title{font-size:13px}.recent-record-status{padding:3px 5px;font-size:9px}}
.ledger-record-card{border-radius:18px;overflow:hidden;box-shadow:0 3px 12px rgba(29,60,70,.025);margin-bottom:10px}
.ledger-record-context{font-size:11px;line-height:1.5;color:#82959f;margin-top:4px;overflow-wrap:anywhere}
.ledger-record-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:0 16px 13px}
.ledger-record-actions:empty{display:none}
.ledger-record-actions .record-pay-btn{margin:0}
.ledger-record-card .record-detail{border-radius:0 0 18px 18px;overflow-wrap:anywhere}
.ledger-record-card .record-detail{padding:16px;background:#f8fafb;cursor:default}
.ledger-detail-section+.ledger-detail-section{margin-top:18px;padding-top:16px;border-top:1px solid #e8eef1}
.ledger-detail-section h4{margin:0 0 10px;font-size:11px;line-height:1.5;font-weight:500;color:#8a9ba5;letter-spacing:.3px}
.ledger-detail-purpose{margin:0;font-size:13px;line-height:1.8;color:#405a68;overflow-wrap:anywhere}
.ledger-detail-fields{margin:0;padding:13px 14px;border:1px solid #eaf0f3;border-radius:12px;background:#fff}
.ledger-detail-fields>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;line-height:1.7}
.ledger-detail-fields>div+div{margin-top:10px}
.ledger-detail-fields dt{flex:none;color:#8a9ba5;font-size:11px}
.ledger-detail-fields dd{min-width:0;margin:0;text-align:right;font-size:12px;color:#486271;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ledger-detail-fields>div:first-child dd{font-size:14px;font-weight:600;color:#304f5e}
.ledger-receipt-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ledger-receipt-heading>span{font-size:10px;color:#8a9ba5}
.ledger-receipt-frame{margin:0;overflow:hidden;padding:6px;border:1px solid #e3eaf0;border-radius:12px;background:#fff}
.ledger-record-card .ledger-receipt-frame img{width:100%;height:auto;max-height:320px;object-fit:contain;margin:0;border-radius:8px;background:#fff}
.ledger-receipt-frame figcaption{padding:9px 6px 3px;font-size:10px;line-height:1.5;color:#92a0a9;overflow-wrap:anywhere}
.ledger-receipt-file{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid #e3eaf0;border-radius:12px;background:#fff}
.ledger-receipt-file>span{display:grid;place-items:center;width:34px;height:38px;border-radius:8px;background:#edf5f8;color:#7899a8;font-size:22px;flex:none}
.ledger-receipt-file>div{min-width:0}
.ledger-receipt-file b{display:block;font-size:12px;font-weight:500;color:#486271;overflow-wrap:anywhere}
.ledger-receipt-file small{display:block;margin-top:3px;font-size:10px;color:#92a0a9}
.ledger-receipt-empty{padding:15px;border:1px dashed #dfe7eb;border-radius:12px;text-align:center;font-size:11px;color:#9aa9b1;background:#fff}
.record-detail img,.expense-record-detail img{cursor:zoom-in}
.receipt-preview{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#111a22;color:#fff;overflow:hidden;animation:receiptPreviewIn .2s ease-out}
.receipt-preview::backdrop{background:#111a22}
.receipt-preview-head{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:calc(12px + env(safe-area-inset-top)) 18px 12px;z-index:2;background:rgba(17,26,34,.92)}
.receipt-preview-head h2{margin:0;font-size:14px;font-weight:500;color:#d8e1e7}
.receipt-preview-close{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#26323c;color:#fff;font-size:28px;line-height:1;cursor:pointer}
.receipt-preview-stage{position:absolute;inset:calc(76px + env(safe-area-inset-top)) 12px calc(86px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.receipt-preview-stage.is-zoomed{cursor:grab}
.receipt-preview-stage.is-zoomed:active{cursor:grabbing}
.receipt-preview-stage img{flex:none;max-width:none;max-height:none;object-fit:contain;transform-origin:center;will-change:transform;pointer-events:none;user-select:none;-webkit-user-drag:none}
.receipt-preview-controls{width:max-content;max-width:calc(100% - 24px);position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:7px;border:1px solid #34424d;border-radius:16px;background:#202d37;z-index:2}
.receipt-preview-controls button{flex:none;white-space:nowrap;height:38px;min-width:38px;padding:0 10px;background:#2b3b47;border-radius:10px;color:#fff;cursor:pointer;font-size:20px}
.receipt-preview-controls [data-zoom="reset"]{font-size:12px;margin-left:3px}
.receipt-preview-controls button:disabled{opacity:.35;cursor:default}
.receipt-preview-controls output{min-width:48px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:#cbd8e1}
.receipt-preview button:focus-visible{outline:2px solid #8bd6c9;outline-offset:2px}
@keyframes receiptPreviewIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.receipt-preview{animation:none}}
@media(max-width:359px){.ledger-record-card .record-detail{padding:14px 12px}.ledger-detail-fields{padding:12px}.ledger-detail-fields>div{gap:10px}}
.detail-actions.project-detail-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
.project-detail-actions .quick-action{min-width:0;font-size:clamp(10px,3vw,12px);cursor:pointer}
.project-ledger-icon{background:#eef0fb;color:#6c72b9}
.project-ledger-icon svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.detail-actions.project-ledger-only{grid-template-columns:minmax(0,1fr)}
.project-ledger-only .quick-action{flex-direction:row;justify-content:center;gap:10px}
.project-ledger-back{min-height:36px;padding:8px 0}
.project-ledger-context{font-size:12px;color:var(--muted);margin:7px 0 12px;overflow-wrap:anywhere}
.project-contact-card{background:linear-gradient(120deg,#fff,#f8fbfb);border:1px solid var(--line);border-radius:18px;padding:17px 18px;margin:0 0 14px}
.project-deadline{font-size:12px;line-height:1.6;color:#6f8580;margin:-4px 0 15px;overflow-wrap:anywhere}
.project-contact-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}
.project-contact-head h3{font-size:13px;font-weight:600;color:#657985;margin:0}
.project-contact-edit{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 11px;min-height:34px;border:1px solid #dcece8;border-radius:9px;background:#edf6f3;color:var(--primary);font-size:12px;cursor:pointer;white-space:nowrap}
.project-contact-edit svg{width:13px;height:13px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.project-contact-edit:active{background:#dfefea}
.project-contact-edit:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.project-contact-body{display:flex;align-items:center;gap:13px;padding-bottom:3px}
.project-contact-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:#e8f3f1;color:#39857c}
.project-contact-icon svg{width:25px;height:25px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.project-contact-info{min-width:0;flex:1}
.project-contact-name{display:block;font-size:clamp(16px,4.4vw,19px);font-weight:650;color:#263f4c;overflow-wrap:anywhere}
.project-contact-name.is-empty{font-size:15px;font-weight:500;color:#7b8d96}
.project-contact-phone{display:flex;align-items:flex-start;gap:6px;margin-top:8px;color:#7b8d96;font-size:12px;line-height:1.5}
.project-contact-phone svg{width:14px;height:14px;flex:none;margin-top:2px;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.project-contact-phone span{overflow-wrap:anywhere;min-width:0}
.detail-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.detail-actions .quick-action{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 4px}
.upload-box img{display:block;width:100%;max-height:150px;object-fit:cover;border-radius:10px;margin-top:10px}


.bottom-nav{pointer-events:auto;z-index:100}.nav-item{cursor:pointer}
body:not(.authenticated) .app-shell,body:not(.authenticated) .bottom-nav{visibility:hidden;pointer-events:none}.login-gate{position:fixed;inset:0;overflow:auto;background:linear-gradient(160deg,#0c6463 0%,#168c84 42%,#e7f7f4 42%,#f5fbfa 100%);z-index:200;padding:30px 18px env(safe-area-inset-bottom);display:flex;justify-content:center}.login-card{width:min(430px,100%);margin:auto 0;background:rgba(255,255,255,.97);border-radius:26px;padding:28px 22px 22px;box-shadow:0 18px 45px rgba(4,70,70,.2)}.login-brand{display:flex;align-items:center;gap:12px}.login-logo{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#159e94,#0d6e6b);color:#fff;font-size:24px;font-weight:800;box-shadow:0 8px 18px rgba(15,118,110,.25)}.login-brand strong{display:block;font-size:18px;color:#163c3e}.login-brand small{display:block;color:#7b8f91;font-size:11px;margin-top:3px}.login-welcome{margin:34px 0 24px}.login-welcome h1{margin:0;color:#153f40;font-size:28px;letter-spacing:1px}.login-welcome p{margin:9px 0 0;color:#7b8f91;font-size:13px}.login-form{padding:0}.login-field{height:52px;display:flex;align-items:center;gap:10px;background:#f4f8f8;border:1px solid #e4eeee;border-radius:13px;padding:0 14px;margin-bottom:14px;color:#648080}.login-field>span{width:34px;font-size:12px;color:#587879}.login-field input{flex:1;border:0!important;background:transparent!important;box-shadow:none!important;outline:0;font-size:14px;color:var(--text);min-width:0;margin:0;padding:0}.login-field button{border:0;background:transparent;color:#16847f;font-size:11px;padding:4px}.login-submit{height:52px;border-radius:14px;margin-top:15px;font-size:15px;letter-spacing:1px;box-shadow:0 8px 18px rgba(15,118,110,.2)}.login-tip{text-align:center;color:#9aa8a9;font-size:11px;margin:22px 0 0}.login-gate[hidden]{display:none!important}
.profile-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin:14px 0}.profile-card h2{margin:0 0 5px;font-size:19px}.profile-card p{margin:0;color:var(--muted);font-size:12px}.profile-avatar{width:58px;height:58px;border-radius:18px;cursor:pointer;background:#d9ece9 center/cover no-repeat;color:var(--primary-dark);display:grid;place-items:center;font-size:25px;font-weight:700}

.mine-page{min-height:calc(100vh - 95px);margin:-18px -16px -100px;padding:28px 18px 110px;background:linear-gradient(180deg,#eef4ff 0,#f6f8fb 38%,#f5f7f8 100%)}.mine-header{display:flex;align-items:center;justify-content:space-between;margin:10px 4px 25px}.mine-user{display:flex;align-items:center;gap:13px}.mine-user h2{margin:0 0 5px;font-size:20px}.mine-user p{margin:0;color:var(--muted);font-size:12px}.mine-settings{font-size:25px;color:#50606d}.mine-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#fff;border-radius:17px;padding:16px 8px;margin-bottom:16px}.mine-quick.partner-layout{grid-template-columns:repeat(3,1fr)}.mine-quick button{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px}.mine-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:22px}.mine-icon.orange{background:#fff0df;color:#f18a32}.mine-icon.blue{background:#e8f0ff;color:#4a86ef}.mine-icon.cyan{background:#e2f8fb;color:#16a8bf}.mine-icon.violet{background:#e9edff;color:#667be8}.mine-list{background:#fff;border-radius:17px;overflow:hidden}.mine-list button{width:100%;display:flex;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px dashed #edf0f3;text-align:left}.mine-list button:last-child{border-bottom:0}.mine-list i{margin-left:auto;color:#aab2b8;font-size:22px;font-style:normal}.list-icon{width:24px;height:24px;border-radius:6px;background:#eaf1ff;color:#4b85ee;display:grid;place-items:center;font-weight:700}.mine-account{display:flex;gap:8px;margin-top:16px}.mine-account button{flex:1;background:#fff;border:1px solid var(--line);padding:10px 4px;border-radius:10px;color:var(--muted);font-size:12px}
.company-info-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;text-align:center;margin:14px 0}.company-logo{width:62px;height:62px;border-radius:20px;background:#e7f5f3;color:var(--primary);display:grid;place-items:center;font-size:27px;font-weight:700;margin:0 auto 12px}.company-info-card h2{margin:0 0 8px}.company-info-card p{margin:0;color:var(--muted);line-height:1.7}textarea{display:block;width:100%;border:1px solid #dfe6e9;border-radius:11px;padding:12px;margin-top:6px;background:#fff;color:var(--text);resize:vertical;font:inherit}textarea[readonly],input[readonly]{background:#f7f9fa;color:var(--muted)}.readonly-note{color:var(--muted);font-size:12px;text-align:center;padding:10px}

/* 手机 H5 容器 */
.app-shell{max-width:430px}.bottom-nav{left:50%;right:auto;width:min(100%,430px);transform:translateX(-50%);padding-left:16px;padding-right:16px}.bottom-sheet{width:min(430px,100%)}


/* 全局响应式适配 */
html{font-size:clamp(14px,3.6vw,16px);overflow-x:hidden}
body{min-width:320px;overflow-x:hidden;font-size:1rem}
.app-shell{width:100%;padding:clamp(14px,4vw,28px) clamp(12px,4.5vw,18px) 100px}
.topbar{margin-bottom:clamp(14px,4vw,22px)}
.company-switch{font-size:clamp(17px,5vw,20px)}
.hero-card{border-radius:clamp(17px,5vw,22px);padding:clamp(17px,5vw,24px)}
.hero-amount{font-size:clamp(29px,9vw,36px)}
.hero-meta{gap:clamp(12px,5vw,24px)}
.quick-actions{gap:clamp(5px,2vw,10px);padding-top:clamp(14px,4vw,20px)}
.qa-icon{width:clamp(40px,12vw,46px);height:clamp(40px,12vw,46px)}
.section-head{margin-top:clamp(15px,5vw,22px)}
.section-head h2{font-size:clamp(16px,4.5vw,18px)}
.metric-card{padding:clamp(12px,4vw,16px);border-radius:clamp(13px,4vw,17px)}
.metric-card strong{font-size:clamp(19px,6vw,23px)}
.record-row,.project-row{padding:clamp(11px,3.5vw,15px);gap:clamp(8px,3vw,12px)}
.record-title,.project-title{font-size:clamp(13px,3.8vw,15px)}
.page-title{font-size:clamp(20px,6vw,25px)}
.page-subtitle{font-size:clamp(11px,3.2vw,13px)}
.report-card{padding:clamp(13px,4vw,18px);border-radius:clamp(14px,4vw,18px)}
input,select,textarea{font-size:clamp(13px,3.8vw,15px);min-height:44px}
.primary-btn{min-height:44px;font-size:clamp(13px,3.8vw,15px)}
.bottom-nav{height:calc(68px + env(safe-area-inset-bottom));padding-bottom:max(7px,env(safe-area-inset-bottom))}
.nav-item{font-size:clamp(19px,6vw,23px)}
.nav-item small{font-size:clamp(9px,2.8vw,11px)}
.bottom-sheet{padding-left:clamp(14px,5vw,20px);padding-right:clamp(14px,5vw,20px)}
.mine-page{padding-left:clamp(14px,5vw,20px);padding-right:clamp(14px,5vw,20px)}
.mine-user h2{font-size:clamp(18px,5.5vw,21px)}
.mine-quick{padding:clamp(13px,4vw,17px) 6px}
.mine-list button{padding:clamp(13px,4vw,16px)}
@media (min-width:600px){.metric-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:360px){.app-shell{padding-left:11px;padding-right:11px}.mine-quick button{font-size:10px}.mine-list button{gap:9px}.login-card{padding-left:17px;padding-right:17px}}

.password-modal{position:fixed;inset:0;z-index:180;background:rgba(20,39,43,.42);display:flex;align-items:center;justify-content:center;padding:18px;animation:passwordBackdropIn .22s ease-out both}.password-dialog{width:min(390px,100%);background:#fff;border-radius:20px;padding:20px;box-shadow:0 18px 45px rgba(0,0,0,.2);animation:passwordDialogIn .28s cubic-bezier(.22,.8,.28,1) both;transform-origin:center bottom}@keyframes passwordBackdropIn{from{opacity:0}to{opacity:1}}@keyframes passwordDialogIn{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.password-dialog-head{display:flex;align-items:center;justify-content:space-between}.password-dialog-head h2{margin:0;font-size:19px}.password-close{font-size:27px;color:var(--muted);line-height:1;padding:0 4px}.password-help{font-size:12px;color:var(--muted);margin:8px 0 18px}

.mine-account button:only-child{width:100%;color:#d9534f;background:#fff4f3;border-color:#f2c8c5}

.confirm-modal{position:fixed;inset:0;z-index:181;background:rgba(20,39,43,.42);display:flex;align-items:center;justify-content:center;padding:18px;animation:passwordBackdropIn .22s ease-out both}.confirm-dialog{width:min(330px,100%);background:#fff;border-radius:20px;padding:23px 20px 18px;text-align:center;box-shadow:0 18px 45px rgba(0,0,0,.2);animation:passwordDialogIn .28s cubic-bezier(.22,.8,.28,1) both}.confirm-icon{width:42px;height:42px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:#fff1ef;color:#d9534f;font-size:23px;font-weight:800}.confirm-dialog h2{margin:0;font-size:18px}.confirm-dialog p{margin:8px 0 20px;color:var(--muted);font-size:13px}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.confirm-actions button{height:42px;border-radius:11px;font-size:13px}.confirm-cancel{background:#f4f6f7;color:#718096}.confirm-danger{background:#d9534f;color:#fff}

.shareholder-list .shareholder-row{padding:13px 0;align-items:center}.shareholder-list .shareholder-row:first-child{padding-top:4px}.shareholder-list .shareholder-row:last-child{padding-bottom:3px}

.shareholder-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}.shareholder-panel h3{margin:0 0 8px;font-size:14px}.shareholder-row{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.shareholder-row:last-child{border-bottom:0;padding-bottom:2px}.shareholder-avatar{width:34px;height:34px;flex:none;border-radius:11px;background:#e7f5f3;color:var(--primary);display:grid;place-items:center;font-weight:700}.shareholder-info{flex:1;min-width:0}.shareholder-info b,.shareholder-info small{display:block}.shareholder-info b{font-size:13px}.shareholder-info small{color:var(--muted);font-size:11px;margin-top:4px}

.add-shareholder-btn{margin:0 0 12px}

.project-finance{display:block}.project-finance span{display:block}.project-finance span+span{margin-top:3px}

.record-expandable{cursor:pointer}.record-detail{padding:12px 14px 14px;border-top:1px solid var(--line);background:#fbfdfd;color:#52646b;font-size:12px;line-height:1.8}.record-detail img{display:block;width:100%;max-height:260px;object-fit:contain;margin-top:8px;border-radius:10px;background:#eef3f3}.detail-muted{color:var(--muted)}

.record-avatar{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}

/* 项目创建与修改密码共用居中弹窗样式 */
.project-modal[hidden]{display:none!important}
.project-modal .password-dialog{max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain}
.project-modal .password-dialog-head{margin-bottom:18px}

/* 首页统计数字按业务含义区分颜色 */
#activeProjects{color:#3671bd}
#receivable{color:#ad721c}
#pendingCount{color:#b96b12}
#monthProfit{color:#17835f}
#monthProfit.is-negative{color:#d34f50}
.home-overview{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.home-profit-card{padding:18px;background:linear-gradient(120deg,#f2f8f7,#fff)}
.home-profit-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;color:#536776}
.home-period{font-size:10px;padding:4px 8px;border-radius:6px;background:#e7f1ef;color:#62817a;white-space:nowrap}
.home-profit-card>strong{display:block;font-size:clamp(26px,7vw,34px);margin:10px 0 18px;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}
.home-profit-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.home-profit-breakdown>div{min-width:0}
.home-profit-breakdown>div+div{border-left:1px solid var(--line);padding-left:16px}
.home-profit-breakdown span{display:block;font-size:11px;color:var(--muted)}
.home-profit-breakdown b{display:block;font-size:clamp(13px,3.8vw,17px);font-variant-numeric:tabular-nums;font-weight:600;color:#17835f;margin-top:7px;white-space:nowrap}
.home-profit-breakdown b.is-negative{color:#d34f50}
.home-project-metrics{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
.home-project-metrics>article,.home-project-metrics>button{padding:16px 18px;min-width:0}
.home-project-metrics>*+*{border-top:1px solid var(--line)}
.home-project-metrics>article>span,.home-project-metrics>button>span{display:block;color:var(--muted);font-size:12px}
.home-project-metrics strong{display:block;font-size:clamp(18px,5vw,22px);line-height:1.5;white-space:nowrap;margin-top:6px;font-variant-numeric:tabular-nums}
.home-project-metrics small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.home-project-metrics .home-project-count{display:flex;align-items:baseline;gap:6px}
.home-pending-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--line);font-size:12px;color:#63727d}
.home-pending-line>span:first-child{display:flex;align-items:center;gap:7px}
.home-pending-line i{width:6px;height:6px;border-radius:50%;background:#d59636}
.home-pending-line strong{font-size:16px;font-variant-numeric:tabular-nums}
.home-overview-link{width:100%;text-align:left;cursor:pointer;transition:background .16s}
.home-overview-link:active{background:#edf5f3}
.home-overview-link:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}
.home-entry-chevron{color:#9aaab1;font-size:16px;line-height:1;margin-left:6px}
@media(min-width:360px){.home-project-metrics{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.home-project-metrics>*+*{border-top:0;border-left:1px solid var(--line)}}

.project-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.project-progress-head h3{margin:0}.project-progress-head .text-btn{min-height:36px;padding:8px 0 8px 12px}
#otherTypeField[hidden]{display:none!important}
#typeField[hidden]{display:none!important}

/* 记账表单滚动，确认按钮保持可见并位于导航栏上方 */
#sheetBackdrop{z-index:170}
#entrySheet{z-index:171;display:flex;flex-direction:column;max-height:92vh;max-height:92dvh;overflow:hidden;padding-bottom:0}
#entrySheet .sheet-handle,#entrySheet .sheet-title{flex-shrink:0}
#entryForm{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.entry-fields{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 2px}
.entry-footer{flex-shrink:0;background:#fff;border-top:1px solid var(--line);padding:12px 0 max(16px,env(safe-area-inset-bottom))}
.entry-footer .primary-btn{margin:0;min-height:46px}
#filePreview[hidden]{display:none!important}

.capital-summary{margin-top:16px}.capital-history-row{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.8;color:var(--muted)}.capital-history-row:last-child{border-bottom:0}.capital-history-row b{display:block;color:var(--text);font-size:13px;margin-bottom:3px}.capital-history-row small{display:block;margin-top:4px;font-size:11px;overflow-wrap:anywhere}

/* 公司工作台与首页快捷入口 */
.topbar{display:block;margin-bottom:12px}
.app-shell:has(> #homeView[hidden]) > .topbar{display:none}
.company-identity{display:flex;align-items:center;gap:13px;width:100%;min-height:88px;padding:17px 16px;text-align:left;border:1px solid #dcece8;border-radius:20px;background:linear-gradient(115deg,#e7f3ef 0%,#f1f8f6 70%,#f7faf9 100%);box-shadow:0 3px 12px rgba(22,83,72,.025);cursor:pointer}
.company-emblem{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;background:#fff;border:1px solid #e2eee9;border-radius:15px;box-shadow:0 4px 10px rgba(24,91,78,.04)}
.company-identity .company-emblem{color:#147b6e}
.company-emblem svg{width:26px;height:26px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.company-heading{display:flex;flex-direction:column;min-width:0;flex:1;gap:5px}
.company-identity .company-eyebrow{font-size:11px;font-weight:400;color:#698b82;letter-spacing:1px}
.company-heading strong{font-size:clamp(17px,4.8vw,21px);line-height:1.35;font-weight:700;color:#193f38;overflow-wrap:anywhere}
.company-identity .company-chevron{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0;color:#6c978a;background:rgba(255,255,255,.7);border-radius:50%}
.company-chevron svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.home-quick-actions{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:17px 5px 15px;margin:0 0 5px;border:1px solid #e8eeec;border-radius:19px;background:#fff;box-shadow:0 4px 16px rgba(25,70,60,.025)}
.home-quick-actions .quick-action{position:relative;min-width:0;min-height:73px;gap:9px;padding:0 4px;font-size:12px;font-weight:500;color:#455b57;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .16s ease}
.home-quick-actions .quick-action:active{transform:scale(.95)}
.home-quick-actions .quick-action:not(:last-child)::after{content:'';position:absolute;right:0;top:17px;width:1px;height:30px;background:#edf1ef}
.home-quick-actions .qa-icon{width:44px;height:44px;border-radius:14px}
.home-quick-actions .qa-icon svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.home-quick-actions .danger{background:#fff0ec;color:#d67659}.home-quick-actions .success{background:#e6f5ee;color:#218f70}.home-quick-actions .amber{background:#fff5e6;color:#c38b33}.home-quick-actions .blue{background:#edf2ff;color:#5c81c0}
.company-identity:focus-visible,.home-quick-actions .quick-action:focus-visible{outline:2px solid #31988a;outline-offset:3px}
.project-finance-overview{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;margin-top:14px}
.project-cash-card{padding:20px;background:linear-gradient(120deg,#eef8f5,#f7fbfa);border-bottom:1px solid #e0eeea}
.project-cash-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px;color:#506b65;font-size:13px}
.project-cash-head .text-btn{padding:5px 0 5px 12px;white-space:nowrap}
.project-cash-card>strong{display:block;font-size:clamp(25px,7vw,34px);font-weight:750;line-height:1.3;margin:8px 0;white-space:nowrap;letter-spacing:-.5px}
.project-cash-card>small{font-size:11px;color:var(--muted)}
.project-finance-groups{display:grid;grid-template-columns:minmax(0,1fr);padding:0 18px}
.project-money-group{padding:17px 0;min-width:0}
.project-money-group+ .project-money-group{border-top:1px solid var(--line)}
.project-money-group h3{font-size:13px;color:#445b69;margin:0 0 13px;font-weight:600}
.project-money-line{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 12px;min-width:0}
.project-money-line+ .project-money-line{margin-top:10px}
.project-money-line>span{font-size:12px;color:var(--muted);white-space:nowrap}
.project-money-line>b{font-size:18px;font-weight:650;white-space:nowrap;line-height:1.5;font-variant-numeric:tabular-nums}
.project-money-line .project-payable{color:var(--amber)}
.project-money-line .project-actual-cost{color:var(--blue)}
.project-budget{padding:14px 18px;background:#f9fafb;border-top:1px solid var(--line)}
.project-budget .project-money-line>b{font-size:14px;color:#556676}
@media(min-width:480px){.project-finance-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-money-group+ .project-money-group{border-top:0;border-left:1px solid var(--line);padding-left:18px}.project-money-group .project-money-line{display:block}.project-money-group .project-money-line>b{display:block;margin-top:3px}.project-budget{display:flex;gap:24px;justify-content:space-between}.project-budget .project-money-line{flex:1}.project-budget .project-money-line+ .project-money-line{margin-top:0}}
.project-settlement-panel{margin-top:14px}.project-settlement-panel .status-tag{margin:0}.settlement-review{background:#f4f8f7;padding:0 12px;border-radius:12px;margin-bottom:18px}.settlement-review .report-line{padding:11px 0}.settlement-profit{display:flex;justify-content:space-between;align-items:center;background:#eef7f4;padding:16px;border-radius:12px;margin:14px 0}.settlement-profit span{font-size:13px;color:var(--muted)}.settlement-profit strong{font-size:24px}.settlement-date{font-size:11px;color:var(--muted)}.project-balance-label{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:5px}.record-pay-btn{display:block;margin-top:10px;padding:7px 10px;border-radius:8px;background:#e7f5f3;font-size:12px}.settlement-history{margin-top:14px;font-size:12px;color:var(--muted)}.settlement-history summary{cursor:pointer;padding:8px 0}.settlement-history p{line-height:1.8;border-top:1px solid var(--line);padding-top:9px;overflow-wrap:anywhere}
@media(max-width:360px){.company-identity{padding:14px 12px;gap:10px;min-height:82px}.company-emblem{flex-basis:41px;width:41px;height:41px;border-radius:13px}.home-quick-actions{padding:14px 2px 12px}.home-quick-actions .quick-action{font-size:11px;min-height:68px}.home-quick-actions .qa-icon{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.home-quick-actions .quick-action{transition:none}}

/* Project overview and personal workspace */
.projects-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 20px}
.projects-heading .page-title{margin:0 0 6px;font-size:24px;font-weight:700;color:#243f46}
.projects-heading .page-subtitle{margin:0;font-size:11px;color:#8a9ba2}
.project-create{display:flex;align-items:center;gap:3px;flex:none;min-height:40px;padding:0 13px;background:#127d74;color:#fff;border-radius:12px;font-size:12px;font-weight:600;box-shadow:0 4px 10px #127d7418}
.project-create>span{font-size:19px;font-weight:400}
.project-filters{gap:6px;margin-bottom:17px;scrollbar-width:none}
.project-filters::-webkit-scrollbar{display:none}
.project-filters .filter-chip{border-color:transparent;background:transparent;padding:8px 12px;color:#85979e}
.project-filters .filter-chip.active{background:#e0f1eb;color:#167e6a;font-weight:600;border-color:#cde7de}
.project-list-card{border:1px solid #e5edeb;border-radius:19px;margin-bottom:14px;overflow:hidden;box-shadow:0 4px 15px #214e4304}
.project-list-head{display:flex;align-items:center;gap:11px;padding:17px 16px 15px}
.project-list-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:13px;background:#edf6f2;color:#308d79}
.project-list-icon svg,.mine-page svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.project-list-head .record-title{font-size:15px;color:#29434a}
.project-list-client{margin-top:5px;font-size:11px;color:#8a9ba2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-stage{flex:none;padding:5px 8px;border-radius:7px;font-size:10px;line-height:1.2;background:#edf2f8;color:#7085a5}
.project-stage.active{background:#e6f5ed;color:#268c6c}.project-stage.completed{background:#eef0fb;color:#7b80aa}
.project-list-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 15px;padding:14px 11px;background:#f7f9f9;border-radius:12px}
.project-list-money>div{min-width:0}.project-list-money>div+div{border-left:1px solid #e7edeb;padding-left:11px}
.project-list-money span{display:block;font-size:10px;color:#8b9b9f;white-space:nowrap}
.project-list-money b{display:block;font-size:clamp(12px,3.5vw,15px);font-variant-numeric:tabular-nums;margin-top:7px;color:#405960;overflow-wrap:anywhere}
.project-list-money b.cost{color:#5d80b2}.project-list-money b.plus{color:#248c71}.project-list-money b.minus{color:#d17b68}
.project-list-card .project-card-progress{padding:15px 16px 17px}
.project-progress-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:#8c9ca2;margin-bottom:10px}
.project-progress-caption b{font-weight:500;color:#557b71;margin-left:4px}
.project-collection.is-pending{color:#b48542}.project-collection.is-paid{color:#39947c}.project-collection.is-quote{color:#8c9ca2}
.project-list-card .progress-track{height:5px;background:#edf2f0}.project-list-card .progress-bar{background:linear-gradient(90deg,#1a8a7a,#70b9a2)}
.mine-page{min-height:0;margin:0;padding:0 0 16px;background:transparent}
.mine-header{position:relative;display:block;margin:2px 0 16px;padding:26px 16px 24px;border:1px solid #deece5;border-radius:22px;background:radial-gradient(ellipse at top right,#dcefe4,transparent 70%),linear-gradient(145deg,#f0f8f2,#f8fbfa)}
.mine-user{flex-direction:column;gap:13px;text-align:center;min-width:0}
.mine-user>div{max-width:100%}.mine-user h2{font-size:21px;line-height:1.4;color:#294b45;overflow-wrap:anywhere;margin:0 0 8px}
.mine-user p{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;color:#8a9b98;font-size:11px;overflow-wrap:anywhere}
.mine-role{padding:3px 8px;border-radius:6px;background:#deeee5;color:#5c8976;font-size:10px}
.mine-user .profile-avatar{flex:none;width:72px;height:72px;border-radius:24px;background-color:#d3eade;color:#397c66;border:4px solid #fff;box-shadow:0 4px 12px #335f4c0b;font-size:28px}
.mine-settings{position:absolute;right:14px;top:14px;width:36px;height:36px;display:grid;place-items:center;background:#ffffffb0;border:1px solid #e4ece6;border-radius:12px;color:#779488}
.mine-settings svg{width:19px;height:19px}
.mine-quick{border:1px solid #e7edeb;border-radius:18px;padding:19px 6px;margin-bottom:22px;gap:0;box-shadow:0 3px 12px #244b3c03}
.mine-quick button{min-width:0;gap:10px;font-size:11px;color:#536863;min-height:70px;justify-content:center;padding:0 2px}
.mine-quick b{font-weight:500;line-height:1.5}.mine-icon{width:42px;height:42px;border-radius:14px}
.mine-icon.orange{color:#c59145;background:#fcf1e0}.mine-icon.blue{color:#658abb;background:#edf2fa}.mine-icon.cyan{color:#429c92;background:#e9f6f1}.mine-icon.violet{color:#8b80b8;background:#f0edf9}
.mine-section-label{font-size:11px;letter-spacing:1px;color:#96a5a0;margin:0 4px 10px}
.mine-list{border:1px solid #e5ece9;border-radius:18px}
.mine-list button{padding:15px 16px;gap:13px;border-bottom:1px solid #f0f3f1;min-height:65px;color:#4c625c;font-size:13px}
.mine-list .list-icon{width:34px;height:34px;border-radius:11px;flex:none;background:#eef6f2;color:#649585}
.mine-list .list-icon svg{width:19px;height:19px}.mine-list .list-icon.equity{background:#f1eef9;color:#9584b6}.mine-list .list-icon.vehicle{background:#edf3fb;color:#7298bd}.mine-list .list-icon.about{background:#f4f3ec;color:#a59b71}
.mine-list i{color:#b4c1bc;font-size:21px}
.mine-account{margin-top:19px}.mine-account button:only-child{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;background:#fff5f3;border:1px solid #f0dcd6;border-radius:13px;color:#ce7866;font-size:12px}
.mine-account svg{width:17px;height:17px}
.mine-page button,.project-create,.project-list-card{cursor:pointer;-webkit-tap-highlight-color:transparent}
.mine-page button:focus-visible,.project-create:focus-visible,.project-list-card:focus-visible{outline:2px solid #359580;outline-offset:3px}
@media(max-width:360px){.projects-heading{gap:8px}.projects-heading .page-subtitle{font-size:10px}.project-create{padding:0 10px;font-size:11px}.project-list-head{padding:14px 12px;gap:8px}.project-list-head .record-title{font-size:14px}.project-list-money{margin:0 11px;gap:5px;padding:12px 8px}.project-list-money>div+div{padding-left:7px}.project-list-money b{font-size:12px}.mine-quick button{font-size:10px}.mine-icon{width:37px;height:37px}}

.expense-hero{background:linear-gradient(125deg,#117f80,#176f8c);color:#fff;border-radius:20px;padding:22px 20px;margin:16px 0}.expense-hero>span{font-size:13px;opacity:.85}.expense-hero>strong{display:block;font-size:clamp(28px,8vw,38px);margin:10px 0 18px;overflow-wrap:anywhere}.expense-breakdown{display:flex;gap:22px;font-size:12px}.expense-breakdown b{display:block;margin-top:5px;font-size:15px}.expense-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}.expense-metrics>div{background:#fff;border-radius:13px;padding:13px 10px;min-width:0}.expense-metrics span{font-size:11px;color:var(--muted);display:block}.expense-metrics b{display:block;color:#117d76;font-size:clamp(13px,3.8vw,18px);margin-top:7px;overflow-wrap:anywhere}.expense-metrics .expense-pending{color:#b97721}.expense-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.expense-list-head h3{font-size:15px;margin:12px 0}.expense-list-head>span{font-size:12px;color:var(--muted)}.expense-person{display:flex;align-items:center;text-align:left;width:100%;gap:11px;padding:14px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}.expense-person:last-child{border-bottom:0}.expense-person.selected{background:#edf8f6;border-radius:10px;padding-inline:8px}.expense-avatar{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:#e1f2ef;color:#0c7974;border-radius:50%;font-size:17px;overflow:hidden}.expense-avatar img{width:100%;height:100%;object-fit:cover}.expense-person-info{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0;overflow-wrap:anywhere}.expense-person-info small{color:var(--muted);font-size:11px}.expense-person>strong{font-size:15px;color:#167f79;max-width:45%;overflow-wrap:anywhere}.expense-record{background:#fff;border-radius:14px;margin-bottom:10px;overflow:hidden}.expense-record summary{padding:16px;cursor:pointer;list-style:none}.expense-record summary::-webkit-details-marker{display:none}.expense-record-head{display:flex;gap:10px;justify-content:space-between}.expense-record-head b{font-size:14px;overflow-wrap:anywhere}.expense-record-head>span{color:#899ca9}.expense-record-meta{font-size:12px;color:var(--muted);margin-top:7px;overflow-wrap:anywhere}.expense-record-total{display:flex;align-items:center;gap:10px;margin-top:11px;flex-wrap:wrap}.expense-record-total strong{color:#c6694b;font-size:18px}.expense-record-total .status-tag{margin:0}.expense-record-detail{padding:0 16px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.expense-record-detail img{display:block;max-width:100%;border-radius:10px;margin-top:12px}#paymentSourceField[hidden],#accountField[hidden],#projectEntryForm label[hidden]{display:none!important}
/* Shareholder expense workspace */
#shareholderExpenses .page-title{font-size:24px;font-weight:700;color:#29464b;margin-top:14px}
#shareholderExpenses .page-subtitle{color:#95a5aa;font-size:11px;margin:6px 0 19px}
#expenseBack{font-size:11px;color:#72978c}
#shareholderExpenses .ledger-date-tools{margin:0 0 16px;padding:12px 11px 0;background:#fff;border:1px solid #e7eeeb;border-radius:15px;overflow:hidden}
#shareholderExpenses .date-periods{gap:4px;margin-bottom:8px}
#shareholderExpenses .date-periods .filter-chip{border:0;background:transparent;color:#8a9b9f;padding:7px 11px;font-size:11px;min-height:32px}
#shareholderExpenses .date-periods .filter-chip.active{background:#e5f3ec;color:#26846b;font-weight:600}
#shareholderExpenses .date-range-label{margin:8px 3px 12px;font-size:10px;color:#98a7a8}
#shareholderExpenses .expense-hero{background:radial-gradient(ellipse at top right,#418e7d,transparent 75%),linear-gradient(125deg,#166b60,#225e58);padding:20px;border-radius:20px;margin:0 0 12px;box-shadow:0 7px 16px #245c4c0c}
.expense-hero .expense-hero-label{display:flex;align-items:center;gap:8px;font-size:11px;color:#d9ebe2;opacity:1}
.expense-hero-label svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#shareholderExpenses .expense-hero>strong{font-size:clamp(29px,9vw,38px);font-weight:650;letter-spacing:.5px;font-variant-numeric:tabular-nums;margin:14px 0 20px}
#shareholderExpenses .expense-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #ffffff24;padding-top:15px;font-size:10px;color:#c1dbd1}
#shareholderExpenses .expense-breakdown>span+span{padding-left:20px;border-left:1px solid #ffffff24}
#shareholderExpenses .expense-breakdown b{font-size:16px;margin-top:7px;color:#f1faf6}
#shareholderExpenses .expense-metrics{gap:8px;margin-bottom:22px}
#shareholderExpenses .expense-metrics>div{padding:13px 10px 14px;border:1px solid #e5edeb;border-radius:15px}
#shareholderExpenses .expense-metrics .expense-metric-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;color:#6a9b87;background:#eef6f1;margin-bottom:10px}
.expense-metric-icon svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#shareholderExpenses .expense-metrics>div:nth-child(2) .expense-metric-icon{color:#8098ba;background:#eff3f9}
#shareholderExpenses .expense-metrics>div:nth-child(3) .expense-metric-icon{color:#bc995b;background:#fbf4e8}
#shareholderExpenses .expense-metrics span{font-size:10px;color:#94a3a4}
#shareholderExpenses .expense-metrics b{font-size:clamp(13px,4vw,17px);color:#4c7b68;font-variant-numeric:tabular-nums}
#shareholderExpenses .expense-metrics>div:nth-child(2) b{color:#718eb1}
#shareholderExpenses .expense-metrics .expense-pending{color:#b88d46}
#shareholderExpenses .shareholder-panel{padding:6px 15px;border:1px solid #e4ece8;border-radius:18px;margin-bottom:18px}
#shareholderExpenses .expense-list-head h3{font-size:13px;color:#49645a;margin:14px 0}
#shareholderExpenses .expense-list-head>span{font-size:10px;color:#95a5a1}
#shareholderExpenses #expenseAll{font-size:10px;background:#eef6f1;color:#6c9781;padding:5px 9px;border-radius:7px}
#shareholderExpenses .expense-person{gap:11px;padding:14px 0;border-color:#eff3f0}
#shareholderExpenses .expense-person.selected{padding-inline:8px;background:#edf6ef;box-shadow:inset 3px 0 #70a98c}
#shareholderExpenses .expense-avatar{width:38px;height:38px;border-radius:13px;background:#eaf3ee;color:#639d81;font-size:16px;font-weight:600}
#shareholderExpenses .expense-person:nth-child(3n+2) .expense-avatar{color:#7a96b5;background:#edf2f8}
#shareholderExpenses .expense-person:nth-child(3n) .expense-avatar{color:#a292b8;background:#f2eef8}
#shareholderExpenses .expense-person-info b{font-size:13px;font-weight:600;color:#455e55}
#shareholderExpenses .expense-person-info small{font-size:10px;color:#a1ada9}
#shareholderExpenses .expense-person>strong{font-size:14px;font-weight:600;color:#4d8770;font-variant-numeric:tabular-nums}
.expense-filter-panel{background:#fff;border:1px solid #e6ede9;border-radius:15px;padding:5px 12px;margin-bottom:18px}
.expense-filter-line{display:flex;align-items:center;gap:10px;padding:10px 0;min-width:0}
.expense-filter-line+.expense-filter-line{border-top:1px solid #f0f3f1}
.expense-filter-label{flex:none;font-size:10px;color:#a0ada6}
#shareholderExpenses .expense-filter-line .filter-row{min-width:0;margin:0;gap:5px;padding:0;scrollbar-width:none}
#shareholderExpenses .expense-filter-line .filter-chip{font-size:10px;border:0;border-radius:7px;background:transparent;padding:7px 9px;color:#8a9d94;white-space:nowrap}
#shareholderExpenses .expense-filter-line .filter-chip.active{background:#e8f3ec;color:#428567;font-weight:600}
#shareholderExpenses .expense-record{border:1px solid #e6ede9;border-radius:16px;margin-bottom:10px}
#shareholderExpenses .expense-record summary{padding:16px}
#shareholderExpenses .expense-record-head b{font-size:13px;color:#465e56}
#shareholderExpenses .expense-record-head>span{transition:transform .2s;color:#a7b7af}
#shareholderExpenses .expense-record[open] .expense-record-head>span{transform:rotate(180deg)}
#shareholderExpenses .expense-record-meta{font-size:10px;line-height:1.6;color:#9aa9a4;margin-top:5px}
#shareholderExpenses .expense-record-total{padding-top:11px;margin-top:10px;border-top:1px solid #f1f4f2}
#shareholderExpenses .expense-record-total strong{font-size:18px;color:#c5836b;font-weight:600}
#shareholderExpenses .expense-record-total .status-tag{padding:5px 8px;border-radius:6px;font-size:9px;background:#f8f3e8}
#shareholderExpenses .expense-record-total .approved{background:#edf5ee;color:#639b78}
#shareholderExpenses .expense-record-total .rejected{background:#fbefec;color:#c67c6d}
#shareholderExpenses .expense-record-detail{background:#fafcfb;color:#8c9e94;font-size:11px;padding-top:3px}
#shareholderExpenses .empty{font-size:12px;color:#a2afa9;padding:30px 12px}
@media(max-width:360px){#shareholderExpenses .expense-metrics>div{padding:12px 8px}#shareholderExpenses .expense-metrics span{font-size:9px}.expense-filter-line{gap:6px}#shareholderExpenses .expense-filter-line .filter-chip{padding:7px 7px;font-size:9px}}
/* Account workspace */
.account-workspace #backAccountProfile{font-size:11px;color:#72978c}
.account-workspace .page-title{font-size:24px;font-weight:700;color:#29464b;margin:14px 0 18px}
.account-workspace .hero-card{border:0;background:radial-gradient(ellipse at top right,#438f7c,transparent 75%),linear-gradient(130deg,#196e61,#205b54);border-radius:21px;padding:21px 20px;margin:0 0 19px;box-shadow:0 7px 18px #285c4c10}
.account-workspace .hero-label{display:flex;align-items:center;gap:8px;font-size:11px;color:#c8e1d5}
.account-workspace svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.account-workspace .hero-amount{font-size:clamp(29px,9vw,39px);letter-spacing:.5px;font-weight:650;margin:15px 0 22px;overflow-wrap:anywhere;line-height:1.2;font-variant-numeric:tabular-nums}
.account-workspace .hero-meta{display:grid;grid-template-columns:1fr 1fr;gap:0;font-size:10px;color:#bad9cb}
.account-workspace .hero-meta>span{display:block;min-width:0}
.account-workspace .hero-meta>span+span{padding-left:20px;border-left:1px solid #ffffff25}
.account-workspace .hero-meta b{display:block;color:#edf8f0;font-size:16px;margin:7px 0 0;overflow-wrap:anywhere}
.account-workspace .account-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:17px;border-top:1px solid #ffffff24;margin-top:20px}
.account-workspace .account-pills>span{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;padding:11px 10px;border-radius:10px;background:#ffffff0c;border:1px solid #ffffff12;min-width:0;font-size:10px}
.account-workspace .account-pills>span>span{color:#b9d9cb}
.account-workspace .account-pills b{font-size:12px;color:#f0f9f2;font-weight:550;overflow-wrap:anywhere}
.account-workspace .report-card{border:1px solid #e3ece7;border-radius:18px;padding:17px 17px 9px;margin-bottom:15px;box-shadow:none}
.account-workspace .report-card h3{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:#4e6a5c;margin:0 0 12px}
.account-workspace .report-card h3 svg{color:#8cab98;width:19px;height:19px}
.account-workspace .report-line{padding:14px 0;border-color:#f0f3f0;gap:15px;align-items:center;font-size:11px;color:#94a49a}
.account-workspace .report-line b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;max-width:48%;color:#527b62}
.account-workspace .report-line:nth-of-type(2) b{color:#9b8bae}.account-workspace .report-line:nth-of-type(3) b{color:#6b96aa}.account-workspace .report-line:nth-of-type(4) b{color:#c38d75}
.account-workspace #capitalHistory .empty{font-size:11px;color:#a5b3a8;padding:34px 10px 38px}
.account-workspace .capital-history-row{border-color:#edf2ee;font-size:11px;line-height:1.7;color:#90a193;padding:13px 0}
.account-workspace .capital-history-row b{color:#597563;font-size:12px}
.account-workspace .capital-history-row small{font-size:10px;color:#a7b3aa}
@media(max-width:360px){.account-workspace .hero-card{padding:19px 15px}.account-workspace .account-pills{gap:6px}.account-workspace .account-pills>span{padding:9px 8px}.account-workspace .account-pills b{font-size:11px}}
.account-workspace .account-pills>span>span{padding:0;margin:0;border:0;border-radius:0;background:transparent;font-size:11px}
#shareholderExpenses .expense-metrics>div>span:not(.expense-metric-icon),#shareholderExpenses .expense-filter-label{font-size:11px}
#shareholderExpenses .expense-filter-line .filter-chip{font-size:11px}
@media(max-width:360px){#shareholderExpenses .expense-filter-line .filter-chip{font-size:10px;padding-inline:6px}#shareholderExpenses .expense-metrics>div>span:not(.expense-metric-icon){font-size:10px}}
/* Company, administration and equity workspaces */
.company-workspace .page-title,.admin-workspace .page-title,.equity-workspace .page-title,.ledger-page-title{font-size:24px;font-weight:700;color:#29464b;margin:14px 0 6px}
.company-workspace .page-subtitle,.admin-workspace .page-subtitle,.equity-workspace .page-subtitle,.ledger-page-subtitle{font-size:11px;color:#8b9e9b;margin-bottom:20px;line-height:1.6}
#companyBack,#adminBack,#equityBack{font-size:11px;color:#72978c}
.workspace-section-head{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.workspace-section-head h3{font-size:14px;color:#49665b;margin:0 0 5px;font-weight:600}
.workspace-section-head p{font-size:10px;color:#99aaa1;margin:0}
.workspace-section-icon{display:grid;place-items:center;width:35px;height:35px;flex:none;border-radius:11px;background:#edf5ef;color:#7ca18b}
.workspace-section-icon svg,.company-logo svg,.admin-workspace h3 svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.company-workspace .company-info-card{margin:0 0 18px;padding:26px 20px 20px;border:1px solid #dfebe3;border-radius:21px;background:radial-gradient(ellipse at top right,#e1f1e5,transparent 65%),linear-gradient(160deg,#f2f9f3,#fff 75%)}
.company-workspace .company-logo{width:67px;height:67px;margin-bottom:14px;border-radius:22px;border:4px solid #fff;background:#dbede1;color:#4a9274;box-shadow:0 5px 13px #4975560b}
.company-logo svg{width:31px;height:31px}
.company-card-eyebrow{font-size:10px;letter-spacing:2px;color:#90aa97}
.company-workspace .company-info-card h2{font-size:22px;line-height:1.5;margin:7px 0 21px;color:#34594a;overflow-wrap:anywhere}
.company-introduction{text-align:left;padding:17px 0 0;border-top:1px solid #e5eee7}
.company-introduction h3{font-size:11px;color:#6e8b7a;font-weight:500;margin:0 0 9px}
.company-workspace .company-introduction p{font-size:12px;color:#6d8475;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.company-workspace .company-introduction p.is-empty{color:#a6b4a9;font-size:11px}
.company-workspace .company-edit-card{border:1px solid #e3ece6;border-radius:19px;padding:19px}
.company-edit-card label{font-size:11px;color:#789181;margin-bottom:16px}
.company-edit-card input,.company-edit-card textarea{margin-top:8px;border:1px solid #e2eae4;background:#fafcfb;border-radius:11px;padding:12px;color:#496351;font-size:13px;line-height:1.6}
.company-edit-card textarea{min-height:125px;resize:vertical}
.company-edit-card input:focus,.company-edit-card textarea:focus{outline:none;border-color:#82b39a;box-shadow:0 0 0 3px #5e9b7b0d;background:#fff}
.company-edit-card input::placeholder,.company-edit-card textarea::placeholder{color:#b0bbb2;font-size:11px}
.company-edit-card .primary-btn{background:#237b61;border-radius:12px;font-size:12px;min-height:45px;box-shadow:0 4px 10px #326b4d0b}
.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 20px}
.admin-heading-copy{min-width:0}
.admin-workspace .admin-heading .page-title{margin:0 0 6px}
.admin-workspace .admin-heading .page-subtitle{margin:0}
.admin-workspace .add-shareholder-btn{flex:none;width:auto;min-height:39px;padding:9px 14px;margin:0;border-radius:11px;font-size:12px;background:#237b61;white-space:nowrap}
@media(max-width:360px){.admin-heading{gap:8px}.admin-workspace .add-shareholder-btn{padding-inline:10px}}
.admin-workspace .shareholder-panel{padding:17px 15px 4px;border-color:#e3ebe6;border-radius:18px;margin-bottom:17px}
.admin-workspace .shareholder-panel>h3{display:flex;align-items:center;gap:8px;color:#54715e;font-size:13px;font-weight:600;margin:0 0 8px}
.admin-workspace .shareholder-panel>h3 svg{width:18px;height:18px;color:#8cac93}
.admin-workspace .shareholder-panel>h3 small{margin-left:auto;color:#a1b0a6;font-size:10px;font-weight:400}
.admin-workspace .shareholder-row{padding:16px 0;border-color:#eef3ee;gap:11px}
.admin-workspace .shareholder-row:last-child{padding-bottom:15px}
.admin-workspace .shareholder-avatar{width:38px;height:38px;border-radius:13px;background:#eaf3ec;color:#629679;overflow:hidden;font-size:16px}
.admin-workspace .shareholder-avatar img{width:100%;height:100%;object-fit:cover}
.admin-workspace .shareholder-row:nth-child(3n+2) .shareholder-avatar{background:#edf2f8;color:#819db7}
.admin-workspace .shareholder-row:nth-child(3n) .shareholder-avatar{background:#f2eef7;color:#9d8eb4}
.admin-workspace .shareholder-info b{color:#526d5a;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.admin-workspace .shareholder-info small{font-size:10px;line-height:1.6;color:#9baa9e;margin-top:5px;overflow-wrap:anywhere}
.admin-workspace .shareholder-row>.text-btn{flex:none;font-size:10px;padding:7px 10px;border-radius:8px;background:#edf5ee;color:#72987c;min-height:32px}
.equity-overview{background:linear-gradient(140deg,#eef7ef,#fff);border:1px solid #e2ece4;border-radius:20px;padding:19px;margin-bottom:23px}
.equity-overview .workspace-section-head{margin-bottom:20px}
.equity-composition{display:flex;height:10px;gap:4px;border-radius:6px;overflow:hidden;margin-bottom:16px;background:#edf3ef}
.equity-composition>span{flex-basis:0;min-width:0;background:var(--equity-tone)}
.equity-workspace .tone-0{--equity-tone:#6caa8a;--equity-bg:#eaf4ed}.equity-workspace .tone-1{--equity-tone:#829fbe;--equity-bg:#edf2f9}.equity-workspace .tone-2{--equity-tone:#aa99c0;--equity-bg:#f3eef8}
.equity-workspace .equity-unassigned{--equity-tone:#bdc7c0}
.equity-legend{display:flex;flex-wrap:wrap;gap:9px 17px}
.equity-legend>span{display:flex;align-items:center;gap:5px;color:#8c9f91;font-size:10px;overflow-wrap:anywhere;min-width:0}
.equity-legend i{width:6px;height:6px;background:var(--equity-tone);border-radius:2px;flex:none}
.equity-legend b{font-size:10px;font-weight:500;color:var(--equity-tone)}
.equity-section-label{font-size:11px;letter-spacing:1px;color:#93a799;margin:0 4px 12px}
.equity-member{border:1px solid #e5ece6;background:#fff;border-radius:18px;padding:17px 16px;margin-bottom:13px}
.equity-member-head{display:flex;align-items:center;gap:10px}
.equity-member-avatar{display:grid;place-items:center;flex:none;width:37px;height:37px;border-radius:12px;background:var(--equity-bg);color:var(--equity-tone);font-size:16px;font-weight:600}
.equity-member-head h3{flex:1;min-width:0;overflow-wrap:anywhere;font-size:14px;font-weight:600;color:#516c5b;margin:0}
.equity-member-share{font-size:25px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--equity-tone)}
.equity-member-share small{font-size:12px;font-weight:400;margin-left:2px}
.equity-member-track{height:4px;border-radius:4px;background:#f1f5f1;overflow:hidden;margin:16px 0}
.equity-member-track>span{display:block;height:100%;border-radius:4px;background:var(--equity-tone)}
.equity-member-investment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.equity-member-investment>div{min-width:0}.equity-member-investment>div+div{border-left:1px solid #eef2ee;padding-left:10px}
.equity-member-investment span{display:block;font-size:10px;color:#9aaa9c}
.equity-member-investment b{display:block;margin-top:7px;font-size:14px;font-weight:550;color:#6f8975;overflow-wrap:anywhere}
.equity-member-investment>div:last-child b{color:var(--equity-tone)}
/* Shared company, project and review ledgers */
[data-ledger-scope]>.ledger-date-tools{margin:0 0 15px;padding:12px 11px 0;border:1px solid #e5ece8;border-radius:15px;background:#fff;overflow:hidden}
[data-ledger-scope]>.ledger-date-tools .date-periods{gap:4px;margin-bottom:8px}
[data-ledger-scope]>.ledger-date-tools .filter-chip{border:0;background:transparent;font-size:11px;padding:7px 11px;min-height:32px;color:#8b9e94}
[data-ledger-scope]>.ledger-date-tools .filter-chip.active{color:#4e8c6a;background:#e8f3ec;font-weight:600}
[data-ledger-scope]>.ledger-date-tools .date-range-label{font-size:10px;color:#9aaba0;margin:8px 3px 12px}
[data-ledger-scope]>.ledger-period-summary{border:1px solid #e2ece5;border-radius:18px;padding:18px 15px 13px;gap:11px;background:linear-gradient(145deg,#f2f8f3,#fff 80%);margin-bottom:17px}
.ledger-period-summary>div{min-width:0;container-type:inline-size}.ledger-period-summary>div+div{padding-left:6px;border-left:1px solid #e5eee6}
.ledger-period-summary span{color:#93a496;font-size:11px}
.ledger-period-summary b{font-size:clamp(12px,15cqi,18px);line-height:1.35;margin-top:8px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal}
.ledger-period-summary .plus{color:#57977a}.ledger-period-summary .minus{color:#c48672}.ledger-period-summary>div:last-of-type b{color:#b59a62}
.ledger-period-summary small{padding-top:11px;border-top:1px solid #eaf1eb;font-size:10px;color:#a0afa2}
.ledger-deposit-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;margin:0 0 17px;border:1px solid #e3eaf2;border-radius:16px;background:#f3f7fc}
.ledger-deposit-summary>div{min-width:0}.ledger-deposit-summary span,.ledger-deposit-summary small{display:block;color:#8092a4;font-size:11px;line-height:1.7}
.ledger-deposit-summary b{display:block;color:#607f9e;font-size:18px;margin:4px 0;font-variant-numeric:tabular-nums}.ledger-deposit-summary button{flex:none;white-space:nowrap;color:#607f9e}
.deposit-form-fields{min-width:0}.deposit-outstanding{display:flex;justify-content:space-between;gap:10px;color:#718598;padding:14px;background:#f0f5fa;border-radius:12px;margin-bottom:16px}.deposit-outstanding b{color:#526f8d}
#depositModal label[hidden]{display:none!important}
.ledger-type-filters{padding:5px;background:#eaf0eb;border-radius:11px;gap:4px;margin:0 0 17px;scrollbar-width:none}
.ledger-type-filters .filter-chip{flex:1;min-width:max-content;padding:8px 11px;border:0;border-radius:8px;font-size:11px;color:#8a9d8d;background:transparent}
.ledger-type-filters .filter-chip.active{background:#fff;color:#5b8b6a;box-shadow:0 2px 5px #335c3a06;font-weight:600}
.ledger-record-card{border-color:#e4ece6;border-radius:17px;margin-bottom:12px;box-shadow:0 3px 10px #2e533503}
.ledger-record-card .recent-record-title{color:#4c6557;font-size:13px}
.ledger-record-card .recent-record-amount{font-size:18px;font-weight:600;color:#c2816e}
.ledger-record-card .recent-income .recent-record-amount{color:#5c9c7a}
.ledger-record-card .recent-record-avatar{color:#8ba39b;background:#f0f5f2;border-radius:12px}
.ledger-record-card .recent-record-meta,.ledger-record-card .recent-record-date,.ledger-record-card .ledger-record-context{color:#95a69b;font-size:10px}
.ledger-record-card .recent-record-status.approved{background:#edf5ef;color:#6c9a79}.ledger-record-card .recent-record-status.pending{background:#faf5eb;color:#ba995f}.ledger-record-card .recent-record-status.rejected{background:#fcf0ed;color:#c68879}
.ledger-record-card .ledger-record-actions{border-color:#f0f4f0;gap:8px}
.ledger-record-card .approve-btn{background:#edf5ef;color:#6b9677;font-size:11px;border-radius:8px;min-height:32px;padding:7px 13px}
.ledger-record-card .reject-btn{background:#fcf1ed;color:#bf8b7b;font-size:11px;border-radius:8px;min-height:32px;padding:7px 13px}
@media(max-width:360px){.company-workspace .company-edit-card{padding:16px}.admin-workspace .shareholder-panel{padding-inline:13px}.admin-workspace .shareholder-row{gap:8px}.equity-member{padding:15px 12px}.equity-member-investment b{font-size:12px}.equity-member-investment>div+div{padding-left:7px}.ledger-record-card .recent-record-amount{font-size:16px}}
.rejection-dialog{width:min(360px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:23px 20px 18px;border:1px solid #eee6e1;border-radius:21px;background:#fff;box-shadow:0 20px 60px #253e3529;animation:passwordDialogIn .25s cubic-bezier(.22,.8,.28,1) both;color:#4c6357}
.rejection-dialog::backdrop{background:#182f294d;backdrop-filter:blur(3px);animation:passwordBackdropIn .2s ease-out both}
.rejection-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.rejection-symbol{width:40px;height:40px;display:grid;place-items:center;flex:none;background:#fbefeb;color:#c17e6b;border-radius:13px;font-size:22px;font-weight:600}
.rejection-heading h2{font-size:18px;color:#53685a;margin:0 0 7px}.rejection-heading p{font-size:11px;line-height:1.6;color:#9ba99e;margin:0}
.rejection-dialog label{font-size:12px;color:#7f9383;margin-bottom:9px}.rejection-dialog label small{font-size:10px;color:#b2bcb3;margin-left:5px}
.rejection-dialog textarea{margin:0;border:1px solid #e4ebe5;border-radius:12px;min-height:112px;padding:12px;background:#fafcfb;font-size:14px;line-height:1.7;color:#596e5e;resize:vertical}
.rejection-dialog textarea:focus{outline:none;border-color:#94b29d;box-shadow:0 0 0 3px #78a4890d}.rejection-dialog textarea::placeholder{font-size:12px;color:#b0bbb1}
.rejection-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.rejection-actions button{min-height:43px;border-radius:11px;font-size:12px;cursor:pointer;background:#f1f5f2;color:#8b9c8e}.rejection-actions button[type=submit]{background:#c88874;color:#fff}.rejection-actions button:disabled{opacity:.55;cursor:wait}
.record-rejection{padding:13px 14px;margin:12px 0 16px;border:1px solid #f2e5dd;border-radius:12px;background:#fdf7f3}.record-rejection h4{font-size:11px;font-weight:600;color:#bf8b75;margin:0 0 7px}.record-rejection p{font-size:12px;line-height:1.8;color:#a48777;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.rejection-dialog,.rejection-dialog::backdrop{animation:none}}
.receipt-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:13px;background:#f7fbf8;border:1px dashed #ccdcd0;padding:12px;border-radius:13px;min-width:0}
.receipt-upload .receipt-upload-select{display:block;margin:0;font-size:12px;color:#6b967a;cursor:pointer;min-height:25px;padding:4px 0;outline-offset:3px}
.receipt-upload>small{grid-column:1/-1;font-size:10px;color:#9ba99f;line-height:1.6;overflow-wrap:anywhere}
.receipt-upload-zoom{grid-column:1/-1;position:relative;display:block;width:100%;padding:0;margin-top:11px;border:1px solid #e0e9e1;border-radius:11px;overflow:hidden;cursor:zoom-in;background:#edf3ed}
.receipt-upload-zoom img{display:block;width:100%;max-height:170px;object-fit:cover;margin:0;border-radius:0}
.receipt-upload-zoom>span{position:absolute;right:8px;bottom:8px;background:#233c32a6;color:#fff;border-radius:6px;padding:5px 8px;font-size:10px;pointer-events:none}
.receipt-upload-actions{grid-column:2;grid-row:1;display:flex;justify-content:flex-end;margin:0 0 0 10px}
.receipt-upload-remove{padding:7px 11px;border-radius:8px;background:#faeeea;color:#bd8270;min-height:32px;font-size:11px;cursor:pointer}
.receipt-upload-zoom[hidden],.receipt-upload-actions[hidden]{display:none!important}
.receipt-upload-select:focus-visible,.receipt-upload-zoom:focus-visible,.receipt-upload-remove:focus-visible{outline:2px solid #82a990;outline-offset:3px}
.project-contract-upload{margin:2px 0 18px;padding:14px;background:#f5faf8;border:1px solid #dcebe5;border-radius:13px;min-width:0}
.contract-upload-head{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#37574d;font-size:13px;font-weight:600;margin-bottom:10px}
.contract-upload-head small{font-size:11px;font-weight:400;color:#8b9b95;margin-left:5px}
#contractPhotoCount{font-size:11px;font-weight:400;color:#779087}
.contract-upload-picker{display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:17px 8px;margin:0!important;border:1px dashed #b6d3c7;border-radius:10px;cursor:pointer;text-align:center;background:#fff;line-height:1.6}
.contract-upload-picker b{font-size:13px;color:#167569;font-weight:600}
.contract-upload-picker small{font-size:10px;color:#8b9b95;font-weight:400}
#projectContractFile[hidden]{display:none!important}
.contract-upload-picker:focus-visible{outline:2px solid #167569;outline-offset:3px}
.contract-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.contract-photo-grid:not(:empty){margin-bottom:11px}
.contract-photo-tile{position:relative;min-width:0}
.contract-photo-zoom{display:block;width:100%;padding:0;aspect-ratio:1;border-radius:9px;overflow:hidden;border:1px solid #dbe6e1;background:#fff;cursor:zoom-in}
.contract-photo-zoom img{display:block;width:100%;height:100%;object-fit:cover}
.contract-photo-remove{position:absolute;right:-5px;top:-5px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:2px solid #fff;border-radius:50%;background:#bc6464;color:#fff;font-size:20px;line-height:1;box-shadow:0 2px 5px #203d2420}
.project-cash-card{position:relative}
.project-contract-link{position:absolute;right:20px;bottom:16px;padding:5px 0 5px 12px;white-space:nowrap;font-size:12px;color:#197c70}
.contract-project-name{font-size:12px;color:#779087;overflow-wrap:anywhere;margin:0 0 14px}
.contract-view-photos{display:grid;gap:14px}
.contract-view-photo{display:block;overflow:hidden;padding:0;border:1px solid #e0ebe5;border-radius:12px;background:#f5f9f7;width:100%;cursor:zoom-in}
.contract-view-photo img{display:block;width:100%;max-height:230px;object-fit:contain;background:#eaf0ec}
.contract-view-photo span{display:block;padding:10px;font-size:11px;color:#618174}
.contract-photo-zoom:focus-visible,.contract-photo-remove:focus-visible,.contract-view-photo:focus-visible{outline:2px solid #167569;outline-offset:3px}
.reports-workspace{min-width:0}
.reports-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.reports-heading .page-subtitle{font-size:11px;margin-bottom:0;line-height:1.7}
.reports-heading-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid #e0ebe5;border-radius:14px;background:#edf5ef;color:#59816c}
.reports-heading-icon svg{width:23px;height:23px}
.report-balance-card{padding:21px;border-radius:20px;background:linear-gradient(130deg,#174f48,#23796b);color:#fff;box-shadow:0 8px 24px #184f4815;margin-bottom:19px}
.report-balance-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px}
.report-balance-caption small{font-size:10px;color:#c1ded3;background:#ffffff12;padding:5px 9px;border-radius:7px}
.report-balance-value{display:block;width:100%;padding:16px 0 20px;text-align:left;color:inherit}
.report-balance-value>span{font-size:11px;color:#c6e2d8}
.report-balance-value strong{display:flex;align-items:center;gap:12px;font-size:clamp(26px,7vw,37px);font-weight:650;margin-top:7px;overflow-wrap:anywhere;line-height:1.25}
.report-balance-value i{font-size:21px;font-style:normal;color:#a8cfc2}
.report-invested{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 0 0;border-top:1px solid #ffffff25;width:100%;font-size:11px;color:#c9e0d7;text-align:left}
.report-invested b{font-size:12px;color:#fff;font-weight:500;overflow-wrap:anywhere}
.report-period-panel{border:1px solid #e3ece6;border-radius:16px;background:#fff;padding:14px 13px 2px;margin-bottom:14px}
.report-section-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:13px}
.report-section-title h3{margin:0;font-size:14px;font-weight:650;color:#304e40}
.report-section-title>span{font-size:10px;color:#8c9c94;text-align:right}
.report-period-panel .date-periods{gap:6px;margin:0}
.report-period-panel .filter-chip{flex:1;min-width:max-content;border:0;background:#f4f7f4;color:#7a8f81;min-height:33px;font-size:11px}
.report-period-panel .filter-chip.active{background:#e4f1e8;color:#32795d;font-weight:600}
.report-period-panel .date-range-label{font-size:10px;margin:9px 2px 12px;color:#91a196}
.report-panel{background:#fff;border:1px solid #e2eae5;border-radius:17px;padding:17px;margin-bottom:14px}
.report-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
.report-metric{display:block;padding:0;width:100%;min-width:0;text-align:left;cursor:pointer}
.report-metric>span{display:flex;align-items:center;gap:7px;color:#829489;font-size:11px;line-height:1.5}
.report-metric i,.report-profit i,.report-pending i{font-style:normal;color:#a0b2a5;font-size:15px}
.report-metric strong{display:block;margin-top:7px;font-size:clamp(16px,4.8vw,22px);line-height:1.3;font-weight:650;color:#324d3e;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.report-metric strong.plus{color:#379175}.report-metric strong.minus{color:#c45f61}.report-metric strong.report-paid{color:#ba8945}.report-metric strong.report-cost{color:#68849e}.report-metric strong.report-receivable{color:#5983a6}
.report-caption{margin:15px 0 0;font-size:10px;line-height:1.7;color:#9aa99f}
.report-profit{display:block;background:#f0f7f1;border:1px solid #e5eee6;padding:14px;border-radius:12px;width:100%;text-align:left;margin-bottom:6px;color:#418266}
.report-profit>span{display:flex;justify-content:space-between;font-size:11px}
.report-profit strong{display:block;font-size:clamp(24px,6.5vw,30px);margin-top:7px;font-weight:650;overflow-wrap:anywhere}
.report-profit.is-loss{background:#fbf3f0;border-color:#f2e7e0;color:#b77c65}
.report-operating-lines .report-metric{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #eff3ef;padding:12px 0}
.report-operating-lines .report-metric:last-child{border-bottom:0;padding-bottom:0}
.report-operating-lines .report-metric strong{font-size:14px;margin:0;text-align:right}
.report-operating-lines .report-metric>span{flex:none}
.report-project-footer{margin-top:18px;padding-top:15px;border-top:1px solid #edf1ed;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-project-footer .report-metric strong{font-size:15px}
.report-pending{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:16px 17px;margin:2px 0 18px;border:1px solid #e5ece5;border-radius:14px;background:#f9fbf8;font-size:12px;color:#849787}
.report-pending b{font-weight:600;color:#a48753}
.report-export{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px}
.report-export svg{width:18px;height:18px}
#reportDetailsModal{--detail-accent:#40866b;--detail-tint:#eaf4ee;--detail-border:#dcebe1}
#reportDetailsModal[data-tone=cost]{--detail-accent:#6588a1;--detail-tint:#edf3f8;--detail-border:#dfe8f0}
#reportDetailsModal[data-tone=paid]{--detail-accent:#b1874c;--detail-tint:#faf3e8;--detail-border:#eee3d1}
#reportDetailsModal .password-dialog{width:min(420px,100%);padding:20px;background:#f8faf8;border:1px solid #fff;box-shadow:0 25px 80px #163b3433}
#reportDetailsModal .password-dialog-head{gap:10px;margin-bottom:11px}
.report-detail-heading{display:flex;align-items:center;gap:10px;min-width:0}
.report-detail-heading h2{font-size:clamp(16px,4.5vw,19px);color:#304c3f;overflow-wrap:anywhere}
.report-detail-icon{width:35px;height:35px;flex:none;display:grid;place-items:center;background:var(--detail-tint);border:1px solid var(--detail-border);color:var(--detail-accent);border-radius:11px}
.report-detail-icon svg{width:19px;height:19px}
#reportDetailsModal .password-close{width:31px;height:31px;display:grid;place-items:center;flex:none;padding:0;background:#edf2ee;color:#83968a;border-radius:50%;font-size:23px}
.report-detail-period{font-size:10px;line-height:1.6;color:#8d9d91;margin:0 0 16px}
.report-detail-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:16px;background:var(--detail-tint);border:1px solid var(--detail-border);border-radius:14px;margin-bottom:20px}
.report-detail-total-label{font-size:11px;color:var(--detail-accent)}
.report-detail-summary>strong{grid-column:1;grid-row:2;font-size:clamp(25px,7vw,32px);line-height:1.3;font-weight:650;color:var(--detail-accent);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.report-detail-summary>small{grid-column:2;grid-row:1/3;font-size:10px;color:var(--detail-accent);padding:6px 9px;background:#ffffffa6;border:1px solid var(--detail-border);border-radius:8px;white-space:nowrap}
.report-detail-summary.is-negative>strong{color:#bd7070}
.report-detail-list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 11px}
.report-detail-list-heading b{font-size:12px;color:#597361;font-weight:600}.report-detail-list-heading>span{font-size:10px;color:#9aab9d}
.report-detail-list{display:grid;gap:10px}
.report-detail-row{display:grid;grid-template-columns:32px minmax(0,1fr) fit-content(42%);gap:7px 9px;align-items:start;width:100%;padding:14px 12px;border:1px solid #e5ede6;border-radius:12px;background:#fff;text-align:left;color:#355242;min-width:0}
.report-detail-symbol{display:grid;place-items:center;width:32px;height:32px;background:var(--detail-tint);color:var(--detail-accent);border-radius:10px;grid-column:1;grid-row:1}
.report-detail-symbol svg{width:17px;height:17px}
.report-detail-info{min-width:0;grid-column:2;grid-row:1}
.report-detail-info>b{display:block;font-size:12px;line-height:1.6;overflow-wrap:anywhere;font-weight:600;color:#405a49}
.report-detail-date{display:block;font-size:10px;line-height:1.6;color:#99a99d;margin-top:4px;overflow-wrap:anywhere}
.report-detail-row>strong{grid-column:3;grid-row:1;font-size:clamp(13px,3.6vw,16px);line-height:1.6;overflow-wrap:anywhere;text-align:right;font-weight:650;color:var(--detail-accent);font-variant-numeric:tabular-nums}
.report-detail-row>strong.is-negative{color:#bd7070}
.report-detail-tags{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;min-width:0}
.report-detail-tags>span{font-size:9px;line-height:1.6;color:#8e9f92;padding:3px 6px;background:#f3f6f2;border-radius:5px;overflow-wrap:anywhere;max-width:100%}
.report-detail-note{grid-column:2/-1;font-size:10px;line-height:1.8;color:#93a196;overflow-wrap:anywhere}
.report-detail-arrow{grid-column:3;grid-row:1;text-align:right;font-size:20px;color:#9eafa2}
.report-detail-row.is-project{cursor:pointer}.report-detail-row.is-project:active{background:#f0f6f1}
#reportDetailsModal button:focus-visible{outline:2px solid var(--detail-accent);outline-offset:3px}
.report-detail-list>.empty{margin:0;padding:30px 12px;background:#fff;border:1px dashed #dce7df;border-radius:12px;color:#97a69b;font-size:12px}
@media(max-width:360px){#reportDetailsModal .password-dialog{padding:16px}.report-detail-row{padding:12px 10px;grid-template-columns:27px minmax(0,1fr) fit-content(40%);column-gap:7px}.report-detail-symbol{width:27px;height:29px}.report-detail-summary{padding:13px}.report-detail-summary>small{padding:5px 7px}}
.reports-workspace button:focus-visible{outline:2px solid #39866b;outline-offset:4px}
.login-error{margin:0 0 2px;padding:10px 12px;border:1px solid #fecaca;border-radius:10px;background:#fff1f2;color:#b42318;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.login-error[hidden]{display:none}.login-field:has(input[aria-invalid=true]){border-color:#f3a6a6;background:#fff7f7}.login-submit:disabled{opacity:.7;cursor:wait}
html:has(.login-gate:not([hidden])){overflow:hidden}
.login-gate{inset:0 0 auto;height:100%;height:100dvh;padding:clamp(16px,4vh,48px) max(16px,env(safe-area-inset-right)) clamp(16px,4vh,48px) max(16px,env(safe-area-inset-left));padding-top:max(clamp(16px,4vh,48px),env(safe-area-inset-top));padding-bottom:max(clamp(16px,4vh,48px),env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.login-card{flex:none;width:min(440px,100%);min-width:0;margin:auto;padding:32px 28px 26px}
.login-brand>div:last-child{min-width:0}.login-logo{flex:none}.login-brand strong,.login-brand small,.login-welcome p,.login-tip{overflow-wrap:anywhere}
.login-welcome h1{font-size:clamp(26px,5vw,32px)}.login-welcome p{line-height:1.7}
.login-field{min-width:0;height:54px}.login-field>span{flex:0 0 30px;width:30px}.login-field input{width:0;font-size:16px;line-height:1.5}.login-field button{flex:none;min-width:44px;min-height:44px;font-size:12px}
.login-submit{min-height:52px}.login-tip{line-height:1.7}
@media(max-width:480px){.login-card{padding:26px 22px 22px;border-radius:24px}.login-welcome{margin:28px 0 22px}}
@media(max-width:360px){.login-card{padding-inline:18px}.login-field{padding-inline:11px;gap:7px}.login-brand{gap:10px}.login-brand strong{font-size:17px}}
@media(max-height:600px){.login-gate{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.login-card{padding-block:20px;border-radius:22px}.login-logo{width:40px;height:40px;border-radius:12px;font-size:21px}.login-welcome{margin:20px 0 18px}.login-welcome h1{font-size:26px}.login-welcome p{margin-top:6px}.login-field{height:48px;margin-bottom:12px}.login-submit{height:48px;min-height:48px;margin-top:12px}.login-tip{margin-top:16px}}
/* Hide scrollbars throughout the app without disabling scrolling. */
*,*::before,*::after{scrollbar-width:none!important;-ms-overflow-style:none!important}
*::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
html:has(.password-modal:not([hidden]),.confirm-modal:not([hidden]),.bottom-sheet.show,dialog[open]){overflow:hidden}
.app-shell,.page-view,.report-card,.metric-card,.project-list-card,.shareholder-panel,.equity-member{min-width:0}
:where(.app-shell,.password-dialog,.confirm-dialog,.rejection-dialog) :where(h1,h2,h3,h4,p,small,b,strong,dd){overflow-wrap:anywhere}
:where(.app-shell,.password-dialog,.confirm-dialog,.rejection-dialog,.bottom-sheet) :where(input,select,textarea){min-width:0;max-width:100%}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row>*{min-width:0}
.projects-heading,.reports-heading,.section-head{flex-wrap:wrap}.projects-heading>*,.reports-heading>*,.mine-header>*,.mine-user,.mine-user>div{min-width:0}
.login-gate{top:var(--visible-top,0px);height:var(--visible-height,100dvh)}
.password-modal,.confirm-modal{top:var(--visible-top,0px);bottom:auto;height:var(--visible-height,100dvh);padding:calc(12px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));align-items:flex-start;overflow-y:auto;overscroll-behavior:contain}
.password-modal .password-dialog,.confirm-modal .confirm-dialog{flex:none;min-width:0;max-width:100%;max-height:calc(var(--visible-height,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:auto;overflow:auto;overscroll-behavior:contain}
.password-dialog-head{gap:10px}.password-dialog-head h2,.report-detail-heading{min-width:0}.password-close{flex:none;min-width:36px;min-height:36px}
.rejection-dialog{position:fixed;inset:var(--visible-top,0px) 0 calc(100dvh - var(--visible-top,0px) - var(--visible-height,100dvh));margin:auto;max-height:calc(var(--visible-height,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain}
.bottom-sheet,#entrySheet{bottom:max(0px,calc(100dvh - var(--visible-top,0px) - var(--visible-height,100dvh)));max-height:calc(var(--visible-height,100dvh) - 12px);overscroll-behavior:contain}
#entryForm{flex:1;min-height:0}.entry-fields{flex:1;min-height:0}
.receipt-preview{inset:var(--visible-top,0px) 0 auto;height:var(--visible-height,100dvh)}.receipt-preview-controls{overflow-x:auto;overscroll-behavior-x:contain}
.toast{max-width:calc(100% - 32px);overflow-wrap:anywhere;text-align:center}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(max-width:1024px),(any-pointer:coarse){:root :is(input,select,textarea){font-size:16px}}
@media(max-width:400px){.form-row{grid-template-columns:minmax(0,1fr)}.password-dialog{padding:18px 16px}.confirm-dialog{padding:20px 16px 16px}.recent-record{grid-template-columns:30px minmax(0,1fr) minmax(0,42%);gap:8px}.recent-record-side{min-width:0}.recent-record-amount{overflow-wrap:anywhere}}
@media(max-height:450px){.password-dialog{padding-block:16px}.password-help{margin-bottom:12px}.receipt-preview-head{padding-block:6px}.receipt-preview-stage{top:calc(56px + env(safe-area-inset-top));bottom:calc(68px + env(safe-area-inset-bottom))}.receipt-preview-controls{bottom:calc(8px + env(safe-area-inset-bottom))}}
/* A stable dialog frame with an independently scrolling content area. */
.password-modal .password-dialog.structured-dialog,.confirm-modal .confirm-dialog.structured-dialog,.rejection-dialog[open].structured-dialog{display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:inherit}
#reportDetailsModal .password-dialog.structured-dialog{padding:0;--dialog-background:#f8faf8}
.structured-dialog>.dialog-header{flex:none;margin:0;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--dialog-background,#fff)}
.structured-dialog>.dialog-form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;margin:0;overflow:hidden}
.structured-dialog>.dialog-body,.dialog-form>.dialog-body{flex:1 1 auto;min-width:0;min-height:0;padding:18px 20px;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:16px}
.dialog-body>:first-child{margin-top:0}.dialog-body>:last-child{margin-bottom:0}
.structured-dialog .dialog-footer{flex:none;min-width:0;padding:14px 20px;border-top:1px solid var(--line);background:var(--dialog-background,#fff)}
.dialog-footer>.primary-btn{margin:0;width:100%;min-height:46px}.dialog-footer>.confirm-actions,.dialog-footer>.rejection-actions{margin:0}
.confirm-dialog.structured-dialog>.dialog-body{text-align:center;padding-top:24px}
@media(max-width:400px),(max-height:450px){.structured-dialog>.dialog-header{padding:12px 16px}.structured-dialog>.dialog-body,.dialog-form>.dialog-body{padding:14px 16px}.structured-dialog .dialog-footer{padding:12px 16px}}
#projectSheet{display:grid;place-items:center;overflow:hidden;animation:none}
#projectSheet>.password-dialog{margin:0;height:min(760px,calc(var(--visible-height,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));animation:none}
/* Native date controls must fit their form column, including WebKit's inner editor. */
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
:where(.dialog-body,.entry-fields) :where(label,.form-row,.project-contract-upload){min-width:0;max-width:100%}
:where(.dialog-body,.entry-fields) :where(input,select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-inline-size:0;max-inline-size:100%}
input:is([type="date"],[type="datetime-local"],[type="time"]){appearance:none;-webkit-appearance:none;min-width:0;min-inline-size:0;max-width:100%;overflow:hidden}
input:is([type="date"],[type="datetime-local"],[type="time"])::-webkit-datetime-edit{min-width:0;padding:0}
input:is([type="date"],[type="datetime-local"],[type="time"])::-webkit-date-and-time-value{min-width:0;text-align:left}
@media(max-width:480px){.dialog-body .form-row,.entry-fields .form-row{grid-template-columns:minmax(0,1fr)}}
/* Keep the navigation buttons above the home indicator at a consistent height. */
:root{--bottom-nav-height:64px;--bottom-nav-safe:env(safe-area-inset-bottom,0px)}
.bottom-nav{height:calc(var(--bottom-nav-height) + var(--bottom-nav-safe));padding:6px max(12px,env(safe-area-inset-right)) calc(6px + var(--bottom-nav-safe)) max(12px,env(safe-area-inset-left));grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}
.bottom-nav .nav-item{min-width:0;min-height:0;padding:0;gap:3px;line-height:1;-webkit-tap-highlight-color:transparent}
.bottom-nav .nav-item>span{display:grid;place-items:center;height:24px;line-height:24px;font-size:22px}
.bottom-nav .nav-item small{font-size:11px;line-height:13px;white-space:nowrap}
.bottom-nav .add-nav>span{width:42px;height:42px;font-size:27px;line-height:1}
.app-shell{padding-bottom:calc(var(--bottom-nav-height) + var(--bottom-nav-safe) + 20px)}
.toast{bottom:calc(var(--bottom-nav-height) + var(--bottom-nav-safe) + 12px)}
@media(max-height:450px){:root{--bottom-nav-height:56px}.bottom-nav{padding-top:4px;padding-bottom:calc(4px + var(--bottom-nav-safe))}.bottom-nav .nav-item{gap:2px}.bottom-nav .nav-item>span{height:22px;line-height:22px;font-size:20px}.bottom-nav .nav-item small{font-size:10px;line-height:12px}.bottom-nav .add-nav>span{width:38px;height:38px;font-size:25px}}

#shareholderExpenses .expense-calculation{font-size:11px;line-height:1.6;color:#d9ebe2;margin:-10px 0 16px;overflow-wrap:anywhere}
