@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.outfit_8778cd42-module__wRojWG__className{font-family:Outfit,Outfit Fallback;font-style:normal}.outfit_8778cd42-module__wRojWG__variable{--font-outfit:"Outfit", "Outfit Fallback"}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font:"Outfit", "Inter", system-ui, sans-serif;--primary:#1a365d;--primary-light:#2a4365;--primary-soft:#ebf8ff;--row-white:#fff;--row-blue:#ebf8ff;--success:#38a169;--warning:#dd6b20;--danger:#c53030;--info:#3182ce;--bg-app:#f7fafc;--bg-card:#fff;--border:#e2e8f0;--border-focus:#1a365d;--text-primary:#2d3748;--text-secondary:#4a5568;--text-muted:#718096;--text-number:#2d3748;--text-on-primary:#fff;--nav-h:68px;--sidebar-w:240px;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 3px #0000001f, 0 1px 2px #0000003d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d}html,body{background-color:var(--bg-app);height:100%;color:var(--text-primary);font-family:var(--font);-webkit-font-smoothing:antialiased}.app-container{flex-direction:column;min-height:100dvh;display:flex}h1{color:var(--primary);letter-spacing:-.02em;font-size:1.85rem;font-weight:800}h2{color:var(--text-primary);font-size:1.35rem;font-weight:700}h3{color:var(--text-primary);font-size:1.1rem;font-weight:600}.page{width:100%;max-width:1000px;padding:1.5rem 1rem calc(var(--nav-h) + 2rem);flex:1;margin:0 auto}@media (min-width:768px){.page{margin-left:var(--sidebar-w);max-width:calc(100% - var(--sidebar-w));padding:2.5rem 2rem}}.page-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.bottom-nav{height:var(--nav-h);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:50;padding-bottom:env(safe-area-inset-bottom);background:#ffffffe6;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}@media (min-width:768px){.bottom-nav{display:none}}.nav-item{color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:4px;font-size:.75rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.nav-item svg{width:24px;height:24px}.nav-item.active{color:var(--primary)}.desktop-sidebar{width:var(--sidebar-w);background:var(--primary);color:#fff;z-index:60;flex-direction:column;padding:1.5rem 1rem;display:none;position:fixed;top:0;bottom:0;left:0}@media (min-width:768px){.desktop-sidebar{display:flex}}.sidebar-logo{align-items:center;gap:10px;margin-bottom:2rem;font-size:1.25rem;font-weight:700;display:flex}.sidebar-nav{flex-direction:column;gap:.75rem;display:flex}.sidebar-item{border-radius:var(--radius-sm);color:#ffffffa6;align-items:center;gap:12px;padding:.75rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.sidebar-item svg{flex-shrink:0;width:20px;height:20px}.sidebar-item:hover{color:#fff;background:#ffffff14}.sidebar-item.active{color:#fff;background:#ffffff1f;font-weight:600}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid var(--border);padding:1.5rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;padding:1.25rem}.stat-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:.75rem;font-weight:600}.stat-card .value{color:var(--text-number);margin-top:4px;font-size:1.5rem;font-weight:800}.ledger-name{font-size:1.05rem;font-weight:700}.ledger-meta{color:var(--text-muted);margin-top:2px;font-size:.75rem}.ledger-amounts{grid-template-columns:1fr 1fr;gap:1rem;width:100%;display:grid}.ledger-amount-group{flex-direction:column;display:flex}.ledger-amount-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:.75rem}.ledger-amount-value{color:var(--text-number);font-size:1rem;font-weight:800}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light)}.btn-ghost{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-app);border-color:var(--primary);color:var(--primary)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.45rem .95rem;font-size:.85rem}.btn-danger{color:var(--danger);border-color:#c5303040}.btn-danger:hover{color:var(--danger);border-color:var(--danger);background:#fff5f5}.form-input,.form-select,.form-textarea{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;width:100%;padding:.85rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a365d1a}.fab{bottom:calc(var(--nav-h) + 20px);background:var(--primary);color:#fff;width:60px;height:60px;box-shadow:var(--shadow-lg);cursor:pointer;z-index:45;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s;display:flex;position:fixed;right:20px}.fab:hover{background:var(--primary-light)}@media (prefers-reduced-motion:no-preference){.fab{transition:transform .2s,background-color .2s}.fab:hover{transform:scale(1.08)}.btn-primary{transition:background-color .2s,transform .15s}.btn-primary:hover{transform:translateY(-1px)}}@media (min-width:768px){.fab{bottom:40px;right:40px}}.auth-page{background:var(--primary);background-image:radial-gradient(circle at 20% 30%,#ffffff0d 0%,#0000 40%),radial-gradient(circle at 80% 70%,#ffffff0d 0%,#0000 40%);justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;display:flex}.auth-card{border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow-lg);background:#fff;padding:2.5rem}.auth-logo{color:var(--primary);text-align:center;margin-bottom:.5rem;font-size:2rem;font-weight:900}.badge{text-transform:uppercase;border-radius:100px;padding:4px 10px;font-size:.7rem;font-weight:700}.badge-warning{color:#92400e;background:#fef3c7}.badge-danger{color:#991b1b;background:#fee2e2}.badge-success{color:#166534;background:#dcfce7}.badge-info{color:#1e40af;background:#dbeafe}.filter-chip{cursor:pointer;border:none;border-radius:100px;align-items:center;gap:6px;padding:5px 12px;font-family:inherit;font-size:.75rem;font-weight:600;transition:transform .15s,filter .15s;display:inline-flex}.filter-chip:hover{filter:brightness(.93);transform:scale(1.03)}.filter-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0000008c;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0;overflow-y:auto}@media (min-width:560px){.modal-overlay{align-items:center;padding:1.5rem}}.modal-content{border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:500px;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;max-height:92dvh;display:flex;position:relative}@media (min-width:560px){.modal-content{border-radius:var(--radius);max-height:calc(100dvh - 3rem)}}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem 1.5rem 1.25rem;display:flex}@media (min-width:560px){.modal-header{padding:1.75rem 2rem 1.25rem}}.modal-body{-webkit-overflow-scrolling:touch;flex:1;padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}@media (min-width:560px){.modal-body{padding:1.5rem 2rem 2rem}}.modal-close-btn{border:1px solid var(--border);background:var(--bg-app);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;line-height:1;transition:background .15s,color .15s;display:flex}.modal-close-btn:hover{background:var(--border);color:var(--text-primary)}@media (prefers-reduced-motion:no-preference){.modal-content{animation:.25s ease-out modal-slide-in}}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.install-banner{bottom:calc(var(--nav-h) + 12px);background:var(--primary);color:#fff;border-radius:var(--radius);z-index:80;box-shadow:var(--shadow-lg);align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex;position:fixed;left:12px;right:12px}@media (min-width:768px){.install-banner{width:340px;bottom:24px;left:auto;right:24px}}.install-banner-icon{width:36px;height:36px;color:var(--primary);background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:900;display:flex}.install-banner-text{flex-direction:column;flex:1;gap:1px;min-width:0;font-size:.82rem;line-height:1.35;display:flex}.install-banner-text strong{font-size:.9rem}.install-banner-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.install-banner-btn-primary{color:var(--primary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:#fff;border:none;padding:.45rem .9rem;font-size:.85rem;font-weight:700}.install-banner-dismiss{color:#ffffffa6;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;display:flex}.skeleton{background:linear-gradient(90deg,#edf2f7 0%,#f7fafc 50%,#edf2f7 100%) 0 0/200% 100%}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.4s ease-in-out infinite skeleton-shimmer}}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-number{color:var(--text-number);font-weight:700}.toast{bottom:calc(var(--nav-h) + 20px);background:var(--primary);color:#fff;box-shadow:var(--shadow-lg);z-index:200;border-radius:100px;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:no-preference){.toast{animation:.3s ease-out toast-slide-in}}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(20px)translate(-50%)}to{opacity:1;transform:translateY(0)translate(-50%)}}.skip-link{background:var(--primary);color:#fff;border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:9999;padding:.5rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:top .15s;position:absolute;top:-100%;left:.75rem}.skip-link:focus{top:0}.card[role=button]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.nav-item{position:relative}.nav-item.active:after{content:"";background:var(--primary);border-radius:0 0 3px 3px;width:28px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.sidebar-item.active{border-left:3px solid #fff;padding-left:calc(1rem - 3px)}.stat-card-interactive{cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow .2s,border-color .2s,transform .15s}.stat-card-interactive:hover{box-shadow:var(--shadow-md);border-color:var(--primary)}.stat-card-interactive:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.stat-card-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px #1a365d2e}.stat-card-active .label{color:var(--primary)}.offline-banner{background:var(--warning);color:#fff;text-align:center;z-index:150;padding:.6rem 1rem;font-size:.85rem;font-weight:600;position:fixed;top:0;left:0;right:0}@media (min-width:768px){.offline-banner{left:var(--sidebar-w)}}
