/* =====================================================================
   MCB Bulk Payment Manager — UI theme (MCB blue / teal)
   ===================================================================== */
:root{
  --mcb-blue:#003a78;       /* deep MCB navy */
  --mcb-blue-2:#0057b8;
  --teal:#00a7a0;
  --teal-2:#00c2b8;
  --ink:#1d2733;
  --muted:#64748b;
  --line:#e3e9f0;
  --bg:#eef3f8;
  --card:#ffffff;
  --good:#15a36a; --good-bg:#e7f7ef;
  --warn:#b9770a; --warn-bg:#fdf4e3;
  --bad:#d23b46;  --bad-bg:#fdecec;
  --radius:14px;
  --shadow:0 8px 24px rgba(13,42,80,.08);
  --shadow-sm:0 2px 8px rgba(13,42,80,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.5;font-size:15px;
  min-height:100vh;display:flex;flex-direction:column;
}

/* ---- top bar ---- */
.topbar{
  display:flex;align-items:center;gap:24px;
  padding:0 28px;height:64px;color:#fff;
  background:linear-gradient(100deg,var(--mcb-blue) 0%,var(--mcb-blue-2) 55%,var(--teal) 130%);
  box-shadow:var(--shadow);position:sticky;top:0;z-index:50;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:600}
.brand-mark{
  background:#fff;color:var(--mcb-blue);font-weight:800;letter-spacing:.5px;
  padding:5px 9px;border-radius:8px;font-size:15px;box-shadow:0 2px 6px rgba(0,0,0,.18);
}
.brand-text{font-size:15px;opacity:.95}
.mainnav{display:flex;gap:4px;margin-left:8px;flex:1}
.mainnav a{
  color:#dceaf7;text-decoration:none;padding:8px 14px;border-radius:9px;
  font-weight:500;font-size:14px;transition:.15s;
}
.mainnav a:hover{background:rgba(255,255,255,.13);color:#fff}
.mainnav a.on{background:rgba(255,255,255,.20);color:#fff}
.userbox{display:flex;align-items:center;gap:14px;font-size:13px}
.uname{opacity:.92}
.org-chip{
  background:rgba(255,255,255,.16);padding:4px 10px;border-radius:20px;
  font-weight:600;font-size:12px;display:inline-flex;align-items:center;gap:6px;
}
.org-exit{color:#fff;text-decoration:none;opacity:.8;font-size:15px;line-height:1}
.org-exit:hover{opacity:1}
.logout{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.4);
  padding:5px 12px;border-radius:8px;transition:.15s}
.logout:hover{background:rgba(255,255,255,.15)}

/* ---- layout ---- */
.wrap{width:100%;max-width:1160px;margin:0 auto;padding:30px 24px;flex:1}
.foot{
  text-align:center;color:var(--muted);font-size:12.5px;padding:18px;
  display:flex;justify-content:space-between;max-width:1160px;margin:0 auto;width:100%;
  border-top:1px solid var(--line);
}
.foot strong{color:var(--mcb-blue)}

/* ---- page head ---- */
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:12px}
.page-head h1{font-size:23px;margin:0;color:var(--mcb-blue);font-weight:700}
.page-head .sub{color:var(--muted);font-size:13px;margin-top:2px}

/* ---- cards ---- */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);
  padding:22px;margin-bottom:22px;border:1px solid var(--line)}
.card h2{margin:0 0 16px;font-size:16px;color:var(--ink)}
.card-tint{border-top:4px solid var(--teal)}

