/* ══════════════════════════════════════════════════════════
   Luno Institutional — Consolidated Stylesheet
   Extracted from inline <style> blocks across all pages
   ══════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════
   Source: password.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#FFFFFF;--bdr:#E4E0DC;
  --tx:#1A1A1A;--tx2:#666;--tx3:#999;
  --r:12px;--rl:16px;
  --err:#C0392B;--err-bg:#FEF2F2;--err-bdr:#FECACA;
}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);
  color:var(--tx);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.card{
  width:100%;
  max-width:400px;
  background:var(--surf);
  border:1px solid var(--bdr);
  border-radius:var(--rl);
  padding:40px 36px 36px;
  box-shadow:0 4px 24px rgba(0,0,0,.06);
}
.logo-area{
  text-align:center;
  margin-bottom:32px;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#1A1A1A;
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:5px 14px;
  border-radius:20px;
  margin-bottom:16px;
}
.badge-dot{
  width:6px;height:6px;border-radius:50%;background:#7B6FC5;
}
.card h1{
  font-size:20px;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--tx);
  margin-bottom:6px;
}
.card p{
  font-size:13px;
  color:var(--tx2);
  line-height:1.55;
}
.divider{
  height:1px;
  background:var(--bdr);
  margin:24px 0;
}
label{
  display:block;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--tx3);
  margin-bottom:8px;
}
.input-wrap{
  position:relative;
}
input[type=password]{
  width:100%;
  height:42px;
  border:1.5px solid var(--bdr);
  border-radius:8px;
  padding:0 42px 0 14px;
  font-size:14px;
  font-family:inherit;
  color:var(--tx);
  background:#fff;
  outline:none;
  transition:border-color .15s;
}
input[type=password]:focus{
  border-color:#1A1A1A;
}
input[type=password].error{
  border-color:var(--err);
  background:var(--err-bg);
}
.toggle-vis{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  color:var(--tx3);
  display:flex;
  align-items:center;
}
.toggle-vis:hover{color:var(--tx2);}
.error-msg{
  font-size:12px;
  color:var(--err);
  margin-top:8px;
  display:none;
}
.error-msg.visible{display:block;}
.btn{
  margin-top:20px;
  width:100%;
  height:42px;
  background:#1A1A1A;
  color:#fff;
  border:none;
  border-radius:8px;
  font-size:14px;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  transition:opacity .15s;
  letter-spacing:.01em;
}
.btn:hover{opacity:.85;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.footer-note{
  text-align:center;
  font-size:11.5px;
  color:var(--tx3);
  margin-top:24px;
  line-height:1.5;
}

/* ══════════════════════════════════════════════════
   Source: luno-start-page.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#FFFFFF;--bdr:#E4E0DC;
  --tx:#1A1A1A;--tx2:#666;--tx3:#999;
  --r:12px;--rl:16px;
  --principal:#4A3F8A;--principal-bg:#EEEAF8;--principal-bdr:#7B6FC5;--principal-tx2:#6B5FBB;
  --trader:#7A4A10;--trader-bg:#FDF3E7;--trader-bdr:#A8661A;--trader-tx2:#A8661A;
  --client:#1F6B4A;--client-bg:#E3F2ED;--client-bdr:#2E8F62;--client-tx2:#2E8F62;
  --observer:#3A3A3A;--observer-bg:#EFEFED;--observer-bdr:#686870;--observer-tx2:#777;
  --admin:#0C4A6E;--admin-bg:#E8F4FA;--admin-bdr:#3B8EBF;--admin-tx2:#2A7BAA;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--tx);min-height:100vh;display:flex;justify-content:center;padding:48px 24px 80px;}

.wrap{width:100%;max-width:820px;display:flex;flex-direction:column;gap:0;}

/* ── Header ── */
.hdr{text-align:center;margin-bottom:40px;}
.hdr-badge{display:inline-flex;align-items:center;gap:6px;background:#1A1A1A;color:#fff;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 14px;border-radius:20px;margin-bottom:16px;}
.hdr-badge svg{width:14px;height:14px;}
.hdr h1{font-size:28px;font-weight:800;color:var(--tx);line-height:1.25;margin-bottom:10px;letter-spacing:-.02em;}
.hdr h1 span{color:#7B6FC5;}
.hdr-desc{font-size:14px;color:var(--tx2);line-height:1.6;max-width:600px;margin:0 auto;}

/* ── Principle strip ── */
.principle{background:#fff;border:1px solid var(--bdr);border-radius:var(--r);padding:14px 20px;margin-bottom:32px;display:flex;align-items:flex-start;gap:12px;}
.principle-icon{flex-shrink:0;width:28px;height:28px;background:#EEEAF8;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;}
.principle-body{font-size:12.5px;color:var(--tx2);line-height:1.55;}
.principle-body strong{color:var(--tx);font-weight:700;}

/* ── Section label ── */
.section-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);margin-bottom:14px;}

/* ── Role grid ── */
.roles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px;}

.role-card{
  position:relative;
  background:var(--surf);
  border:2px solid var(--bdr);
  border-radius:var(--rl);
  padding:22px 22px 20px;
  cursor:pointer;
  transition:all .2s ease;
  user-select:none;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.role-card:hover{border-color:#C0BDB8;transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.06);}
.role-card.selected{transform:translateY(-1px);box-shadow:0 4px 20px rgba(0,0,0,.08);}

.role-card.selected[data-role="principal"]{background:var(--principal-bg);border-color:var(--principal-bdr);}
.role-card.selected[data-role="client"]{background:var(--client-bg);border-color:var(--client-bdr);}
.role-card.selected[data-role="trader"]{background:var(--trader-bg);border-color:var(--trader-bdr);}
.role-card.selected[data-role="observer"]{background:var(--observer-bg);border-color:var(--observer-bdr);}
.role-card.selected[data-role="admin"]{background:var(--admin-bg);border-color:var(--admin-bdr);}

.role-top{display:flex;align-items:center;justify-content:space-between;}
.role-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.role-card[data-role="principal"] .role-dot{background:var(--principal-bdr);}
.role-card[data-role="client"] .role-dot{background:var(--client-bdr);}
.role-card[data-role="trader"] .role-dot{background:var(--trader-bdr);}
.role-card[data-role="observer"] .role-dot{background:var(--observer-bdr);}
.role-card[data-role="admin"] .role-dot{background:var(--admin-bdr);}

.role-check{width:20px;height:20px;border:2px solid var(--bdr);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.role-card.selected .role-check{border-color:transparent;}
.role-card.selected[data-role="principal"] .role-check{background:var(--principal);border-color:var(--principal);}
.role-card.selected[data-role="client"] .role-check{background:var(--client);border-color:var(--client);}
.role-card.selected[data-role="trader"] .role-check{background:var(--trader);border-color:var(--trader);}
.role-card.selected[data-role="observer"] .role-check{background:var(--observer);border-color:var(--observer);}
.role-card.selected[data-role="admin"] .role-check{background:var(--admin);border-color:var(--admin);}
.role-check svg{width:12px;height:12px;color:#fff;opacity:0;transition:opacity .15s;}
.role-card.selected .role-check svg{opacity:1;}

.role-title-row{display:flex;align-items:center;gap:8px;}
.role-title{font-size:15px;font-weight:700;color:var(--tx);}
.role-card[data-role="principal"].selected .role-title{color:var(--principal);}
.role-card[data-role="client"].selected .role-title{color:var(--client);}
.role-card[data-role="trader"].selected .role-title{color:var(--trader);}
.role-card[data-role="observer"].selected .role-title{color:var(--observer);}
.role-card[data-role="admin"].selected .role-title{color:var(--admin);}

/* ── Info icon + tooltip ── */
.info-trigger{
  position:relative;width:18px;height:18px;border-radius:50%;
  background:#E8E6E0;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;color:#999;cursor:default;flex-shrink:0;
  transition:background .15s;
}
.role-card.selected[data-role="principal"] .info-trigger{background:rgba(75,63,138,.15);color:var(--principal);}
.role-card.selected[data-role="client"] .info-trigger{background:rgba(31,107,74,.15);color:var(--client);}
.role-card.selected[data-role="trader"] .info-trigger{background:rgba(122,74,16,.15);color:var(--trader);}
.role-card.selected[data-role="observer"] .info-trigger{background:rgba(58,58,58,.15);color:var(--observer);}
.role-card.selected[data-role="admin"] .info-trigger{background:rgba(12,74,110,.15);color:var(--admin);}

.tooltip{
  display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);
  width:260px;background:#1A1A1A;color:#fff;border-radius:10px;padding:14px 16px;
  font-size:11.5px;line-height:1.5;z-index:50;
  box-shadow:0 8px 30px rgba(0,0,0,.25);
  pointer-events:none;
}
.tooltip::after{
  content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#1A1A1A;
}
.info-trigger:hover .tooltip{display:block;}
.tooltip-title{font-weight:700;margin-bottom:6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;opacity:.6;}
.tooltip-list{list-style:none;padding:0;margin:0;}
.tooltip-list li{padding:2px 0;display:flex;align-items:baseline;gap:6px;}
.tooltip-list li::before{content:'';width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.35);flex-shrink:0;margin-top:5px;}
.tooltip-num{font-size:10px;opacity:.4;font-weight:600;min-width:14px;}

.role-sub{font-size:12px;color:var(--tx3);line-height:1.45;}
.role-card.selected[data-role="principal"] .role-sub{color:var(--principal-tx2);}
.role-card.selected[data-role="client"] .role-sub{color:var(--client-tx2);}
.role-card.selected[data-role="trader"] .role-sub{color:var(--trader-tx2);}
.role-card.selected[data-role="observer"] .role-sub{color:var(--observer-tx2);}
.role-card.selected[data-role="admin"] .role-sub{color:var(--admin-tx2);}

.role-base{font-size:11px;color:#BBB;line-height:1.4;margin-top:4px;padding-top:8px;border-top:1px solid var(--bdr);}
.role-card.selected .role-base{border-top-color:rgba(0,0,0,.08);}

/* ── Persona tags ── */
.persona-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.ptag{font-size:10px;font-weight:600;padding:2px 8px;border-radius:6px;background:#F0EEE9;color:#888;white-space:nowrap;}
.role-card.selected[data-role="principal"] .ptag{background:rgba(75,63,138,.1);color:var(--principal);}
.role-card.selected[data-role="client"] .ptag{background:rgba(31,107,74,.1);color:var(--client);}
.role-card.selected[data-role="trader"] .ptag{background:rgba(122,74,16,.1);color:var(--trader);}
.role-card.selected[data-role="observer"] .ptag{background:rgba(58,58,58,.12);color:#555;}
.role-card.selected[data-role="admin"] .ptag{background:rgba(12,74,110,.1);color:var(--admin);}

/* Admin card spans full width */
.admin-row{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px;}

/* ── Quick presets ── */
.presets{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;}
.preset-btn{
  font-size:11px;font-weight:600;color:var(--tx3);padding:5px 12px;
  border:1px solid var(--bdr);border-radius:8px;cursor:pointer;background:var(--surf);
  transition:all .15s;
}
.preset-btn:hover{border-color:#C0BDB8;color:var(--tx2);}
.preset-btn.active{background:var(--tx);color:#fff;border-color:var(--tx);}

/* ── Selection summary ── */
.summary{background:#fff;border:1px solid var(--bdr);border-radius:var(--r);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;transition:all .2s;}

.summary-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.summary-label{font-size:12px;font-weight:700;color:var(--tx3);}
.summary-chips{display:flex;gap:6px;flex-wrap:wrap;}
.chip{font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;}
.chip-dot{width:7px;height:7px;border-radius:50%;}
.chip--principal{background:var(--principal-bg);color:var(--principal);}
.chip--principal .chip-dot{background:var(--principal-bdr);}
.chip--client{background:var(--client-bg);color:var(--client);}
.chip--client .chip-dot{background:var(--client-bdr);}
.chip--trader{background:var(--trader-bg);color:var(--trader);}
.chip--trader .chip-dot{background:var(--trader-bdr);}
.chip--observer{background:var(--observer-bg);color:var(--observer);}
.chip--observer .chip-dot{background:var(--observer-bdr);}
.chip--admin{background:var(--admin-bg);color:var(--admin);}
.chip--admin .chip-dot{background:var(--admin-bdr);}

.summary-none{font-size:12px;color:var(--tx3);font-style:italic;}

.btn-launch{
  padding:10px 28px;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;
  background:#1A1A1A;color:#fff;transition:all .2s;flex-shrink:0;
  display:flex;align-items:center;gap:8px;
}
.btn-launch:hover{background:#333;transform:translateY(-1px);}
.btn-launch:disabled{background:#D0CCC6;color:#999;cursor:not-allowed;transform:none;}
.btn-launch svg{width:14px;height:14px;}

/* ── Toast ── */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(8px);background:#1A1A1A;color:#fff;padding:10px 20px;border-radius:10px;font-size:12px;font-weight:600;opacity:0;transition:all .25s;pointer-events:none;z-index:99;white-space:nowrap;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ── Responsive ── */
@media(max-width:640px){
  .roles-grid{grid-template-columns:1fr;}
  .tooltip{width:220px;}
}

/* ══════════════════════════════════════════════════
   Scoped overrides for entry pages (password + start)
   These restore the centered layout that v1 body resets
   ══════════════════════════════════════════════════ */
body.page-password{display:flex;align-items:center;justify-content:center;padding:24px;min-height:100vh;height:auto;overflow:auto;}
body.page-password .card{max-width:400px;padding:40px 36px 36px;box-shadow:0 4px 24px rgba(0,0,0,.06);width:100%;}
body.page-password .btn{width:100%;margin-top:20px;height:42px;background:#1A1A1A;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;}
body.page-password .btn:hover{opacity:.85;background:#1A1A1A;}
body.page-start{display:flex;justify-content:center;padding:48px 24px 80px;min-height:100vh;height:auto;overflow:auto;}

/* ══════════════════════════════════════════════════
   Source: dashboard.html
   ══════════════════════════════════════════════════ */

/* ══════════ SHARED DESIGN SYSTEM ══════════ */
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}
.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}
.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
/* ── Back to role selection link ── */
.sb-back{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;border-bottom:1px solid #2A2A35;}
.sb-back:hover{background:#22222E;}
.sb-back-arrow{font-size:12px;color:#505068;}
.sb-back-lbl{font-size:10px;font-weight:700;color:#505068;letter-spacing:.02em;}
.sb-back:hover .sb-back-arrow,.sb-back:hover .sb-back-lbl{color:#9A9AB0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}
.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}
.tb-sep{color:var(--bdr2);}
.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}
.btn.pri:hover{background:#3A2F7A;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.mrow{display:grid;gap:10px;margin-bottom:16px;}
.m4{grid-template-columns:repeat(4,minmax(0,1fr));}
.mc{background:var(--surf2);border-radius:var(--r);padding:12px 14px;}
.mc.al{border-left:3px solid var(--dan);}
.mc.aw{border-left:3px solid var(--wrn);}
.mc-lbl{font-size:11px;color:var(--tx3);margin-bottom:5px;}
.mc-val{font-size:20px;font-weight:700;line-height:1;}
.mc-sub{font-size:11px;margin-top:4px;}
.mc-sub.up{color:var(--suc);}.mc-sub.dn{color:var(--dan);}.mc-sub.wn{color:var(--wrn);}.mc-sub.mt{color:var(--tx3);}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:12px;}
.col-st{display:flex;flex-direction:column;gap:12px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}
.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.ch-act{font-size:11px;color:var(--tx3);cursor:pointer;}
.ch-act:hover{color:#4A3F8A;}
.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}
.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}
.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}
.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}
.cb{padding:12px 15px;}
.pill{display:inline-block;font-size:9px;font-weight:700;padding:2px 6px;border-radius:6px;}
.pill.u{background:var(--dan-bg);color:var(--dan-tx);}
.pill.p{background:var(--wrn-bg);color:var(--wrn-tx);}
.pill.f{background:var(--suc-bg);color:var(--suc-tx);}
.pill.i{background:var(--inf-bg);color:var(--inf-tx);}
.pill.m{background:var(--surf2);color:var(--tx3);}
.lr{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr);cursor:pointer;}
.lr:last-child{border-bottom:none;}
.lr:hover{background:var(--surf2);margin:0 -15px;padding:8px 15px;}
.ldot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.ldot.g{background:#2E8F62;}.ldot.a{background:#C07A20;}.ldot.r{background:var(--dan);}
.lname{font-size:12px;font-weight:600;}.lsub{font-size:10px;color:var(--tx3);margin-top:1px;}
.lval{font-size:12px;font-weight:700;}
.lv2{font-size:10px;margin-top:1px;}.lv2.up{color:var(--suc);}.lv2.dn{color:var(--dan);}
.ai{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid var(--bdr);align-items:flex-start;}
.ai:last-child{border-bottom:none;}
.aico{width:18px;height:18px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;margin-top:1px;}
.aico.w{background:var(--wrn-bg);color:var(--wrn-tx);}.aico.i{background:var(--inf-bg);color:var(--inf-tx);}.aico.d{background:var(--dan-bg);color:var(--dan-tx);}
.at{font-size:11px;font-weight:600;margin-bottom:2px;}.ad{font-size:11px;color:var(--tx3);line-height:1.4;}
.apr{padding:9px 0;border-bottom:1px solid var(--bdr);}
.apr:last-child{border-bottom:none;}
.apr-meta{display:flex;align-items:center;gap:6px;margin-bottom:3px;}
.apr-d{font-size:12px;font-weight:700;margin-bottom:5px;}
.apr-btns{display:flex;gap:5px;}
.byes{height:22px;padding:0 9px;background:var(--suc-bg);border:1px solid #B0DCC8;border-radius:var(--r);font-size:10px;font-weight:700;color:var(--suc-tx);cursor:pointer;}
.bno{height:22px;padding:0 9px;background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);font-size:10px;font-weight:700;color:var(--tx3);cursor:pointer;}
.bno:hover{background:var(--dan-bg);color:var(--dan-tx);}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.cbars{display:flex;align-items:flex-end;gap:3px;height:80px;margin-bottom:6px;}
.bar{flex:1;border-radius:2px 2px 0 0;background:var(--bdr);}
.bar.hi{background:#7B6FC4;}
.bar-lbl{display:flex;justify-content:space-between;font-size:9px;color:var(--tx3);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: accountManagement.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:224px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;display:block;height:100vh;overflow:hidden;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}

/* ── SIDEBAR ── */
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;border-right:1px solid #2A2A35;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}
.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pp{width:196px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}
.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;flex-shrink:0;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.sb-back{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #2A2A35;cursor:pointer;flex-shrink:0;}
.sb-back:hover{background:#22222E;}
.sb-back-arrow{width:20px;height:20px;border-radius:5px;background:#22222E;border:1px solid #2A2A38;display:flex;align-items:center;justify-content:center;font-size:10px;color:#5A5A72;}
.sb-back-lbl{font-size:11px;font-weight:600;color:#4A4A62;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:16px;}
.sb-grp{padding:12px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;color:#3A3A52;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;transition:background .1s;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:#1F6B4A;}
.sb-item.active .sb-lbl{color:#fff;font-weight:600;}
.sb-item.active .sb-ico{color:#2E8F62;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-badge{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A1E10;color:#C08040;}

/* ── MAIN ── */
.shell{display:flex;flex:1;min-width:0;overflow:hidden;}
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 24px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}
.tb-sep{color:var(--bdr2);margin:0 2px;}
.tb-cur{font-size:11px;color:var(--tx3);}
.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:var(--suc);color:#fff;border-color:var(--suc);}
.btn.pri:hover{background:#185a3e;}
.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.ava{width:28px;height:28px;border-radius:50%;background:var(--pur-bg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--pur);}
.content{flex:1;overflow-y:auto;padding:24px 28px;}
.screen{display:none;animation:fi .15s ease;}
.screen.active{display:block;}
@keyframes fi{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}

/* ── SHARED COMPONENTS ── */
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 16px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}
.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.cb{padding:14px 16px;}
.stat-grid{display:grid;gap:12px;margin-bottom:18px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}
.stat-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin-bottom:6px;}
.stat-val{font-size:22px;font-weight:700;color:var(--suc);}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:12px;}
thead th{text-align:left;padding:9px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.badge{display:inline-block;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;border:1px solid;}
.badge-main{background:var(--suc-bg);color:var(--suc-tx);border-color:#A8D8C0;}
.badge-sub{background:var(--pur-bg);color:var(--pur-tx);border-color:#C4BCEC;}
.badge-client{background:var(--wrn-bg);color:var(--wrn-tx);border-color:#DDB878;}
.badge-vault{background:var(--surf2);color:var(--tx2);border-color:var(--bdr2);}
.badge-dm{background:var(--pur-bg);color:var(--pur-tx);border-color:#C4BCEC;}
.badge-gc{background:var(--surf2);color:var(--tx2);border-color:var(--bdr2);}
.badge-ro{background:#EFEFED;color:#888;border-color:#D4D4D0;}
.status-active{background:var(--suc-bg);color:var(--suc-tx);border:none;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}
.status-pending{background:var(--wrn-bg);color:var(--wrn-tx);border:none;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}
.status-suspended{background:var(--dan-bg);color:var(--dan-tx);border:none;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}
.status-sandbox{background:var(--inf-bg);color:var(--inf-tx);border:none;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}
.status-expiry{background:var(--wrn-bg);color:var(--wrn-tx);border:none;padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700;}
.status-200{background:var(--suc-bg);color:var(--suc-tx);border:none;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;}
.status-4xx{background:var(--wrn-bg);color:var(--wrn-tx);border:none;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;}
.lnk{color:var(--suc);cursor:pointer;font-weight:600;font-size:11px;}
.lnk:hover{text-decoration:underline;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:18px;}
.tab{padding:9px 16px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}
.tab:hover{color:var(--tx2);}
.tab.active{color:var(--suc);border-bottom-color:var(--suc);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.filter-bar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.srch{height:30px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;min-width:180px;}
.srch:focus{border-color:var(--suc);}
.fsel{height:30px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 8px;font-size:12px;background:var(--surf);color:var(--tx2);cursor:pointer;}
.form-group{margin-bottom:13px;}
.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:4px;display:block;}
.form-input{width:100%;height:32px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}
.form-input:focus{border-color:var(--suc);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.form-hint{font-size:10px;color:var(--tx3);margin-top:3px;}
.info-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}
.info-row:last-child{border-bottom:none;}
.info-k{color:var(--tx3);}
.info-v{font-weight:600;}
/* Toggle switch */
.tog-sw{width:32px;height:17px;border-radius:9px;background:var(--suc);cursor:pointer;position:relative;border:none;transition:background .15s;flex-shrink:0;}
.tog-sw.off{background:#DDD;}
.tog-sw::after{content:'';position:absolute;top:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:left .15s;}
.tog-sw.off::after{left:2px;}
.tog-sw:not(.off)::after{left:17px;}

/* ── ROLE BANNER ── */
.rb{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--r);margin-bottom:16px;font-size:11px;border:1px solid;}
.rb-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}

/* ── OVERVIEW ── */
.org-hd{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:18px 22px;margin-bottom:18px;}
.org-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;}
.org-id{display:flex;align-items:center;gap:12px;}
.org-av{width:42px;height:42px;border-radius:10px;background:#1A3028;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#4ABF8A;flex-shrink:0;}
.org-nm{font-size:17px;font-weight:700;margin-bottom:2px;}
.org-mt{font-size:11px;color:var(--tx3);}
.org-pills{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap;}
.opill{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;}
.opill.ok{background:var(--suc-bg);color:var(--suc-tx);}
.opill.reg{background:var(--surf2);color:var(--tx2);}
.opill.ent{background:var(--pur-bg);color:var(--pur-tx);}
.opill-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7;}
.org-stats{display:grid;gap:0;border-top:1px solid var(--bdr);padding-top:14px;}
.org-stat{padding-right:18px;border-right:1px solid var(--bdr);}
.org-stat:last-child{border-right:none;padding-right:0;}
.org-stat-lbl{font-size:11px;color:var(--tx3);margin-bottom:3px;}
.org-stat-val{font-size:14px;font-weight:700;}
.org-stat-sub{font-size:11px;color:var(--tx3);margin-top:1px;}
.sec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px;}
.sec-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 18px;cursor:pointer;transition:border-color .15s;position:relative;}
.sec-card:hover{border-color:var(--bdr2);}
.sec-card.wide{grid-column:1/-1;}
.sec-card.needs-action{border-left:3px solid var(--wrn);}
.sec-card.all-good{border-left:3px solid var(--suc);}
.sec-card.neutral-l{border-left:3px solid var(--bdr2);}
.sec-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;}
.sec-ico{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.sbadge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;}
.sbadge.ok{background:var(--suc-bg);color:var(--suc-tx);}
.sbadge.warn{background:var(--wrn-bg);color:var(--wrn-tx);}
.sbadge.info{background:var(--inf-bg);color:var(--inf-tx);}
.sbadge.neutral{background:var(--surf2);color:var(--tx3);}
.sec-ttl{font-size:12px;font-weight:700;margin-bottom:2px;}
.sec-desc{font-size:11px;color:var(--tx3);line-height:1.5;margin-bottom:12px;}
.sec-rows{display:flex;flex-direction:column;gap:4px;}
.sec-row{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--tx2);}
.sdot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sdot.ok{background:var(--suc);}.sdot.warn{background:var(--wrn);}.sdot.n{background:var(--bdr2);}.sdot.inf{background:var(--inf);}
.sec-ft{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--bdr);font-size:11px;}
.sec-ft-count{color:var(--tx3);}
.sec-ft-link{font-weight:600;color:var(--suc);cursor:pointer;}
.sec-ft-link.dim{color:var(--tx3);pointer-events:none;}
.ro-ov{position:absolute;inset:0;border-radius:var(--rl);background:rgba(247,245,242,.45);pointer-events:none;}
.bot-row{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;}
.act-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;}
.a-ic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px;}
.a-ic.suc{background:var(--suc-bg);color:var(--suc-tx);}
.a-ic.warn{background:var(--wrn-bg);color:var(--wrn-tx);}
.a-ic.info{background:var(--inf-bg);color:var(--inf-tx);}
.a-ic.gray{background:var(--surf2);color:var(--tx3);}
.a-ic.pur{background:var(--pur-bg);color:var(--pur-tx);}
.act-i{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;border-bottom:1px solid var(--bdr);}
.act-i:last-child{border-bottom:none;}
.qa-ttl{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3);margin-bottom:8px;}
.qa-list{display:flex;flex-direction:column;gap:5px;}
.qa{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);cursor:pointer;transition:background .1s,border-color .1s;}
.qa:hover{background:var(--surf2);border-color:var(--bdr2);}
.qa-ico{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;}
.qa-lbl{font-size:11px;font-weight:600;color:var(--tx2);flex:1;}
.qa-sub{font-size:10px;color:var(--tx3);}

/* ── ONBOARDING ── */
.stepper{display:flex;align-items:center;margin-bottom:28px;}
.step-item{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;}
.step-line{position:absolute;top:18px;left:50%;right:-50%;height:2px;background:var(--bdr);z-index:1;}
.step-item:last-child .step-line{display:none;}
.step-item.done .step-line,.step-item.active .step-line{background:var(--suc);}
.step-circ{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;background:var(--surf2);color:var(--tx3);position:relative;z-index:2;margin-bottom:8px;}
.step-item.done .step-circ{background:var(--suc);color:#fff;}
.step-item.active .step-circ{background:var(--suc);color:#fff;box-shadow:0 0 0 4px rgba(31,107,74,.15);}
.step-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-align:center;}
.step-item.done .step-lbl,.step-item.active .step-lbl{color:var(--tx2);}
.two-col{display:grid;grid-template-columns:60% 40%;gap:18px;}
.sum-panel{background:#1A1A28;border:1px solid #3A3A42;border-radius:var(--rl);padding:18px 20px;color:#FFF;}
.sum-ttl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#AAA;margin-bottom:14px;}
.sum-row{display:flex;justify-content:space-between;padding:10px 0;font-size:12px;border-bottom:1px solid #3A3A42;}
.sum-row:last-of-type{border-bottom:none;}
.sum-k{color:#AAA;}.sum-v{font-weight:600;}
.warn-box{background:var(--wrn-bg);border:1px solid #DDB878;border-radius:var(--rl);padding:14px 18px;margin-top:16px;}
.wb-ttl{font-size:12px;font-weight:700;color:var(--wrn-tx);margin-bottom:8px;}
.wb-item{font-size:11px;color:var(--wrn-tx);margin-bottom:6px;padding-left:12px;position:relative;}
.wb-item::before{content:"•";position:absolute;left:0;}
.owner-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--surf2);border-radius:var(--r);margin-bottom:10px;}
.own-name{font-weight:600;font-size:12px;}
.own-detail{color:var(--tx3);font-size:11px;margin-top:2px;}

/* ── ACCOUNTS & STRUCTURE ── */
.hierarchy{display:flex;flex-direction:column;gap:14px;}
.h-level{margin-left:36px;padding-left:18px;border-left:2px solid var(--bdr);position:relative;}
.h-level::before{content:'';position:absolute;left:-2px;top:-8px;width:16px;height:26px;border:2px solid var(--bdr);border-top:none;border-right:none;}
.acc-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;cursor:pointer;transition:all .15s;margin-bottom:10px;}
.acc-card:hover{border-color:var(--suc);box-shadow:0 2px 8px rgba(0,0,0,.06);}
.acc-card.selected{background:#F0F8F5;border-color:var(--suc);border-left:3px solid var(--suc);}
.acc-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.acc-name{font-size:13px;font-weight:600;}
.acc-meta{font-size:11px;color:var(--tx3);margin-top:2px;}
.acc-foot{display:flex;justify-content:space-between;align-items:center;}
.acc-bal{font-size:13px;font-weight:700;color:var(--suc);}
.detail-panel-right{width:300px;flex-shrink:0;background:var(--surf);border-left:1px solid var(--bdr);overflow-y:auto;display:none;flex-direction:column;}
.detail-panel-right.open{display:flex;}
.dpr-hd{padding:16px 18px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;}
.dpr-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);}

/* ── USERS ── */
.user-av{width:32px;height:32px;border-radius:8px;background:var(--suc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}
.right-panel{width:300px;flex-shrink:0;background:var(--surf);border-left:1px solid var(--bdr);overflow-y:auto;display:none;flex-direction:column;height:100%;}
.right-panel.open{display:flex;}
.rp-hd{padding:18px;border-bottom:1px solid var(--bdr);}
.rp-av{width:44px;height:44px;border-radius:10px;background:var(--suc);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;margin-bottom:10px;}
.rp-name{font-size:14px;font-weight:700;margin-bottom:2px;}
.rp-email{font-size:11px;color:var(--tx3);}
.rp-body{padding:16px 18px;flex:1;overflow-y:auto;}
.rp-sec{margin-bottom:16px;}
.rp-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin-bottom:6px;}
.perm-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--bdr);font-size:12px;}
.perm-row:last-child{border-bottom:none;}
.rp-ft{padding:14px 18px;border-top:1px solid var(--bdr);display:flex;flex-direction:column;gap:8px;}

/* ── API ── */
.env-switch{display:flex;gap:6px;align-items:center;}
.env-badge{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;cursor:pointer;border:1px solid var(--bdr2);background:var(--surf);color:var(--tx3);}
.env-badge.active-sandbox{background:var(--inf-bg);color:var(--inf-tx);border-color:#9DC8E8;}
.env-badge.active-prod{background:var(--suc-bg);color:var(--suc-tx);border-color:#A8D8C0;}
.sandbox-banner{background:var(--wrn-bg);border:1px solid #E8CFA0;border-radius:var(--r);padding:10px 14px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--wrn-tx);}

/* ── BILLING ── */
.plan-banner{background:var(--suc-bg);border:1px solid #A8D8C0;border-radius:var(--rl);padding:20px 24px;margin-bottom:18px;}
.vol-bar-bg{background:#D0E8D8;height:6px;border-radius:3px;overflow:hidden;margin:10px 0;}
.vol-bar-fill{background:var(--suc);height:100%;width:74%;border-radius:3px;}
.fee-note{background:var(--suc-bg);border-left:3px solid var(--suc);padding:10px 14px;border-radius:0 var(--r) var(--r) 0;font-size:11px;color:var(--suc-tx);margin-top:12px;}
svg.sparkline{width:100%;height:80px;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: clients.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}
.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}
.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}
.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}
.tb-sep{color:var(--bdr2);}
.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}
.btn.pri:hover{background:#3A2F7A;}
.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.btn.danger:hover{background:#FAD8D8;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.screen{display:none;animation:fi .15s ease;}
.screen.active{display:block;}
@keyframes fi{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.mc{background:var(--surf2);border-radius:var(--r);padding:12px 14px;}
.mc.al{border-left:3px solid var(--dan);}
.mc.aw{border-left:3px solid var(--wrn);}
.mc-lbl{font-size:11px;color:var(--tx3);margin-bottom:5px;}
.mc-val{font-size:20px;font-weight:700;line-height:1;}
.mc-sub{font-size:11px;margin-top:4px;}
.mc-sub.up{color:var(--suc);}.mc-sub.dn{color:var(--dan);}.mc-sub.wn{color:var(--wrn);}.mc-sub.mt{color:var(--tx3);}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.pill{display:inline-block;font-size:9px;font-weight:700;padding:2px 6px;border-radius:6px;}
.pill.u{background:var(--dan-bg);color:var(--dan-tx);}
.pill.p{background:var(--wrn-bg);color:var(--wrn-tx);}
.pill.f{background:var(--suc-bg);color:var(--suc-tx);}
.pill.active{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;padding:3px 8px;border-radius:20px;}
.pill.kyc-ok{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;padding:3px 8px;border-radius:20px;}
.pill.pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;padding:3px 8px;border-radius:20px;}
.pill.rejected{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;padding:3px 8px;border-radius:20px;}
.pill.suspended{background:var(--surf2);color:var(--tx2);font-size:10px;padding:3px 8px;border-radius:20px;}
.pill.none-pill{background:var(--surf2);color:var(--tx3);font-size:10px;padding:3px 8px;border-radius:20px;}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal{background:var(--surf);border-radius:var(--rl);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,.18);}
.modal-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);}
.modal-title{font-size:15px;font-weight:700;margin-bottom:2px;}
.modal-sub{font-size:11px;color:var(--tx3);}
.modal-body{padding:18px 22px;}
.modal-ft{padding:14px 22px;border-top:1px solid var(--bdr);display:flex;gap:8px;justify-content:flex-end;}
.modal-wide{width:500px;}
.modal-sm{width:420px;}
.form-group{margin-bottom:14px;}
.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;}
.form-label span{color:var(--dan-tx);margin-left:2px;}
.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}
.form-input:focus{border-color:var(--pur);}
select.form-input{cursor:pointer;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}

/* ══════════ CLIENTS-SPECIFIC ══════════ */
.cl-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px;}
.filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.search-wrap{position:relative;flex:1;min-width:180px;max-width:280px;}
.search-wrap input{width:100%;height:30px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px 0 30px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;}
.search-wrap input:focus{border-color:var(--pur);}
.search-ico{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--tx3);pointer-events:none;}
.filter-pills{display:flex;gap:4px;flex-wrap:wrap;}
.fp{padding:5px 11px;border-radius:20px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--bdr2);background:var(--surf);color:var(--tx3);}
.fp:hover{background:var(--surf2);color:var(--tx2);}
.fp.active{background:var(--pur-bg);border-color:#C0B8E8;color:var(--pur);}
.client-name-cell{display:flex;align-items:center;gap:10px;}
.cl-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;}
.client-name{font-weight:600;}
.client-entity{font-size:10px;color:var(--tx3);margin-top:1px;}
.action-btns{display:flex;gap:5px;opacity:0;transition:opacity .1s;}
tbody tr:hover .action-btns{opacity:1;}
.detail-header{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:20px 24px;margin-bottom:16px;}
.dh-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;}
.dh-identity{display:flex;align-items:center;gap:14px;}
.dh-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0;}
.dh-name{font-size:18px;font-weight:700;margin-bottom:3px;}
.dh-meta{font-size:12px;color:var(--tx3);}
.dh-pills{display:flex;gap:6px;align-items:center;margin-top:6px;}
.dh-actions{display:flex;gap:8px;align-items:center;}
.dh-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--bdr);padding-top:16px;}
.dh-stat{padding-right:20px;border-right:1px solid var(--bdr);margin-right:20px;}
.dh-stat:last-child{border-right:none;margin-right:0;}
.dh-stat-lbl{font-size:11px;color:var(--tx3);margin-bottom:3px;}
.dh-stat-val{font-size:16px;font-weight:700;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:16px;}
.tab{padding:9px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}
.tab:hover{color:var(--tx2);}
.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
.info-section{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 18px;}
.is-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:12px;}
.info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}
.info-row:last-child{border-bottom:none;}
.info-k{color:var(--tx3);}.info-v{font-weight:600;text-align:right;}
.kyc-banner{border-radius:var(--r);padding:12px 16px;margin-bottom:14px;display:flex;align-items:center;gap:12px;font-size:12px;}
.kyc-banner.ok{background:var(--suc-bg);border:1px solid #B0DCC8;color:var(--suc-tx);}
.kyc-banner.warn{background:var(--wrn-bg);border:1px solid #E8CFA0;color:var(--wrn-tx);}
.kyc-banner.fail{background:var(--dan-bg);border:1px solid #F0C0C0;color:var(--dan-tx);}
.kyc-banner-ico{font-size:18px;flex-shrink:0;}
.kyc-banner-title{font-weight:700;margin-bottom:1px;}
.doc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.doc-item{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:12px 14px;display:flex;align-items:center;gap:12px;}
.doc-ico{width:36px;height:36px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:var(--surf2);}
.doc-name{font-size:12px;font-weight:600;margin-bottom:2px;}
.doc-meta{font-size:10px;color:var(--tx3);}
.doc-actions{margin-left:auto;display:flex;gap:6px;align-items:center;}
.bank-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.bank-item{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:14px 16px;display:flex;align-items:center;gap:12px;}
.bank-ico{width:36px;height:36px;border-radius:var(--r);background:var(--inf-bg);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.bank-name{font-size:12px;font-weight:700;margin-bottom:2px;}
.bank-details{font-size:11px;color:var(--tx3);}
.bank-actions{margin-left:auto;display:flex;gap:6px;align-items:center;}
.bank-add{border:1.5px dashed var(--bdr2);background:transparent;border-radius:var(--r);padding:14px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;font-size:12px;font-weight:600;color:var(--tx3);width:100%;}
.bank-add:hover{border-color:var(--pur);color:var(--pur);background:var(--pur-bg);}
.activity-list{display:flex;flex-direction:column;}
.act-item{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--bdr);position:relative;}
.act-item:last-child{border-bottom:none;}
.act-line{position:absolute;left:15px;top:36px;bottom:-12px;width:1px;background:var(--bdr);}
.act-item:last-child .act-line{display:none;}
.act-dot{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;z-index:1;}
.act-dot.kyc{background:var(--suc-bg);color:var(--suc-tx);}
.act-dot.bank{background:var(--inf-bg);color:var(--inf-tx);}
.act-dot.trade{background:var(--pur-bg);color:var(--pur-tx);}
.act-dot.system{background:var(--surf2);color:var(--tx3);}
.act-dot.warn{background:var(--wrn-bg);color:var(--wrn-tx);}
.act-body{flex:1;}
.act-title{font-size:12px;font-weight:600;margin-bottom:2px;}
.act-desc{font-size:11px;color:var(--tx3);line-height:1.5;}
.act-time{font-size:10px;color:var(--tx3);margin-top:2px;}
.step-indicator{display:flex;gap:6px;align-items:center;margin-bottom:20px;}
.step{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;}
.step-num{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;}
.step.done .step-num{background:var(--suc-bg);color:var(--suc-tx);}
.step.active .step-num{background:var(--pur);color:#fff;}
.step.todo .step-num{background:var(--surf2);color:var(--tx3);}
.step.done .step-label{color:var(--suc-tx);}
.step.active .step-label{color:var(--pur);}
.step.todo .step-label{color:var(--tx3);}
.step-sep{flex:1;height:1px;background:var(--bdr);min-width:16px;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: custody.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}
.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.suc:hover{background:#D0EEE4;}
.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}
.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}
.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}
.cb{padding:12px 15px;}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}
.drawer-bg.open{display:flex;}
.drawer{width:460px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}
.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}
.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}
.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}
.dl-section{margin-bottom:18px;}
.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.form-group{margin-bottom:14px;}
.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;}
.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}
.form-input:focus{border-color:var(--pur);}
select.form-input{cursor:pointer;}
.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}

