body{background-color:#f3f4f6}body:not(.is-authenticated) nav,body:not(.is-authenticated) aside,body:not(.is-authenticated) main{display:none}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f3f4f6}.login-screen.hidden{display:none}.login-card{width:min(420px,100%);display:grid;gap:18px;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff;padding:28px;box-shadow:0 20px 60px #0000001f}.login-field{display:grid;gap:6px;color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.login-field input{width:100%;border:1px solid #e5e7eb;border-radius:.25rem;padding:11px 12px;color:#111827;font-size:15px;font-weight:600;letter-spacing:0;text-transform:none}.login-remember{display:flex;align-items:center;gap:8px;color:#4b5563;font-size:13px;font-weight:600}.login-remember input{width:16px;height:16px;accent-color:#dc2626}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.icon-fill{font-variation-settings:"FILL" 1}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem 1.25rem;box-shadow:0 1px 2px #0000000d;min-width:0;min-height:112px;overflow:hidden}.metric-label,.table-head{color:#575e70;font-size:12px;line-height:1;letter-spacing:.05em;font-weight:600;text-transform:uppercase}.metric-value{color:#281715;font-size:clamp(16px,1.05vw,20px);line-height:1.4;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;max-width:100%}.metric-breakdown{display:grid;gap:2px;margin-top:8px;color:#6b7280;font-size:11px;line-height:1.3;font-weight:600}.metric-breakdown:empty{display:none}.metric-breakdown-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0}.metric-breakdown-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.metric-breakdown-value{color:#374151;font-variant-numeric:tabular-nums;white-space:nowrap}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:2rem;box-shadow:0 1px 2px #0000000d}.calendar-select{border:1px solid #e5e7eb;border-radius:.25rem;background:#fff;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;line-height:1.25rem}.calendar-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start}.calendar-controls{display:grid;grid-template-columns:128px 96px 40px 40px;gap:8px;align-items:center}.calendar-month-select,.calendar-year-select{width:100%}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #e5e7eb;border-radius:.5rem;background:#e5e7eb}.section-title{color:#281715;font-size:24px;line-height:1.3;font-weight:600}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #e5e7eb;border-radius:.25rem;background:#fff}.app-sidebar,.app-main{transition:margin-left .22s ease,transform .22s ease}body.sidebar-hidden .app-sidebar{transform:translate(-100%)}@media (min-width: 768px){body.sidebar-hidden .app-main{margin-left:0}}.table-head{padding:1rem}.ledger-row-selected{background:#fff1f1;box-shadow:inset 3px 0 #dc2626}.ledger-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #e5e7eb;border-radius:.25rem;background:#fff;color:#374151}.ledger-toggle:hover:not(:disabled){border-color:#fecaca;color:#dc2626;background:#fff7f7}.ledger-toggle:disabled{opacity:.35;cursor:not-allowed}.ledger-toggle .material-symbols-outlined{font-size:18px}.ledger-detail-row td{padding:0;background:#fafafa}.ledger-detail-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px 20px 18px 64px;border-bottom:1px solid #e5e7eb}.ledger-detail-title{margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.ledger-entry-list{display:grid;gap:8px}.ledger-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff;padding:10px 12px;text-align:left;font-size:12px}.ledger-entry:hover{border-color:#fecaca;background:#fff7f7}.ledger-entry-main{display:grid;gap:2px;min-width:0}.ledger-entry-main strong,.ledger-entry-main small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ledger-entry-main small{color:#6b7280}.ledger-empty{border:1px dashed #e5e7eb;border-radius:.5rem;padding:10px 12px;color:#6b7280;font-size:12px}.ledger-detail-loading{display:flex;align-items:center;gap:10px;padding:16px 20px 18px 64px;color:#991b1b;font-weight:700}.calendar-day{overflow:hidden;min-height:96px}.calendar-amounts{min-width:0;max-width:calc(100% - 16px)}.calendar-amount{display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:100%;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 4px;font-size:clamp(8px,.6vw,11px);line-height:1.2;font-weight:600}.calendar-amount-in{background:#dcfce7;color:#047857}.calendar-amount-out{background:#fee2e2;color:#dc2626}.detail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.detail-main{min-width:0}.detail-value{white-space:nowrap;font-size:clamp(11px,.82vw,14px);font-variant-numeric:tabular-nums}.loading-banner{position:sticky;top:80px;z-index:30;width:fit-content;margin:0 0 16px auto;display:flex;align-items:center;gap:10px;border:1px solid #fecaca;border-radius:.5rem;background:#fff;color:#991b1b;padding:10px 14px;box-shadow:0 8px 24px #00000014;font-weight:600}.loading-banner.hidden{display:none}.loading-spinner{width:16px;height:16px;border:2px solid #fecaca;border-top-color:#dc2626;border-radius:999px;animation:spin .8s linear infinite}.is-loading .panel,.is-loading .metric-card{opacity:.55;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#1118278c;padding:24px}.modal-backdrop.hidden{display:none}.modal-panel{position:relative;width:min(980px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;border-radius:.5rem;border:1px solid #e5e7eb;background:#fff;padding:24px;box-shadow:0 24px 70px #00000040}.modal-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:.5rem;background:#ffffffdb;color:#991b1b;font-weight:700}.modal-loading.hidden{display:none}.modal-list{display:grid;gap:10px}.modal-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:.5rem;padding:12px;background:#fff;text-align:left;cursor:pointer}.modal-item:hover{border-color:#fecaca;background:#fff7f7}.entry-modal-panel{width:min(720px,100%)}.confirm-modal-panel{width:min(520px,100%)}.entry-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.entry-detail-item{border:1px solid #e5e7eb;border-radius:.5rem;padding:12px;min-width:0}.entry-detail-label{color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.entry-detail-value{margin-top:4px;overflow-wrap:anywhere;color:#111827;font-size:14px;font-weight:600}.base-balance-card{border:1px solid #e5e7eb;border-radius:.5rem;padding:14px;background:#fff}.base-balance-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.base-balance-fields label{display:grid;gap:6px;color:#6b7280;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.base-balance-fields input{width:100%;border:1px solid #e5e7eb;border-radius:.25rem;padding:9px 10px;color:#111827;font-size:14px;font-weight:600;letter-spacing:0;text-transform:none}@media (max-width: 720px){.calendar-toolbar{grid-template-columns:1fr}.calendar-controls{grid-template-columns:minmax(0,1fr) 88px 40px 40px}.entry-detail-grid,.base-balance-fields{grid-template-columns:1fr}.ledger-detail-panel{grid-template-columns:1fr;padding-left:16px}}
