
:root{
  --night:#0F211B;          /* deep emerald-black : sidebar, headers */
  --night-2:#163027;        /* raised dark surface */
  --falcon:#175A4A;         /* primary emerald */
  --falcon-soft:#E3EEE9;    /* emerald tint fill */
  --dune:#B9892E;           /* UAE gold accent */
  --dune-soft:#F6EDD8;
  --flare:#B23A2E;          /* alert red */
  --flare-soft:#F7E4E1;
  --amber:#C07A1F;
  --paper:#F1F2EE;          /* work canvas */
  --card:#FFFFFF;
  --ink:#1C2420;
  --ink-2:#5A6660;
  --line:#DCDFD7;
  --ok:#2E7D4F;
  --radius:10px;
  --shadow:0 1px 2px rgba(15,33,27,.07), 0 4px 14px rgba(15,33,27,.06);
  font-size:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
  font-family:'Cairo', 'Segoe UI', system-ui, sans-serif;
  background:var(--paper); color:var(--ink);
  display:flex; overflow:hidden;
}
button{font-family:inherit; cursor:pointer}
input,select,textarea{font-family:inherit; font-size:1rem}
:focus-visible{outline:2px solid var(--dune); outline-offset:2px}

/* ---------------- Sidebar ---------------- */
#sidebar{
  width:236px; min-width:236px; background:var(--night); color:#E9EFE9;
  display:flex; flex-direction:column; height:100vh;
}
.brand{
  display:flex; align-items:center; gap:10px; padding:18px 16px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.brand svg{flex-shrink:0}
.brand .t1{font-weight:800; font-size:1.08rem; letter-spacing:.3px; line-height:1.1}
.brand .t2{font-size:.72rem; color:#9DB4A8; line-height:1.2}
.navgrp{padding:12px 10px 4px; font-size:.7rem; color:#7E958A; letter-spacing:.08em; font-weight:700}
.navitem{
  display:flex; align-items:center; gap:10px; width:100%;
  background:none; border:none; color:#CBD8CE; text-align:left;
  padding:9px 14px; font-size:.95rem; font-weight:600; border-left:3px solid transparent;
}
.navitem:hover{background:rgba(255,255,255,.05); color:#fff}
.navitem.active{background:rgba(185,137,46,.12); color:#F3D89A; border-left-color:var(--dune)}
.navitem .glyph{width:20px; text-align:center; font-size:1rem}
#sidebar .foot{
  margin-top:auto; padding:12px 16px; border-top:1px solid rgba(255,255,255,.08);
  font-size:.72rem; color:#8AA093; line-height:1.5;
}
#sidebar .foot b{color:#C9B37A}

/* ---------------- Topbar & shell ---------------- */
#main{flex:1; display:flex; flex-direction:column; height:100vh; overflow:hidden}
#topbar{
  background:var(--card); border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:14px; padding:10px 22px;
}
#topbar h1{font-size:1.12rem; font-weight:800; color:var(--night)}
#topbar .crumb{font-size:.8rem; color:var(--ink-2)}
#topbar .spacer{flex:1}
.envpill{
  font-size:.72rem; font-weight:700; color:var(--dune);
  border:1px solid var(--dune); border-radius:20px; padding:2px 10px;
}
.userchip{display:flex; align-items:center; gap:8px}
.userchip .av{
  width:32px;height:32px;border-radius:50%; background:var(--falcon); color:#fff;
  display:flex;align-items:center;justify-content:center; font-weight:700; font-size:.8rem;
}
.userchip .nm{font-size:.82rem; font-weight:700; line-height:1.1}
.userchip .rl{font-size:.7rem; color:var(--ink-2)}
#view{flex:1; overflow-y:auto; padding:22px 26px 60px}

/* ---------------- Common components ---------------- */
.pagehead{margin-bottom:18px}
.pagehead h2{font-size:1.35rem; font-weight:800; color:var(--night)}
.pagehead p{color:var(--ink-2); font-size:.9rem; max-width:70ch}
.kpirow{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:20px}
.kpi{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:12px 14px; box-shadow:var(--shadow); cursor:pointer; transition:transform .12s;
  border-top:3px solid var(--falcon);
}
.kpi:hover{transform:translateY(-2px)}
.kpi.gold{border-top-color:var(--dune)}
.kpi.red{border-top-color:var(--flare)}
.kpi .v{font-size:1.55rem; font-weight:800; color:var(--night); line-height:1.1}
.kpi .l{font-size:.78rem; color:var(--ink-2); font-weight:600}
.kpi .d{font-size:.72rem; margin-top:2px; font-weight:700}
.kpi .d.up{color:var(--ok)} .kpi .d.dn{color:var(--flare)}
.card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:16px 18px; margin-bottom:16px;
}
.card h3{font-size:1rem; font-weight:800; color:var(--night); margin-bottom:10px}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
@media(max-width:1100px){.grid2,.grid3{grid-template-columns:1fr}}

table.dt{width:100%; border-collapse:collapse; font-size:.86rem}
table.dt th{
  text-align:left; font-size:.72rem; color:var(--ink-2); font-weight:700;
  letter-spacing:.04em; padding:8px 10px; border-bottom:2px solid var(--line);
}
table.dt td{padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:top}
table.dt tr.rowlink{cursor:pointer}
table.dt tr.rowlink:hover td{background:var(--falcon-soft)}

.badge{display:inline-block; font-size:.7rem; font-weight:700; padding:2px 9px; border-radius:12px; white-space:nowrap}
.b-low{background:var(--falcon-soft); color:var(--falcon)}
.b-med{background:var(--dune-soft); color:#8A6415}
.b-high{background:var(--flare-soft); color:var(--flare)}
.b-grey{background:#EAECE7; color:var(--ink-2)}
.b-dark{background:var(--night); color:#F3D89A}
.b-ok{background:#E1F0E7; color:var(--ok)}

.btn{
  border:none; border-radius:8px; padding:8px 16px; font-weight:700; font-size:.88rem;
  background:var(--falcon); color:#fff; transition:filter .1s;
}
.btn:hover{filter:brightness(1.12)}
.btn.gold{background:var(--dune)}
.btn.red{background:var(--flare)}
.btn.ghost{background:transparent; color:var(--falcon); border:1.5px solid var(--falcon)}
.btn.ghost.grey{color:var(--ink-2); border-color:var(--line)}
.btn.sm{padding:4px 10px; font-size:.78rem}
.btn:disabled{opacity:.45; cursor:not-allowed}

.field{margin-bottom:12px}
.field label{display:block; font-size:.78rem; font-weight:700; color:var(--ink-2); margin-bottom:4px}
.field input,.field select,.field textarea{
  width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--falcon); outline:none}
.fgrid{display:grid; grid-template-columns:1fr 1fr; gap:0 16px}
.fgrid3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 16px}
@media(max-width:900px){.fgrid,.fgrid3{grid-template-columns:1fr}}

/* ---------------- Wizard step rail ---------------- */
.steprail{
  display:flex; gap:0; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); overflow-x:auto; margin-bottom:18px; box-shadow:var(--shadow);
}
.step{
  flex:1; min-width:118px; padding:10px 8px 9px; text-align:center; position:relative;
  border-bottom:3px solid transparent; cursor:pointer; background:none; border-top:none; border-left:none; border-right:none;
}
.step .num{
  width:24px;height:24px;border-radius:50%; margin:0 auto 4px; font-size:.78rem; font-weight:800;
  display:flex;align-items:center;justify-content:center; background:#EAECE7; color:var(--ink-2);
}
.step .lbl{font-size:.72rem; font-weight:700; color:var(--ink-2); line-height:1.15}
.step.done .num{background:var(--falcon); color:#fff}
.step.done .lbl{color:var(--falcon)}
.step.cur{border-bottom-color:var(--dune)}
.step.cur .num{background:var(--dune); color:#fff}
.step.cur .lbl{color:var(--night)}

/* ---------------- Screening ---------------- */
.scanbar{height:8px; border-radius:6px; background:#E6E8E1; overflow:hidden; margin:8px 0 4px}
.scanbar i{display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--falcon),var(--dune)); transition:width .35s}
.hitcard{
  border:1px solid var(--line); border-left:5px solid var(--flare); border-radius:8px;
  padding:12px 14px; margin-bottom:10px; background:#fff; display:flex; gap:14px; align-items:flex-start;
}
.hitcard.medium{border-left-color:var(--amber)}
.hitcard.cleared{border-left-color:var(--ok); opacity:.75}
.matchdial{
  width:56px;height:56px;border-radius:50%; flex-shrink:0;
  display:flex;align-items:center;justify-content:center; font-weight:800; font-size:.92rem; color:var(--night);
  background:conic-gradient(var(--flare) calc(var(--p)*1%), #ECEDE8 0);
}
.matchdial span{
  width:42px;height:42px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;
}
.hitcard .meta{font-size:.76rem; color:var(--ink-2); margin:2px 0 6px}
.hitcard .nm{font-weight:800; font-size:.95rem}
.hitrow-actions{display:flex; gap:8px; margin-top:6px; flex-wrap:wrap}

/* Risk gauge + factor bars */
.gauge{display:flex; align-items:center; gap:18px}
.gauge .big{
  width:110px;height:110px;border-radius:50%;
  background:conic-gradient(var(--gc,#B9892E) calc(var(--p)*1%), #ECEDE8 0);
  display:flex;align-items:center;justify-content:center;
}
.gauge .big span{
  width:84px;height:84px;border-radius:50%;background:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;
}
.gauge .big span b{font-size:1.6rem; line-height:1}
.gauge .big span i{font-style:normal; font-size:.68rem; color:var(--ink-2)}
.fbar{margin-bottom:8px}
.fbar .fl{display:flex; justify-content:space-between; font-size:.78rem; font-weight:600; margin-bottom:2px}
.fbar .tr{height:7px; background:#ECEDE8; border-radius:5px; overflow:hidden}
.fbar .tr i{display:block;height:100%;border-radius:5px;background:var(--falcon)}
.fbar.warn .tr i{background:var(--amber)}
.fbar.hot .tr i{background:var(--flare)}

/* Timeline / audit */
.tl{list-style:none; border-left:2px solid var(--line); margin-left:8px; padding-left:18px}
.tl li{position:relative; padding-bottom:14px}
.tl li::before{
  content:""; position:absolute; left:-24.5px; top:4px; width:11px;height:11px;border-radius:50%;
  background:#fff; border:3px solid var(--falcon);
}
.tl li.gold::before{border-color:var(--dune)}
.tl li.red::before{border-color:var(--flare)}
.tl .when{font-size:.72rem; color:var(--ink-2)}
.tl .what{font-size:.86rem; font-weight:700}
.tl .who{font-size:.76rem; color:var(--ink-2)}

/* Txn bars mini-chart */
.txchart{display:flex; align-items:flex-end; gap:5px; height:110px; padding:8px 4px 0}
.txchart .bar{flex:1; background:var(--falcon); border-radius:3px 3px 0 0; position:relative; min-width:8px}
.txchart .bar.flag{background:var(--flare)}
.txchart .bar .tip{
  position:absolute; bottom:calc(100% + 3px); left:50%; transform:translateX(-50%);
  font-size:.62rem; color:var(--ink-2); white-space:nowrap;
}
.txlegend{display:flex; gap:14px; font-size:.72rem; color:var(--ink-2); padding:6px 4px}

/* Modal */
#modalwrap{
  position:fixed; inset:0; background:rgba(15,33,27,.55); display:none;
  align-items:flex-start; justify-content:center; z-index:50; padding:40px 20px;
}
#modalwrap.open{display:flex}
#modalbox{
  background:var(--paper); border-radius:14px; max-width:860px; width:100%;
  max-height:calc(100vh - 80px); overflow-y:auto; box-shadow:0 24px 60px rgba(0,0,0,.35);
}
#modalbox .mh{
  position:sticky; top:0; background:var(--night); color:#fff; padding:14px 20px;
  display:flex; align-items:center; gap:12px; border-radius:14px 14px 0 0; z-index:2;
}
#modalbox .mh h3{font-size:1.02rem; font-weight:800; flex:1}
#modalbox .mh button{background:none;border:none;color:#D9C79A;font-size:1.3rem;font-weight:700}
#modalbox .mb{padding:18px 20px}

/* Tabs */
.tabs{display:flex; gap:4px; border-bottom:2px solid var(--line); margin-bottom:14px; flex-wrap:wrap}
.tab{
  background:none;border:none; padding:8px 14px; font-weight:700; font-size:.86rem; color:var(--ink-2);
  border-bottom:3px solid transparent; margin-bottom:-2px;
}
.tab.active{color:var(--night); border-bottom-color:var(--dune)}

.note{
  background:var(--dune-soft); border:1px solid #E4D3A6; border-radius:8px;
  padding:10px 12px; font-size:.82rem; margin-bottom:12px;
}
.note.red{background:var(--flare-soft); border-color:#E3B7B1}
.note.green{background:var(--falcon-soft); border-color:#BFD8CD}
.split{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.mini{font-size:.76rem; color:var(--ink-2)}
.right{margin-left:auto}
.mt{margin-top:12px}
.dl dt{font-size:.72rem; color:var(--ink-2); font-weight:700; margin-top:8px}
.dl dd{font-size:.88rem; font-weight:600}
/* ---------------- v2 additions ---------------- */
:root{--paper-c:#F1F2EE}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--paper-c:#F1F2EE} /* console stays light by design */
}
:root[data-theme="dark"]{--paper-c:#F1F2EE}
body{background:var(--paper-c)}
#toasts{position:fixed; right:18px; bottom:18px; z-index:80; display:flex; flex-direction:column; gap:8px; max-width:420px}
.toast{
  background:var(--night); color:#EAF2EC; border-left:5px solid var(--dune);
  border-radius:10px; padding:10px 14px; font-size:.84rem; box-shadow:0 10px 30px rgba(0,0,0,.35);
  animation:tin .25s ease;
}
.toast b{color:var(--dune-soft)}
.toast.red{border-left-color:var(--flare)}
.toast.green{border-left-color:#5FBF8F}
@keyframes tin{from{transform:translateY(14px); opacity:0}to{transform:none; opacity:1}}
#roleSel{
  border:1px solid var(--line); border-radius:8px; padding:6px 10px; background:#fff;
  font-weight:700; font-size:.82rem; color:var(--night);
}
.studio-tabs{margin-bottom:14px}
.pill-flow{display:flex; gap:6px; flex-wrap:wrap; align-items:center}
.pill-flow .arrow{color:var(--ink-2); font-weight:800}
.statechip{font-size:.72rem; font-weight:800; padding:4px 10px; border-radius:8px; background:#EAECE7; color:var(--ink-2)}
.statechip.cur{background:var(--night); color:var(--dune-soft)}
.statechip.hot{background:var(--flare); color:#fff}
.actionbar{display:flex; gap:8px; flex-wrap:wrap; padding-top:12px; border-top:1px dashed var(--line); margin-top:12px}
.danger-note{font-size:.76rem; color:var(--flare); font-weight:700}
.kbd{background:#EAECE7; border-radius:5px; padding:1px 7px; font-size:.74rem; font-weight:800; color:var(--night)}
textarea.io{width:100%; min-height:180px; font-family:ui-monospace,Consolas,monospace; font-size:.76rem;
  border:1px solid var(--line); border-radius:8px; padding:10px; background:#fff}
.wl-type{width:auto !important; display:inline-block}
.guidebtn{background:none; border:1px solid rgba(255,255,255,.25); color:#C9D6CC; border-radius:8px;
  padding:5px 10px; font-size:.74rem; font-weight:700; margin-top:8px}
.guidebtn:hover{border-color:var(--dune); color:var(--dune-soft)}
.qs-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media(max-width:1000px){.qs-grid{grid-template-columns:1fr}}
.qs{border:1.5px solid var(--line); border-radius:10px; padding:14px; background:#fff; cursor:pointer; text-align:left}
.qs:hover{border-color:var(--dune); background:var(--dune-soft)}
.qs b{display:block; font-size:.92rem; color:var(--night)}
.qs span{font-size:.78rem; color:var(--ink-2)}
@media (prefers-reduced-motion: reduce){
  *{transition:none !important; animation:none !important}
}
