:root{--blue:#303590;--blue2:#20266f;--pink:#e6007e;--orange:#f8a51b;--ink:#20243a;--muted:#6f7588;--line:#e5e7ef;--bg:#f4f6fb;--card:#fff;--ok:#17824e;--warn:#a76400;--shadow:0 14px 35px rgba(37,43,96,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:20;gap:16px}.topbar[hidden]{display:none!important}.topbar-right{display:flex;align-items:center;gap:18px;margin-left:auto}.brand-wrap{display:flex;align-items:center;gap:16px;flex-shrink:0}.brand-logo{width:86px;height:56px;object-fit:contain}.app-title{font-weight:800;color:var(--blue);font-size:17px}.app-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.nav-links{display:flex;gap:6px}.nav-links[hidden]{display:none!important}.nav-links button{border:0;background:transparent;text-decoration:none;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:650;color:#4d5267;cursor:pointer}.nav-links button:hover{background:#f0f1fb;color:var(--blue)}.user-bar{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--line)}.user-bar[hidden]{display:none!important}.user-name{font-weight:750;color:var(--blue);font-size:13px;white-space:nowrap}.user-role{font-size:10px;color:var(--muted);font-weight:750;padding:5px 9px;background:#f0f1f8;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.login-shell{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:24px 0}.login-card{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:18px;padding:32px 28px;box-shadow:var(--shadow)}.login-card h1{margin:8px 0 6px;font-size:24px;color:var(--blue);letter-spacing:-.3px}.login-hints{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;line-height:1.65}.login-hints strong{color:var(--ink);font-weight:700}.branch-locked{background:#f4f6fb!important;color:var(--muted)!important;cursor:not-allowed}.page-shell{max-width:1440px;margin:0 auto;padding:30px}.hero-card{background:linear-gradient(125deg,var(--blue2),var(--blue));color:#fff;border-radius:22px;padding:34px 38px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;right:-90px;top:-110px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.06)}.hero-card h1{font-size:34px;margin:6px 0 8px;letter-spacing:-.6px}.hero-card p{margin:0;max-width:770px;color:#e6e8ff;line-height:1.6}.hero-badge{width:128px;height:128px;border:1px solid rgba(255,255,255,.28);border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:36px;font-weight:900;z-index:1;background:rgba(255,255,255,.05)}.hero-badge span{font-size:10px;letter-spacing:1.2px}.eyebrow{display:block;font-size:10px;letter-spacing:1.4px;font-weight:800;color:#8d93af}.hero-card .eyebrow{color:#cdd0ff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stat-card,.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 18px rgba(37,43,96,.04)}.stat-card{padding:20px}.stat-card span{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:750}.stat-card strong{display:block;margin-top:10px;color:var(--blue);font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-card small{display:block;margin-top:6px;color:var(--muted)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.panel{padding:22px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.panel h2,.page-heading h1{margin:4px 0 0}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-heading p{margin:6px 0 0;color:var(--muted)}.upload-box{border:1px dashed #bbc0d8;background:#fafaff;border-radius:14px;padding:18px;display:flex;gap:12px;align-items:center}.upload-box input{flex:1}.search-line{display:flex;gap:10px;align-items:flex-start}.search-line.wide .suggest-wrap{max-width:none;flex:1}.search-line input,.stack-form input{border:1px solid #cfd3e2;border-radius:10px;padding:12px 13px;font:inherit;width:100%;outline:none;background:#fff}.search-line input:focus,.stack-form input:focus,.stack-form select:focus{border-color:#777dcc;box-shadow:0 0 0 3px rgba(48,53,144,.08)}
.stack-form select,.date-row input[type=date]{border:1px solid #cfd3e2;border-radius:10px;padding:12px 13px;font:inherit;width:100%;outline:none;background:#fff}
.date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sync-form{margin-top:8px}
.excel-fallback{margin-top:14px;color:var(--muted);font-size:12px}
.excel-fallback summary{cursor:pointer;font-weight:700;color:var(--blue)}.suggest-wrap{position:relative;flex:1;max-width:620px}.search-line.wide .suggest-wrap input{max-width:none}.suggest-box{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:#fff;border:1px solid #d5d8e6;border-radius:12px;box-shadow:0 16px 36px rgba(37,43,96,.14);max-height:320px;overflow:auto;padding:6px}.suggest-item{width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:9px;cursor:pointer;display:grid;gap:2px;font:inherit;color:inherit}.suggest-item:hover,.suggest-item.active{background:#f0f1fb}.suggest-item strong{font-size:13px;color:var(--blue)}.suggest-item span{font-size:12px;color:#4d5267}.suggest-item small{font-size:11px;color:var(--muted)}.suggest-hint{margin:10px 0 0}.search-panel,.panel:has(.suggest-wrap){overflow:visible}.text-button{border:0;background:transparent;color:var(--blue);font-weight:750;font:inherit;padding:0;margin-top:14px;cursor:pointer}
.toast{position:fixed;right:22px;top:96px;z-index:80;max-width:420px;padding:14px 16px;border-radius:12px;font-weight:650;font-size:13px;box-shadow:0 12px 30px rgba(24,29,67,.16);background:#e9f8f0;color:#176740}
.toast.error{background:#ffe9eb;color:#a52b38}
.popup-overlay{position:fixed;inset:0;z-index:100;background:rgba(24,29,67,.45);display:flex;align-items:center;justify-content:center;padding:20px}
.popup-overlay[hidden]{display:none!important}
.popup-card{width:min(440px,100%);background:#fff;border-radius:18px;padding:28px 26px 22px;box-shadow:0 24px 60px rgba(24,29,67,.22);text-align:center}
.popup-icon{width:64px;height:64px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800}
.popup-icon.success{background:#e7f6ee;color:var(--ok)}
.popup-icon.error{background:#ffe9eb;color:#a52b38}
.popup-title{margin:0 0 8px;font-size:20px;color:var(--blue)}
.popup-overlay.error .popup-title{color:#a52b38}
.popup-msg{margin:0 0 20px;color:#4d5267;line-height:1.55;font-size:14px;white-space:pre-wrap}
.popup-card .btn{min-width:110px}
body.print-data-only .voucher-template,
.voucher-template[data-print-hide]{display:none!important;visibility:hidden!important;opacity:0!important}.btn{appearance:none;border:0;border-radius:10px;padding:11px 15px;font-weight:750;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue2)}.btn.ghost{background:#f0f1f8;color:var(--blue)}.btn.small{padding:8px 10px;font-size:12px}.btn.large{padding:13px 18px}.text-link,.table-action{color:var(--blue);font-weight:750;text-decoration:none}.text-link{display:inline-block;margin-top:14px}.muted{color:var(--muted);font-size:12px;line-height:1.5}.empty-state{padding:28px;text-align:center;color:var(--muted);background:#fafbfe;border:1px dashed #d9dce8;border-radius:12px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff}th{text-align:left;background:#f2f2fa;color:#4f5570;padding:11px 12px;white-space:nowrap}td{padding:11px 12px;border-top:1px solid #eceef4;vertical-align:middle}tbody tr:hover{background:#fafaff}.num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eceef5;color:#5f6579;font-size:10px;font-weight:800;text-transform:uppercase}.pill.success{background:#e7f6ee;color:var(--ok)}.pill.warn{background:#fff0d7;color:var(--warn)}.flash-stack{margin-bottom:18px}.flash{padding:12px 15px;border-radius:10px;margin-bottom:8px;font-weight:650}.flash.success{background:#e9f8f0;color:#176740}.flash.error{background:#ffe9eb;color:#a52b38}.detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:18px}.detail-list{display:grid;grid-template-columns:1fr 1fr;margin:0}.detail-list div{padding:14px 8px;border-bottom:1px solid #eceef4}.detail-list .full{grid-column:1/-1}.detail-list dt{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:800}.detail-list dd{margin:6px 0 0;font-weight:700}.detail-list dd.accent{color:var(--blue);font-size:18px}.sticky-card{align-self:start;position:sticky;top:100px}.stack-form{display:grid;gap:14px;margin-top:18px}.stack-form label{font-size:12px;font-weight:750;color:#4c526b;display:grid;gap:7px}.info-note{padding:12px;border-radius:10px;background:#f1f2fb;color:#5d6380;font-size:12px;line-height:1.5}.logo-preview{min-height:180px;display:flex;align-items:center;justify-content:center;background:#fafbfe;border:1px dashed #d9dce8;border-radius:14px}.logo-preview img{max-width:280px;max-height:130px;object-fit:contain}

.preview-toolbar{max-width:980px;margin:0 auto 18px;display:flex;justify-content:space-between;align-items:center;gap:16px}.preview-toolbar h1{margin:4px 0;font-size:24px}.preview-toolbar p{margin:0;color:var(--muted)}.toolbar-actions{display:flex;gap:10px;align-items:center}.toolbar-actions form{margin:0}.print-stage{display:flex;justify-content:center;overflow:auto;padding:14px 0 28px}.voucher-page{position:relative;width:148mm;height:210mm;flex:0 0 auto;background:#fff;box-shadow:0 20px 50px rgba(24,29,67,.18)}.voucher-template{position:absolute;inset:0;width:100%;height:100%;display:block}.ov{position:absolute;font-family:Arial,Helvetica,sans-serif;color:#111;z-index:2;box-sizing:border-box}.title-cover{left:56.68%;top:6.88%;width:43.32%;height:3.72%;background:#303590;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13.3pt;letter-spacing:-.15pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.voucher-number{left:23.5%;top:13.75%;width:17.8%;height:3.15%;display:flex;align-items:center;font-size:7.2pt;font-weight:600;background:#fff;padding:0 .8mm;white-space:nowrap;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}.voucher-date{left:63.2%;top:13.65%;width:32.3%;height:3.6%;display:flex;align-items:center;font-size:7.4pt;padding-left:1.5mm;white-space:nowrap}.payee-box{left:5.0%;top:26.1%;width:90%;height:5.8%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr;column-gap:3mm;align-content:center;font-size:6.7pt;line-height:1.25;padding:.5mm 1.2mm}.payee-box>div{display:flex;align-items:center;min-width:0}.payee-box b{margin-right:1.3mm;white-space:nowrap}.payee-box .product-line{grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payee-name{left:4.05%;top:39.52%;width:36.5%;height:8.45%;display:flex;align-items:center;padding:1.2mm 1.6mm;font-size:7pt;line-height:1.35;font-weight:600;text-transform:uppercase;overflow:hidden}.bank-cash{left:40.72%;top:39.52%;width:20.05%;height:8.45%;display:flex;align-items:center;justify-content:center;font-size:7.6pt;font-weight:700}.account-label{left:60.77%;width:20.08%;height:2.78%;display:flex;align-items:center;padding-left:1.3mm;font-size:6.6pt;line-height:1.05}.amount-label-1{top:39.57%}.amount-label-2{top:42.40%;height:2.95%}.amount{left:80.87%;width:14.75%;height:2.75%;display:flex;align-items:center;justify-content:flex-end;padding-right:1.4mm;font-size:7.2pt;font-variant-numeric:tabular-nums}.amount-1{top:39.57%}.amount-2{top:42.40%}.total-amount{top:48.10%;height:2.8%;font-weight:700}.account-name{left:17.78%;top:56.91%;width:32.9%;height:2.78%;display:flex;align-items:center;justify-content:center;font-size:7.2pt;font-weight:700}.ledger-amount{left:80.15%;top:56.91%;width:15.45%;height:2.78%;font-weight:700}.received-nic{left:74.8%;top:73.55%;width:20.2%;height:2.35%;display:flex;align-items:flex-end;justify-content:center;font-size:7pt;font-weight:700;background:transparent;padding:0 .4mm;line-height:1;letter-spacing:.2px}.print-help{max-width:980px;margin:0 auto 30px;padding:12px 14px;background:#fff6e7;border:1px solid #f3d7a5;border-radius:10px;color:#76511e;font-size:12px}

@media(max-width:1000px){.topbar{padding:0 16px}.nav-links{display:none}.stats-grid{grid-template-columns:1fr 1fr}.two-col,.detail-grid{grid-template-columns:1fr}.sticky-card{position:static}.page-shell{padding:18px}.voucher-page{transform-origin:top center}.preview-toolbar{align-items:flex-start;flex-direction:column}.toolbar-actions{width:100%}.toolbar-actions .btn{flex:1}}

@page{size:A5 portrait;margin:0}
@media print{
  /* Full A5 — margins 0 helps suppress browser date/title/URL headers. */
  html,body{width:148mm!important;height:210mm!important;margin:0!important;padding:0!important;background:transparent!important}
  body *{visibility:hidden!important}
  .voucher-page{visibility:visible!important;position:absolute!important;left:0!important;top:0!important;width:148mm!important;height:210mm!important;box-shadow:none!important;margin:0!important;padding:0!important;background:transparent!important}
  /* Include nested nodes (payee-box inner div/b), otherwise Loan No / dates stay invisible when printing. */
  .voucher-page .ov,
  .voucher-page .ov *{visibility:visible!important;color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  /* Print ONLY overlays onto the pre-printed paper — hide the on-screen form image. */
  .voucher-template,
  .no-print,
  .topbar,
  .preview-toolbar,
  .print-help,
  .toast,
  .popup-overlay{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
  }
  /* Blue LOAN PAYMENT VOUCHER banner — white text on blue (must beat .ov black rule). */
  .voucher-page .ov.title-cover{
    display:flex!important;
    visibility:visible!important;
    background:#303590!important;
    color:#fff!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  /* White patch covers the pre-printed PV / ____ / ____ slashes. */
  .voucher-number{
    background:#fff!important;
    color:#000!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .received-nic{background:transparent!important}
}