/* ══════════ CUSTODY-SPECIFIC ══════════ */
.cust-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;}
.cust-col-main{display:flex;flex-direction:column;gap:14px;}
.cust-col-side{display:flex;flex-direction:column;gap:14px;}
.cust-mc{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 16px;}
.cust-mc.aw{border-left:3px solid var(--wrn);}
.cust-mc .mc-val{font-size:22px;font-weight:700;line-height:1;margin-bottom:4px;}
.cust-mc .mc-lbl{font-size:11px;color:var(--tx3);margin-bottom:6px;}
.cust-mc .mc-sub{font-size:11px;color:var(--tx3);}
.cust-mc .mc-sub.up{color:var(--suc);}.cust-mc .mc-sub.wn{color:var(--wrn);}
.entity-badge{display:inline-flex;align-items:center;gap:6px;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:5px 10px;font-size:11px;font-weight:600;color:var(--tx2);cursor:pointer;margin-top:6px;}
.entity-badge:hover{background:var(--surf2);}
.entity-dot{width:8px;height:8px;border-radius:50%;background:#2E8F62;flex-shrink:0;}
.entity-switch{font-size:10px;color:var(--tx3);margin-left:4px;}
.grp-row td{background:#FAFAF8;padding:9px 12px;cursor:pointer;}
.grp-row:hover td{background:var(--surf2);}.grp-row.open td{background:var(--surf2);}
.wallet-row td{padding:8px 12px;background:var(--surf);}
.wallet-row:hover td{background:#FAFAF8;cursor:pointer;}
.wallet-row.hidden{display:none;}
.wallet-actions{display:flex;gap:4px;opacity:0;transition:opacity .1s;}
.wallet-row:hover .wallet-actions{opacity:1;}
.grp-name{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;}
.grp-chevron{font-size:10px;color:var(--tx3);transition:transform .15s;display:inline-block;}
.grp-chevron.open{transform:rotate(90deg);}
.cust-asset-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;flex-shrink:0;}
.w-pill{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap;}
.w-pill-active{background:var(--suc-bg);color:var(--suc-tx);}
.w-pill-frozen{background:var(--dan-bg);color:var(--dan-tx);}
.w-pill-pending{background:var(--wrn-bg);color:var(--wrn-tx);}
.w-pill-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.ctype{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;}
.ctype-luno{background:#EEEAF8;color:#4A3F8A;}
.ctype-3p{background:var(--surf2);color:var(--tx3);}
.mv-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--bdr);align-items:flex-start;}.mv-item:last-child{border-bottom:none;}
.mv-ico{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;}
.mv-ico.in{background:var(--suc-bg);color:var(--suc-tx);}.mv-ico.out{background:var(--wrn-bg);color:var(--wrn-tx);}.mv-ico.approval{background:var(--inf-bg);color:var(--inf-tx);}
.mv-title{font-size:12px;font-weight:600;margin-bottom:2px;}.mv-sub{font-size:10px;color:var(--tx3);line-height:1.5;}
.mv-amt{font-size:12px;font-weight:700;text-align:right;white-space:nowrap;}.mv-time{font-size:10px;color:var(--tx3);text-align:right;margin-top:1px;}
.cust-alert-item{display:flex;gap:9px;padding:9px 0;border-bottom:1px solid var(--bdr);align-items:flex-start;}.cust-alert-item:last-child{border-bottom:none;}
.cust-alert-ico{width:18px;height:18px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;}
.cust-alert-ico.w{background:var(--wrn-bg);color:var(--wrn-tx);}.cust-alert-ico.d{background:var(--dan-bg);color:var(--dan-tx);}.cust-alert-ico.i{background:var(--inf-bg);color:var(--inf-tx);}
.cust-alert-ttl{font-size:11px;font-weight:600;margin-bottom:2px;}.cust-alert-sub{font-size:10px;color:var(--tx3);line-height:1.4;}
.tx-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr);}.tx-item:last-child{border-bottom:none;}
.tx-dir{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;}
.tx-dir.in{background:var(--suc-bg);color:var(--suc-tx);}.tx-dir.out{background:var(--wrn-bg);color:var(--wrn-tx);}
.tx-amt-in{color:var(--suc);font-size:11px;font-weight:700;}.tx-amt-out{color:var(--dan);font-size:11px;font-weight:700;}
.drawer-action-btn{height:52px;border:1px solid var(--bdr2);border-radius:var(--rl);background:var(--surf);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;color:var(--tx2);}
.drawer-action-btn:hover{background:var(--surf2);}
.drawer-action-btn.da-pri{background:var(--pur-bg);border-color:#C0B8E8;color:var(--pur);}
.da-ico{font-size:16px;}
.addr-box{background:var(--surf2);border:1px solid var(--bdr);border-radius:var(--r);padding:12px 14px;margin-bottom:14px;}
.addr-lbl{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.addr-val{font-family:monospace;font-size:11px;color:var(--tx2);word-break:break-all;line-height:1.6;margin-bottom:8px;}
.addr-actions{display:flex;gap:6px;}
.addr-row{display:flex;gap:12px;align-items:flex-start;}.addr-info{flex:1;}
.qr-placeholder{width:80px;height:80px;background:#fff;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: portfolio.html
   ══════════════════════════════════════════════════ */

/* ══════════ SHARED DESIGN SYSTEM ══════════ */
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}
.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}
.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}
.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}
.tb-sep{color:var(--bdr2);}
.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}
.btn.pri:hover{background:#3A2F7A;}
.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.btn.danger:hover{background:#FAD8D8;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.screen{display:none;animation:fi .15s ease;}
.screen.active{display:block;}
@keyframes fi{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.mrow{display:grid;gap:10px;margin-bottom:16px;}
.m4{grid-template-columns:repeat(4,minmax(0,1fr));}
.mc{background:var(--surf2);border-radius:var(--r);padding:12px 14px;}
.mc.al{border-left:3px solid var(--dan);}
.mc.aw{border-left:3px solid var(--wrn);}
.mc-lbl{font-size:11px;color:var(--tx3);margin-bottom:5px;}
.mc-val{font-size:20px;font-weight:700;line-height:1;}
.mc-sub{font-size:11px;margin-top:4px;}
.mc-sub.up{color:var(--suc);}.mc-sub.dn{color:var(--dan);}.mc-sub.wn{color:var(--wrn);}.mc-sub.mt{color:var(--tx3);}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}
.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.ch-act{font-size:11px;color:var(--tx3);cursor:pointer;}
.ch-act:hover{color:#4A3F8A;}
.cb{padding:12px 15px;}
.pill{display:inline-block;font-size:9px;font-weight:700;padding:2px 6px;border-radius:6px;}
.pill.u{background:var(--dan-bg);color:var(--dan-tx);}
.pill.p{background:var(--wrn-bg);color:var(--wrn-tx);}
.pill.f{background:var(--suc-bg);color:var(--suc-tx);}
.pill.i{background:var(--inf-bg);color:var(--inf-tx);}
.pill.m{background:var(--surf2);color:var(--tx3);}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}

/* ══════════ PORTFOLIO-SPECIFIC ══════════ */
.pt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.pc{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px;cursor:pointer;position:relative;transition:border-color .15s;}
.pc:hover{border-color:#7B6FC4;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.pc.drift{border-color:#D4A86A;}
.pc-name{font-size:13px;font-weight:700;margin-bottom:2px;}
.pc-type{font-size:10px;color:var(--tx3);margin-bottom:10px;}
.pc-aum{font-size:20px;font-weight:700;margin-bottom:2px;}
.pc-pnl{font-size:11px;font-weight:600;}
.pc-pnl.up{color:var(--suc);}.pc-pnl.dn{color:var(--dan);}
.pc-dnut{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--bdr);}
.pc-leg{flex:1;display:flex;flex-direction:column;gap:4px;}
.pc-leg-row{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--tx2);}
.pc-leg-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.pc-leg-pct{margin-left:auto;font-weight:700;}
.pc-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--bdr);font-size:11px;}
.pc-footer-count{color:var(--tx3);}
.pc-footer-link{color:#4A3F8A;font-weight:600;}
.drift-tag{position:absolute;top:12px;right:12px;}
.pd-back{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--tx3);margin-bottom:16px;cursor:pointer;border:none;background:none;padding:0;}
.pd-back:hover{color:var(--tx);}
.pd-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;}
.pd-chart{display:flex;align-items:flex-end;gap:2px;height:120px;padding:8px 0 4px;}
.pd-bar{flex:1;min-width:0;border-radius:2px 2px 0 0;}
.pd-bar-lbl{display:flex;justify-content:space-between;font-size:9px;color:var(--tx3);margin-top:4px;}
.pd-meta-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}
.pd-meta-row:last-child{border-bottom:none;}
.pd-meta-k{color:var(--tx3);}.pd-meta-v{font-weight:600;}
.alloc-h-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--bdr);}
.alloc-h-row:last-child{border-bottom:none;}
.alloc-h-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.alloc-h-name{width:48px;font-size:12px;font-weight:600;flex-shrink:0;}
.alloc-h-track{flex:1;height:8px;background:var(--bdr);border-radius:4px;position:relative;overflow:hidden;}
.alloc-h-tgt{position:absolute;top:0;left:0;height:100%;background:var(--bdr2);}
.alloc-h-cur{position:absolute;top:0;left:0;height:100%;border-radius:4px;}
.alloc-h-cur.ok{background:#7B6FC4;}.alloc-h-cur.ov{background:var(--wrn);}.alloc-h-cur.un{background:var(--inf);}
.alloc-h-pcts{display:flex;gap:8px;flex-shrink:0;font-size:10px;width:150px;}
.alloc-h-tgt-lbl{color:var(--tx3);}
.alloc-h-cur-lbl{font-weight:700;min-width:28px;}
.alloc-h-drift{font-weight:700;min-width:56px;}
.alloc-h-drift.ok{color:var(--suc);}.alloc-h-drift.ov{color:var(--wrn);}.alloc-h-drift.un{color:var(--inf);}
.mgmt-wrap{position:relative;}
.mgmt-btn{height:28px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;overflow:hidden;}
.mgmt-btn:hover{background:var(--surf2);}
.mgmt-label{padding:0 8px;}
.mgmt-arrow{padding:0 7px;border-left:1px solid var(--bdr2);height:100%;display:flex;align-items:center;font-size:10px;}
.mgmt-dd{position:absolute;top:calc(100% + 4px);right:0;background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);min-width:110px;z-index:50;display:none;box-shadow:0 4px 16px rgba(0,0,0,.1);}
.mgmt-dd.open{display:block;}
.mgmt-item{padding:8px 14px;font-size:12px;font-weight:600;color:var(--tx2);cursor:pointer;}
.mgmt-item:hover{background:var(--surf2);}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: otc.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}
.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}
.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}.btn.danger:hover{background:#FAD8D8;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.mc{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 16px;}
.mc-lbl{font-size:11px;color:var(--tx3);margin-bottom:6px;}
.mc-val{font-size:22px;font-weight:700;line-height:1;margin-bottom:4px;}
.mc-sub{font-size:11px;}.mc-sub.up{color:var(--suc);}.mc-sub.wn{color:var(--wrn);}.mc-sub.mt{color:var(--tx3);}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.pill{display:inline-block;font-size:9px;font-weight:700;padding:2px 6px;border-radius:6px;}
.pill.u{background:var(--dan-bg);color:var(--dan-tx);}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal{background:var(--surf);border-radius:var(--rl);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,.18);}
.modal-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);}
.modal-title{font-size:15px;font-weight:700;margin-bottom:2px;}
.modal-sub{font-size:11px;color:var(--tx3);}
.modal-body{padding:18px 22px;}
.modal-ft{padding:14px 22px;border-top:1px solid var(--bdr);display:flex;gap:8px;justify-content:flex-end;}
.modal-wide{width:500px;}
.form-group{margin-bottom:14px;}
.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;}
.form-label span{color:var(--dan-tx);margin-left:2px;}
.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}
.form-input:focus{border-color:var(--pur);}
select.form-input{cursor:pointer;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}
.drawer-bg.open{display:flex;}
.drawer{width:460px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}
.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}
.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}
.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}
.dl-section{margin-bottom:18px;}
.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}

