:root{--gold:#D4AF37;--char:#1E1A1D;--card:rgba(30,26,29,.7);--bgold:rgba(212,175,55,.3);--tl:#F5F5F5;--tm:#bcaaa4;
--bg:#eef2f9;--tx:#3c4043;--ac:#6d28d9;--sl:#fff;--sd:#d1d9e6;--bd:#e2e8f0;--red:#c0262d;--grn:#11803e;}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{min-height:100%;width:100%;font-family:'Poppins',sans-serif;background:var(--bg);color:var(--tx)}
.hidden{display:none!important}
input,select,textarea,button{font-family:inherit;font-size:16px}

/* ---------- login ---------- */
.login-wrap{position:fixed;inset:0;background:var(--char);overflow:hidden;display:flex;align-items:center;justify-content:center}
.particles{position:absolute;inset:0;pointer-events:none}
.particle{position:absolute;width:4px;height:4px;background:var(--gold);border-radius:50%;box-shadow:0 0 10px var(--gold);opacity:0;animation:float 20s linear infinite}
@keyframes float{0%{transform:translateY(100vh);opacity:1}100%{transform:translateY(-10vh);opacity:0}}
.login-card{position:relative;width:100%;max-width:420px;padding:28px}
.logo{text-align:center;font-family:'Playfair Display',serif;font-size:2.1em;color:var(--gold);text-shadow:0 0 20px rgba(212,175,55,.5)}
.logo-sub{text-align:center;color:var(--tm);letter-spacing:4px;font-size:.8em;margin-bottom:28px;text-transform:uppercase}
.tab-switcher{display:flex;border:1px solid var(--bgold);border-radius:50px;padding:5px;margin-bottom:30px;background:rgba(0,0,0,.2);position:relative}
.tab-btn{flex:1;padding:12px;border-radius:50px;border:none;background:transparent;color:var(--tm);font-weight:500;cursor:pointer;z-index:2}
.tab-btn.active{color:var(--char)}
.tab-indicator{position:absolute;height:80%;top:10%;width:calc(50% - 5px);background:var(--gold);border-radius:50px;transition:transform .4s cubic-bezier(.25,1,.5,1);z-index:1}
.form-section{display:none}.form-section.active{display:block}
.input-group{margin-bottom:20px}
.input-group input{width:100%;padding:16px;background:var(--card);border:1px solid var(--bgold);border-radius:12px;color:var(--tl);outline:none;letter-spacing:1px}
#otpInput{text-align:center;font-size:24px;letter-spacing:8px}
.hint{color:var(--tm);font-size:.8em;text-align:center;margin:-8px 0 16px}
.submit-btn{width:100%;padding:16px;border:none;border-radius:12px;font-size:1.05em;font-weight:600;cursor:pointer;color:var(--char);background:var(--gold)}

/* ---------- dashboard ---------- */
.dash{max-width:560px;margin:0 auto;min-height:100vh;padding:0 12px 90px}
.topbar{position:sticky;top:0;z-index:20;background:var(--bg);display:flex;justify-content:space-between;align-items:center;padding:12px 2px;border-bottom:1px solid var(--bd)}
.topbar b{color:var(--ac);font-size:1.05em;display:block}.topbar small{display:block;font-size:.75em;color:#666}
.logout{border:none;background:#fde2e2;color:var(--red);padding:8px 12px;border-radius:10px;font-weight:600}
.main-menu{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.menu-btn{background:var(--bg);padding:16px 8px;border-radius:18px;font-size:.82em;font-weight:600;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:6px 6px 12px var(--sd),-6px -6px 12px var(--sl);border:none;color:var(--tx)}
.menu-btn:active{box-shadow:inset 5px 5px 10px var(--sd),inset -5px -5px 10px var(--sl)}
.menu-btn .ic{font-size:30px;line-height:1}
.menu-btn:last-child:nth-child(odd){grid-column:1/-1}
.view{margin-top:16px;background:var(--bg);padding:16px;border-radius:18px;box-shadow:6px 6px 12px var(--sd),-6px -6px 12px var(--sl)}
.vh{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.vh h2{font-size:1.15em;color:var(--ac)}
.x{background:none;border:none;font-size:1.8em;color:#999;cursor:pointer;line-height:1}
.fg{margin-bottom:12px;position:relative}
.fg label{display:block;margin-bottom:5px;font-weight:600;color:#555;font-size:.85em}
.fg input,.fg select,.fg textarea{width:100%;padding:12px;border:none;border-radius:12px;background:var(--bg);box-shadow:inset 4px 4px 8px var(--sd),inset -4px -4px 8px var(--sl);outline:none;color:var(--tx)}
.btn{width:100%;padding:14px;font-weight:600;border:none;border-radius:12px;background:var(--ac);color:#fff;cursor:pointer;margin-top:6px}
.btn.sec{background:#e5e7eb;color:#333}.btn.grn{background:var(--grn)}.btn.red{background:var(--red)}.btn.gold{background:var(--gold);color:var(--char)}
.btn.sm{width:auto;padding:8px 12px;font-size:.85em;margin:0}
.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}
.sugg{border:1px solid #ddd;max-height:220px;overflow-y:auto;background:#fff;position:absolute;width:100%;z-index:10;border-radius:0 0 10px 10px;box-shadow:0 4px 8px rgba(0,0,0,.12)}
.sugg div{padding:10px;border-bottom:1px solid #f1f1f1;cursor:pointer}.sugg small{display:block;color:#777}
.muted{color:#888;font-size:.85em}
.empty{text-align:center;color:#888;padding:20px}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
.tbl th{background:#e0e7ff;color:#3730a3;padding:8px 6px;text-align:left;font-size:12px}
.tbl td{padding:8px 6px;border-bottom:1px solid var(--bd);vertical-align:top}
.tbl tr.on td{background:#fff1f2}
.tbl .who{display:inline-block;font-size:10px;background:#ede9fe;color:var(--ac);padding:1px 6px;border-radius:8px;margin-left:4px;font-weight:600}
.sum{margin-top:12px;padding:12px;border-radius:14px;background:#fff;font-size:.9em}
.sum p{display:flex;justify-content:space-between;padding:3px 0}.sum p.g{font-weight:700;color:var(--ac);border-top:1px dashed #ccc;margin-top:4px;padding-top:6px}
.pdfbar{position:sticky;bottom:10px;margin-top:14px}

/* ---------- collection (ADD CUSTOMER AMOUNT) ---------- */
.cbar{position:sticky;top:57px;z-index:15;background:var(--bg);padding:10px 0 8px;display:flex;gap:8px}
.cbar input{flex:1.4;min-width:0}.cbar select{flex:1;min-width:0}
.cbar input,.cbar select{padding:11px;border:none;border-radius:12px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.12);outline:none}
.clist{list-style:none}
.clist li{display:flex;gap:10px;align-items:center;padding:11px 10px;background:#fff;border-radius:12px;margin-bottom:7px;box-shadow:0 1px 3px rgba(0,0,0,.06);cursor:pointer}
.clist .sr{min-width:28px;height:28px;border-radius:50%;background:#ede9fe;color:var(--ac);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.clist .nm{flex:1;min-width:0}.clist .nm b{display:block;font-size:.92em}.clist .nm small{color:#777;font-size:.78em}
.clist .du{font-weight:700;color:var(--red);font-size:.88em;white-space:nowrap}.clist .du.z{color:var(--grn)}
.letter{font-weight:700;color:var(--ac);margin:10px 4px 6px;font-size:.85em}
.prof{background:#fff;border-radius:16px;padding:14px;margin-top:4px}
.prof h3{font-size:1.05em}.prof h3 i{font-style:normal;color:#666;font-weight:500;font-size:.85em}
.rates{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 12px}
.rates span{background:#fef3c7;color:#92400e;border-radius:8px;padding:3px 8px;font-size:.75em;font-weight:600}
.pgrid{display:grid;grid-template-columns:1.5fr 1fr;gap:10px}
.dues{background:#f8fafc;border-radius:12px;padding:8px;font-size:.85em}
.dues .d{display:flex;justify-content:space-between;padding:5px 2px;border-bottom:1px dashed #e5e7eb}
.dues .tot{display:flex;justify-content:space-between;font-weight:700;color:var(--red);padding-top:8px}
.acts{display:flex;flex-direction:column;gap:10px}
.acts .btn{margin:0;padding:18px 8px;font-size:1em}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chip{border:2px solid #ddd;background:#fff;border-radius:22px;padding:8px 14px;font-weight:600;cursor:pointer;font-size:.9em}
.chip.on{border-color:var(--ac);background:#ede9fe;color:var(--ac)}
.oitem{display:grid;grid-template-columns:1.3fr .8fr 1.2fr;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid #f1f1f1;font-size:.88em}
.oitem input{padding:9px;border:1px solid #ddd;border-radius:9px;width:100%}
.seg{display:flex;border:1px solid #ddd;border-radius:9px;overflow:hidden}
.seg button{flex:1;border:none;background:#fff;padding:8px 2px;font-size:.78em}
.seg button.on{background:var(--ac);color:#fff}

/* agents */
.agent{background:#fff;border-radius:14px;padding:12px;margin-bottom:10px}
.agent .t{display:flex;justify-content:space-between;align-items:center}
.otpbox{margin-top:10px;background:#111;color:var(--gold);border-radius:12px;padding:12px;text-align:center}
.otpbox b{font-size:34px;letter-spacing:8px;display:block}
.areachk{display:flex;flex-wrap:wrap;gap:6px}
.areachk label{display:flex;gap:4px;align-items:center;background:#fff;border:1px solid #ddd;border-radius:16px;padding:5px 10px;font-size:.85em;font-weight:500;margin:0}
.areachk input{width:auto;box-shadow:none}
.badge{display:inline-block;padding:2px 8px;border-radius:8px;font-size:.72em;font-weight:600;background:#e0e7ff;color:#3730a3;margin:2px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;display:flex;justify-content:center;align-items:flex-start;padding:16px;overflow-y:auto;backdrop-filter:blur(4px)}
.modal-box{position:relative;background:var(--bg);border-radius:18px;padding:18px;width:100%;max-width:440px;margin:auto}
.modal-x{position:absolute;top:6px;right:12px;font-size:2em;background:none;border:none;color:#555;z-index:2}
.modal-box h3{color:var(--ac);margin-bottom:12px;padding-right:30px}
#pdfFrame{width:100%;height:65vh;border:none;background:#fff;border-radius:8px}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 18px;border-radius:22px;font-size:.9em;z-index:200;opacity:0;transition:opacity .3s;pointer-events:none;max-width:90%;text-align:center}
#toast.show{opacity:1}

/* receipt */
.receipt{background:#fff;padding:20px;color:#1f2937;font-family:'Noto Sans',sans-serif;border-radius:12px}
.receipt-header{text-align:center;border-bottom:2px dashed #d1d5db;padding-bottom:12px;margin-bottom:12px}
.receipt-header h2{color:#111827;font-size:24px;font-weight:900}
.receipt-header p{margin-top:3px;font-size:13px;color:#4b5563}
.rtitle{text-align:center;margin-bottom:10px}.rtitle span{padding:5px 10px;background:#e0e7ff;color:#3730a3;border-radius:5px;font-weight:700}
.details-grid{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;padding:14px 0;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);font-size:14px}
.details-grid .l{font-weight:600;color:#4b5563}.details-grid .v{text-align:right;word-break:break-word}
.total-section{margin-top:14px;padding:14px;background:#f3f4f6;border-radius:8px;text-align:right}
.total-amount{font-size:26px;font-weight:bold;color:#1e3a8a}
.amount-words{font-size:13px;color:#4b5563;margin-top:6px;font-style:italic}
.receipt-footer{margin-top:16px;padding-top:12px;text-align:center;border-top:2px dashed #d1d5db}
.bank-details{background:#eef2ff;border:1px solid #c7d2fe;padding:10px;border-radius:8px;margin-bottom:12px;font-size:13px}
.thank-you{font-size:17px;font-weight:bold;color:#166534}
.rby{text-align:right;font-size:10px;color:#6b7280;margin-top:6px}

/* PDF render sheet (offscreen) */
#pdfSheet{position:fixed;left:-10000px;top:0;width:760px;background:#fff;color:#111;padding:28px;font-family:'Noto Sans',sans-serif}
#pdfSheet h1{text-align:center;font-size:24px}#pdfSheet .sub{text-align:center;color:#555;margin-bottom:14px}
#pdfSheet table{width:100%;border-collapse:collapse;font-size:13px}
#pdfSheet th,#pdfSheet td{border:1px solid #cbd5e1;padding:6px 8px;text-align:left}
#pdfSheet th{background:#e0e7ff}
#pdfSheet td.by{font-size:10px;color:#6d28d9;white-space:nowrap}
#pdfSheet td.n{text-align:right}
#pdfSheet .tot td{font-weight:700;background:#f3f4f6}
@media(max-width:380px){.pgrid{grid-template-columns:1fr}.acts{flex-direction:row}.main-menu{gap:10px}}
