@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--primary:#6366f1;--primary-hover:#4f46e5;--bg:#f8fafc;--surface:#fff;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;background-color:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3,.brand-font{font-family:Plus Jakarta Sans,sans-serif}h1{letter-spacing:-.02em;color:var(--text);font-size:1.5rem;font-weight:800}h2{color:var(--text);font-size:1.125rem;font-weight:700}.container{max-width:1000px;margin:0 auto;padding:1.5rem 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.5rem}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:.625rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover{background:var(--bg);color:var(--text)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.grid{display:grid}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mt-4{margin-top:1rem}.text-muted{color:var(--text-muted)}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.font-bold{font-weight:700}.uppercase{text-transform:uppercase;letter-spacing:.05em}.header-section{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.brand-badge{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;background:#6366f11a;border-radius:99px;margin-bottom:.25rem;padding:.125rem .625rem;font-size:.7rem;font-weight:700;display:inline-block}.calendar-selector{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-sm);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.4rem;padding:.75rem;display:grid}.month-chip{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:.1rem;padding:.5rem .4rem;font-size:.75rem;font-weight:600;transition:all .2s;display:flex}.month-chip:hover{background:var(--bg);color:var(--text)}.month-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #6366f133}.month-chip .year-label{opacity:.7;font-size:.65rem}.summary-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem;display:grid}.summary-grid.single-card{grid-template-columns:1fr}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;min-height:50px;padding:.5rem .75rem;display:flex}.summary-card.global-total{border-left:3px solid var(--primary)}.summary-card-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.summary-value{color:var(--text);white-space:nowrap;margin:0;font-family:Plus Jakarta Sans,sans-serif;font-size:1.15rem;font-weight:800}.summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;max-width:100px;margin:0;font-size:.6rem;font-weight:800;line-height:1.1}.user-badges{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.user-badge{background:var(--bg);border:1px solid var(--border);border-radius:99px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:flex}.filters-box{border-radius:var(--radius-md);background:#f1f5f9;flex-direction:column;gap:.25rem;margin-bottom:.5rem;padding:.5rem .75rem;display:flex}.search-input-wrapper{width:100%;position:relative}.search-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:.35rem 1rem;font-size:.8rem;transition:all .2s;padding-left:2rem!important}.filter-grid{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.filter-group{align-items:center;gap:.5rem;display:flex}.filter-label{color:var(--text-muted);text-transform:uppercase;white-space:nowrap;margin:0;font-size:.6rem;font-weight:800}.tabs-container{align-items:center;width:100%;height:40px;margin-bottom:.5rem;display:flex;position:relative;overflow:hidden}.category-tabs{scroll-behavior:smooth;gap:.5rem;width:100%;padding:0 1.5rem;display:flex;overflow-x:auto}.tab-item{white-space:nowrap;cursor:pointer;border-bottom:2px solid #0000;padding:.4rem .75rem;font-size:.7rem;font-weight:700;transition:all .2s}.filter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:block}.expense-item{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--border);flex-direction:column;gap:1rem;margin-bottom:1rem;padding:1.25rem;transition:all .2s;display:flex}.expense-item:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.item-header{justify-content:space-between;align-items:flex-start;display:flex}.item-provider{color:var(--text);font-size:1.125rem;font-weight:700}.item-amount{color:var(--text);text-align:right;font-size:1.25rem;font-weight:800}.status-badge{text-transform:uppercase;letter-spacing:.025em;border-radius:99px;padding:.25rem .75rem;font-size:.625rem;font-weight:800}.status-paid{color:#166534;background:#dcfce7}.status-pending{color:#991b1b;background:#fee2e2}.item-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:1rem;display:flex}.category-tag{color:var(--text-muted);background:var(--bg);text-transform:uppercase;border-radius:4px;padding:.25rem .625rem;font-size:.6875rem;font-weight:700}.tabs-container{width:100%;margin-bottom:2rem;position:relative;overflow:hidden}.tabs-container:before,.tabs-container:after{content:"";pointer-events:none;z-index:15;width:40px;height:calc(100% - 1px);position:absolute;top:0}.tabs-container:before{background:linear-gradient(to right, var(--bg) 30%, transparent);left:0;box-shadow:inset 15px 0 15px -15px #0000001a}.tabs-container:after{background:linear-gradient(to left, var(--bg) 30%, transparent);right:0;box-shadow:inset -15px 0 15px -15px #0000001a}.scroll-btn{border:1px solid var(--border);cursor:pointer;z-index:20;width:32px;height:32px;color:var(--text-muted);box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.scroll-btn:hover{color:var(--primary);border-color:var(--primary);box-shadow:var(--shadow-md);background:#fff}.scroll-btn.left{left:4px}.scroll-btn.right{right:4px}@media (width<=768px){.scroll-btn{opacity:1;background:#fffffff2;border-radius:50%;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #0000001a}.scroll-btn.left{left:2px}.scroll-btn.right{right:2px}.category-tabs{padding:.5rem 2.2rem}}.category-tabs{scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid var(--border);background:var(--bg);gap:.5rem;padding:.5rem 2.5rem;display:flex;position:relative;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.tab-item{white-space:nowrap;color:var(--text-muted);cursor:pointer;text-transform:uppercase;letter-spacing:.025em;border-bottom:2px solid #0000;padding:.75rem 1.25rem;font-size:.8125rem;font-weight:700;transition:all .2s}.tab-item:hover{color:var(--text)}.tab-item.active{color:var(--primary);border-bottom-color:var(--primary)}@media (width<=768px){.calendar-selector{grid-template-columns:repeat(3,1fr)}.summary-grid{grid-template-columns:1fr}}.tab-badge{background:var(--slate-100);color:var(--slate-500);border-radius:10px;padding:2px 6px;font-size:.65rem;font-weight:700;transition:all .2s}.tab-badge.active{color:var(--primary);background:#4f46e51a}.tab-item.active .tab-badge{color:var(--primary);background:#fff}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:600px;max-height:90vh;animation:.3s cubic-bezier(.16,1,.3,1) modalIn;overflow-y:auto}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.text-error{color:#ef4444!important}.expense-list{flex-direction:column;display:flex}.menu-trigger{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;padding:.75rem;transition:all .2s;display:flex}.menu-trigger:hover{background:var(--bg);color:var(--primary);border-color:var(--primary)}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;opacity:0;visibility:hidden;background:#0f172a66;transition:all .3s;position:fixed;inset:0}.sidebar-overlay.active{opacity:1;visibility:visible}.sidebar-panel{background:var(--surface);flex-direction:column;width:300px;height:100%;transition:transform .4s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;left:0;transform:translate(-100%);box-shadow:20px 0 50px #0000001a}.sidebar-overlay.active .sidebar-panel{transform:translate(0)}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.sidebar-logo{background:var(--primary);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;font-weight:800;display:flex}.sidebar-nav{flex:1;padding:1.5rem}.nav-group{margin-bottom:1.5rem}.nav-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.1em;margin-bottom:.75rem;padding-left:.5rem;font-size:.7rem;font-weight:800}.nav-link{width:100%;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.nav-link:hover{background:var(--bg);color:var(--primary)}.nav-link.active{color:var(--primary);background:#6366f11a}.sidebar-footer{border-top:1px solid var(--border);background:var(--bg);padding:1.5rem}.calendar-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:2rem;display:grid;overflow:hidden}.calendar-day-header{text-align:center;color:var(--text-muted);text-transform:uppercase;background:#f8fafc;padding:.75rem;font-size:.75rem;font-weight:800}.calendar-day{background:var(--surface);flex-direction:column;gap:.25rem;min-height:120px;padding:.5rem;transition:background .2s;display:flex}.calendar-day:hover:not(.empty){background:#f1f5f9}.calendar-day.empty{background:#f8fafc}.day-number{color:var(--text-muted);margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.day-content{flex-direction:column;gap:2px;max-height:80px;display:flex;overflow-y:auto}.day-expense-chip{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:4px;padding:2px 4px;font-size:.65rem;font-weight:700;transition:transform .1s;overflow:hidden}.day-expense-chip:hover{transform:scale(1.02)}.day-expense-chip.paid{color:#166534;background:#dcfce7;border-left:2px solid #22c55e}.day-expense-chip.pending{color:#991b1b;background:#fee2e2;border-left:2px solid #ef4444}@media (width<=768px){.calendar-grid{grid-template-columns:repeat(7,minmax(40px,1fr))}.calendar-day{min-height:80px;padding:.25rem}.day-expense-chip{padding:1px 2px;font-size:.5rem}}.project-title-mini{color:var(--text);text-transform:uppercase;letter-spacing:-.01em;margin:0;font-weight:800;line-height:1;font-size:1rem!important}.menu-trigger.compact{border-radius:8px;padding:.5rem}.btn-sm{height:32px;padding:.4rem .75rem;font-size:.75rem}.header-section{gap:.75rem!important;margin-bottom:1rem!important}.user-badges{gap:.25rem!important;margin-top:.25rem!important}.user-badge{padding:.1rem .5rem!important;font-size:.65rem!important}.summary-card p.text-sm{margin-top:.25rem!important;font-size:.7rem!important}.dashboard-mode{max-width:1200px!important;padding:.5rem 1rem!important}.header-compact-top{background:var(--surface);border-bottom:1px solid var(--border);padding-bottom:.5rem}.search-bar-mini{flex:1;align-items:center;max-width:400px;display:flex;position:relative}.search-bar-mini input{border:1px solid var(--border);background:var(--bg);border-radius:6px;width:100%;padding:.3rem .75rem .3rem 2rem;font-size:.8rem}.search-icon{color:var(--text-muted);position:absolute;left:.6rem}.calendar-selector-mini{gap:.25rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.month-mini{background:var(--bg);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:4px;padding:.2rem .6rem;font-size:.7rem;font-weight:700}.month-mini.active{background:var(--primary);color:#fff;border-color:var(--primary)}.summary-row{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.mini-summary-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:8px;padding:.5rem}.mini-summary-card label{color:var(--text-muted);font-size:.6rem;font-weight:800;display:block}.mini-summary-card p{margin:0;font-size:1.1rem;font-weight:900}.mini-summary-card.global{border-top:3px solid var(--primary)}.mini-summary-card.paid{color:#16a34a;border-top:3px solid #16a34a}.mini-summary-card.pending{color:#dc2626;border-top:3px solid #dc2626}.quick-filters{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;gap:1.5rem;padding:.4rem .75rem;display:flex}.quick-group{align-items:center;gap:.4rem;display:flex}.quick-label{color:#64748b;text-transform:uppercase;font-size:.65rem;font-weight:800}.quick-chip{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.quick-chip.active{color:#fff;background:#6366f1;border-color:#6366f1}.tabs-container-mini{border-bottom:1px solid #e2e8f0}.tabs-scroll{gap:1rem;padding-bottom:.4rem;display:flex;overflow-x:auto}.tab-mini-item{color:#64748b;cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;padding-bottom:.2rem;font-size:.75rem;font-weight:700}.tab-mini-item.active{color:#6366f1;border-bottom-color:#6366f1}.tab-mini-item .count{background:#f1f5f9;border-radius:4px;margin-left:2px;padding:.1rem .3rem;font-size:.6rem}.compact-item{border-bottom:1px solid #f1f5f9;padding:.4rem .75rem;transition:background .1s}.compact-item:hover{background:#f8fafc}.compact-detail{color:#1e293b;margin:0;font-size:.85rem;font-weight:700}.compact-meta{color:#64748b;margin:0;font-size:.65rem}.compact-amount-col{text-align:right;margin:0 1rem}.compact-val{margin:0;font-size:.9rem;font-weight:800}.compact-status{border-radius:3px;padding:.1rem .3rem;font-size:.55rem;font-weight:900}.compact-status.paid{color:#166534;background:#dcfce7}.compact-status.debt{color:#991b1b;background:#fee2e2}.btn-icon{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:.25rem}.btn-icon:hover{color:#6366f1}.btn-xs{height:28px;padding:.25rem .5rem;font-size:.7rem}.compact-modal{max-width:400px!important}.slim-mode{max-width:1100px!important;padding:1rem!important}.header-slim{border-bottom:1px solid #e2e8f0;flex-direction:column;gap:.5rem;padding-bottom:.75rem;display:flex}.header-top-row{justify-content:space-between;align-items:center;display:flex}.project-title-slim{color:#1e293b;text-transform:uppercase;margin:0;font-weight:800;font-size:1.15rem!important}.calendar-selector-slim{gap:.4rem;padding:.25rem 0;display:flex;overflow-x:auto}.month-chip-slim{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.4rem .75rem;font-size:.75rem;font-weight:700;transition:all .2s}.month-chip-slim.active{color:#fff;background:#6366f1;border-color:#6366f1}.summary-grid-slim{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;display:grid}.summary-card-slim{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.75rem 1rem;box-shadow:0 1px 2px #0000000d}.summary-card-slim label{color:#64748b;text-transform:uppercase;margin-bottom:.15rem;font-size:.65rem;font-weight:800;display:block}.summary-card-slim .val{margin:0;font-size:1.75rem;font-weight:900;line-height:1.2}.user-mini-list{flex-wrap:wrap;gap:.5rem;margin-top:.4rem;font-size:.65rem;display:flex}.border-total{border-left:4px solid #6366f1}.border-paid{border-left:4px solid #16a34a}.border-debt{border-left:4px solid #dc2626}.filters-box-slim{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.search-wrap-slim{align-items:center;display:flex;position:relative}.search-wrap-slim input{border:1px solid #e2e8f0;border-radius:6px;width:100%;padding:.5rem 1rem .5rem 2.5rem;font-size:.9rem}.search-wrap-slim .icon{color:#94a3b8;position:absolute;left:.75rem}.filter-chips-row{flex-wrap:wrap;gap:1.5rem;display:flex}.chip-group{align-items:center;gap:.4rem;display:flex}.chip-group .lbl{color:#64748b;font-size:.65rem;font-weight:800}.chip-group .chip{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:.25rem .6rem;font-size:.7rem;font-weight:700}.chip-group .chip.active{color:#fff;background:#6366f1;border-color:#6366f1}.tabs-container-slim{border-bottom:2px solid #f1f5f9;align-items:center;gap:.5rem;display:flex}.tabs-nav-slim{flex:1;gap:1.25rem;display:flex;overflow-x:auto}.tab-slim{color:#64748b;cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.5rem .25rem;font-size:.8rem;font-weight:700}.tab-slim.active{color:#6366f1;border-bottom-color:#6366f1}.tab-slim .badge{background:#f1f5f9;border-radius:4px;margin-left:4px;padding:.1rem .4rem;font-size:.65rem}.expense-detailed-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.75rem;padding:.75rem;transition:all .2s}.expense-detailed-item:hover{box-shadow:0 4px 12px #0000000d}.item-main{justify-content:space-between;align-items:flex-start;display:flex}.item-info{flex:1}.item-date{color:#94a3b8;margin-bottom:.1rem;font-size:.65rem;font-weight:700}.item-title{color:#1e293b;margin:0;font-size:.95rem;font-weight:800}.item-provider{color:#64748b;margin-top:.1rem;font-size:.75rem}.item-amounts{text-align:right;margin:0 1.5rem}.amt-val{margin:0;font-size:1.15rem;font-weight:900}.amt-status{border-radius:4px;padding:.1rem .4rem;font-size:.6rem;font-weight:800}.amt-status.paid{color:#166534;background:#dcfce7}.amt-status.debt{color:#991b1b;background:#fee2e2}.item-extra{color:#64748b;border-top:1px solid #f1f5f9;gap:1.5rem;margin-top:.75rem;padding-top:.75rem;font-size:.7rem;display:flex}.item-actions{flex-direction:column;gap:.25rem;display:flex}.cal-grid-slim{background:#e2e8f0;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.cal-head{text-align:center;color:#64748b;background:#f8fafc;padding:.5rem;font-size:.7rem;font-weight:800}.cal-cell{background:#fff;min-height:90px;padding:.4rem}.cal-cell.empty{background:#f8fafc}.day-num{color:#94a3b8;font-size:.7rem;font-weight:700}.day-data{flex-direction:column;gap:2px;margin-top:.4rem;display:flex}.day-dot-chip{cursor:pointer;border-radius:3px;padding:1px 3px;font-size:.6rem;font-weight:800}.day-dot-chip.paid{color:#166534;background:#dcfce7}.day-dot-chip.debt{color:#991b1b;background:#fee2e2}.btn-xs{border-radius:4px!important;height:24px!important;padding:.25rem .5rem!important;font-size:.65rem!important}.filters-box{gap:.25rem!important;margin-bottom:.4rem!important;padding:.25rem .5rem!important}.filter-grid{gap:.75rem!important}.filter-label{opacity:.8;margin-bottom:0!important;font-size:.55rem!important}.search-input{height:28px!important;font-size:.75rem!important}