/* ══════════ OTC-SPECIFIC ══════════ */
.otc-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px;}
.tabs{display:flex;border-bottom:1px solid var(--bdr);}
.tab{padding:9px 16px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}
.tab:hover{color:var(--tx2);}
.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.tab-panel{display:none;}.tab-panel.active{display:block;}
.pill-settled{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.pill-open{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.pill-pending{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.pill-buy{background:#E3F2ED;color:#104030;font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;display:inline-block;}
.pill-sell{background:#FDECEC;color:#7A1A1A;font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;display:inline-block;}
.tr-open td{background:#FEFCF5;}.tr-open:hover td{background:#FDF8EE!important;}
.mandate-check{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r);margin-bottom:14px;font-size:11px;font-weight:600;}
.mandate-check.ok{background:var(--suc-bg);color:var(--suc-tx);}
.mandate-check.warn{background:var(--wrn-bg);color:var(--wrn-tx);}
.quote-card{background:var(--pur-bg);border:1.5px solid #C0B8E8;border-radius:var(--rl);padding:18px 20px;margin-bottom:14px;}
.qc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.qc-title{font-size:12px;font-weight:700;color:var(--pur-tx);}
.qc-timer{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--dan-tx);background:var(--dan-bg);padding:3px 9px;border-radius:20px;}
.qc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.qc-item{background:rgba(255,255,255,.7);border-radius:var(--r);padding:10px 12px;}
.qc-item-lbl{font-size:10px;color:var(--tx3);margin-bottom:3px;}
.qc-item-val{font-size:16px;font-weight:700;}
.qc-item-sub{font-size:10px;color:var(--tx3);margin-top:2px;}
.qc-actions{display:flex;gap:8px;}
.btn-accept{flex:1;height:36px;background:var(--suc-bg);border:1.5px solid #B0DCC8;border-radius:var(--r);font-size:12px;font-weight:700;color:var(--suc-tx);cursor:pointer;}.btn-accept:hover{background:#D0EEE4;}
.btn-decline{height:36px;padding:0 16px;background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);font-size:12px;font-weight:600;color:var(--tx3);cursor:pointer;}.btn-decline:hover{background:var(--dan-bg);color:var(--dan-tx);}
.dealer-list{display:flex;flex-direction:column;gap:8px;}
.dealer-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);}
.dealer-ava{width:32px;height:32px;border-radius:50%;background:var(--pur-bg);color:var(--pur);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;}
.dealer-name{font-size:12px;font-weight:700;}
.dealer-role{font-size:10px;color:var(--tx3);margin-top:1px;}
.dealer-status{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;margin-left:auto;}
.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.status-dot.online{background:#2E8F62;}.status-dot.away{background:#C07A20;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: reports.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh}

/* SIDEBAR */
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px}
.role-strip{display:flex;gap:5px;margin-bottom:6px}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0}
.pip.on{opacity:1;transform:scale(1.15)}.pip.off{opacity:.22}
.pip-principal{background:#7B6FC4}.pip-client{background:#2E8F62}.pip-trader{background:#C07A20}.pip-observer{background:#686880}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0}
.role-sub{font-size:10px;color:#3A3A52;margin-top:1px}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px}
.sb-grp{padding:10px 0 2px}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none}
.sb-item:hover{background:#22222E}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4)}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4)}
.sb-item.hidden{display:none}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1}
.sb-item:hover .sb-lbl{color:#C0C0D0}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068}
.sb-bdg.hot{background:#3A1A1A;color:#E07070}.sb-bdg.wrn{background:#2A1E10;color:#C08040}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0}

/* PERM PANEL */
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto}
.pp.open{display:flex}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35}
.pp-row:last-child{border-bottom:none}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px}
.pp-dot{width:8px;height:8px;border-radius:50%}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s}
.tog.on{background:#1F6B4A}.tog.off{background:#2A2A38}
.tog::after{content:"";position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s}
.tog.on::after{left:14px}.tog.off::after{left:2px}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}

/* MAIN */
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0}
.tb-crumb{font-size:11px;color:var(--tx3)}.tb-sep{color:var(--bdr2)}.tb-title{font-size:13px;font-weight:700}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A}
.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf)}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A}
.content{flex:1;overflow-y:auto;padding:20px 24px}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px}
.ch-ttl{font-size:12px;font-weight:700;flex:1}
.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px}
.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx)}
.cb{padding:14px 16px}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none}
.toast.show{opacity:1;transform:none}
table{width:100%;border-collapse:collapse;font-size:11px}
thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--surf2)}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px}
.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px}
.tab:hover{color:var(--tx2)}.tab.active{color:var(--pur);border-bottom-color:var(--pur)}
.tab-panel{display:none}.tab-panel.active{display:block}
.form-group{margin-bottom:14px}
.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;text-transform:uppercase}
.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit}
.form-input:focus{border-color:var(--pur)}
select.form-input{cursor:pointer}
.form-hint{font-size:10px;color:var(--tx3);margin-top:4px}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none}
.act-link:hover{text-decoration:underline}

