/* ============================================================
   SIMEXA BRAND VARIABLES — matched to the Simexa logo
   (cyan → blue → violet gradient globe + wordmark).
   Edit these hex codes if brand colors change.
   ============================================================ */
:root{
  --sx-primary:#312e81;        /* primary brand color (deep indigo) */
  --sx-secondary:#4338ca;      /* secondary brand color (indigo) */
  --sx-accent:#3b82f6;         /* accent / button blue */
  --sx-accent-dk:#2563eb;      /* button hover */
  --sx-violet:#7c3aed;         /* logo violet */
  --sx-cyan:#38bdf8;           /* logo cyan */
  --sx-bg:#f4f6fe;             /* page background */
  --sx-card:#ffffff;           /* card background */
  --sx-ink:#111631;            /* text color */
  --sx-mut:#5b6478;            /* muted text */
  --sx-line:#dde1f4;           /* borders */
  --sx-pale:#f7f8ff;           /* subtle fill */
  --sx-success:#0f7b4d;        /* success color */
  --sx-success-bg:#dcf2e7;
  --sx-warn:#8a6215;           /* warning color */
  --sx-warn-bg:#fdf1cf;
  --sx-danger:#b42318;         /* danger color */
  --sx-danger-bg:#fbe3e0;
  --sx-radius:14px;
  --sx-grad:linear-gradient(100deg,var(--sx-cyan) 0%,var(--sx-accent) 45%,var(--sx-violet) 100%);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--sx-bg);color:var(--sx-ink);line-height:1.5}
