@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-card:#1e293b80;--bg-card-solid:#1e293b;--bg-elevated:#334155;--bg-hover:#33415580;--bg-input:#0f172a99;--border:#4755694d;--border-light:#47556980;--text-primary:#f1f5f9;--text-secondary:#e2e8f0;--text-muted:#94a3b8;--text-dimmed:#64748b;--accent:#3b82f6;--accent-hover:#2563eb;--accent-muted:#3b82f626;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 20px #0006;--shadow-lg:0 10px 40px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-page{background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 50%,#0f172a 100%) 0 0/400% 400%;justify-content:center;align-items:center;min-height:100vh;padding:20px;animation:15s infinite gradientShift;display:flex}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center;background:#1e293bcc;border:1px solid #47556980;border-radius:16px;width:100%;max-width:420px;padding:40px;transition:transform .3s,box-shadow .3s;animation:.8s ease-out forwards fadeInUp}.login-card:hover{transform:translateY(-2px);box-shadow:0 25px 50px -12px #00000080}.login-logo{justify-content:center;align-items:center;margin-bottom:24px;animation:.6s ease-out .2s both fadeIn;display:flex}.login-logo-img{object-fit:contain;width:auto;height:45px;transition:transform .3s;animation:3s ease-in-out infinite float}.login-logo-img:hover{transform:scale(1.1)rotate(5deg)}.login-title{color:var(--text-primary);margin-bottom:8px;font-size:11px;font-weight:600;animation:.6s ease-out .3s both fadeIn}.login-desc{color:var(--text-muted);margin-bottom:24px;font-size:11px;line-height:1.5;animation:.6s ease-out .3s both fadeIn}.login-card .field{text-align:left;margin-bottom:20px;animation:.6s ease-out both fadeIn}.login-card .field label{color:#cbd5e1;margin-bottom:6px;font-size:11px;font-weight:500;transition:color .3s;display:block}.login-card .field input{color:#e2e8f0;background:#0f172a99;border:1px solid #47556980;border-radius:8px;outline:none;width:100%;padding:12px 14px;font-family:inherit;font-size:11px;transition:border-color .3s,background .3s,box-shadow .3s}.login-card .field input::placeholder{color:#64748b}.login-card .field input:focus{border-color:var(--accent);background:#0f172acc;box-shadow:0 0 0 3px #3b82f626}.login-card .field input:hover:not(:focus){border-color:#475569cc}.password-wrap{position:relative}.eye-btn{cursor:pointer;color:#64748b;background:0 0;border:none;padding:4px;transition:all .3s;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.eye-btn:hover{color:#94a3b8;transform:translateY(-50%)scale(1.1)}.btn-login{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;padding:14px 24px;font-family:inherit;font-size:11px;font-weight:600;transition:all .3s;animation:.6s ease-out .6s both fadeIn;display:flex;position:relative;overflow:hidden}.btn-login:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-login:hover:before{left:100%}.btn-login:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8 0%,#2563eb 100%);transform:translateY(-2px);box-shadow:0 10px 25px -5px #3b82f666}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{opacity:.8;cursor:not-allowed}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-footer-text{color:#64748b;border-top:1px solid #4755694d;margin-top:24px;padding-top:20px;font-size:11px;animation:.6s ease-out .7s both fadeIn}.error-banner{color:#fca5a5;text-align:left;background:#ef44441a;border:1px solid #ef444440;border-radius:8px;margin-bottom:1.15rem;padding:.65rem .85rem;font-size:.82rem}.app-layout{background:var(--bg-primary);height:100vh;display:flex;overflow:hidden}.sidebar{background:#0f172a;border-right:1px solid #4755694d;flex-direction:column;flex-shrink:0;width:220px;min-width:220px;padding:14px 10px;display:flex}.sidebar-brand{align-items:center;gap:10px;margin-bottom:24px;padding:8px;display:flex}.sidebar-logo-img{object-fit:contain;width:auto;height:34px}.sidebar-logo{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:800;display:flex}.brand-name{color:#f1f5f9;font-size:13px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:3px;display:flex;overflow-y:auto}.nav-section{margin-bottom:2px}.nav-section-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;padding:1rem .75rem .4rem;font-size:9px;font-weight:600;display:block}.nav-item{color:#94a3b8;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:9px 11px;font-size:11px;font-weight:500;text-decoration:none;transition:all .2s;display:flex;position:relative}.nav-item svg{flex-shrink:0;width:18px;height:18px}.nav-item:hover{color:#e2e8f0;background:#3b82f61a}.nav-item.active{color:#fff;background:#3b82f626}.nav-item.active:after{content:"";background:#3b82f6;border-radius:50%;width:6px;height:6px;position:absolute;right:8px}.nav-item.active svg{color:var(--accent);opacity:1}.sidebar-bottom{text-align:center;border-top:1px solid #4755694d;margin-top:14px;padding:12px 8px 6px}.sidebar-copy{flex-direction:column;align-items:center;gap:2px;padding:0;display:flex}.sidebar-copy span{color:#64748b;font-size:9px}.sidebar-copy span:last-child{color:#475569}.main-wrapper{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.topbar{z-index:50;background:#0f172a;border-bottom:1px solid #4755694d;flex-shrink:0;justify-content:space-between;align-items:center;height:50px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-greeting{color:#94a3b8;font-size:11px}.topbar-greeting strong{color:var(--text-primary);font-weight:600}.topbar-user{cursor:pointer;border-radius:8px;align-items:center;gap:.6rem;padding:.3rem .4rem;transition:background .12s;display:flex;position:relative}.topbar-user:hover{background:var(--bg-hover)}.avatar{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.75rem;font-weight:700;display:flex}.user-info{flex-direction:column;display:flex}.user-name{color:var(--text-primary);font-size:.8rem;font-weight:600;line-height:1.2}.user-email{color:var(--text-muted);font-size:.68rem}.dropdown-backdrop{z-index:98;position:fixed;inset:0}.user-dropdown{z-index:99;background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid #47556966;border-radius:12px;width:240px;animation:.15s dropIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 25px 60px #00000080,0 0 0 1px #ffffff0d}@keyframes dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{align-items:center;gap:.65rem;padding:.85rem;display:flex}.dropdown-avatar{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:flex}.dropdown-name{color:var(--text-primary);font-size:.82rem;font-weight:600}.dropdown-email{color:var(--text-muted);font-size:.7rem}.dropdown-divider{background:var(--border);height:1px}.dropdown-item{cursor:pointer;width:100%;color:var(--text-secondary);background:0 0;border:none;align-items:center;gap:.55rem;padding:.6rem .85rem;font-family:inherit;font-size:.8rem;transition:background .1s;display:flex}.dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.dropdown-item.logout{color:#f87171}.dropdown-item.logout:hover{background:#ef444414}.content{flex-direction:column;flex:1;min-height:0;padding:1.5rem 1.75rem;display:flex;overflow:hidden}.content>*{flex-direction:column;flex:1;min-height:0;display:flex}.page-header,.table-toolbar,.ledger-header,.ledger-toolbar,.ledger-summary,.stats-grid,.bank-tabs,.bank-summary,.upload-msg{flex-shrink:0}.dashboard-page,.profile-page{flex:unset!important;min-height:unset!important;display:block!important;overflow-y:auto!important}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem;margin-bottom:1.5rem;display:grid}.stat-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b80;border:1px solid #4755694d;border-radius:10px;align-items:center;gap:.85rem;padding:12px;transition:all .2s;display:flex}.stat-card:hover{background:#33415580;background:var(--bg-elevated);border-color:#47556980}.stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-icon.blue{color:#60a5fa;background:#3b82f61f}.stat-icon.green{color:#4ade80;background:#22c55e1f}.stat-icon.orange{color:#fbbf24;background:#f59e0b1f}.stat-icon.purple{color:#c084fc;background:#a855f71f}.stat-icon.red{color:#f87171;background:#ef44441f}.stat-details{flex-direction:column;flex:1;display:flex}.stat-label{color:var(--text-muted);margin-bottom:.15rem;font-size:.72rem;font-weight:500}.stat-value{color:var(--text-primary);letter-spacing:-.5px;font-size:1.5rem;font-weight:800}.stat-sub{color:var(--text-muted);margin-top:.1rem;font-size:.68rem}.dash-info-bar{flex-shrink:0;gap:.75rem;margin-bottom:1.25rem;display:flex}.dash-info-item{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);border-radius:9px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.78rem;transition:border-color .12s;display:flex}.dash-info-item:hover{border-color:var(--border-light)}.dash-info-item svg{color:var(--text-muted);flex-shrink:0}.dash-info-item strong{color:var(--text-primary)}.dash-info-badge{color:#fbbf24;background:#f59e0b1f;border-radius:5px;margin-left:.25rem;padding:.15rem .5rem;font-size:.68rem;font-weight:700}.panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b80;border:1px solid #4755694d;border-radius:10px;margin-bottom:1.5rem;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.panel-header h3{color:var(--text-primary);font-size:.9rem;font-weight:600}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.75rem;font-weight:600}.btn-link:hover{text-decoration:underline}.data-table{border-collapse:collapse;width:100%}.data-table thead{background:#33415580}.data-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #94a3b814;padding:8px 14px;font-size:10px;font-weight:600}.data-table td{color:#e2e8f0;border-bottom:1px solid #94a3b814;padding:9px 14px;font-size:11px}.data-table tbody tr{transition:background .2s}.data-table tbody tr:hover{background:#3341554d}.data-table tbody tr:last-child td{border-bottom:none}.cell-with-avatar{align-items:center;gap:.7rem;display:flex}.table-avatar{color:#fff;background:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.72rem;font-weight:700;display:flex}.data-table tbody tr:nth-child(5n+1) .table-avatar{background:#ef4444}.data-table tbody tr:nth-child(5n+2) .table-avatar{background:#22c55e}.data-table tbody tr:nth-child(5n+3) .table-avatar{background:#f59e0b}.data-table tbody tr:nth-child(5n+4) .table-avatar{background:#a855f7}.data-table tbody tr:nth-child(5n+5) .table-avatar{background:#3b82f6}.cell-text{flex-direction:column;min-width:0;display:flex}.cell-primary{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:.82rem;font-weight:600;overflow:hidden}.cell-secondary{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:.65rem;overflow:hidden}.cell-muted{color:var(--text-muted)}.cell-truncate{white-space:nowrap;text-overflow:ellipsis;max-width:200px;display:block;overflow:hidden}.assigned-pill{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.78rem;display:inline-flex}.assigned-dot{background:var(--success);border-radius:50%;width:6px;height:6px}.badge{border-radius:5px;padding:.18rem .6rem;font-size:.7rem;font-weight:600;display:inline-block}.badge-active{color:#4ade80;background:#22c55e1f}.badge-tally{color:#fbbf24;background:#f59e0b1f}.badge-app,.badge-admin{color:#60a5fa;background:#3b82f61f}.badge-user{color:#4ade80;background:#22c55e1f}.user-cell{align-items:center;gap:.7rem;min-width:0;display:flex}.user-cell span{white-space:nowrap;text-overflow:ellipsis;max-width:180px;overflow:hidden}.user-avatar-sm{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.72rem;font-weight:700;display:flex}.client-avatar-sm{color:#fff;background:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.72rem;font-weight:700;display:flex}.assigned-badge{background:#3b82f61a;border-radius:20px;align-items:center;gap:.35rem;padding:.2rem .55rem .2rem .25rem;display:inline-flex}.assigned-avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.58rem;font-weight:700;display:flex}.assigned-badge span{color:#60a5fa;font-size:.75rem;font-weight:600}.status-toggle{cursor:pointer;border:none;border-radius:5px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.7rem;font-weight:600;transition:opacity .12s;display:inline-flex}.status-toggle.active{color:#4ade80;background:#22c55e1f}.status-toggle.inactive{color:#f87171;background:#ef44441f}.status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.text-muted{color:var(--text-muted)}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;display:flex}.page-header h2{color:#f1f5f9;font-size:16px;font-weight:700}.page-subtitle{color:#94a3b8;margin-top:.15rem;font-size:11px}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:11px;font-weight:600;transition:all .3s;display:inline-flex;position:relative;overflow:hidden}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8 0%,#2563eb 100%);transform:translateY(-1px);box-shadow:0 4px 15px #3b82f64d}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:#e2e8f0;cursor:pointer;background:#3341554d;border:1px solid #47556980;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:11px;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary:hover{background:#4755694d;border-color:#475569cc}.btn-danger{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-family:inherit;font-size:11px;font-weight:600;transition:background .12s;display:inline-flex}.btn-danger:hover{background:#dc2626}.btn-icon{background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:.35rem;transition:all .12s;display:flex}.btn-icon:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--border-light)}.btn-icon.danger:hover{color:var(--danger);background:#ef444414;border-color:#ef444433}.action-btns{gap:.3rem;display:flex}.table-toolbar{align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.filter-select select{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235a6a80' stroke-width='2'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;border-radius:8px;padding:.5rem 2.25rem .5rem .8rem;font-family:inherit;font-size:.82rem;transition:border-color .15s}.filter-select select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);outline:none}.filter-tabs{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;gap:.25rem;padding:.2rem;display:flex}.filter-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.35rem .75rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .12s}.filter-tab:hover{color:var(--text-secondary)}.filter-tab.active{background:var(--accent-muted);color:var(--accent)}.search-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.5rem;max-width:320px;padding:.5rem .8rem;transition:border-color .15s;display:flex}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:.82rem}.search-box input::placeholder{color:var(--text-muted)}.table-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1e293b80;border:1px solid #4755694d;border-radius:10px;flex:1;min-height:0;overflow:auto}.data-table thead th{z-index:2;background:#33415580;position:sticky;top:0}.table-empty{text-align:center;color:var(--text-muted);padding:3.5rem 2rem;font-size:.85rem}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid #47556966;border-radius:16px;width:100%;max-width:520px;animation:.15s modalIn;box-shadow:0 24px 60px #0006}.modal.modal-sm{max-width:420px}.modal.modal-lg{max-width:620px}@keyframes modalIn{0%{opacity:0;transform:scale(.97)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.15rem 1.35rem;display:flex}.modal-header h3{color:var(--text-primary);font-size:1rem;font-weight:700}.modal-close{background:var(--bg-elevated);cursor:pointer;color:var(--text-muted);border:none;border-radius:6px;padding:.3rem;transition:all .12s;display:flex}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:1.35rem}.modal-body .input-group{margin-bottom:1rem}.modal-body .input-group:last-child{margin-bottom:0}.modal-body .input-group label,.input-group label{color:var(--text-secondary);margin-bottom:.35rem;font-size:.78rem;font-weight:600;display:block}.modal-body .input-group input,.modal-body .input-group select{color:#e2e8f0;background:#0f172a99;border:1px solid #47556980;border-radius:8px;outline:none;width:100%;padding:12px 14px;font-family:inherit;font-size:11px;transition:border-color .3s,background .3s,box-shadow .3s}.modal-body .input-group input:hover:not(:focus),.modal-body .input-group select:hover:not(:focus){border-color:#475569cc}.modal-body .input-group input:focus,.modal-body .input-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);outline:none}.modal-body .input-group input::placeholder{color:var(--text-muted)}.modal-body .input-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235a6a80' stroke-width='2'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;padding-right:2.25rem}.modal-footer{border-top:1px solid var(--border);background:var(--bg-secondary);border-radius:0 0 14px 14px;justify-content:flex-end;gap:.6rem;padding:.85rem 1.35rem;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:.6rem .85rem;display:grid}.tags-input{border:1.5px solid var(--border);background:var(--bg-secondary);cursor:text;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.4rem;min-height:42px;padding:.45rem .65rem;transition:all .2s;display:flex}.tags-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.tags-input input{min-width:120px;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:.2rem 0;font-family:inherit;font-size:.82rem}.tags-input input::placeholder{color:var(--text-muted)}.tag{color:#93c5fd;letter-spacing:.01em;white-space:nowrap;background:linear-gradient(135deg,#3b82f61f,#6366f11f);border:1px solid #3b82f633;border-radius:6px;align-items:center;gap:.25rem;padding:.25rem .4rem .25rem .6rem;font-size:.74rem;font-weight:500;animation:.15s tagIn;display:inline-flex}@keyframes tagIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tag-remove{color:#94a3b8;cursor:pointer;background:#94a3b81a;border:none;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.75rem;line-height:1;transition:all .12s;display:flex}.tag-remove:hover{color:#f87171;background:#ef444426}.modal-body textarea{border:1.5px solid var(--border);width:100%;color:var(--text-primary);background:var(--bg-secondary);resize:vertical;border-radius:8px;padding:.55rem .8rem;font-family:inherit;font-size:.85rem;transition:border-color .15s}.modal-body textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);outline:none}.password-field{gap:.3rem;display:flex}.password-field input{flex:1}.btn-generate,.btn-copy{background:var(--bg-elevated);border:1.5px solid var(--border);cursor:pointer;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:.45rem;transition:all .12s;display:flex}.btn-generate:hover,.btn-copy:hover{border-color:var(--accent);color:var(--accent)}.field-hint{color:var(--text-muted);margin-top:.3rem;font-size:.72rem}.force-pwd-msg{color:#fbbf24;background:#f59e0b1a;border:1px solid #f59e0b33;border-radius:8px;margin-bottom:1.15rem;padding:.7rem .85rem;font-size:.82rem;line-height:1.5}.success-banner{color:#4ade80;background:#22c55e1a;border:1px solid #22c55e33;border-radius:8px;margin-bottom:1.15rem;padding:.7rem .85rem;font-size:.82rem}.bank-tabs{border-bottom:1.5px solid var(--border);gap:.25rem;margin-bottom:1rem;padding-bottom:0;display:flex}.bank-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1.5px;padding:.55rem 1.15rem;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .12s}.bank-tab:hover{color:var(--text-secondary)}.bank-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.bank-summary{color:var(--text-muted);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.78rem;display:flex}.bank-summary-sep{color:var(--border-light)}.matched-count{color:#4ade80}.unmatched-count{color:#fbbf24}.bank-list{flex-direction:column;flex:1;gap:.5rem;min-height:0;display:flex;overflow-y:auto}.bank-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;transition:border-color .12s;overflow:hidden}.bank-card.has-match{border-left:3px solid #4ade80}.bank-card.no-match{border-left:3px solid #fbbf24}.bank-card-top{align-items:flex-start;gap:1rem;padding:.85rem 1rem;display:flex}.bank-card-left{text-align:right;flex-shrink:0;min-width:110px}.bank-card-date{color:var(--text-muted);margin-bottom:.15rem;font-size:.7rem}.bank-card-amount{color:#4ade80;font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800}.bank-card-narration{flex:1;min-width:0}.bank-narration-text{color:var(--text-primary);word-break:break-word;font-size:.8rem;line-height:1.45;display:block}.bank-ref{color:var(--text-muted);margin-top:.2rem;font-size:.68rem;display:block}.bank-card-bottom{background:var(--bg-secondary);border-top:1px solid var(--border);flex-direction:column;gap:.55rem;padding:.65rem 1rem;display:flex}.bank-mapping{flex-direction:column;gap:.45rem;display:flex}.match-reason{color:#4ade80;background:#22c55e14;border-radius:5px;align-self:flex-start;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.68rem;font-weight:600;display:inline-flex}.bank-mapping-row{align-items:center;gap:.5rem;display:flex}.bank-client-select{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}.bank-client-select label{color:var(--text-muted);white-space:nowrap;font-size:.72rem;font-weight:600}.bank-client-select select{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235a6a80' stroke-width='2'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;border-radius:7px;flex:1;padding:.4rem 2rem .4rem .65rem;font-family:inherit;font-size:.78rem}.bank-client-select select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted);outline:none}.bank-card-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.btn-approve{color:#4ade80;cursor:pointer;background:#22c55e1f;border:1px solid #22c55e33;border-radius:7px;align-items:center;gap:.3rem;padding:.35rem .75rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:all .12s;display:inline-flex}.btn-approve:hover:not(:disabled){background:#22c55e33}.btn-approve:disabled{opacity:.35;cursor:not-allowed}.btn-delete-txn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:.35rem;transition:all .12s;display:flex}.btn-delete-txn:hover{color:var(--danger);background:#ef44440f;border-color:#ef44444d}.approved-info{gap:.5rem}.approved-client{color:var(--text-primary);align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;display:inline-flex}.approved-badge{color:#4ade80;background:#22c55e14;border-radius:5px;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.68rem;font-weight:600;display:inline-flex}.upload-loading{text-align:center;color:var(--text-muted);padding:2rem;font-size:.85rem}.upload-filter-section{margin-bottom:1rem}.upload-filter-label{color:var(--text-secondary);margin-bottom:.6rem;font-size:.78rem;font-weight:700;display:block}.upload-filter-options{grid-template-columns:repeat(4,1fr);gap:.4rem;display:grid}.filter-option{background:var(--bg-secondary);border:1.5px solid var(--border);cursor:pointer;color:var(--text-secondary);border-radius:9px;flex-direction:column;align-items:center;gap:.2rem;padding:.65rem .5rem;font-family:inherit;transition:all .12s;display:flex}.filter-option:hover{border-color:var(--border-light);background:var(--bg-hover)}.filter-option.selected{border-color:var(--accent);background:var(--accent-muted);color:var(--text-primary)}.filter-option-label{font-size:.72rem;font-weight:600}.filter-option-count{color:var(--text-primary);font-size:1.1rem;font-weight:800}.filter-option.selected .filter-option-count{color:var(--accent)}.upload-summary-info{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.upload-info-row{color:var(--text-muted);align-items:flex-start;gap:.45rem;font-size:.75rem;display:flex}.upload-info-row svg{flex-shrink:0;margin-top:1px}.upload-info-row strong{color:var(--text-primary)}.upload-preview-table{border:1px solid var(--border);border-radius:8px;max-height:280px;overflow-y:auto}.upload-preview-table .data-table th{z-index:1;position:sticky;top:0}.preview-more{text-align:center;color:var(--text-muted);background:var(--bg-secondary);border-top:1px solid var(--border);padding:.6rem;font-size:.72rem}.category-badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:4px;padding:.15rem .45rem;font-size:.65rem;font-weight:700}.cat-sales{color:#60a5fa;background:#3b82f61f}.cat-credits{color:#4ade80;background:#22c55e1f}.cat-tds{color:#fbbf24;background:#f59e0b1f}.cat-other{color:#94a3b8;background:#94a3b81a}.cat-adjustments{color:#c084fc;background:#a855f71f}.remark-display{cursor:pointer;border-radius:6px;min-width:120px;padding:.25rem .35rem;transition:background .1s}.remark-display:hover{background:var(--bg-hover)}.remark-text{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:.78rem;display:block;overflow:hidden}.remark-meta{color:var(--text-muted);margin-top:.1rem;font-size:.62rem;display:block}.remark-placeholder{color:var(--text-muted);font-size:.75rem;font-style:italic}.remark-edit{align-items:center;gap:.25rem;display:flex}.remark-edit input{background:var(--bg-secondary);border:1px solid var(--accent);min-width:120px;color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-muted);border-radius:6px;outline:none;flex:1;padding:.3rem .5rem;font-family:inherit;font-size:.78rem}.remark-save,.remark-cancel{cursor:pointer;border:none;border-radius:5px;justify-content:center;align-items:center;width:26px;height:26px;padding:0;transition:all .1s;display:flex}.remark-save{color:#4ade80;background:#22c55e1f}.remark-save:hover{background:#22c55e33}.remark-cancel{background:var(--bg-elevated);color:var(--text-muted)}.remark-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.remark-previous{background:#0f172a80;border:1px solid #4755694d;border-radius:8px;margin-bottom:16px;padding:12px}.remark-prev-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:9px;font-weight:600;display:block}.remark-prev-text{color:#e2e8f0;margin-bottom:6px;font-size:12px;line-height:1.5}.remark-prev-meta{color:#64748b;font-size:10px}.dl-option{padding:0}.dl-checkbox{cursor:pointer;color:var(--text-primary);align-items:center;gap:.55rem;font-size:.85rem;display:flex}.dl-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.dl-hint{color:var(--text-muted);margin-top:.35rem;padding-left:2.05rem;font-size:.72rem;display:block}.dl-label{color:var(--text-secondary);margin-bottom:.45rem;font-size:.78rem;font-weight:600;display:block}.dl-type-options{gap:.35rem;display:flex}.dl-type-btn{background:var(--bg-secondary);border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;text-align:center;border-radius:8px;flex:1;padding:.55rem;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .12s}.dl-type-btn:hover{border-color:var(--border-light)}.dl-type-btn.active{border-color:var(--accent);background:var(--accent-muted);color:var(--accent)}.import-stats{gap:.5rem;margin-bottom:1rem;display:flex}.import-stat{background:var(--bg-secondary);border:1px solid var(--border);text-align:center;border-radius:9px;flex-direction:column;flex:1;gap:.15rem;padding:.75rem;display:flex}.import-stat-value{color:var(--text-primary);font-size:1.3rem;font-weight:800}.import-stat.matched .import-stat-value{color:#4ade80}.import-stat.duplicate .import-stat-value{color:#fbbf24}.import-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;font-weight:600}.ob-section{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.ob-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.65rem;font-size:.72rem;font-weight:700;display:block}.ob-fields{gap:.65rem;display:flex}.ob-fields .input-group{margin-bottom:0}.ob-row{background:var(--bg-elevated)!important}.ob-row td{font-size:.82rem;border-bottom:1.5px solid var(--border-light)!important}.ob-row strong{color:var(--accent);letter-spacing:.01em;font-size:.78rem;font-weight:700}.badge-inter{color:#60a5fa;background:#3b82f61f}.badge-intra{color:#c084fc;background:#a855f71f}.gst-preview{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;margin-top:1rem;padding:1rem 1.15rem}.gst-preview-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.65rem;font-size:.72rem;font-weight:700}.gst-row{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:.35rem 0;font-size:.82rem;display:flex}.gst-row span:last-child{font-variant-numeric:tabular-nums;font-weight:500}.gst-row.total{border-top:1px solid var(--border);color:var(--text-primary);margin-top:.4rem;padding-top:.6rem;font-size:.9rem;font-weight:700}.gst-row.total span:last-child{color:#4ade80;font-weight:800}.ledger-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.ledger-header-left{align-items:center;gap:.75rem;display:flex}.ledger-header-left h2{color:var(--text-primary);font-size:1.2rem;font-weight:700}.btn-back{background:var(--bg-card);border:1px solid var(--border);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .12s;display:flex}.btn-back:hover{background:var(--bg-hover);color:var(--text-primary)}.ledger-header-right{align-items:center;gap:.5rem;display:flex}.ledger-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.date-filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.date-field{align-items:center;gap:.35rem;display:flex}.date-field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.date-field input[type=date]{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);border-radius:7px;padding:.4rem .6rem;font-family:inherit;font-size:.78rem;transition:border-color .15s}.date-field input[type=date]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);outline:none}.date-field input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.6)}.btn-clear-dates{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:.25rem;padding:.3rem .4rem;font-family:inherit;font-size:.72rem;transition:all .1s;display:flex}.btn-clear-dates:hover{color:var(--danger);background:#ef444414}.date-range-label{color:var(--text-muted);padding-left:.25rem;font-size:.72rem}.export-wrapper{position:relative}.export-dropdown{z-index:99;background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid #47556966;border-radius:9px;width:180px;animation:.12s dropIn;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 20px 50px #00000080,0 0 0 1px #ffffff0d}.export-dropdown .dropdown-item{padding:.55rem .85rem;font-size:.78rem}.btn-sm{padding:.4rem .85rem;font-size:.78rem}.upload-msg{border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.6rem 1rem;font-size:.82rem;animation:.15s tagIn;display:flex}.upload-msg.success{color:#4ade80;background:#22c55e1a;border:1px solid #22c55e33}.upload-msg.error{color:#f87171;background:#ef44441a;border:1px solid #ef444433}.msg-close{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 .25rem;font-size:1.1rem}.msg-close:hover{opacity:1}.ledger-summary{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.3rem;padding:1rem 1.15rem;display:flex}.summary-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:600}.summary-value{color:var(--text-primary);font-size:1.2rem;font-weight:700}.summary-value.debit{color:#f87171}.summary-value.credit{color:#4ade80}.ledger-table{font-size:.8rem}.ledger-table th,.ledger-table td{padding:.6rem .85rem}.text-right{text-align:right!important}.cell-nowrap{white-space:nowrap}.particulars{align-items:center;gap:.4rem;display:inline-flex}.prtclr-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;flex-shrink:0;padding:.1rem .35rem;font-size:.6rem;font-weight:700}.prtclr-tag.by{color:#4ade80;background:#22c55e1f}.prtclr-tag.to{color:#f87171;background:#ef44441f}.narration-text{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:280px;font-size:.72rem;display:-webkit-box;overflow:hidden}.vch-type-badge{color:var(--text-secondary);background:var(--bg-elevated);white-space:nowrap;border-radius:4px;padding:.15rem .45rem;font-size:.7rem;font-weight:600}.amount{font-variant-numeric:tabular-nums}.amount.debit{color:#f87171}.amount.credit{color:#4ade80}.ledger-table tfoot td{border-top:1px solid var(--border-light);background:var(--bg-secondary);border-bottom:none;padding-top:.75rem;padding-bottom:.75rem}.page-loading{height:200px;color:var(--text-muted);justify-content:center;align-items:center;font-size:.85rem;display:flex}.profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:1.35rem;max-width:550px;padding:1.75rem;display:flex}.profile-avatar-lg{background:var(--accent);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:72px;height:72px;font-size:1.75rem;font-weight:700;display:flex}.profile-details{flex-direction:column;gap:.85rem;display:flex}.profile-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.5rem 0;display:flex}.profile-row:last-child{border-bottom:none}.profile-label{width:70px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-size:.72rem;font-weight:700}.profile-value{color:var(--text-primary);font-size:.9rem;font-weight:500}.profile-actions{border-top:1px solid var(--border);padding-top:.65rem}.loading{min-height:100vh;color:var(--text-muted);background:var(--bg-primary);justify-content:center;align-items:center;font-size:.9rem;display:flex}.date-filter{align-items:center;gap:6px;display:flex;position:relative}.df-trigger{color:#e2e8f0;cursor:pointer;white-space:nowrap;background:#1e293bcc;border:1px solid #47556980;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:11px;font-weight:600;transition:all .2s;display:flex}.df-trigger:hover{background:#33415580;border-color:#475569cc}.df-trigger svg{color:#64748b}.df-dates{color:#94a3b8;background:#0f172a99;border:1px solid #4755694d;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;display:flex}.df-dates svg{color:#64748b;flex-shrink:0}.df-dates input[type=date]{color:#e2e8f0;background:0 0;border:none;outline:none;width:115px;padding:2px 0;font-family:inherit;font-size:11px}.df-dates input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.6);cursor:pointer}.df-to{color:#64748b;font-size:10px}.df-range{color:#e2e8f0;font-weight:500}.df-dropdown{z-index:100;background:linear-gradient(145deg,#1e293b,#0f172a);border:1px solid #47556966;border-radius:12px;width:200px;padding:6px;animation:.12s dropIn;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 20px 50px #00000080,0 0 0 1px #ffffff0d}.df-option{color:#94a3b8;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:9px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .12s;display:flex}.df-option:hover{color:#e2e8f0;background:#3b82f614}.df-option.active{color:#3b82f6;font-weight:600}.df-option.active svg{color:#3b82f6}@media (width<=900px){.sidebar{width:64px}.sidebar-brand-text,.nav-section-label,.nav-item span,.sidebar-copy{display:none}.sidebar-logo-img{height:22px}.sidebar-brand{justify-content:center;padding:.85rem .5rem}.nav-item{justify-content:center;padding:.55rem}.content{padding:1.15rem}.form-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.stats-grid{grid-template-columns:1fr}.topbar{padding:0 1rem}.topbar-greeting,.user-info{display:none}}