/* REPORTS */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.stat-val{font-size:18px;font-weight:700;margin-bottom:3px}
.stat-meta{font-size:11px;color:var(--tx3)}
.gen-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.rpt-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.rpt-type{padding:14px 16px;border:1px solid var(--bdr2);border-radius:var(--r);cursor:pointer;transition:all .15s}
.rpt-type:hover{border-color:var(--pur);background:var(--surf2)}
.rpt-type.sel{border-color:var(--pur);background:var(--pur-bg)}
.rpt-type-name{font-size:12px;font-weight:700;margin-bottom:3px;display:flex;align-items:center;gap:6px}
.rpt-type-desc{font-size:10px;color:var(--tx3);line-height:1.5}
.preview-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px}
.preview-row:last-child{border-bottom:none}
.preview-k{color:var(--tx3)}.preview-v{font-weight:600}
.sched-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--bdr)}
.sched-item:last-child{border-bottom:none}
.sched-ico{width:36px;height:36px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.sched-ico.perf{background:var(--pur-bg);color:var(--pur)}
.sched-ico.client{background:var(--suc-bg);color:var(--suc)}
.sched-ico.comp{background:var(--surf2);color:var(--tx2)}
.sched-ico.strat{background:var(--wrn-bg);color:var(--wrn)}
.sched-name{font-size:12px;font-weight:600;margin-bottom:2px}
.sched-meta{font-size:10px;color:var(--tx3)}
.sched-right{margin-left:auto;text-align:right;flex-shrink:0}
.sched-next{font-size:11px;font-weight:600;margin-bottom:2px}
.sched-freq{font-size:10px;color:var(--tx3)}
.st-ready{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block}
.st-delivered{background:var(--pur-bg);color:var(--pur-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block}
.fmt-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;display:inline-block;text-transform:uppercase}
.fmt-pdf{background:var(--dan-bg);color:var(--dan-tx)}
.fmt-csv{background:var(--suc-bg);color:var(--suc-tx)}
.fmt-xlsx{background:var(--inf-bg);color:var(--inf-tx)}
.del-tag{font-size:9px;font-weight:600;padding:2px 7px;border-radius:4px;background:var(--surf2);color:var(--tx2);display:inline-block;margin-right:3px}
.del-tag.email{background:var(--inf-bg);color:var(--inf-tx)}
.del-tag.platform{background:var(--pur-bg);color:var(--pur-tx)}
.del-tag.download{background:var(--surf2);color:var(--tx2)}

/* DRAWER */
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end}
.drawer-bg.open{display:flex}
.drawer{width:480px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1)}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px}
.drawer-sub{font-size:11px;color:var(--tx3)}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r)}
.drawer-close:hover{background:var(--surf2);color:var(--tx)}
.drawer-body{padding:18px 22px}
.dl-section{margin-bottom:18px}
.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px}
.dl-row:last-child{border-bottom:none}
.dl-k{color:var(--tx3)}.dl-v{font-weight:600;text-align:right}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: api.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}
.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.cb{padding:14px 16px;}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}

