/* =====================================================================
   TraderPro — design system. Light, professional, indigo accent.
   ===================================================================== */
:root{
  --bg:#f5f6f8; --surface:#ffffff; --surface-2:#fbfcfd; --raised:#ffffff;
  --border:#e6e8ec; --border-strong:#d6dae1;
  --text:#0f172a; --text-2:#475569; --muted:#7c8798; --faint:#9aa4b3;
  --brand:#4f46e5; --brand-600:#4338ca; --brand-700:#3730a3;
  --brand-tint:#eef2ff; --brand-ring:rgba(79,70,229,.16);
  --up:#11936b; --up-tint:#e7f6f0; --down:#d23a47; --down-tint:#fdecee;
  --warn:#b7791f; --warn-tint:#fbf3e2;
  --r-lg:14px; --r:10px; --r-sm:8px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --sh-2:0 4px 12px rgba(16,24,40,.08);
  --sh-pop:0 12px 32px rgba(16,24,40,.14);
  --sidebar:252px; --sidebar-collapsed:74px; --topbar:60px;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",ui-monospace,"JetBrains Mono",Consolas,monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font); background:var(--bg); color:var(--text);
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased;
}
a{color:var(--brand);text-decoration:none;}
a:hover{color:var(--brand-600);}
h1,h2,h3,h4,h5{margin:0;font-weight:650;letter-spacing:-.01em;color:var(--text);}
small{font-size:12px;}
::selection{background:var(--brand-ring);}
*::-webkit-scrollbar{width:9px;height:9px;}
*::-webkit-scrollbar-thumb{background:#cfd5dd;border-radius:9px;border:2px solid var(--bg);}
*::-webkit-scrollbar-thumb:hover{background:#b9c0cb;}

/* ---------------- layout ---------------- */
.app{min-height:100vh;}
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:var(--sidebar);
  background:var(--surface);border-right:1px solid var(--border);
  display:flex;flex-direction:column;z-index:40;transition:width .18s ease;
}
.sidebar .brand{
  display:flex;align-items:center;gap:10px;height:var(--topbar);
  padding:0 18px;border-bottom:1px solid var(--border);flex:0 0 auto;
}
.brand .logo{
  width:30px;height:30px;border-radius:8px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--brand),#7c75f0);
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px;
  box-shadow:var(--sh-1);
}
.brand .name{font-weight:750;font-size:16px;letter-spacing:-.02em;white-space:nowrap;}
.brand .name b{color:var(--brand);}

.nav{flex:1 1 auto;overflow-y:auto;padding:12px 10px 24px;}
.nav .group{margin-top:14px;}
.nav .group:first-child{margin-top:2px;}
.nav .group-label{
  font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--faint);padding:6px 12px;white-space:nowrap;
}
.nav a{
  display:flex;align-items:center;gap:11px;padding:9px 12px;margin:1px 0;
  border-radius:var(--r-sm);color:var(--text-2);font-weight:550;white-space:nowrap;
  transition:background .12s,color .12s;
}
.nav a:hover{background:var(--surface-2);color:var(--text);}
.nav a.active{background:var(--brand-tint);color:var(--brand-700);}
.nav a.active .ico{color:var(--brand);}
.nav .ico{width:19px;height:19px;flex:0 0 auto;color:var(--muted);}
.nav a.active{position:relative;}
.nav a.active::before{
  content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;
  border-radius:0 3px 3px 0;background:var(--brand);
}

/* collapsed sidebar (icon rail) */
body.collapsed .sidebar{width:var(--sidebar-collapsed);}
body.collapsed .sidebar .name,
body.collapsed .nav .group-label,
body.collapsed .nav a span{display:none;}
body.collapsed .nav a{justify-content:center;padding:11px;}
body.collapsed .brand{justify-content:center;padding:0;}

/* ---------------- topbar ---------------- */
.topbar{
  position:fixed;top:0;right:0;left:var(--sidebar);height:var(--topbar);
  background:rgba(255,255,255,.85);backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--border);z-index:30;
  display:flex;align-items:center;gap:14px;padding:0 22px;transition:left .18s ease;
}
body.collapsed .topbar{left:var(--sidebar-collapsed);}
.icon-btn{
  width:38px;height:38px;border-radius:var(--r-sm);border:1px solid transparent;
  background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--text-2);
  position:relative;transition:background .12s,border-color .12s,color .12s;
}
.icon-btn:hover{background:var(--surface-2);border-color:var(--border);color:var(--text);}
.icon-btn .ico{width:20px;height:20px;}
.icon-btn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;
  background:var(--down);border:2px solid var(--surface);}
