:root{--bg: #080c18;--bg-surface: #0d1526;--bg-surface2: #111d35;--glass: rgba(255,255,255,.04);--glass-hover: rgba(255,255,255,.07);--glass-b: rgba(255,255,255,.08);--glass-b2: rgba(255,255,255,.14);--text-1: #f1f5f9;--text-2: #94a3b8;--text-3: #475569;--accent: #6366f1;--accent-lite: #818cf8;--accent-glow: rgba(99,102,241,.22);--rent: #818cf8;--electricity: #fbbf24;--water: #38bdf8;--maintenance: #34d399;--mbeturina: #fb923c;--termokos: #f87171;--title-grad: linear-gradient(135deg, #e2e8f0 0%, #818cf8 45%, #38bdf8 100%);--r: 16px;--r-sm: 10px;--shadow: 0 8px 32px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.04);--shadow-sm: 0 2px 10px rgba(0,0,0,.35);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}html[data-theme=light]{--bg: #f1f5f9;--bg-surface: #ffffff;--bg-surface2: #f8fafc;--glass: rgba(255,255,255,.72);--glass-hover: rgba(255,255,255,.92);--glass-b: rgba(15,23,42,.09);--glass-b2: rgba(15,23,42,.16);--text-1: #0f172a;--text-2: #475569;--text-3: #94a3b8;--accent-glow: rgba(99,102,241,.14);--rent: #4f46e5;--electricity: #d97706;--water: #0284c7;--maintenance: #059669;--mbeturina: #ea580c;--termokos: #dc2626;--title-grad: linear-gradient(135deg, #1e293b 0%, #6366f1 45%, #0284c7 100%);--shadow: 0 4px 24px rgba(15,23,42,.1), 0 1px 0 rgba(255,255,255,.9);--shadow-sm: 0 2px 8px rgba(15,23,42,.08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background-color:var(--bg);color:var(--text-1);transition:background-color .3s,color .3s}html:not([data-theme=light]) body{background-image:radial-gradient(ellipse 80% 50% at 20% -10%,rgba(99,102,241,.18) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% -5%,rgba(56,189,248,.1) 0%,transparent 55%),radial-gradient(ellipse 50% 60% at 50% 110%,rgba(99,102,241,.09) 0%,transparent 55%)}html[data-theme=light] body{background-image:radial-gradient(ellipse 80% 50% at 20% -10%,rgba(99,102,241,.07) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% -5%,rgba(56,189,248,.05) 0%,transparent 55%)}.app{max-width:1160px;margin:0 auto;padding:2.25rem 1.25rem 5rem}.app-header{text-align:center;margin-bottom:2.25rem;position:relative}.app-header h1{font-size:1.85rem;font-weight:900;letter-spacing:-1px;background:var(--title-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.15}.app-subtitle{color:var(--text-3);font-size:.75rem;margin-top:.45rem;font-weight:600;letter-spacing:2px;text-transform:uppercase}.heart{color:#f87171}.theme-toggle{position:absolute;top:2px;right:0;width:40px;height:40px;border:1.5px solid var(--glass-b);border-radius:var(--r-sm);background:var(--glass);color:var(--text-2);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s,transform .1s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.theme-toggle:hover{background:var(--glass-hover);border-color:var(--glass-b2);color:var(--text-1)}.theme-toggle:active{transform:scale(.9)}.year-selector{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.75rem}.year-label{font-size:1.45rem;font-weight:800;color:var(--text-1);min-width:64px;text-align:center;letter-spacing:-.5px}.year-btn{width:40px;height:40px;border:1.5px solid var(--glass-b);border-radius:var(--r-sm);background:var(--glass);color:var(--text-2);font-size:1.35rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s,transform .1s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.year-btn:hover{background:var(--glass-hover);border-color:var(--glass-b2);color:var(--text-1)}.year-btn:active{transform:scale(.9)}.loading{text-align:center;color:var(--text-3);margin-top:5rem;font-size:.9rem;letter-spacing:.5px}.table-wrapper{overflow-x:auto;border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--glass-b);-webkit-overflow-scrolling:touch;background:var(--bg-surface)}.deposit-card{display:flex;align-items:center;gap:1rem;background:var(--glass);border-radius:var(--r);padding:1.1rem 1.4rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm);border:1px solid var(--glass-b);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:border-color .25s,background .25s}.deposit-card.deposit-paid{border-color:#d977064d;background:#fbbf240f}html[data-theme=light] .deposit-card.deposit-paid{border-color:#d9770659;background:#fbbf2414}.deposit-icon{font-size:1.4rem;line-height:1;flex-shrink:0}.deposit-info{flex:1;min-width:0}.deposit-label{display:block;font-size:.7rem;font-weight:700;color:var(--text-1);text-transform:uppercase;letter-spacing:1px}.deposit-sublabel{display:block;font-size:.7rem;color:var(--text-3);margin-top:.1rem}.deposit-fields{display:flex;align-items:center;gap:1.25rem}.deposit-amount-wrap{display:flex;align-items:baseline;gap:.25rem}.deposit-currency{font-size:.8rem;color:var(--text-2);font-weight:600}.deposit-date-wrap{display:flex;align-items:center}.deposit-editable{cursor:pointer;border-radius:6px;padding:.15rem .35rem;transition:background .12s}.deposit-editable:hover{background:var(--glass-hover)}.deposit-amount-edit{font-size:1.3rem;font-weight:800;color:var(--text-1)}.deposit-date-edit{font-size:.85rem;font-weight:500;color:var(--text-2)}.deposit-placeholder{color:var(--text-3);font-size:.82rem;font-weight:400}.deposit-input{border:2px solid var(--accent);border-radius:7px;padding:.2rem .5rem;font-family:inherit;font-weight:700;outline:none;background:#6366f11a;color:var(--text-1);box-shadow:0 0 0 4px var(--accent-glow)}.deposit-input.deposit-amount-edit{font-size:1.2rem;width:90px;text-align:right}.deposit-input.deposit-date-edit{font-size:.85rem;width:130px;font-weight:500}.deposit-badge{flex-shrink:0;font-size:.66rem;font-weight:700;background:#34d3991f;color:#10b981;border:1px solid rgba(52,211,153,.25);padding:.25rem .8rem;border-radius:99px;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap}html[data-theme=light] .deposit-badge{background:#0596691a;color:#059669;border-color:#05966933}@media(max-width:700px){.deposit-card{flex-wrap:wrap;gap:.5rem 1rem;padding:.9rem 1.1rem}.deposit-fields{width:100%;justify-content:space-between}.deposit-badge{margin-left:auto}}.expense-table{width:100%;border-collapse:collapse;background:var(--bg-surface);font-size:.88rem}.expense-table thead tr{background:var(--bg-surface2)}.expense-table th{padding:.65rem .75rem;text-align:right;font-weight:600;font-size:.7rem;letter-spacing:.7px;text-transform:uppercase;color:var(--text-2);white-space:nowrap}.th-month{text-align:left!important;padding-left:1.1rem;color:var(--text-1)}.th-total{text-align:right;min-width:80px}.th-sub{font-size:.65rem;opacity:.5;padding-top:.3rem}.th-date{min-width:76px}.header-group{text-align:center;border-left:1px solid rgba(128,128,128,.08);border-bottom:2px solid}.header-rent{background:#6366f117;border-bottom-color:var(--rent);color:var(--rent)}.header-electricity{background:#d9770617;border-bottom-color:var(--electricity);color:var(--electricity)}.header-water{background:#0284c717;border-bottom-color:var(--water);color:var(--water)}.header-maintenance{background:#05966917;border-bottom-color:var(--maintenance);color:var(--maintenance)}.header-mbeturina{background:#ea580c17;border-bottom-color:var(--mbeturina);color:var(--mbeturina)}.header-termokos{background:#dc262617;border-bottom-color:var(--termokos);color:var(--termokos)}.expense-table td{padding:.6rem .75rem;text-align:right;border-bottom:1px solid var(--glass-b);color:var(--text-1)}.expense-table tbody tr:last-child td{border-bottom:none}.expense-table tbody tr{transition:background .1s}.expense-table tbody tr:hover td{background:var(--glass-hover)!important}.cell-month{text-align:left!important;font-weight:600;color:var(--text-1);white-space:nowrap;min-width:72px;padding-left:1.1rem!important}.month-name{margin-right:.4rem}.now-badge{font-size:.58rem;font-weight:700;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;padding:2px 7px;border-radius:99px;letter-spacing:.3px;vertical-align:middle;text-transform:uppercase}.cell-date{color:var(--text-3);min-width:76px;font-size:.83rem}.cell-rent-amount{border-left:2px solid rgba(99,102,241,.3)}.cell-elec-amount{border-left:2px solid rgba(217,119,6,.3)}.cell-water-amount{border-left:2px solid rgba(2,132,199,.3)}.cell-maint-amount{border-left:2px solid rgba(5,150,105,.3)}.cell-mbetur-amount{border-left:2px solid rgba(234,88,12,.3)}.cell-termok-amount{border-left:2px solid rgba(220,38,38,.3)}.cell-total{font-weight:700;color:var(--text-3);min-width:80px}.total-has-value{color:var(--text-1)!important}.row-current td{background:#f59e0b12!important}.row-all-paid td{background:#10b9810f!important}.row-partial td{background:#0ea5e90f!important}.row-unpaid td{background:#f9731612!important}html[data-theme=light] .row-current td{background:#f59e0b14!important}html[data-theme=light] .row-all-paid td{background:#10b98112!important}html[data-theme=light] .row-partial td{background:#0ea5e912!important}html[data-theme=light] .row-unpaid td{background:#f9731614!important}.row-year-totals td{background:var(--glass);font-weight:700;color:var(--text-1);border-top:1px solid var(--glass-b2);border-bottom:none}.editable-cell{cursor:pointer}.editable-cell:hover{background:#6366f112!important}.editable-cell span{display:block;min-height:1em}.empty-cell{color:var(--text-3)}.cell-input{width:100%;padding:.25rem .4rem;border:2px solid var(--accent);border-radius:6px;font-size:.86rem;font-family:inherit;background:#6366f114;color:var(--text-1);outline:none;text-align:right;box-shadow:0 0 0 3px var(--accent-glow)}.cell-date .cell-input{text-align:left}@media(max-width:700px){.app{padding:1rem .75rem 4rem}.theme-toggle{top:0}.table-wrapper{border-radius:0;box-shadow:none;background:transparent;overflow:visible;border:none}.expense-table,.expense-table thead,.expense-table tbody,.expense-table tfoot,.expense-table tr,.expense-table td,.expense-table th{display:block}.expense-table thead{display:none}.expense-table tbody tr{background:var(--glass);border-radius:20px;border:1.5px solid var(--glass-b);box-shadow:var(--shadow-sm);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);margin-bottom:.75rem;overflow:hidden;display:grid;grid-template-columns:1fr auto}.row-current{border-color:#f59e0b8c!important}.row-all-paid{border-color:#10b9818c!important}.row-partial{border-color:#0ea5e98c!important}.row-unpaid{border-color:#f973168c!important}.row-current td,.row-all-paid td,.row-partial td,.row-unpaid td,.expense-table tbody tr td{background:transparent!important}.expense-table tbody td{display:flex;align-items:center;border:none;padding:0}.cell-month{grid-column:1;grid-row:1;padding:1rem 0 .75rem 1.1rem!important;min-height:unset!important;font-size:1.05rem;font-weight:800;color:var(--text-1);align-items:center;gap:.5rem;border-bottom:none!important}.cell-total{grid-column:2;grid-row:1;padding:1rem 1.1rem .75rem 0!important;justify-content:flex-end;align-items:center;font-weight:800;font-size:1rem;color:var(--text-3);white-space:nowrap;border:none!important;margin:0!important}.cell-total.total-has-value{color:var(--text-1)!important}.cell-total:before{display:none}.cell-rent-amount{border-top:1px solid var(--glass-b)}.cell-rent-amount,.cell-elec-amount,.cell-water-amount,.cell-maint-amount,.cell-mbetur-amount,.cell-termok-amount{grid-column:1;padding:.55rem 0 .55rem 1.1rem!important;border-left:none!important;gap:0;font-size:.95rem;font-weight:600;min-height:46px}.cell-rent-amount:before,.cell-elec-amount:before,.cell-water-amount:before,.cell-maint-amount:before,.cell-mbetur-amount:before,.cell-termok-amount:before{display:inline-flex;align-items:center;gap:.35rem;min-width:110px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.cell-rent-amount:before{content:"🏠  Qiraja";color:var(--rent)}.cell-elec-amount:before{content:"⚡  Rrymë";color:var(--electricity)}.cell-water-amount:before{content:"💧  Ujë";color:var(--water)}.cell-maint-amount:before{content:"🔧  Mirmb.";color:var(--maintenance)}.cell-mbetur-amount:before{content:"🗑  Mbeturina";color:var(--mbeturina)}.cell-termok-amount:before{content:"🔥  Termokos";color:var(--termokos)}.cell-rent-amount>span,.cell-elec-amount>span,.cell-water-amount>span,.cell-maint-amount>span,.cell-mbetur-amount>span,.cell-termok-amount>span{margin-left:auto;padding-right:.2rem;font-variant-numeric:tabular-nums}.cell-rent-amount .cell-input,.cell-elec-amount .cell-input,.cell-water-amount .cell-input,.cell-maint-amount .cell-input,.cell-mbetur-amount .cell-input,.cell-termok-amount .cell-input{width:auto;min-width:72px;max-width:100px;margin-left:auto;text-align:right;padding:.3rem .5rem;border-radius:8px;font-size:.9rem}.cell-rent-date,.cell-elec-date,.cell-water-date,.cell-maint-date,.cell-mbetur-date,.cell-termok-date{grid-column:2;justify-content:flex-end;padding:.55rem 1.1rem .55rem .4rem!important;min-width:72px;min-height:46px;border:none!important}.cell-rent-date>span:not(.empty-cell),.cell-elec-date>span:not(.empty-cell),.cell-water-date>span:not(.empty-cell),.cell-maint-date>span:not(.empty-cell),.cell-mbetur-date>span:not(.empty-cell),.cell-termok-date>span:not(.empty-cell){font-size:.75rem;font-weight:600;color:var(--text-2);background:var(--glass-b);border-radius:99px;padding:.2rem .55rem;white-space:nowrap}.cell-rent-date>.empty-cell,.cell-elec-date>.empty-cell,.cell-water-date>.empty-cell,.cell-maint-date>.empty-cell,.cell-mbetur-date>.empty-cell,.cell-termok-date>.empty-cell{font-size:.75rem;color:var(--text-3)}.cell-rent-date .cell-input,.cell-elec-date .cell-input,.cell-water-date .cell-input,.cell-maint-date .cell-input,.cell-mbetur-date .cell-input,.cell-termok-date .cell-input{width:auto;min-width:112px;padding:.3rem .5rem;border-radius:8px;font-size:.82rem;text-align:left;box-shadow:none}.editable-cell:active{background:#6366f11a!important}.expense-table tfoot tr{display:flex;align-items:center;background:var(--glass);border-radius:20px;padding:.9rem 1.1rem;border:1.5px solid var(--glass-b2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sm)}.expense-table tfoot td{display:none;border:none;padding:0}.expense-table tfoot .cell-month,.expense-table tfoot .cell-total{display:flex;align-items:center;min-height:unset;border:none!important;padding:0!important;margin:0!important}.expense-table tfoot .cell-month{flex:1;font-size:.72rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:1.2px}.expense-table tfoot .cell-total{font-size:1.2rem;font-weight:800;color:var(--text-1);justify-content:flex-end}.expense-table tfoot .cell-total:before{display:none}.expense-table tfoot .cell-total.total-has-value{color:var(--text-1)}}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.auth-loading-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative}.login-theme-toggle{position:fixed;top:20px;right:20px}.login-card{background:var(--bg-surface);border:1px solid var(--glass-b);border-radius:var(--r);box-shadow:var(--shadow);padding:48px 40px;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:380px;width:90%;text-align:center}.login-icon{font-size:2.5rem;margin-bottom:4px}.login-title{font-size:1.8rem;font-weight:800;background:var(--title-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.login-subtitle{font-size:.9rem;color:var(--text-2);margin:0 0 12px}.btn-google{display:flex;align-items:center;gap:10px;background:var(--bg-surface2);border:1px solid var(--glass-b2);border-radius:var(--r-sm);padding:12px 24px;font-size:.95rem;font-weight:600;color:var(--text-1);text-decoration:none;transition:background .18s,border-color .18s,transform .1s;cursor:pointer}.btn-google:hover{background:var(--glass-hover);border-color:var(--accent);transform:translateY(-1px)}.btn-google:active{transform:translateY(0)}.google-icon{flex-shrink:0}.login-note{font-size:.78rem;color:var(--text-3);margin:4px 0 0}.user-info{display:flex;align-items:center;gap:10px;margin-left:auto}.user-avatar{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--glass-b2)}.logout-btn{font-size:.8rem;color:var(--text-2);text-decoration:none;padding:4px 10px;border:1px solid var(--glass-b);border-radius:6px;transition:color .15s,border-color .15s}.logout-btn:hover{color:var(--text-1);border-color:var(--glass-b2)}