/* ══════════ API-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 20px;}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.stat-val{font-size:16px;font-weight:700;margin-bottom:4px;}
.stat-meta{font-size:11px;color:var(--tx3);}
.main-grid{display:grid;grid-template-columns:1fr .82fr;gap:16px;margin-bottom:24px;}
.api-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.api-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 20px;transition:border-color .15s;}
.api-card:hover{border-color:var(--pur);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.ac-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.ac-title{font-size:13px;font-weight:700;}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.badge-ok{background:var(--suc-bg);color:var(--suc-tx);}
.badge-beta{background:var(--inf-bg);color:var(--inf-tx);}
.ac-meta{font-size:11px;color:var(--tx3);line-height:1.7;margin-bottom:12px;}
.ac-meta strong{color:var(--tx2);display:block;margin-top:4px;}
.ac-foot{display:flex;gap:10px;border-top:1px solid var(--bdr);padding-top:12px;align-items:center;}
.ac-foot a{color:var(--pur);text-decoration:none;font-size:11px;font-weight:600;cursor:pointer;}
.ac-foot a:hover{text-decoration:underline;}
.int-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 20px;}
.int-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--bdr);font-size:12px;}
.int-row:last-child{border-bottom:none;}
.int-name{font-weight:600;display:flex;align-items:center;gap:8px;}
.int-meta{font-size:10px;color:var(--tx3);margin-top:3px;}
.int-warn{color:var(--wrn-tx);}
.int-action{color:var(--pur);cursor:pointer;font-weight:600;font-size:11px;}
.int-action:hover{text-decoration:underline;}
.sdot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;}
.sdot.g{background:var(--suc);}.sdot.a{background:var(--wrn);}
.health-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 20px;margin-top:14px;}
.health-title{font-size:12px;font-weight:700;margin-bottom:14px;}
.chart-wrap{display:flex;align-items:flex-end;justify-content:space-around;height:90px;gap:3px;margin-bottom:12px;}
.cbar{flex:1;background:var(--suc-bg);border-radius:2px;transition:background .15s;}
.cbar.spike{background:var(--wrn-bg);}
.cbar:hover{background:var(--pur);}
.chart-stat{font-size:11px;color:var(--tx3);text-align:center;border-top:1px solid var(--bdr);padding-top:10px;}
.wh-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);}
.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}
.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.tab-panel{display:none;padding:14px 16px;}.tab-panel.active{display:block;}
.ep-url{color:var(--pur);font-family:monospace;font-size:10px;word-break:break-all;}
.tbl-actions{display:flex;gap:10px;}
.tbl-actions a{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}
.tbl-actions a:hover{text-decoration:underline;}
.badge-retry{background:var(--wrn-bg);color:var(--wrn-tx);display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:600;}
.env-sel{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--surf2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);cursor:pointer;}
.mode-badge{background:var(--wrn-bg);color:var(--wrn-tx);padding:4px 10px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: funding.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;
  --bdr:#E0DDD8;--bdr2:#D0CCC6;
  --tx:#1A1A1A;--tx2:#555;--tx3:#AAA;
  --r:8px;--rl:12px;--sw:220px;--th:48px;
  --dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;
  --wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;
  --suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;
  --inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;
  --pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}
.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}
.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}
.sb-item:hover{background:#22222E;}
.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}
.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}
.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}
.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}
.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}
.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}
.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}
.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}
.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}
.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}
.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}
.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}
.btn:hover{background:var(--surf2);opacity:1;}
.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}
.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}
.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}
.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.cb{padding:12px 15px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}
.toast.show{opacity:1;transform:none;}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);}

/* ══════════ FUNDING-SPECIFIC ══════════ */
.bal-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.bal-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px 20px;}
.bal-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;margin-bottom:6px;}
.bal-val{font-size:20px;font-weight:700;margin-bottom:4px;}
.bal-help{font-size:11px;color:var(--tx3);line-height:1.6;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:24px;}
.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}
.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.tab-panel{display:none;}.tab-panel.active{display:block;}
.dep-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{margin-bottom:16px;}
.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;text-transform:uppercase;}
.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}
.form-input:focus{border-color:var(--pur);}
select.form-input{cursor:pointer;}
.form-row{display:flex;justify-content:space-between;padding:8px 0;font-size:12px;border-bottom:1px solid var(--surf2);}
.form-row:last-child{border-bottom:none;}
.form-row-k{color:var(--tx3);}.form-row-v{font-weight:600;}
.rails{display:flex;gap:6px;margin-bottom:16px;}
.rail-btn{padding:7px 12px;border:1px solid var(--bdr2);border-radius:var(--r);background:var(--surf);cursor:pointer;font-size:11px;font-weight:600;transition:all .15s;}
.rail-btn:hover{background:var(--surf2);}
.rail-btn.active{background:var(--pur);color:#fff;border-color:var(--pur);}
.rail-btn.disabled{background:var(--surf2);color:var(--tx3);cursor:not-allowed;opacity:.5;}
.info-chip{background:var(--suc-bg);color:var(--suc-tx);padding:8px 12px;border-radius:var(--r);font-size:11px;font-weight:600;margin-bottom:16px;display:inline-block;}
.bank-details{background:var(--surf2);padding:14px;border-radius:var(--r);margin-bottom:14px;}
.bank-row{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12px;}
.bank-row:last-child{margin-bottom:0;}
.bank-k{color:var(--tx3);font-weight:500;}.bank-v{font-family:'Monaco','Courier New',monospace;font-weight:600;}
.qr-box{width:100%;height:120px;background:var(--surf2);border:1.5px dashed var(--bdr2);border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:var(--tx3);font-size:12px;margin-top:12px;}
.warning-box{background:var(--wrn-bg);border:1px solid #E8CFA0;color:var(--wrn-tx);padding:12px 14px;border-radius:var(--r);font-size:11px;line-height:1.6;margin-top:14px;}
.pill-complete{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.pill-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.pill-failed{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;display:inline-block;}
.pill-in{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;display:inline-block;}
.pill-out{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;display:inline-block;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: kyc.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#686880;color:#fff;border-color:#686880;}.btn.pri:hover{background:#585870;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--tx2);}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:9px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);cursor:pointer;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:#686880;border-bottom-color:#686880;}.tab-panel{display:none;}.tab-panel.active{display:block;}
.act-link{color:#686880;cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
.filter-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}.filter-sel{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;color:var(--tx2);cursor:pointer;}.filter-search{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;flex:1;max-width:220px;outline:none;}.filter-search:focus{border-color:#686880;}

/* ══════════ KYC-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--wrn);}.stat-card.danger{border-left:3px solid var(--dan);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}
.kyc-verified{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.kyc-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.kyc-failed{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.kyc-expired{background:var(--pur-bg);color:var(--pur-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.kyc-frozen{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.bank-ok{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.bank-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.bank-failed{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.bank-na{color:var(--tx3);font-size:10px;}
.acct-type{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.acct-client{background:var(--inf-bg);color:var(--inf-tx);}.acct-sub{background:var(--wrn-bg);color:var(--wrn-tx);}.acct-user{background:var(--pur-bg);color:var(--pur-tx);}
.flag-row td{background:#FFF8F8!important;}.flag-row:hover td{background:#FFF2F2!important;}
.compliance-lock{font-size:10px;color:var(--dan);margin-left:4px;}
.screening-clean{color:var(--suc);font-size:10px;font-weight:600;}.screening-flag{color:var(--dan);font-size:10px;font-weight:700;}
/* Drawer */
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}.drawer-bg.open{display:flex;}
.drawer{width:480px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-section{margin-bottom:18px;}.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}
.doc-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--bdr);}.doc-item:last-child{border-bottom:none;}
.doc-ico{width:32px;height:32px;border-radius:var(--r);background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.doc-name{font-size:12px;font-weight:600;margin-bottom:2px;}.doc-meta{font-size:10px;color:var(--tx3);}
.doc-status{margin-left:auto;flex-shrink:0;}
.timeline{display:flex;flex-direction:column;position:relative;padding-left:18px;}
.tl-item{display:flex;gap:10px;padding:6px 0;position:relative;}.tl-item::before{content:'';position:absolute;left:-14px;top:0;bottom:0;width:1px;background:var(--bdr);}.tl-item:last-child::before{display:none;}
.tl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:absolute;left:-17px;top:10px;border:2px solid var(--surf);}
.tl-dot.sys{background:var(--bdr2);}.tl-dot.ok{background:var(--suc);}.tl-dot.wrn{background:var(--wrn);}.tl-dot.dan{background:var(--dan);}
.tl-time{font-size:10px;color:var(--tx3);min-width:80px;flex-shrink:0;}.tl-text{font-size:11px;color:var(--tx2);line-height:1.5;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: exceptions.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#C07A20;color:#fff;border-color:#C07A20;}.btn.pri:hover{background:#A86A18;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:var(--wrn-bg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--wrn);}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);cursor:pointer;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:#C07A20;border-bottom-color:#C07A20;}.tab-panel{display:none;}.tab-panel.active{display:block;}
.act-link{color:#C07A20;cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
.filter-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}.filter-sel{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;color:var(--tx2);cursor:pointer;}

/* ══════════ EXCEPTIONS-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--dan);}.stat-card.warn{border-left:3px solid var(--wrn);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}
.sev-crit{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.sev-high{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.sev-med{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.sev-low{background:var(--surf2);color:var(--tx3);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-open{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-investigating{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-escalated{background:var(--pur-bg);color:var(--pur-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-resolved{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.type-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.type-api{background:var(--wrn-bg);color:var(--wrn-tx);}.type-transfer{background:var(--inf-bg);color:var(--inf-tx);}.type-balance{background:var(--pur-bg);color:var(--pur-tx);}.type-compliance{background:var(--dan-bg);color:var(--dan-tx);}
.compliance-row td{background:#FFF8F8!important;}
.compliance-lock{font-size:10px;color:var(--dan);margin-left:4px;}
/* Drawer */
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}.drawer-bg.open{display:flex;}
.drawer{width:500px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-section{margin-bottom:18px;}.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}
.timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:18px;}
.tl-item{display:flex;gap:10px;padding:8px 0;position:relative;}
.tl-item::before{content:'';position:absolute;left:-14px;top:0;bottom:0;width:1px;background:var(--bdr);}
.tl-item:last-child::before{display:none;}
.tl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;position:absolute;left:-18px;top:12px;border:2px solid var(--surf);}
.tl-dot.sys{background:var(--bdr2);}.tl-dot.op{background:#C07A20;}.tl-dot.esc{background:var(--pur);}.tl-dot.res{background:var(--suc);}
.tl-time{font-size:10px;color:var(--tx3);min-width:70px;flex-shrink:0;}.tl-text{font-size:11px;color:var(--tx2);line-height:1.5;}
.error-block{background:#1A1A28;border-radius:var(--r);padding:12px 14px;font-family:'Monaco','Courier New',monospace;font-size:10px;color:#E0C0C0;line-height:1.7;margin-bottom:14px;overflow-x:auto;white-space:pre-wrap;}
.affected-summary{background:var(--surf2);border-radius:var(--r);padding:12px 14px;margin-bottom:14px;}
.affected-row{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;}
.affected-k{color:var(--tx3);}.affected-v{font-weight:600;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: rebalancing.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.suc:hover{background:#D0EEE4;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}
.cb{padding:14px 16px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}

/* ══════════ REBALANCING-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}
.stat-card.alert{border-left:3px solid var(--wrn);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}
.stat-meta{font-size:11px;color:var(--tx3);}
.sev-high{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.sev-med{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.sev-low{background:var(--surf2);color:var(--tx3);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.drift-bar-wrap{display:flex;align-items:center;gap:8px;min-width:160px;}
.drift-bar-track{flex:1;height:6px;background:var(--bdr);border-radius:3px;position:relative;overflow:hidden;}
.drift-bar-fill{position:absolute;top:0;left:0;height:100%;border-radius:3px;}
.drift-bar-fill.over{background:var(--wrn);}.drift-bar-fill.under{background:var(--inf);}
.drift-pct{font-size:11px;font-weight:700;min-width:44px;text-align:right;}
.drift-pct.over{color:var(--wrn-tx);}.drift-pct.under{color:var(--inf-tx);}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
/* Expanded detail */
.detail-panel{display:none;background:var(--surf2);border-top:1px solid var(--bdr);padding:16px 20px;}
.detail-panel.open{display:block;}
.alloc-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}
.alloc-row:last-child{border-bottom:none;}
.alloc-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.alloc-name{width:50px;font-weight:600;flex-shrink:0;}
.alloc-track{flex:1;height:6px;background:var(--bdr);border-radius:3px;position:relative;overflow:hidden;}
.alloc-cur{position:absolute;top:0;left:0;height:100%;border-radius:3px;}
.alloc-cur.ok{background:#7B6FC4;}.alloc-cur.over{background:var(--wrn);}.alloc-cur.under{background:var(--inf);}
.alloc-vals{display:flex;gap:8px;font-size:10px;min-width:140px;flex-shrink:0;}
.alloc-tgt{color:var(--tx3);}.alloc-c{font-weight:700;}.alloc-d{font-weight:700;}
.alloc-d.ok{color:var(--suc);}.alloc-d.over{color:var(--wrn);}.alloc-d.under{color:var(--inf);}
.trade-proposal{margin-top:14px;padding-top:14px;border-top:1px solid var(--bdr);}
.tp-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.tp-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:12px;border-bottom:1px solid var(--bdr);}.tp-row:last-child{border-bottom:none;}
.tp-side{font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;}.tp-buy{background:var(--suc-bg);color:var(--suc-tx);}.tp-sell{background:var(--dan-bg);color:var(--dan-tx);}
.tp-asset{font-weight:600;width:50px;}.tp-qty{font-family:monospace;font-weight:600;}.tp-val{color:var(--tx3);}
.tp-summary{display:flex;justify-content:space-between;font-size:12px;padding:8px 0;margin-top:8px;border-top:1px solid var(--bdr);}.tp-summary-k{color:var(--tx3);}.tp-summary-v{font-weight:700;}
.tp-actions{display:flex;gap:8px;margin-top:14px;}
/* History */
.st-done{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-cancelled{background:var(--surf2);color:var(--tx3);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: clientactivity.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#2E8F62;color:#fff;border-color:#2E8F62;}.btn.pri:hover{background:#247A54;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:var(--suc-bg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--suc);}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
.act-link{color:#2E8F62;cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
.filter-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}
.filter-sel{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;color:var(--tx2);cursor:pointer;}

/* ══════════ CLIENT ACTIVITY SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--dan);}.stat-card.warn{border-left:3px solid var(--wrn);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}

/* Activity feed */
.feed{display:flex;flex-direction:column;}
.feed-item{display:flex;gap:14px;padding:16px 18px;border-bottom:1px solid var(--bdr);transition:background .1s;position:relative;}
.feed-item:last-child{border-bottom:none;}
.feed-item:hover{background:var(--surf2);}
.feed-item.breach{background:#FFFBF8;border-left:3px solid var(--dan);}
.feed-item.breach:hover{background:#FFF5EE;}
.feed-item.unreviewed{background:#FEFCF5;}
.feed-item.reviewed{opacity:.7;}
.feed-ico{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.feed-ico.trade{background:var(--pur-bg);color:var(--pur);}.feed-ico.withdrawal{background:var(--wrn-bg);color:var(--wrn);}.feed-ico.deposit{background:var(--suc-bg);color:var(--suc);}.feed-ico.change{background:var(--inf-bg);color:var(--inf);}.feed-ico.breach-ico{background:var(--dan-bg);color:var(--dan);}
.feed-body{flex:1;min-width:0;}
.feed-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.feed-client{font-size:12px;font-weight:700;}
.feed-mandate{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.feed-mandate.agg{background:#EEEAF8;color:#4A3F8A;}.feed-mandate.mod{background:var(--inf-bg);color:var(--inf-tx);}.feed-mandate.con{background:var(--suc-bg);color:var(--suc-tx);}
.feed-time{font-size:10px;color:var(--tx3);margin-left:auto;flex-shrink:0;}
.feed-desc{font-size:12px;color:var(--tx2);line-height:1.5;margin-bottom:6px;}
.feed-detail{font-size:11px;color:var(--tx3);margin-bottom:8px;}
.feed-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
.tag-within{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;}
.tag-breach{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;}
.tag-large{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;}
.tag-reviewed{background:var(--surf2);color:var(--tx3);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;}
.feed-actions{display:flex;gap:8px;}
/* Follow-up inline */
.followup-box{background:var(--surf2);border:1px solid var(--bdr);border-radius:var(--r);padding:12px 14px;margin-top:10px;display:none;}
.followup-box.open{display:block;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: guidance.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#2E8F62;color:#fff;border-color:#2E8F62;}.btn.pri:hover{background:#247A54;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:var(--suc-bg);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--suc);}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}.cb{padding:14px 16px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);cursor:pointer;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:#2E8F62;border-bottom-color:#2E8F62;}.tab-panel{display:none;}.tab-panel.active{display:block;}
.act-link{color:#2E8F62;cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}

/* ══════════ GUIDANCE-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--wrn);}.stat-card.overdue{border-left:3px solid var(--dan);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}
.cl-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;background:var(--suc-bg);color:var(--suc);}
.review-due{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.review-overdue{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.review-done{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.review-scheduled{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.drift-pill{background:var(--dan-bg);color:var(--dan-tx);font-size:9px;font-weight:700;padding:2px 6px;border-radius:6px;display:inline-block;}
.mandate-pill{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.mandate-agg{background:#EEEAF8;color:#4A3F8A;}.mandate-mod{background:var(--inf-bg);color:var(--inf-tx);}.mandate-con{background:var(--suc-bg);color:var(--suc-tx);}
/* Drawer */
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}.drawer-bg.open{display:flex;}
.drawer{width:520px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-section{margin-bottom:18px;}.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}
.alloc-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.alloc-row:last-child{border-bottom:none;}
.alloc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.alloc-name{width:44px;font-weight:600;flex-shrink:0;}
.alloc-track{flex:1;height:5px;background:var(--bdr);border-radius:3px;overflow:hidden;}
.alloc-fill{height:100%;border-radius:3px;}
.alloc-pct{font-size:10px;font-weight:700;min-width:32px;text-align:right;}
.alloc-tgt{font-size:10px;color:var(--tx3);min-width:50px;}
.rec-type{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;cursor:pointer;background:var(--surf);color:var(--tx3);transition:all .15s;}
.rec-type:hover{background:var(--surf2);}.rec-type.sel{background:#2E8F62;color:#fff;border-color:#2E8F62;}
.delivery-opt{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--bdr2);border-radius:var(--r);cursor:pointer;font-size:12px;color:var(--tx2);transition:all .15s;margin-bottom:6px;}
.delivery-opt:hover{background:var(--surf2);}.delivery-opt.sel{background:var(--suc-bg);border-color:#B0DCC8;color:var(--suc-tx);}
.delivery-radio{width:14px;height:14px;border-radius:50%;border:2px solid var(--bdr2);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.delivery-opt.sel .delivery-radio{border-color:#2E8F62;}.delivery-opt.sel .delivery-radio::after{content:'';width:7px;height:7px;border-radius:50%;background:#2E8F62;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: strategies.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}
.cb{padding:14px 16px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.tab-panel{display:none;}.tab-panel.active{display:block;}

/* ══════════ STRATEGIES & BOTS SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}
.stat-card.alert{border-left:3px solid var(--dan);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}
.stat-meta{font-size:11px;color:var(--tx3);}
.st-run{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-pause{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-err{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-stop{background:var(--surf2);color:var(--tx3);font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;display:inline-block;}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}.act-link.danger{color:var(--dan);}
.pnl-up{color:var(--suc);font-weight:700;}.pnl-dn{color:var(--dan);font-weight:700;}
.type-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.type-arb{background:#EEEAF8;color:#4A3F8A;}.type-grid{background:var(--inf-bg);color:var(--inf-tx);}.type-dca{background:var(--suc-bg);color:var(--suc-tx);}.type-mm{background:var(--wrn-bg);color:var(--wrn-tx);}
/* Strategy cards */
.strat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;}
.strat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:18px 20px;transition:border-color .15s;cursor:pointer;}
.strat-card:hover{border-color:var(--pur);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.strat-card.has-error{border-color:#F0B0B0;}
.sc-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.sc-name{font-size:14px;font-weight:700;}
.sc-desc{font-size:11px;color:var(--tx3);margin-bottom:14px;line-height:1.5;}
.sc-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.sc-stat-lbl{font-size:10px;color:var(--tx3);margin-bottom:2px;}
.sc-stat-val{font-size:14px;font-weight:700;}
.sc-foot{display:flex;gap:8px;border-top:1px solid var(--bdr);padding-top:12px;}
.alloc-bar{height:6px;background:var(--bdr);border-radius:3px;overflow:hidden;margin-bottom:10px;}
.alloc-fill{height:100%;border-radius:3px;background:var(--pur);}
.alloc-label{display:flex;justify-content:space-between;font-size:10px;color:var(--tx3);margin-bottom:4px;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: trading.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
/* ── SIDEBAR (shared) ── */
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
/* ── MAIN ── */
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;align-items:center;justify-content:center;}.modal-bg.open{display:flex;}.modal{background:var(--surf);border-radius:var(--rl);max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,.18);width:460px;padding:24px 28px;}
.modal-title{font-size:16px;font-weight:700;margin-bottom:20px;}.modal-row{display:flex;justify-content:space-between;font-size:13px;padding:7px 0;border-bottom:1px solid var(--bdr);}.modal-row:last-child{border-bottom:none;}.modal-row strong{font-weight:700;}

/* ══════════ TRADING-SPECIFIC ══════════ */
.trade-layout{display:flex;gap:16px;flex:1;overflow:hidden;padding:20px 24px;}
.trade-left{width:360px;flex-shrink:0;overflow-y:auto;}
.trade-right{flex:1;display:flex;flex-direction:column;gap:14px;overflow-y:auto;min-width:0;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.cb{padding:14px 16px;}
.pair-sel{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;background:var(--surf2);border-radius:var(--r);margin-bottom:14px;cursor:pointer;}
.pair-name{font-size:16px;font-weight:700;}.pair-price{font-size:12px;color:var(--tx3);margin-top:2px;}.pair-up{color:var(--suc);font-weight:600;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:14px;}.tab{padding:9px 14px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.bs-toggle{display:flex;gap:8px;margin-bottom:14px;}
.bs-btn{flex:1;padding:10px;border-radius:var(--r);font-weight:700;cursor:pointer;font-size:13px;text-align:center;border:1px solid var(--bdr2);transition:all .15s;}
.bs-btn.buy-active{background:var(--suc);color:#fff;border-color:var(--suc);}.bs-btn.sell-active{background:var(--dan);color:#fff;border-color:var(--dan);}
.bs-btn.buy-inactive{background:var(--surf);color:var(--suc);}.bs-btn.sell-inactive{background:var(--surf);color:var(--dan);}
.form-group{margin-bottom:14px;}.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;text-transform:uppercase;}.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}.form-input:focus{border-color:var(--pur);}select.form-input{cursor:pointer;}.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}
.fee-box{background:var(--surf2);padding:10px 12px;border-radius:var(--r);margin-bottom:12px;font-size:12px;}.fee-row{display:flex;justify-content:space-between;margin-bottom:4px;color:var(--tx3);}.fee-row:last-child{margin-bottom:0;font-weight:700;color:var(--tx);}
.warn-note{font-size:11px;color:var(--tx3);margin-top:10px;padding-top:10px;border-top:1px solid var(--bdr);}
/* Order book */
.ob-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.ob-side{font-size:11px;}.ob-hd{font-weight:700;margin-bottom:6px;}.ob-hd.ask{color:var(--dan);}.ob-hd.bid{color:var(--suc);}.ob-row{display:flex;justify-content:space-between;padding:3px 0;font-size:11px;color:var(--tx2);}.ob-mid{text-align:center;font-weight:800;font-size:14px;padding:8px 0;}
.live-dot{width:8px;height:8px;background:var(--suc);border-radius:50%;display:inline-block;animation:blink 1s infinite;margin-right:4px;}
@keyframes blink{0%,49%,100%{opacity:1;}50%,99%{opacity:.3;}}
/* Tables */
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:6px 10px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:7px 10px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.badge-buy{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;display:inline-block;}.badge-sell{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;display:inline-block;}
.st-working{color:var(--suc);font-weight:700;}.st-partial{color:var(--wrn);font-weight:700;}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}.act-link.danger{color:var(--dan);}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: collection.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}.btn.suc:hover{background:#D0EEE4;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}.cb{padding:14px 16px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.form-group{margin-bottom:14px;}.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;text-transform:uppercase;}.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}.form-input:focus{border-color:var(--pur);}select.form-input{cursor:pointer;}.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}.tab-panel{display:none;}.tab-panel.active{display:block;}

/* ══════════ COLLECTION-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--wrn);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}
.coll-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.rule-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:border-color .15s;}.rule-card:hover{border-color:var(--pur);}.rule-card.active-rule{border-color:var(--pur);background:var(--pur-bg);}
.rule-name{font-size:13px;font-weight:700;margin-bottom:3px;}.rule-desc{font-size:11px;color:var(--tx3);line-height:1.5;}
.rule-meta{display:flex;gap:12px;margin-top:8px;font-size:10px;color:var(--tx3);}
.st-done{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-running{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-partial{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-failed{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
.preview-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.preview-row:last-child{border-bottom:none;}.preview-k{color:var(--tx3);}.preview-v{font-weight:600;}
.shortfall-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.shortfall-row:last-child{border-bottom:none;}
.shortfall-acct{font-weight:600;flex:1;}.shortfall-bal{color:var(--tx3);}.shortfall-short{color:var(--dan);font-weight:700;}
.shortfall-action{display:flex;gap:6px;}
.expand-toggle{background:none;border:none;color:var(--pur);font-size:11px;font-weight:600;cursor:pointer;padding:6px 0;display:flex;align-items:center;gap:4px;}.expand-toggle:hover{text-decoration:underline;}
.agg-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--surf2);border-radius:var(--r);margin-bottom:6px;font-size:12px;}
.agg-row-strategy{font-weight:700;display:flex;align-items:center;gap:8px;}
.agg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.agg-row-detail{display:flex;gap:16px;font-size:11px;color:var(--tx3);}
.agg-row-val{font-weight:700;color:var(--tx);}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: withdrawals.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}
.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}
.cb{padding:14px 16px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}

/* ══════════ WITHDRAWALS-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}
.stat-card.alert{border-left:3px solid var(--wrn);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}
.stat-meta{font-size:11px;color:var(--tx3);}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.tab-panel{display:none;}.tab-panel.active{display:block;}
.wd-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.form-group{margin-bottom:14px;}.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;text-transform:uppercase;}.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}.form-input:focus{border-color:var(--pur);}select.form-input{cursor:pointer;}.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}
.optgroup-lbl{font-weight:700;color:var(--tx2);}
.fee-box{background:var(--surf2);padding:10px 12px;border-radius:var(--r);margin-bottom:12px;font-size:12px;}.fee-row{display:flex;justify-content:space-between;margin-bottom:4px;color:var(--tx3);}.fee-row:last-child{margin-bottom:0;font-weight:700;color:var(--tx);}
.st-done{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-failed{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-approval{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.type-fiat{background:var(--surf2);color:var(--tx2);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.type-crypto{background:var(--pur-bg);color:var(--pur-tx);font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: distribution.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}.btn.suc{background:var(--suc-bg);color:var(--suc-tx);border-color:#B0DCC8;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}.ch{padding:11px 15px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:8px;}.ch-ttl{font-size:12px;font-weight:700;flex:1;}.ch-bdg{font-size:9px;font-weight:700;padding:2px 7px;border-radius:8px;}.ch-bdg.d{background:var(--dan-bg);color:var(--dan-tx);}.ch-bdg.w{background:var(--wrn-bg);color:var(--wrn-tx);}.ch-bdg.s{background:var(--suc-bg);color:var(--suc-tx);}.cb{padding:14px 16px;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.form-group{margin-bottom:14px;}.form-label{font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;display:block;text-transform:uppercase;}.form-input{width:100%;height:34px;border:1px solid var(--bdr2);border-radius:var(--r);padding:0 10px;font-size:12px;color:var(--tx);background:var(--surf);outline:none;font-family:inherit;}.form-input:focus{border-color:var(--pur);}select.form-input{cursor:pointer;}.form-hint{font-size:10px;color:var(--tx3);margin-top:4px;}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);margin-bottom:20px;}.tab{padding:10px 18px;font-size:12px;font-weight:600;color:var(--tx3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;}.tab:hover{color:var(--tx2);}.tab.active{color:var(--pur);border-bottom-color:var(--pur);}.tab-panel{display:none;}.tab-panel.active{display:block;}

/* ══════════ DISTRIBUTION-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--wrn);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}
.dist-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.rule-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:border-color .15s;}.rule-card:hover{border-color:var(--pur);}.rule-card.active-rule{border-color:var(--pur);background:var(--pur-bg);}
.rule-name{font-size:13px;font-weight:700;margin-bottom:3px;}.rule-desc{font-size:11px;color:var(--tx3);line-height:1.5;}
.rule-meta{display:flex;gap:12px;margin-top:8px;font-size:10px;color:var(--tx3);}
.st-done{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-running{background:var(--inf-bg);color:var(--inf-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-partial{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-failed{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.act-link{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}
.preview-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.preview-row:last-child{border-bottom:none;}.preview-k{color:var(--tx3);}.preview-v{font-weight:600;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: txfeed.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#686880;color:#fff;border-color:#686880;}.btn.pri:hover{background:#585870;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--tx2);}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:16px;max-width:none;padding:0;box-shadow:none;width:auto;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}tbody td{padding:9px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);cursor:pointer;}
.act-link{color:#686880;cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.act-link:hover{text-decoration:underline;}

/* ══════════ TXFEED-SPECIFIC ══════════ */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px 18px;}.stat-card.alert{border-left:3px solid var(--wrn);}.stat-card.danger{border-left:3px solid var(--dan);}
.stat-lbl{font-size:11px;font-weight:600;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}.stat-val{font-size:18px;font-weight:700;margin-bottom:3px;}.stat-meta{font-size:11px;color:var(--tx3);}
.filter-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}.filter-sel{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;color:var(--tx2);cursor:pointer;}.filter-search{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;flex:1;max-width:220px;outline:none;}.filter-search:focus{border-color:#686880;}
.filter-toggle{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx3);cursor:pointer;background:var(--surf);margin-left:auto;}.filter-toggle:hover{background:var(--surf2);}.filter-toggle.on{background:var(--wrn-bg);border-color:#E8CFA0;color:var(--wrn-tx);}
.filter-toggle-dot{width:7px;height:7px;border-radius:50%;background:var(--bdr2);}.filter-toggle.on .filter-toggle-dot{background:var(--wrn);}
.type-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;display:inline-block;}
.type-trade{background:var(--pur-bg);color:var(--pur-tx);}.type-deposit{background:var(--suc-bg);color:var(--suc-tx);}.type-withdrawal{background:var(--wrn-bg);color:var(--wrn-tx);}.type-transfer{background:var(--inf-bg);color:var(--inf-tx);}.type-distribution{background:#EEEAF8;color:#4A3F8A;}.type-collection{background:var(--surf2);color:var(--tx2);}
.dir-in{color:var(--suc);font-weight:700;}.dir-out{color:var(--dan);font-weight:700;}
.flag-none{color:var(--tx3);font-size:10px;}.flag-badge{font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;display:inline-block;}
.flag-velocity{background:var(--dan-bg);color:var(--dan-tx);}.flag-large{background:var(--wrn-bg);color:var(--wrn-tx);}.flag-pattern{background:var(--pur-bg);color:var(--pur-tx);}.flag-mandate{background:var(--dan-bg);color:var(--dan-tx);}
.flagged-row td{background:#FFFBF8!important;}.flagged-row:hover td{background:#FFF5EE!important;}
.live-indicator{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--suc);padding:4px 10px;background:var(--suc-bg);border-radius:var(--r);}
.live-dot{width:8px;height:8px;background:var(--suc);border-radius:50%;animation:blink 1.5s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
.ro-banner{background:var(--inf-bg);border:1px solid #B0D0F0;border-radius:var(--r);padding:10px 14px;font-size:11px;color:var(--inf-tx);line-height:1.6;margin-bottom:18px;display:flex;align-items:center;gap:10px;}
.ro-banner-ico{font-size:16px;flex-shrink:0;}
/* Drawer */
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}.drawer-bg.open{display:flex;}
.drawer{width:480px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-section{margin-bottom:18px;}.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}
.flag-reason{background:var(--wrn-bg);border:1px solid #E8CFA0;border-radius:var(--r);padding:12px 14px;margin-bottom:14px;}
.flag-reason-ttl{font-size:11px;font-weight:700;color:var(--wrn-tx);margin-bottom:6px;}.flag-reason-desc{font-size:11px;color:var(--wrn-tx);line-height:1.6;}
.flag-reason.critical{background:var(--dan-bg);border-color:#F0C0C0;}.flag-reason.critical .flag-reason-ttl,.flag-reason.critical .flag-reason-desc{color:var(--dan-tx);}
.history-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--bdr);font-size:11px;}.history-item:last-child{border-bottom:none;}
.history-time{color:var(--tx3);min-width:70px;flex-shrink:0;}.history-text{color:var(--tx2);line-height:1.5;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: approvals.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}
.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}
.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}
.role-strip{display:flex;gap:5px;margin-bottom:6px;}
.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}
.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}
.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}
.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}
.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}
.sb-grp{padding:10px 0 2px;}
.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}
.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}
.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}
.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}
.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}
.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}
.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}
.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}
.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}
.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}
.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}
.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}
.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}
.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}
.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}
.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}
.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}
.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}
.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}
.tbl-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:11px;}
thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--surf2);cursor:pointer;}
.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:200;justify-content:flex-end;}.drawer-bg.open{display:flex;}
.drawer{width:400px;background:var(--surf);height:100%;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1);}
.drawer-hd{padding:18px 22px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;}
.drawer-ttl{font-size:14px;font-weight:700;margin-bottom:3px;}.drawer-sub{font-size:11px;color:var(--tx3);}
.drawer-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--tx3);padding:2px 6px;border-radius:var(--r);}.drawer-close:hover{background:var(--surf2);color:var(--tx);}
.drawer-body{padding:18px 22px;}
.dl-section{margin-bottom:18px;}.dl-section-ttl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:10px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}
.dl-k{color:var(--tx3);}.dl-v{font-weight:600;text-align:right;}