.search{
  flex:1 1 460px;max-width:520px;position:relative;
}
.search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);
  width:17px;height:17px;color:var(--muted);}
.search input{
  width:100%;height:40px;padding:0 14px 0 38px;border-radius:var(--r-pill);
  border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:13.5px;
}
.search input::placeholder{color:var(--faint);}
.search input:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px var(--brand-ring);}
.search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);
  font-family:var(--mono);font-size:11px;color:var(--muted);background:#fff;
  border:1px solid var(--border);border-radius:6px;padding:2px 6px;}
.topbar .spacer{flex:1;}
.account{
  display:flex;align-items:center;gap:10px;padding:5px 10px 5px 6px;border-radius:var(--r-pill);
  border:1px solid var(--border);background:var(--surface);cursor:pointer;
}
.account:hover{background:var(--surface-2);}
.avatar{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brand),#8b84f2);color:#fff;font-weight:700;font-size:13px;}
.account .who{line-height:1.15;}
.account .who b{font-size:13px;font-weight:650;display:block;}
.account .who small{color:var(--muted);font-size:11px;}

/* ---------------- content ---------------- */
.content{margin-left:var(--sidebar);padding:calc(var(--topbar) + 24px) 26px 48px;transition:margin .18s ease;}
body.collapsed .content{margin-left:var(--sidebar-collapsed);}
.container{max-width:1320px;margin:0 auto;}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.page-head h1{font-size:22px;}
.page-head .sub{color:var(--muted);font-size:13.5px;margin-top:3px;}
.crumbs{font-size:12.5px;color:var(--faint);margin-bottom:6px;}
.crumbs a{color:var(--muted);}
.head-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* ---------------- grid ---------------- */
.grid{display:grid;gap:18px;}
.cols-2{grid-template-columns:repeat(2,1fr);}
.cols-3{grid-template-columns:repeat(3,1fr);}
.cols-4{grid-template-columns:repeat(4,1fr);}
.span-2{grid-column:span 2;}
.span-3{grid-column:span 3;}
@media(max-width:1100px){.cols-4{grid-template-columns:repeat(2,1fr);}.cols-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:720px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr;}.span-2,.span-3{grid-column:span 1;}}

/* ---------------- card ---------------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1);}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);}
.card-head h3{font-size:15px;}
.card-head .link{font-size:12.5px;color:var(--muted);font-weight:600;}
.card-head .link:hover{color:var(--brand);}
.card-body{padding:18px;}
.card-body.tight{padding:8px;}

/* stat card */
.stat{padding:18px;}
.stat .label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;font-weight:600;}
.stat .label .ico{width:16px;height:16px;}
.stat .value{font-size:26px;font-weight:750;letter-spacing:-.02em;margin-top:10px;font-variant-numeric:tabular-nums;}
.stat .delta{margin-top:6px;font-size:12.5px;font-weight:650;}
.stat .delta.up{color:var(--up);} .stat .delta.down{color:var(--down);}

/* ---------------- table ---------------- */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
.tbl th{
  text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);font-weight:700;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap;
}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;font-variant-numeric:tabular-nums;}
.tbl tr:last-child td{border-bottom:none;}
.tbl tbody tr{transition:background .1s;}
.tbl tbody tr:hover{background:var(--surface-2);}
.tbl .num{text-align:right;font-family:var(--mono);font-size:13px;}
.tbl .sym{display:flex;align-items:center;gap:10px;font-weight:650;}
.coin{width:28px;height:28px;border-radius:50%;flex:0 0 auto;background:var(--surface-2);}
.tbl .muted{color:var(--muted);font-weight:500;}

/* ---------------- badges / pills ---------------- */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;padding:3px 9px;border-radius:var(--r-pill);}
.badge.up{background:var(--up-tint);color:var(--up);}
.badge.down{background:var(--down-tint);color:var(--down);}
.badge.neutral{background:#eef1f5;color:var(--text-2);}
.badge.brand{background:var(--brand-tint);color:var(--brand-700);}
.badge.warn{background:var(--warn-tint);color:var(--warn);}
.up{color:var(--up);} .down{color:var(--down);}
.dot-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px var(--up-tint);}

