@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#fafaf9;--bg-card:#fff;--bg-card-hover:#f5f5f4;--bg-input:#fff;--bg-badge:#f0f0ee;--text:#1a1a1a;--text-secondary:#6b6b6b;--text-muted:#a0a0a0;--border:#e5e5e3;--border-focus:#1a1a1a;--accent:#1a1a1a;--accent-light:#f0f0ee;--green:#16a34a;--green-bg:#f0fdf4;--red:#dc2626;--red-bg:#fef2f2;--amber:#d97706;--amber-bg:#fffbeb;--blue:#2563eb;--blue-bg:#eff6ff;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px #0000000f;--shadow-lg:0 4px 12px #00000014;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}button:active,.clickable:active{opacity:.65;transition:opacity .1s}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:2.5rem}.login-brand{text-align:center;margin-bottom:2rem}.login-brand h1{color:var(--text);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.login-brand p{color:var(--text-secondary);font-size:.85rem}.login-error{background:var(--red-bg);color:var(--red);border-radius:var(--radius);border:1px solid #dc262626;margin-bottom:1rem;padding:.75rem 1rem;font-size:.85rem}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem;font-size:.8rem;font-weight:500;display:block}.form-input{width:100%;font-size:.95rem;font-family:var(--font);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;padding:.7rem .85rem;transition:border-color .15s}.form-input:focus{border-color:var(--border-focus)}.form-input::placeholder{color:var(--text-muted)}.password-wrapper{position:relative}.password-wrapper .form-input{padding-right:3rem}.password-toggle{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:.25rem;font-size:.85rem;transition:color .15s;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.password-toggle:hover{color:var(--text)}.btn{font-size:.9rem;font-weight:500;font-family:var(--font);border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.25rem;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);width:100%;color:var(--bg);margin-top:.5rem}.btn-primary:hover:not(:disabled){opacity:.85}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0;padding:.5rem .85rem;font-size:.8rem}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text)}.dashboard{max-width:960px;margin:0 auto;padding:1.25rem}.navbar{border-bottom:1px solid var(--border);z-index:10;background:var(--bg);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex;position:sticky;top:0}.navbar-brand{flex-direction:column;align-items:flex-start;gap:.1rem;display:flex}.brand-subtitle{color:var(--text-muted);font-size:.75rem;font-weight:500}.navbar-brand h2{color:var(--text);font-size:1.15rem;font-weight:700}.navbar-user{align-items:center;gap:1rem;display:flex}.navbar-user-info{text-align:right}.navbar-user-name{color:var(--text);font-size:.85rem;font-weight:600}.navbar-user-phone{color:var(--text-muted);font-size:.75rem}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-bottom:2rem;display:grid}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:box-shadow .15s}.summary-card:hover{box-shadow:var(--shadow)}.summary-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.summary-card-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:500}.summary-card-icon{border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.summary-card.hand-balance .summary-card-icon{background:var(--green-bg);color:var(--green)}.summary-card.net .summary-card-icon{background:var(--blue-bg);color:var(--blue)}.summary-card.aavak .summary-card-icon{background:var(--green-bg);color:var(--green)}.summary-card.javak .summary-card-icon{background:var(--red-bg);color:var(--red)}.summary-card.udhar-aapya .summary-card-icon{background:var(--amber-bg);color:var(--amber)}.summary-card.udhar-lidha .summary-card-icon{background:var(--blue-bg);color:var(--blue)}.summary-card-amount{color:var(--text);margin-bottom:.25rem;font-size:1.35rem;font-weight:700}.summary-card-count{color:var(--text-muted);font-size:.78rem}.filter-bar{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.filter-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.period-selector{margin-bottom:.85rem}.filter-tab{font-size:.8rem;font-weight:500;font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:.4rem .75rem;transition:all .15s}.filter-tab:hover{background:var(--bg-card-hover);color:var(--text)}.filter-tab.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.filter-search{flex:1}.date-range-picker{position:relative}.date-range-trigger{width:100%;min-width:220px;font-size:.85rem;font-family:var(--font);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;align-items:center;gap:.5rem;padding:.6rem .85rem;transition:border-color .15s;display:flex}.date-range-trigger:hover{border-color:var(--text-muted)}.date-range-trigger.has-value{color:var(--text);border-color:var(--border-focus)}.date-range-trigger-label{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.date-range-clear{color:var(--text-muted);border-radius:4px;padding:.1rem .35rem;font-size:.8rem}.date-range-clear:hover{background:var(--red-bg);color:var(--red)}.date-range-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);will-change:opacity;background:#0006;justify-content:center;align-items:center;padding:1.25rem;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.date-range-popover{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:320px;max-height:85vh;box-shadow:var(--shadow-lg);will-change:transform, opacity;padding:1rem;animation:.18s cubic-bezier(.16,1,.3,1) scaleUp;position:relative;overflow-y:auto}.date-range-presets{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;padding-bottom:.85rem;display:flex}.date-range-preset-btn{background:var(--bg-badge);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:600;transition:all .15s}.date-range-preset-btn:hover{background:var(--accent-light);color:var(--text)}.date-range-preset-btn.clear{color:var(--text-muted)}.date-range-cal-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.date-range-cal-title{color:var(--text);font-size:.85rem;font-weight:700}.date-range-nav-btn{border:1px solid var(--border);border-radius:var(--radius);width:26px;height:26px;color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:1rem;display:flex}.date-range-nav-btn:hover:not(:disabled){background:var(--bg-card-hover)}.date-range-nav-btn:disabled{opacity:.3;cursor:not-allowed}.date-range-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:.25rem;display:grid}.date-range-weekdays span{color:var(--text-muted);text-align:center;font-size:.65rem;font-weight:600}.date-range-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-range-day{aspect-ratio:1;border-radius:var(--radius);color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:.78rem;transition:all .1s;display:flex}.date-range-day:hover:not(:disabled){background:var(--bg-card-hover)}.date-range-day.outside{color:var(--text-muted);opacity:.4}.date-range-day.disabled{opacity:.25;cursor:not-allowed}.date-range-day.today{box-shadow:inset 0 0 0 1px var(--border-focus);font-weight:700}.date-range-day.in-range{background:var(--accent-light);border-radius:0}.date-range-day.selected{background:var(--accent);color:var(--bg);font-weight:700}.transactions-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.transactions-title{color:var(--text);font-size:1rem;font-weight:600}.transactions-count{color:var(--text-muted);font-size:.8rem}.transaction-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:0;transition:opacity .15s;display:flex;overflow:hidden}.transaction-list.is-refreshing{opacity:.5;pointer-events:none}.transaction-item{border-bottom:1px solid var(--border);align-items:center;gap:.85rem;padding:1rem 1.25rem;transition:background .1s;display:flex}.transaction-item.clickable{cursor:pointer}.transaction-item:last-child{border-bottom:none}.transaction-item:hover{background:var(--bg-card-hover)}.transaction-type-badge{border-radius:var(--radius);text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.7rem;font-weight:700;display:flex}.transaction-type-badge.aavak{background:var(--green-bg);color:var(--green)}.transaction-type-badge.javak{background:var(--red-bg);color:var(--red)}.transaction-type-badge.udhar_aapya{background:var(--amber-bg);color:var(--amber)}.transaction-type-badge.udhar_lidha{background:var(--blue-bg);color:var(--blue)}.transaction-type-badge.udhar_vasul,.transaction-type-badge.udhar_wapsi{background:var(--green-bg);color:var(--green)}.transaction-details{flex:1;min-width:0}.transaction-desc{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.transaction-meta{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.2rem;display:flex}.transaction-type-label{border-radius:4px;padding:.1rem .4rem;font-size:.72rem;font-weight:600}.transaction-type-label.aavak{background:var(--green-bg);color:var(--green)}.transaction-type-label.javak{background:var(--red-bg);color:var(--red)}.transaction-type-label.udhar_aapya{background:var(--amber-bg);color:var(--amber)}.transaction-type-label.udhar_lidha{background:var(--blue-bg);color:var(--blue)}.transaction-type-label.udhar_vasul,.transaction-type-label.udhar_wapsi{background:var(--green-bg);color:var(--green)}.transaction-person{color:var(--text-secondary);font-size:.75rem}.transaction-date{color:var(--text-muted);font-size:.72rem}.transaction-amount{white-space:nowrap;font-size:1rem;font-weight:700}.transaction-amount.aavak,.transaction-amount.udhar_vasul{color:var(--green)}.transaction-amount.javak,.transaction-amount.udhar_wapsi,.transaction-amount.udhar_lidha{color:var(--red)}.transaction-amount.udhar_aapya{color:var(--amber)}.transaction-chevron{color:var(--text-muted);flex-shrink:0;font-size:1.3rem;line-height:1;display:none}.transaction-actions{opacity:0;gap:.25rem;transition:all .15s;display:flex}.transaction-item:hover .transaction-actions{opacity:1}.action-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.35rem;font-size:.85rem;transition:all .15s;display:flex}.action-btn:hover{background:var(--bg-card-hover);color:var(--text)}.action-btn.delete-icon:hover{background:var(--red-bg);color:var(--red)}.action-btn.edit-icon:hover{background:var(--amber-bg);color:var(--amber)}.edit-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--text);font-size:.85rem;font-family:var(--font);padding:.5rem}.edit-input:focus{border-color:var(--text-muted);outline:none}.empty-state{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:3rem 1.5rem}.empty-state-icon{color:var(--text-muted);margin-bottom:.75rem;font-size:2rem}.empty-state-text{color:var(--text-secondary);margin-bottom:.25rem;font-size:.95rem;font-weight:500}.empty-state-hint{color:var(--text-muted);font-size:.8rem}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.pagination-btn{font-size:.8rem;font-weight:500;font-family:var(--font);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;padding:.5rem 1rem;transition:all .15s}.pagination-btn:hover:not(:disabled){background:var(--bg-card-hover)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--text-muted);font-size:.8rem}.udhar-ledger-section{margin-bottom:2rem}.section-title{color:var(--text);margin-bottom:1rem;font-size:1rem;font-weight:600}.udhar-ledger-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem;display:grid}.udhar-person-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:box-shadow .15s}.udhar-person-card:hover{box-shadow:var(--shadow)}.udhar-person-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.udhar-person-name{color:var(--text);text-transform:capitalize;font-size:1rem;font-weight:600}.udhar-badge{border-radius:4px;padding:.2rem .55rem;font-size:.7rem;font-weight:600}.udhar-badge.settled{background:var(--green-bg);color:var(--green)}.udhar-badge.mismatch{background:var(--red-bg);color:var(--red)}.udhar-row{margin-bottom:.75rem}.udhar-row:last-child{margin-bottom:0}.udhar-row-label{color:var(--text-secondary);justify-content:space-between;margin-bottom:.3rem;font-size:.82rem;display:flex}.udhar-row-amount{color:var(--text);font-weight:600}.udhar-progress-bar{background:var(--border);border-radius:999px;width:100%;height:4px;margin-bottom:.3rem;overflow:hidden}.udhar-progress-fill{border-radius:999px;height:100%;transition:width .5s}.udhar-progress-fill.settled{background:var(--green)}.udhar-progress-fill.pending{background:var(--amber)}.udhar-row-detail{color:var(--text-muted);justify-content:space-between;font-size:.75rem;display:flex}.udhar-outstanding{color:var(--amber);font-weight:600}.udhar-outstanding.settled{color:var(--green)}.udhar-outstanding.mismatch{color:var(--red)}.udhar-mismatch-detail{flex-direction:column;gap:.15rem;display:flex}.loading{justify-content:center;padding:3rem;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;width:28px;height:28px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.dashboard{padding:1rem}.navbar{flex-wrap:wrap;gap:.5rem;position:static}.summary-grid{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.25rem}.summary-card{padding:.8rem}.summary-card-header{margin-bottom:.4rem}.summary-card-amount{margin-bottom:.15rem;font-size:1.1rem}.summary-card-count{font-size:.72rem}.filter-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.udhar-ledger-section{margin-bottom:1.25rem}.section-title{margin-bottom:.6rem}.udhar-person-card{padding:1rem}.udhar-person-header{margin-bottom:.65rem}.filter-bar{gap:.5rem;margin-bottom:1rem}.transaction-item{gap:.6rem;padding:.65rem .85rem}.transaction-type-badge{display:none}.transaction-desc{white-space:normal;text-overflow:clip;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.transaction-date{width:100%;margin-top:.1rem;display:block}.transaction-actions{display:none}.transaction-chevron{display:block}.udhar-ledger-grid{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;grid-template-columns:none;gap:.75rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.udhar-person-card{scroll-snap-align:start;flex:0 0 260px}.login-card{padding:1.75rem}}@media (width<=380px){.summary-grid{grid-template-columns:1fr}}.tx-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;will-change:opacity;background:#0006;justify-content:center;align-items:center;padding:1.25rem;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.tx-modal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-lg);will-change:transform, opacity;padding:1.5rem;animation:.18s cubic-bezier(.16,1,.3,1) scaleUp;position:relative;overflow-y:auto}.tx-modal-close{border:1px solid var(--border);background:var(--bg-card-hover);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:600;transition:all .15s;display:flex;position:absolute;top:1rem;right:1rem}.tx-modal-close:hover{background:var(--red-bg);color:var(--red);border-color:#dc262633}.tx-modal-header{align-items:center;gap:1rem;margin-bottom:1.25rem;padding-right:2.5rem;display:flex}.tx-modal-header-info{flex-direction:column;gap:.25rem;display:flex}.tx-modal-amount{font-size:1.4rem;font-weight:700}.tx-modal-amount.aavak,.tx-modal-amount.udhar_vasul{color:var(--green)}.tx-modal-amount.javak,.tx-modal-amount.udhar_wapsi,.tx-modal-amount.udhar_lidha{color:var(--red)}.tx-modal-amount.udhar_aapya{color:var(--amber)}.tx-modal-body{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:1rem;margin-bottom:1.25rem;padding:1rem 0;display:flex}.tx-modal-row{flex-direction:column;gap:.25rem;display:flex}.tx-modal-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.tx-modal-value{color:var(--text);word-break:break-word;font-size:.95rem}.tx-modal-value.desc{font-size:1rem;font-weight:600;line-height:1.4}.tx-modal-value.raw{color:var(--text-secondary);background:var(--bg-card-hover);border-radius:var(--radius);padding:.5rem .75rem;font-family:monospace;font-size:.85rem}.tx-modal-footer{justify-content:flex-end;gap:.75rem;display:flex}.tx-modal-edit-title{color:var(--text);align-items:center;gap:.4rem;font-size:1rem;font-weight:700;display:inline-flex}.tx-modal-footer-edit{flex-direction:column-reverse}.tx-modal-footer-edit .btn{width:100%}.btn-delete:hover{background:var(--red-bg);color:var(--red);border-color:#dc262633}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.app-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;will-change:opacity;background:#00000073;justify-content:center;align-items:center;padding:1.25rem;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.app-modal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-lg);will-change:transform, opacity;padding:1.5rem;animation:.18s cubic-bezier(.16,1,.3,1) scaleUp}.app-modal-message{color:var(--text);white-space:pre-line;margin-bottom:1.25rem;font-size:.95rem;line-height:1.5}.app-modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.app-modal-ok{width:auto;min-width:90px;margin-top:0}