/* ══════════ APPROVALS-SPECIFIC ══════════ */
.stat-strip{display:flex;gap:12px;margin-bottom:20px;}
.stat-chip{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:12px 16px;}
.stat-chip-lbl{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.stat-chip-val{font-size:16px;font-weight:700;}
.filter-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}
.filter-sel{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;color:var(--tx2);cursor:pointer;}
.filter-search{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;flex:1;max-width:240px;outline:none;}.filter-search:focus{border-color:var(--pur);}
.p-high{color:var(--dan);font-weight:700;}.p-med{color:var(--wrn);font-weight:700;}.p-norm{color:var(--tx3);font-weight:600;}
.badge-pending{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.badge-overdue{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.badge-approved{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.tbl-actions{display:flex;gap:8px;}.tbl-actions a{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.tbl-actions a:hover{text-decoration:underline;}
.check-row{display:flex;align-items:center;gap:8px;font-size:11px;margin-bottom:6px;}
.check-ok{color:var(--suc);font-weight:700;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: reconciliation.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}.shell{display:flex;height:100vh;}.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:20px 24px;margin-bottom:16px;max-width:none;box-shadow:none;width:auto;}.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
.recon-status{display:inline-flex;align-items:center;gap:6px;background:var(--suc-bg);color:var(--suc-tx);padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;margin-left:8px;}
.dl-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr);font-size:12px;}.dl-row:last-child{border-bottom:none;}.dl-k{color:var(--tx3);}.dl-v{font-weight:600;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.st-match{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.st-var{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: interventions.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}.shell{display:flex;height:100vh;}.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.danger{background:var(--dan-bg);color:var(--dan-tx);border-color:#F0C0C0;}.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.st-active{background:var(--suc-bg);color:var(--suc-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}.st-frozen{background:var(--dan-bg);color:var(--dan-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}.st-restricted{background:var(--wrn-bg);color:var(--wrn-tx);font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.tbl-actions{display:flex;gap:8px;}.tbl-actions a{color:var(--pur);cursor:pointer;font-size:11px;font-weight:600;text-decoration:none;}.tbl-actions a:hover{text-decoration:underline;}.tbl-actions a.act-danger{color:var(--dan);}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: audit.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}.shell{display:flex;height:100vh;}.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;max-width:none;padding:0;box-shadow:none;width:auto;}.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
.filter-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center;}.filter-search{background:var(--surf);border:1px solid var(--bdr2);border-radius:var(--r);padding:6px 10px;font-size:11px;flex:1;max-width:280px;outline:none;}.filter-search:focus{border-color:var(--pur);}.filter-date{padding:6px 10px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-family:inherit;}
table{width:100%;border-collapse:collapse;font-size:11px;}thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;}tbody td{padding:10px 12px;border-bottom:1px solid var(--bdr);}tbody tr:last-child td{border-bottom:none;}tbody tr:hover td{background:var(--surf2);}
.cat-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;display:inline-block;}
.cat-auth{background:var(--inf-bg);color:var(--inf-tx);}.cat-trade{background:var(--pur-bg);color:var(--pur-tx);}.cat-gov{background:var(--wrn-bg);color:var(--wrn-tx);}.cat-system{background:var(--surf2);color:var(--tx3);}.cat-kyc{background:var(--suc-bg);color:var(--suc-tx);}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}