/* ---------------- buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:38px;padding:0 15px;border-radius:var(--r-sm);font-size:13.5px;font-weight:650;
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;
  transition:background .12s,border-color .12s,box-shadow .12s,transform .05s;white-space:nowrap;
}
.btn:hover{background:var(--surface-2);}
.btn:active{transform:translateY(1px);}
.btn .ico{width:17px;height:17px;}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--sh-1);}
.btn-primary:hover{background:var(--brand-600);border-color:var(--brand-600);}
.btn-success{background:var(--up);border-color:var(--up);color:#fff;}
.btn-danger{background:var(--down);border-color:var(--down);color:#fff;}
.btn-ghost{border-color:transparent;background:transparent;color:var(--text-2);}
.btn-ghost:hover{background:var(--surface-2);color:var(--text);}
.btn-sm{height:32px;padding:0 11px;font-size:12.5px;}
.btn-block{width:100%;}

/* segmented control / tabs */
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;gap:2px;}
.seg button{border:none;background:transparent;padding:6px 13px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer;}
.seg button.active{background:#fff;color:var(--text);box-shadow:var(--sh-1);}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:18px;flex-wrap:wrap;}
.tabs a{padding:10px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;}
.tabs a.active{color:var(--brand-700);border-bottom-color:var(--brand);}

/* fields */
.field{margin-bottom:14px;}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:6px;}
.input,select.input,textarea.input{
  width:100%;height:40px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--border-strong);
  background:#fff;color:var(--text);font-size:14px;font-family:inherit;
}
textarea.input{height:auto;padding:10px 12px;}
.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-ring);}

/* placeholder / empty state for stubbed sections */
.placeholder{
  border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--surface-2);
  padding:46px 28px;text-align:center;color:var(--muted);
}
.placeholder .pico{width:46px;height:46px;border-radius:12px;background:var(--brand-tint);color:var(--brand);
  display:grid;place-items:center;margin:0 auto 14px;}
.placeholder .pico .ico{width:24px;height:24px;}
.placeholder h3{font-size:16px;color:var(--text);margin-bottom:6px;}
.placeholder p{max-width:460px;margin:0 auto 18px;font-size:13.5px;}
.feat-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:560px;margin:0 auto;}
.feat-list span{font-size:12.5px;font-weight:600;color:var(--text-2);background:#fff;border:1px solid var(--border);border-radius:var(--r-pill);padding:6px 12px;}

/* misc helpers */
.muted{color:var(--muted);} .right{text-align:right;} .mono{font-family:var(--mono);}
.flex{display:flex;align-items:center;} .between{justify-content:space-between;} .gap{gap:10px;}
.mt{margin-top:18px;} .mb0{margin-bottom:0;}
.divider{height:1px;background:var(--border);margin:16px 0;}
.bar{height:8px;border-radius:6px;background:var(--surface-2);overflow:hidden;}
.bar>span{display:block;height:100%;border-radius:6px;background:var(--brand);}

/* mobile */
.backdrop{display:none;}
@media(max-width:980px){
  .sidebar{transform:translateX(-100%);box-shadow:var(--sh-pop);}
  body.nav-open .sidebar{transform:translateX(0);}
  .topbar{left:0;} body.collapsed .topbar{left:0;}
  .content{margin-left:0;} body.collapsed .content{margin-left:0;}
  .search{flex-basis:200px;} .search kbd{display:none;}
  body.nav-open .backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:35;}
  .account .who{display:none;}
}

/* ---------- mobile bottom nav ---------- */
.mobilenav{display:none;}
@media(max-width:980px){
  .mobilenav{
    display:flex;position:fixed;bottom:0;left:0;right:0;height:62px;z-index:36;
    background:var(--surface);border-top:1px solid var(--border);
    justify-content:space-around;align-items:stretch;
    box-shadow:0 -2px 12px rgba(16,24,40,.06);padding-bottom:env(safe-area-inset-bottom);
  }
  .mobilenav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    color:var(--muted);font-size:10.5px;font-weight:600;text-decoration:none;}
  .mobilenav a.active{color:var(--brand);}
  .mobilenav .ico{width:21px;height:21px;}
  .content{padding-bottom:86px !important;}
  .page-head{align-items:flex-start;}
  .page-head h1{font-size:19px;}
  .stat .value{font-size:22px;}
  .card-body{padding:14px;}
  .topbar{gap:8px;padding:0 14px;}
}
@media(max-width:520px){
  .seg{flex-wrap:wrap;}
  .head-actions{width:100%;}
  .head-actions .btn{flex:1;}
}