/* ---- stat tiles ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-bottom:26px}
.stat{
  background:var(--card);border-radius:var(--radius);padding:20px 22px;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden;border:1px solid var(--line);
}
.stat::after{content:"";position:absolute;right:-20px;top:-20px;width:90px;height:90px;
  border-radius:50%;opacity:.12}
.stat .v{font-size:30px;font-weight:800;color:var(--mcb-blue);line-height:1.1}
.stat .l{color:var(--muted);font-size:13px;margin-top:4px;font-weight:500}
.stat.t1::after{background:var(--mcb-blue)} .stat.t2::after{background:var(--teal)}
.stat.t3::after{background:#7c5cff} .stat.t4::after{background:#f0a020}
.stat.t2 .v{color:var(--teal)} .stat.t3 .v{color:#6b46e0} .stat.t4 .v{color:#d98a0b}

/* ---- tables ---- */
table.grid{width:100%;border-collapse:collapse;font-size:14px}
table.grid th{
  text-align:left;padding:11px 12px;background:#f4f8fc;color:var(--mcb-blue);
  font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.3px;
  border-bottom:2px solid var(--line);
}
table.grid td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
table.grid tr:hover td{background:#f8fbfe}
table.grid .num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.empty{padding:40px;text-align:center;color:var(--muted)}

/* ---- badges ---- */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700;letter-spacing:.2px}
.b-mcb{background:#e3f0ff;color:var(--mcb-blue-2)}
.b-olb{background:#e4f7f5;color:#08807a}
.b-draft{background:var(--warn-bg);color:var(--warn)}
.b-generated{background:var(--good-bg);color:var(--good)}
.b-active{background:var(--good-bg);color:var(--good)}
.b-suspended{background:var(--bad-bg);color:var(--bad)}
.b-role{background:#eef0f6;color:#4b5468}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:none;
  font-size:14px;font-weight:600;padding:9px 16px;border-radius:10px;text-decoration:none;
  transition:.15s;line-height:1}
.btn-primary{background:linear-gradient(95deg,var(--mcb-blue-2),var(--teal));color:#fff;
  box-shadow:0 4px 12px rgba(0,87,184,.28)}
.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--mcb-blue);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn-danger{background:var(--bad-bg);color:var(--bad)}
.btn-danger:hover{background:#f9d8da}
.btn-sm{padding:6px 11px;font-size:13px;border-radius:8px}
.btn-row{display:flex;gap:10px;flex-wrap:wrap}

/* ---- forms ---- */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}
.field.full{grid-column:1/-1}
label{font-size:13px;font-weight:600;color:#3a4554}
label .hint{font-weight:400;color:var(--muted);font-size:12px}
input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{
  font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;
  background:#fff;color:var(--ink);transition:.15s;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(0,167,160,.15)}
.charcount{font-size:11px;color:var(--muted);text-align:right}
.form-actions{display:flex;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}

/* ---- flash ---- */
.flash{padding:13px 18px;border-radius:11px;margin-bottom:18px;font-weight:500;font-size:14px;
  border-left:4px solid}
.flash-success{background:var(--good-bg);color:#0c7a4d;border-color:var(--good)}
.flash-error{background:var(--bad-bg);color:#a32831;border-color:var(--bad)}
.flash-info{background:#e8f1fb;color:var(--mcb-blue-2);border-color:var(--mcb-blue-2)}

/* ---- login ---- */
.login-page{display:flex;align-items:center;justify-content:center;flex:1;padding:24px}
.login-card{background:#fff;border-radius:20px;box-shadow:var(--shadow);width:100%;max-width:400px;
  overflow:hidden}
.login-top{background:linear-gradient(120deg,var(--mcb-blue),var(--teal));color:#fff;
  padding:32px 32px 26px;text-align:center}
.login-top .mk{background:#fff;color:var(--mcb-blue);font-weight:800;font-size:18px;
  display:inline-block;padding:8px 12px;border-radius:10px;margin-bottom:12px}
.login-top h1{margin:0;font-size:19px;font-weight:700}
.login-top p{margin:6px 0 0;opacity:.9;font-size:13px}
.login-body{padding:28px 32px 32px}

/* ---- file preview ---- */
pre.filebox{background:#0d1f33;color:#d6e6f5;padding:18px;border-radius:12px;overflow:auto;
  font-family:'SF Mono',Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre}
.kvs{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:14px}
.kvs dt{color:var(--muted);font-weight:600}
.kvs dd{margin:0;font-weight:600}

.tablewrap{overflow-x:auto}
.inline-form{display:inline}
.muted{color:var(--muted)}
.right{text-align:right}
small.note{color:var(--muted);font-size:12px}
@media(max-width:760px){
  .topbar{flex-wrap:wrap;height:auto;padding:10px 16px;gap:10px}
  .mainnav{order:3;width:100%;overflow-x:auto}
  .wrap{padding:20px 14px}
}