/* ══════════════════════════════════════════════════
   Source: aml.html
   ══════════════════════════════════════════════════ */

*{box-sizing:border-box;margin:0;padding:0;}:root{--bg:#F7F5F2;--surf:#fff;--surf2:#F0EEE9;--bdr:#E0DDD8;--bdr2:#D0CCC6;--tx:#1A1A1A;--tx2:#555;--tx3:#AAA;--r:8px;--rl:12px;--sw:220px;--th:48px;--dan:#C0392B;--dan-bg:#FDECEC;--dan-tx:#7A1A1A;--wrn:#A0600A;--wrn-bg:#FEF6E7;--wrn-tx:#6A3A08;--suc:#1F6B4A;--suc-bg:#E3F2ED;--suc-tx:#104030;--inf:#1A5C96;--inf-bg:#DDEEF9;--inf-tx:#0C3A6A;--pur:#4A3F8A;--pur-bg:#EEEAF8;--pur-tx:#2A2060;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--tx);font-size:13px;height:100vh;overflow:hidden;display:block;align-items:stretch;justify-content:flex-start;padding:0;min-height:auto;}
.shell{display:flex;height:100vh;}.sidebar{width:var(--sw);flex-shrink:0;background:#18181F;display:flex;flex-direction:column;height:100vh;overflow:hidden;}.sb-hd{padding:14px 14px 10px;border-bottom:1px solid #2A2A35;flex-shrink:0;}.sb-wm{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3A3A52;margin-bottom:8px;}.role-strip{display:flex;gap:5px;margin-bottom:6px;}.pip{width:9px;height:9px;border-radius:50%;cursor:pointer;transition:opacity .15s,transform .1s;flex-shrink:0;}.pip.on{opacity:1;transform:scale(1.15);}.pip.off{opacity:.22;}.pip-principal{background:#7B6FC4;}.pip-client{background:#2E8F62;}.pip-trader{background:#C07A20;}.pip-observer{background:#686880;}.role-lbl{font-size:11px;font-weight:700;color:#C0C0D0;}.role-sub{font-size:10px;color:#3A3A52;margin-top:1px;}.perm-btn{margin-top:8px;width:100%;padding:5px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#7A7A90;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;}.perm-btn:hover{background:#2A2A3A;color:#C0C0D0;}.sb-nav{flex:1;overflow-y:auto;padding-bottom:8px;}.sb-grp{padding:10px 0 2px;}.sb-gl{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:0 14px 5px;display:flex;align-items:center;gap:6px;color:#3A3A52;}.sg-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}.sb-item{display:flex;align-items:center;gap:9px;padding:7px 14px;border-left:2px solid transparent;cursor:pointer;min-height:32px;text-decoration:none;}.sb-item:hover{background:#22222E;}.sb-item.active{background:#222230;border-left-color:var(--sc,#7B6FC4);}.sb-item.active .sb-lbl{color:#FFF;font-weight:600;}.sb-item.active .sb-ico{color:var(--sc,#7B6FC4);}.sb-item.hidden{display:none;}.sb-ico{width:14px;font-size:11px;color:#3A3A55;flex-shrink:0;text-align:center;}.sb-lbl{font-size:12px;color:#7A7A90;flex:1;}.sb-item:hover .sb-lbl{color:#C0C0D0;}.sb-bdg{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;background:#2A2A38;color:#505068;}.sb-bdg.hot{background:#3A1A1A;color:#E07070;}.sb-bdg.wrn{background:#2A1E10;color:#C08040;}.sb-ft{border-top:1px solid #2A2A35;padding:6px 0;flex-shrink:0;}
.pp{width:200px;background:#18181F;border-right:1px solid #2A2A35;padding:14px;display:none;flex-direction:column;gap:10px;flex-shrink:0;overflow-y:auto;}.pp.open{display:flex;}.pp-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;}.pp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid #2A2A35;}.pp-row:last-child{border-bottom:none;}.pp-name{font-size:11px;color:#9A9AB0;display:flex;align-items:center;gap:6px;}.pp-dot{width:8px;height:8px;border-radius:50%;}.tog{width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;position:relative;transition:background .15s;}.tog.on{background:#1F6B4A;}.tog.off{background:#2A2A38;}.tog::after{content:'';position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;}.tog.on::after{left:14px;}.tog.off::after{left:2px;}.pp-pre{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#3A3A52;padding-top:4px;}.pre-btn{width:100%;padding:6px 8px;background:#22222E;border:1px solid #2A2A38;border-radius:var(--r);color:#9A9AB0;font-size:10px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;margin-top:4px;}.pre-btn:hover{background:#2A2A3A;color:#C0C0D0;}.pre-btn.active-pre{background:#2A2A3A;border-color:#4A4A60;color:#E0E0F0;}.pre-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.main{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden;}.topbar{height:var(--th);background:var(--surf);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;gap:8px;flex-shrink:0;}.tb-crumb{font-size:11px;color:var(--tx3);}.tb-sep{color:var(--bdr2);}.tb-title{font-size:13px;font-weight:700;}.tb-right{margin-left:auto;display:flex;align-items:center;gap:8px;}.btn{height:28px;padding:0 11px;border:1px solid var(--bdr2);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--tx2);background:var(--surf);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:background .1s;width:auto;margin-top:0;}.btn:hover{background:var(--surf2);opacity:1;}.btn.pri{background:#4A3F8A;color:#fff;border-color:#4A3F8A;}.btn.pri:hover{background:#3A2F7A;}.notif{position:relative;width:28px;height:28px;border:1px solid var(--bdr);border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;}.ndot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--dan);border:1.5px solid var(--surf);}.ava{width:28px;height:28px;border-radius:50%;background:#EEEAF8;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#4A3F8A;}
.content{flex:1;overflow-y:auto;padding:20px 24px;}.pg-title{font-size:19px;font-weight:700;margin-bottom:3px;}.pg-sub{font-size:12px;color:var(--tx3);margin-bottom:18px;}.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;padding:20px 24px;margin-bottom:16px;max-width:none;box-shadow:none;width:auto;}.toast{position:fixed;bottom:20px;right:20px;background:#1A1A1A;color:#fff;padding:9px 14px;border-radius:var(--r);font-size:12px;font-weight:600;z-index:999;opacity:0;transform:translateY(6px);transition:all .2s;pointer-events:none;}.toast.show{opacity:1;transform:none;}
.flag-grid{display:flex;gap:16px;margin-bottom:20px;}.flag-card{flex:1;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:20px 24px;}.flag-title{font-size:14px;font-weight:700;margin-bottom:8px;}.flag-desc{font-size:12px;color:var(--tx3);margin-bottom:6px;}.flag-meta{font-size:12px;color:var(--tx3);margin-bottom:14px;}.flag-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--bdr);padding-top:12px;}.flag-status{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;}.flag-status.open{background:var(--suc-bg);color:var(--suc-tx);}.flag-actions a{color:var(--pur);font-size:12px;font-weight:600;cursor:pointer;text-decoration:none;margin-left:8px;}.flag-actions a:hover{text-decoration:underline;}
.badge-med{background:var(--wrn-bg);color:var(--wrn-tx);padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;}.badge-low{background:var(--surf2);color:var(--tx3);padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;}
.mandate-tbl{width:100%;border-collapse:collapse;font-size:12px;margin-top:14px;}
.mandate-tbl th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:var(--tx3);border-bottom:1px solid var(--bdr);background:var(--surf2);text-transform:uppercase;letter-spacing:.04em;}
.mandate-tbl td{padding:10px 12px;border-bottom:1px solid var(--bdr);}
.mandate-tbl tr:last-child td{border-bottom:none;}
.mandate-ok{color:var(--suc);font-weight:700;}
#sidebar-host{width:var(--sw);flex-shrink:0;background:#18181F;height:100vh;}