/* ---------- sidebar footer (user + logout) ---------- */
.sidebar-foot{display:flex;align-items:center;gap:8px;padding:10px;border-top:1px solid var(--border);}
.sf-user{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:6px;border-radius:var(--r-sm);color:var(--text);}
.sf-user:hover{background:var(--surface-2);}
.sf-meta{min-width:0;line-height:1.2;}
.sf-meta b{font-size:13px;font-weight:650;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sf-meta small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
.sf-logout{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--muted);}
.sf-logout:hover{background:var(--down-tint);color:var(--down);}
body.collapsed .sf-meta,body.collapsed .sf-logout{display:none;}
body.collapsed .sidebar-foot{justify-content:center;}

/* ---------- charting page ---------- */
.chart-toolbar{flex-wrap:wrap;gap:12px;}
.chart-main{height:440px;width:100%;}
.chart-sub{height:160px;width:100%;}
.sub-pane{margin-top:18px;}
.sub-pane .card-head{padding:10px 18px;}
.ind-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--border);}
.ind-label{font-size:12px;color:var(--muted);font-weight:600;margin-right:2px;}
.ind-spacer{flex:1;}
.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);
  border-radius:var(--pill);padding:5px 11px;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;}
.chip:hover{background:var(--surface-2);}
.chip.active{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-700);}
@media(max-width:720px){ .chart-main{height:340px;} }

/* ---------- chart drawing toolbar ---------- */
.draw-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 18px;border-bottom:1px solid var(--border);background:var(--surface-2);}
.draw-bar .tool{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);
  border-radius:var(--r-sm);padding:5px 11px;font-size:12px;font-weight:600;cursor:pointer;}
.draw-bar .tool:hover{background:var(--surface-2);}
.draw-bar .tool.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.tbl th[data-sort]{cursor:pointer;user-select:none;}
.tbl th[data-sort]:hover{color:var(--text);}