header{background:linear-gradient(135deg,#221f5e 0%,var(--sx-primary) 45%,var(--sx-secondary) 100%);color:#fff;padding:22px 18px 16px}
.brandline{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;max-width:1100px;margin:0 auto}
.wordmark{font-size:1.6rem;font-weight:800;letter-spacing:.5px;background:var(--sx-grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:brightness(1.6)}
.tagline{font-size:.85rem;font-style:italic;opacity:.85}
header p{font-size:.8rem;opacity:.8;max-width:1100px;margin:6px auto 0}
.gradbar{height:4px;background:var(--sx-grad)}
.disclaimer{background:#191645;color:#c7cdf2;font-size:.74rem;padding:9px 18px;text-align:center}
nav{position:sticky;top:0;z-index:50;background:var(--sx-card);border-bottom:2px solid var(--sx-line);display:flex;overflow-x:auto;white-space:nowrap;box-shadow:0 2px 8px rgba(49,46,129,.06)}
nav button{flex:1;min-width:100px;padding:13px 10px;border:none;background:none;font-size:.84rem;font-weight:700;color:var(--sx-mut);cursor:pointer;border-bottom:3px solid transparent}
nav button.active{color:var(--sx-accent-dk);border-bottom-color:var(--sx-violet);background:var(--sx-pale)}
main{max-width:1100px;margin:0 auto;padding:18px 14px 60px}
section{display:none}
section.active{display:block}
h2{font-size:1.1rem;color:var(--sx-primary);margin:14px 0 4px}
.sub{font-size:.8rem;color:var(--sx-mut);margin-bottom:10px}
.routing-strip{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}
.chip{font-size:.72rem;font-weight:700;padding:4px 11px;border-radius:999px;background:var(--sx-card);border:1px solid var(--sx-line);color:var(--sx-primary)}
.card{background:var(--sx-card);border:1px solid var(--sx-line);border-radius:var(--sx-radius);padding:15px;margin-bottom:12px;box-shadow:0 2px 6px rgba(49,46,129,.05)}
.row-card{display:grid;grid-template-columns:1.3fr 1.5fr .55fr .9fr auto;gap:10px;align-items:end}
.field label{display:block;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--sx-mut);margin-bottom:3px}
select,input{width:100%;padding:9px 10px;border:1px solid var(--sx-line);border-radius:9px;font-size:.88rem;background:#fff;color:var(--sx-ink)}
input[type=number]{max-width:100px}
input:focus,select:focus{outline:2px solid var(--sx-accent);outline-offset:0}
.del{background:none;border:1px solid var(--sx-line);color:var(--sx-mut);border-radius:9px;padding:8px 11px;cursor:pointer;font-size:.85rem}
.del:hover{background:var(--sx-danger-bg);color:var(--sx-danger)}
.result{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed var(--sx-line);font-size:.8rem}
.result .kv b{display:block;font-size:.65rem;color:var(--sx-mut);font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.result .kv span{font-size:.88rem;font-weight:700}
.payout-big{background:var(--sx-pale);border:1px solid var(--sx-line);border-radius:11px;padding:6px 14px;text-align:center}
.payout-big b{display:block;font-size:.65rem;color:var(--sx-accent-dk);text-transform:uppercase;letter-spacing:.4px}
.payout-big span{font-size:1.25rem;font-weight:800;color:var(--sx-primary)}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.badge{font-size:.69rem;font-weight:800;padding:3px 10px;border-radius:999px}
.b-amber{background:var(--sx-warn-bg);color:var(--sx-warn)}
.b-red{background:var(--sx-danger-bg);color:var(--sx-danger)}
.b-green{background:var(--sx-success-bg);color:var(--sx-success)}
.b-gray{background:var(--sx-pale);color:var(--sx-mut);border:1px solid var(--sx-line)}
.b-blue{background:#e4ecff;color:var(--sx-accent-dk)}
.cbline{margin-top:8px;font-size:.76rem;font-weight:700;padding:7px 11px;border-radius:9px}
.cb-in{background:var(--sx-warn-bg);color:var(--sx-warn)}
.cb-clear{background:var(--sx-success-bg);color:var(--sx-success)}
.cb-pend{background:var(--sx-pale);color:var(--sx-mut);border:1px dashed var(--sx-line)}
.cb-need{background:var(--sx-danger-bg);color:var(--sx-danger)}
.note-sm{font-size:.72rem;color:var(--sx-mut);margin-top:6px}
.addbtn{background:var(--sx-grad);color:#fff;border:none;border-radius:999px;padding:11px 20px;font-weight:800;font-size:.85rem;cursor:pointer;margin:2px 0 14px;box-shadow:0 2px 8px rgba(59,130,246,.35)}
.addbtn:hover{filter:brightness(1.08)}
.totalbar{background:linear-gradient(135deg,#221f5e,var(--sx-primary));color:#fff;border-radius:var(--sx-radius);padding:15px;display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center;margin:4px 0 18px}
.totalbar .kv b{display:block;font-size:.65rem;opacity:.75;text-transform:uppercase;letter-spacing:.5px}
.totalbar .kv span{font-size:1.3rem;font-weight:800}
.panel{border-radius:var(--sx-radius);padding:13px 15px;margin-bottom:10px;font-size:.84rem}
.p-red{background:var(--sx-danger-bg);color:var(--sx-danger)}
.p-green{background:var(--sx-success-bg);color:var(--sx-success)}
.p-amber{background:var(--sx-warn-bg);color:var(--sx-warn)}
.p-navy{background:linear-gradient(135deg,#221f5e,var(--sx-secondary));color:#fff}
.panel b{display:block;margin-bottom:2px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.stat{background:var(--sx-card);border:1px solid var(--sx-line);border-radius:var(--sx-radius);padding:13px;text-align:center}
.stat b{display:block;font-size:.64rem;color:var(--sx-mut);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.stat span{font-size:1.3rem;font-weight:800;color:var(--sx-primary)}
.stat.hero{background:linear-gradient(135deg,#221f5e,var(--sx-secondary))}
.stat.hero b{color:#aeb6f0}.stat.hero span{color:#fff}
.stat.accent span{background:var(--sx-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat.year{border-top:3px solid var(--sx-violet)}
table{width:100%;border-collapse:collapse;font-size:.78rem;background:var(--sx-card)}
th{background:var(--sx-primary);color:#fff;text-align:left;padding:8px;font-size:.68rem;text-transform:uppercase;letter-spacing:.4px;position:sticky;top:0}
td{padding:8px;border-bottom:1px solid var(--sx-line);vertical-align:middle}
tr:nth-child(even) td{background:var(--sx-pale)}
tr.hl-green td{background:var(--sx-success-bg)}
tr.hl-red td{background:var(--sx-danger-bg)}
tr.hl-amber td{background:var(--sx-warn-bg)}
.tblwrap{overflow-x:auto;border:1px solid var(--sx-line);border-radius:var(--sx-radius);max-height:70vh;overflow-y:auto}
.filterbar{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px;margin-bottom:10px}
.right{text-align:right}
.explain h3{color:var(--sx-primary);font-size:.95rem;margin:16px 0 6px}
.explain p{font-size:.86rem;margin-bottom:8px}
.tiertable{max-width:460px}
footer{background:linear-gradient(135deg,#221f5e,var(--sx-primary));color:#fff;text-align:center;padding:26px 16px;margin-top:20px}
footer .wordmark{font-size:1.25rem}
footer .tagline{display:block;margin:4px 0 8px}
footer small{font-size:.7rem;opacity:.7}
@media(max-width:760px){
  .row-card{grid-template-columns:1fr 1fr}
  .row-card .field:nth-child(1),.row-card .field:nth-child(2){grid-column:span 2}
  .grid2{grid-template-columns:1fr}
  .filterbar{grid-template-columns:1fr}
  .totalbar .kv span{font-size:1.05rem}
  input[type=number]{max-width:none}
}

/* ============ portal additions ============ */
.pbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:14px;background:#191645;color:#fff;padding:9px 16px;font-size:.85rem}
.pbar-brand{font-weight:800;letter-spacing:.4px;white-space:nowrap}
a.pbar-brand{color:#fff;text-decoration:none;cursor:pointer}
a.pbar-brand:hover{filter:brightness(1.15)}
.pbar-brand b{background:var(--sx-grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:brightness(1.7)}
.pbar-nav{display:flex;gap:2px;overflow-x:auto;background:transparent;border:none;box-shadow:none;position:static;z-index:auto}
.pbar-nav a{color:#fff;text-decoration:none;font-weight:700;padding:6px 11px;border-radius:8px;white-space:nowrap;font-size:.8rem}
.pbar-nav a.on,.pbar-nav a:hover{background:rgba(255,255,255,.22);color:#fff}
.pbar-user{margin-left:auto;display:flex;align-items:center;gap:8px;opacity:.92;white-space:nowrap;font-size:.78rem}
.rolechip{font-size:.64rem;font-weight:800;text-transform:uppercase;background:var(--sx-grad);padding:2px 8px;border-radius:999px}
.pbar button{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;padding:5px 12px;font-weight:700;cursor:pointer;font-size:.75rem}
.pbar button:hover{background:rgba(255,255,255,.12)}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#221f5e 0%,var(--sx-primary) 45%,var(--sx-secondary) 100%)}
.auth-card{background:var(--sx-card);border-radius:18px;padding:30px 28px;max-width:460px;width:100%;box-shadow:0 18px 50px rgba(10,8,40,.45)}
.auth-card h1{font-size:1.15rem;color:var(--sx-primary);margin:14px 0 12px}
.auth-card form{display:grid;gap:12px}
.auth-card label{display:block;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--sx-mut)}
.auth-card label input,.auth-card label select{margin-top:4px}
.btn-primary{background:var(--sx-grad);color:#fff;border:none;border-radius:999px;padding:12px 20px;font-weight:800;font-size:.9rem;cursor:pointer;box-shadow:0 2px 10px rgba(59,130,246,.4)}
.btn-primary:hover{filter:brightness(1.07)}
.btn-primary[disabled]{opacity:.6;cursor:wait}
.linkbtn{background:none;border:none;color:var(--sx-accent-dk);font-weight:700;cursor:pointer;padding:8px 0 0;font-size:.8rem}
.auth-alt{font-size:.8rem;color:var(--sx-mut);margin-top:14px;text-align:center}
.form-err{background:var(--sx-danger-bg);color:var(--sx-danger);border-radius:9px;padding:9px 12px;font-size:.8rem;font-weight:600;margin-bottom:10px}
.form-ok{background:var(--sx-success-bg);color:var(--sx-success);border-radius:9px;padding:9px 12px;font-size:.8rem;font-weight:600;margin-bottom:10px}
.btn{border:none;border-radius:8px;padding:7px 13px;font-weight:700;font-size:.76rem;cursor:pointer}
.btn-green{background:var(--sx-success);color:#fff}.btn-red{background:var(--sx-danger);color:#fff}
.btn-gray{background:var(--sx-pale);color:var(--sx-ink);border:1px solid var(--sx-line)}
.btn-blue{background:var(--sx-accent);color:#fff}
.btn+.btn{margin-left:6px}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.tool-card{background:var(--sx-card);border:1px solid var(--sx-line);border-radius:var(--sx-radius);padding:18px;display:flex;flex-direction:column;gap:8px}
.tool-card h3{color:var(--sx-primary);font-size:1rem}
.tool-card p{font-size:.8rem;color:var(--sx-mut);flex:1}
.tool-card .badge{align-self:flex-start}
.tool-card a.btn-primary{text-align:center;text-decoration:none;font-size:.8rem;padding:9px 16px}
.soon{opacity:.65}
table input[type=number]{max-width:80px;padding:5px 6px;font-size:.75rem}
table input[type=text]{min-width:110px;padding:5px 6px;font-size:.75rem}
table select{padding:5px 6px;font-size:.75rem;width:auto}
.pagehead{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 12px}
.pagehead h1{font-size:1.25rem;color:var(--sx-primary);flex:1;margin:0}
.status-pill{font-size:.68rem;font-weight:800;padding:3px 10px;border-radius:999px;text-transform:uppercase;white-space:nowrap}
.st-pending{background:var(--sx-warn-bg);color:var(--sx-warn)}
.st-active{background:var(--sx-success-bg);color:var(--sx-success)}
.st-rejected,.st-deactivated{background:var(--sx-danger-bg);color:var(--sx-danger)}
main.narrow{max-width:900px}