/* ══════════════════════════════════════════════════
   Scoped overrides for standalone pages
   These need higher specificity to override platform defaults
   ══════════════════════════════════════════════════ */

/* ── Password Page ── */
body.page-password {
  --bg: #F7F5F2;
  --surf: #FFFFFF;
  --bdr: #E4E0DC;
  --tx: #1A1A1A;
  --tx2: #666;
  --tx3: #999;
  --r: 12px;
  --rl: 16px;
  --err: #C0392B;
  --err-bg: #FEF2F2;
  --err-bdr: #FECACA;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--bg);
  color: var(--tx);
  min-height: 100vh;
  height: auto;
  overflow: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

body.page-password .card {
  width: 100%;
  max-width: 400px;
  background: var(--surf);
  border: 1px solid var(--bdr);
  border-radius: var(--rl);
  padding: 40px 36px 36px;
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
  overflow: visible;
}

body.page-password .badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #1A1A1A;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 16px;
  border: none;
}

body.page-password .btn {
  margin-top: 20px;
  width: 100%;
  height: 42px;
  background: #1A1A1A;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: opacity .15s;
  letter-spacing: .01em;
  padding: 0;
  display: block;
}

body.page-password .btn:hover {
  opacity: .85;
  background: #1A1A1A;
}

body.page-password .btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}

body.page-password label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--tx3);
  margin-bottom: 8px;
}

/* ── Start / Role Selection Page ── */
body.page-start {
  --bg: #F7F5F2;
  --surf: #FFFFFF;
  --bdr: #E4E0DC;
  --tx: #1A1A1A;
  --tx2: #666;
  --tx3: #999;
  --r: 12px;
  --rl: 16px;
  --dm: #4A3F8A;
  --dm-bg: #EEEAF8;
  --dm-bdr: #7B6FC5;
  --dm-tx2: #6B5FBB;
  --ifa: #1F6B4A;
  --ifa-bg: #E3F2ED;
  --ifa-bdr: #2E8F62;
  --ifa-tx2: #2E8F62;
  --po: #7A4A10;
  --po-bg: #FDF3E7;
  --po-bdr: #A8661A;
  --po-tx2: #A8661A;
  --gc: #3A3A3A;
  --gc-bg: #EFEFED;
  --gc-bdr: #686870;
  --gc-tx2: #777;
  --adm: #0C4A6E;
  --adm-bg: #E8F4FA;
  --adm-bdr: #3B8EBF;
  --adm-tx2: #2A7BAA;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--bg);
  color: var(--tx);
  min-height: 100vh;
  height: auto;
  overflow: auto;
  display: flex;
  justify-content: center;
  padding: 48px 24px 80px;
}

body.page-start .toast {
  bottom: 24px;
  left: 50%;
  right: auto;
  transform: translateX(-50%) translateY(8px);
  border-radius: 10px;
  padding: 10px 20px;
  white-space: nowrap;
}

body.page-start .toast.show {
  transform: translateX(-50%) translateY(0);
}

body.page-start .role-sub {
  font-size: 12px;
  color: var(--tx3);
  line-height: 1.45;
  margin-top: 0;
}

/* ══════════ TASK VIEWER ══════════ */
.task-icon-btn{background:none;border:1px solid var(--bdr2);border-radius:var(--r);width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--tx2);transition:all .15s;}
.task-icon-btn:hover{background:var(--hover);color:var(--tx);border-color:var(--pur);}
.task-modal{width:560px;height:80vh;display:flex;flex-direction:column;overflow:hidden;}
.task-modal .modal-body{flex:1;overflow-y:auto;}
.task-close-btn{background:none;border:none;font-size:22px;color:var(--tx3);cursor:pointer;padding:0 4px;line-height:1;}
.task-close-btn:hover{color:var(--tx);}
.task-role-label{display:inline-block;font-size:10px;font-weight:700;color:#fff;padding:2px 8px;border-radius:10px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;}
.task-back-link{font-size:11px;color:var(--pur);text-decoration:none;}
.task-back-link:hover{text-decoration:underline;}
.task-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--bdr);padding-bottom:0;}
.task-tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;font-size:12px;font-weight:600;color:var(--tx3);cursor:pointer;display:flex;align-items:center;gap:6px;font-family:inherit;margin-bottom:-1px;}
.task-tab:hover{color:var(--tx);}
.task-tab.active{color:var(--pur);border-bottom-color:var(--pur);}
.task-section-label{font-size:11px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.task-section-hint{font-size:11px;color:var(--tx3);margin:-6px 0 10px;font-style:italic;}
.task-count{background:var(--bdr);color:var(--tx2);font-size:10px;padding:1px 6px;border-radius:8px;font-weight:600;}
.task-role-divider{font-size:10px;font-weight:700;color:var(--tx3);margin:12px 0 6px;display:flex;align-items:center;gap:6px;}
.task-role-divider span{width:8px;height:8px;border-radius:50%;display:inline-block;}
.task-accordion{border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:6px;overflow:hidden;transition:border-color .15s;}
.task-accordion:hover{border-color:var(--bdr2);}
.task-accordion.boundary{border-left:3px solid var(--wrn,#E8A830);}
.task-accordion-hd{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;user-select:none;}
.task-accordion-hd:hover{background:var(--hover,rgba(0,0,0,.02));}
.task-id{font-size:10px;font-weight:700;color:var(--pur);background:var(--pur-bg,rgba(123,111,196,.1));padding:2px 6px;border-radius:4px;white-space:nowrap;}
.task-title{font-size:12px;font-weight:600;color:var(--tx);flex:1;}
.task-chevron{font-size:10px;color:var(--tx3);transition:transform .2s;}
.task-accordion.open .task-chevron{transform:rotate(180deg);}
.task-accordion-body{display:none;padding:0 12px 12px;border-top:1px solid var(--bdr);}
.task-accordion.open .task-accordion-body{display:block;}
.task-field{margin-top:10px;}
.task-field-label{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;}
.task-field-value{font-size:12px;color:var(--tx);line-height:1.6;}
.task-instructions p{margin:0 0 16px;}