/* ---------- dark theme ---------- */
:root[data-theme="dark"]{
  --bg:#0e1117; --surface:#161b25; --surface-2:#1d2430; --raised:#161b25;
  --border:#262e3d; --border-strong:#33405a;
  --text:#e7ebf3; --text-2:#aab3c5; --muted:#8b93a7; --faint:#6b7689;
  --brand-tint:#1d2440; --brand-ring:rgba(99,102,241,.25);
  --up-tint:#0f2a22; --down-tint:#2c1418; --warn-tint:#2c2410;
  --sh-1:0 1px 2px rgba(0,0,0,.4); --sh-2:0 6px 20px rgba(0,0,0,.5); --sh-pop:0 14px 40px rgba(0,0,0,.6);
}
:root[data-theme="dark"] .topbar{background:rgba(22,27,37,.85);}
:root[data-theme="dark"] *::-webkit-scrollbar-thumb{background:#33405a;}
:root[data-theme="dark"] .search input,:root[data-theme="dark"] .input,:root[data-theme="dark"] select.input,:root[data-theme="dark"] textarea.input{background:var(--surface-2);}
:root[data-theme="dark"] img[src*="/images/"]{filter:none;}
.theme-ico-dark{display:none;} :root[data-theme="dark"] .theme-ico-dark{display:block;} :root[data-theme="dark"] .theme-ico-light{display:none;}

/* News page */
.news-card{transition:transform .15s ease,box-shadow .15s ease}
.news-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(20,30,60,.12)}
.news-thumb{height:150px;background-size:cover;background-position:center;background-color:var(--surface-2)}
[data-theme=dark] .news-thumb{background-color:#1b2230}

/* ============================================================
   PHONE-FIRST ENHANCEMENTS
   ============================================================ */
html,body{max-width:100%;overflow-x:hidden;}
img,canvas,svg{max-width:100%;}

/* impersonation banner: full width on mobile */
.imp-banner{position:fixed;left:var(--sidebar);right:0;top:0;z-index:60;background:#b91c1c;color:#fff;
  padding:6px 16px;font-size:13px;display:flex;justify-content:space-between;align-items:center;}
@media(max-width:980px){ .imp-banner{left:0;} }

/* KPI rows: 2-up on small screens instead of one-per-row */
@media(max-width:720px){
  .cols-4{grid-template-columns:repeat(2,1fr);}
  .stat{padding:14px;} .stat .value{font-size:20px;}
  /* tables scroll cleanly rather than squish */
  .card-body.tight{-webkit-overflow-scrolling:touch;}
  .tbl{font-size:13px;}
  .tbl th,.tbl td{white-space:nowrap;padding:10px 12px;}
}

/* phones */
@media(max-width:560px){
  /* 16px inputs prevent iOS zoom-on-focus; 44px = comfortable tap target */
  .input,select.input,textarea.input,.search input{font-size:16px;min-height:44px;}
  .btn{min-height:44px;padding:10px 14px;}
  .btn-sm{min-height:34px;padding:6px 10px;}
  .icon-btn{width:42px;height:42px;}
  .content{padding-left:13px;padding-right:13px;}
  .card-body{padding:13px;}
  .page-head{flex-direction:column;gap:10px;}
  .page-head h1{font-size:18px;}
  .page-head .sub{font-size:12.5px;}
  .head-actions{display:flex;gap:8px;width:100%;}
  .head-actions .btn{flex:1;justify-content:center;}
  /* wrap inline control rows so they never overflow */
  .flex.gap{flex-wrap:wrap;}
  /* chart controls go full width and stack */
  .chart-toolbar{gap:8px;}
  .chart-toolbar .input,.chart-toolbar select.input{flex:1 1 100%;min-width:0;}
  .chart-toolbar .seg{width:100%;}
  .chart-main{height:300px;}
  .chart-sub{height:130px;}
  /* declutter the top bar on phones */
  #langSel{display:none;}
  .topbar .icon-btn[href*="messages"]{display:none;}
  .search{flex:1;min-width:0;}
  /* bigger segmented-control taps */
  .seg button{min-height:38px;padding:7px 10px;}
  /* forms one column */
  .grid.cols-2,.grid.cols-3{grid-template-columns:1fr;}
  /* deposit/QR imagery centers and fits */
  #dQr,#optQr{max-width:60vw;height:auto;}
}

/* very small phones */
@media(max-width:380px){
  .stat .value{font-size:18px;}
  .page-head h1{font-size:17px;}
  .mobilenav a{font-size:10px;}
  .card-head h3{font-size:14px;}
}

/* Markets depth: movers + sortable + clickable rows */
.mini-movers{display:flex;flex-direction:column;}
.mover{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text);}
.mover:last-child{border-bottom:0;}
.mover:hover{background:var(--surface-2);}
.mkt-row:hover{background:var(--surface-2);}
.tbl th[data-sort]{cursor:pointer;user-select:none;white-space:nowrap;}
.tbl th[data-sort]:hover{color:var(--text);}
.tbl th.sorted{color:var(--brand);}
.tbl th.sorted::after{content:" ⌄";font-size:10px;}

/* Global confirm modal (replaces native confirm dialogs) */
.tp-modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:none;align-items:center;justify-content:center;z-index:200;padding:20px;backdrop-filter:blur(2px);}
.tp-modal.open{display:flex;}
.tp-modal-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--sh-pop);max-width:420px;width:100%;padding:22px;animation:tppop .15s ease;}
@keyframes tppop{from{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.tp-modal-title{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--text);}
.tp-modal-msg{color:var(--text-2);font-size:14px;line-height:1.55;margin:0 0 20px;}
.tp-modal-actions{display:flex;gap:10px;justify-content:flex-end;}
.tp-modal-actions .btn{min-width:96px;justify-content:center;}
@media(max-width:520px){.tp-modal-actions{flex-direction:column-reverse}.tp-modal-actions .btn{width:100%}}
                            
/* Powered-by footer */
.app-foot{text-align:center;color:var(--muted);font-size:12px;padding:22px 0 10px;letter-spacing:.02em}
.app-foot b{color:var(--text-2);font-weight:700}
@media(max-width:980px){ .app-foot{padding-bottom:84px} } /* clear the mobile bottom nav */

/* ===== Gold / metals accent theme ===== */
:root{ --brand:#C8912A; --brand-600:#a97b1f; --brand-700:#8a6417; --brand-tint:#faf3e2; --brand-ring:rgba(200,145,42,.20); }
:root[data-theme="dark"]{ --brand-tint:#2b2410; --brand-ring:rgba(200,145,42,.28); }
.brand .logo{ background:linear-gradient(135deg,#C8912A,#e6b325)!important; }
.brand .name b{ color:#C8912A; }
