/* ============================================================================
   GoldTrader v4 — Luxury Gold Market UI
   Dual themes (dark black/gold · light cream/gold) driven entirely by CSS
   variables. Branding (Admin → Design) overrides --gold/--bg/--card/--text
   at runtime via an injected <style id="brand-css"> block.
   ========================================================================== */

/* ---- Design tokens -------------------------------------------------------- */
:root{
  --gold:#d4af37;
  --up:#1fb87a; --down:#e2534b; --warn:#e0a534;
  --radius:14px; --radius-sm:10px;
  --tr:160ms cubic-bezier(.4,0,.2,1);
  --font:"Segoe UI",Tahoma,system-ui,-apple-system,"Noto Sans Arabic",sans-serif;
  --font-mono:"SF Mono",ui-monospace,Consolas,"Courier New",monospace;
  --gold-08:rgba(212,175,55,.08); --gold-12:rgba(212,175,55,.12);
  --gold-20:rgba(212,175,55,.20); --gold-35:rgba(212,175,55,.35);
}
[data-theme="dark"]{
  --bg:#07080a; --card:#101218; --panel:#0b0d11;
  --text:#ece7d9; --dim:#9a937f;
  --line:var(--gold-12); --line-strong:var(--gold-20);
  --input:#0a0c10; --shadow:0 14px 40px rgba(0,0,0,.55);
  --glass:rgba(18,20,26,.62);
}
[data-theme="light"]{
  --bg:#f6f2e8; --card:#ffffff; --panel:#fbf8f0;
  --text:#221f18; --dim:#7a7160;
  --line:rgba(146,112,20,.16); --line-strong:rgba(146,112,20,.28);
  --input:#fdfbf5; --shadow:0 10px 26px rgba(90,70,20,.12);
  --glass:rgba(255,255,255,.62);
}

/* ---- Base ------------------------------------------------------------------ */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);background:var(--bg);color:var(--text);
  min-height:100vh;line-height:1.55;font-size:15px;
  transition:background var(--tr),color var(--tr);
}
::selection{background:var(--gold-35)}
a{color:var(--gold);text-decoration:none}
a:hover{opacity:.85}
img{max-width:100%}
.wrap{max-width:1140px;margin:0 auto;padding:18px clamp(12px,2.5vw,28px) 60px}
.muted{color:var(--dim)}
.hidden{display:none!important}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---- Cards (4 admin-selectable styles) ------------------------------------- */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow);
  transition:transform var(--tr),border-color var(--tr),box-shadow var(--tr);
  animation:fadeUp .35s ease both;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cards-glass .card{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.cards-solid .card{box-shadow:none;border-color:var(--line-strong)}
.cards-luxd .card,.cards-luxl .card{
  border:1px solid transparent;
  background:linear-gradient(var(--card),var(--card)) padding-box,
             linear-gradient(155deg,var(--gold-35),var(--gold-08) 55%,var(--gold-20)) border-box;
}
.cards-luxl .card{box-shadow:0 12px 34px var(--gold-12)}
.card:hover{border-color:var(--line-strong)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.card-title{font-size:15px;font-weight:700;letter-spacing:.4px;display:flex;align-items:center;gap:8px}
.card-title::before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(var(--gold),var(--gold-35))}
.card-sub{font-size:12px;color:var(--dim);margin-top:-6px;margin-bottom:10px}

/* ---- Topbar ----------------------------------------------------------------- */
.topbar{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;
  padding:10px clamp(12px,2.5vw,28px);border-bottom:1px solid var(--line);
  background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.5px;font-size:16px;white-space:nowrap}
.brand img.logo{height:32px;width:auto;border-radius:6px}
.pair-badge{
  font-size:11px;font-weight:800;letter-spacing:1px;color:#151109;
  background:linear-gradient(135deg,#f1d27a,var(--gold));border-radius:6px;padding:3px 8px;
}
.nav-links{display:flex;gap:2px;margin-inline-start:6px;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{
  color:var(--dim);font-size:13.5px;font-weight:600;padding:7px 12px;border-radius:9px;
  white-space:nowrap;transition:color var(--tr),background var(--tr);
}
.nav-links a:hover{color:var(--text);opacity:1}
.nav-links a.active{color:var(--gold);background:var(--gold-08)}
.topbar-right{margin-inline-start:auto;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.u-badge{font-size:12.5px;color:var(--dim);display:flex;align-items:center;gap:7px;white-space:nowrap}
.u-badge b{color:var(--text)}
.u-badge .days{font-size:11px;color:var(--gold);border:1px solid var(--gold-20);border-radius:20px;padding:2px 8px}
.u-badge .days.low{color:var(--down);border-color:var(--down)}
.avatar-mini{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid var(--line-strong)}
.theme-toggle{
  border:1px solid var(--line);background:transparent;color:var(--gold);border-radius:9px;
  width:34px;height:34px;cursor:pointer;font-size:15px;line-height:1;transition:border-color var(--tr),transform var(--tr);
}
.theme-toggle:hover{border-color:var(--gold);transform:translateY(-1px)}
[data-theme="dark"] .theme-toggle .sun{display:inline}[data-theme="dark"] .theme-toggle .moon{display:none}
[data-theme="light"] .theme-toggle .sun{display:none}[data-theme="light"] .theme-toggle .moon{display:inline}

/* ---- Buttons ---------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:inherit;font-size:13.5px;font-weight:700;letter-spacing:.3px;
  border-radius:10px;padding:9px 16px;cursor:pointer;border:1px solid var(--line-strong);
  background:transparent;color:var(--text);transition:all var(--tr);white-space:nowrap;
}
.btn:hover{transform:translateY(-1px);border-color:var(--gold)}
.btn:active{transform:none}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.gold{background:linear-gradient(135deg,#f1d27a,var(--gold));color:#171204;border:none;box-shadow:0 6px 18px var(--gold-20)}
.btn.gold:hover{filter:brightness(1.06)}
.btn.ghost{border-color:var(--line);color:var(--dim)}
.btn.ghost:hover{color:var(--text)}
.btn.danger{border-color:var(--down);color:var(--down)}
.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:8px}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}

/* ---- Forms ------------------------------------------------------------------ */
label{display:block;font-size:12.5px;color:var(--dim);font-weight:600;margin-bottom:5px}
input,select,textarea{
  width:100%;font-family:inherit;font-size:14px;color:var(--text);
  background:var(--input);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:10px 12px;outline:none;transition:border-color var(--tr),box-shadow var(--tr);
}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-12)}
input[type="color"]{padding:3px;height:42px;cursor:pointer}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px}
.form-grid .full{grid-column:1/-1}
.hint{font-size:11.5px;color:var(--dim);margin-top:4px;display:block}
.msg{border-radius:var(--radius-sm);padding:10px 14px;font-size:13.5px;margin:10px 0;display:none}
.msg.show{display:block;animation:fadeUp .25s ease}
.msg.ok{background:rgba(31,184,122,.1);border:1px solid rgba(31,184,122,.35);color:var(--up)}
.msg.err{background:rgba(226,83,75,.1);border:1px solid rgba(226,83,75,.35);color:var(--down)}

/* Selectable chips (day presets, overlays, timeframes) */
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{
  font-size:12.5px;font-weight:700;color:var(--dim);border:1px solid var(--line);
  border-radius:20px;padding:6px 13px;cursor:pointer;background:transparent;
  transition:all var(--tr);font-family:inherit;
}
.chip:hover{color:var(--text);border-color:var(--line-strong)}
.chip.active{color:#171204;background:linear-gradient(135deg,#f1d27a,var(--gold));border-color:transparent}

.px-delta{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.px-delta.up{color:var(--up)}.px-delta.down{color:var(--down)}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--up);display:inline-block;animation:pulse 1.6s infinite;margin-inline-end:4px}

/* ---- Layout grids ---------------------------------------------------------------- */
.col{display:flex;flex-direction:column;gap:16px;min-width:0}

/* ---- Chart ----------------------------------------------------------------------- */
.tf-chips{display:flex;gap:6px;flex-wrap:wrap}
.chart-wrap{position:relative;margin-top:6px}
#chart{height:520px;border-radius:var(--radius-sm);overflow:hidden}
#tv-chart{height:520px;border-radius:var(--radius-sm);overflow:hidden;background:#0a0b0e}
#tv-chart iframe{border-radius:var(--radius-sm)}
.ana-unavail{display:flex;gap:8px;align-items:flex-start;margin:10px 0 2px;padding:9px 12px;border:1px solid rgba(212,175,55,.35);border-radius:var(--radius-sm);background:rgba(212,175,55,.08);color:var(--gold);font-size:13px;line-height:1.7}
.ana-unavail span:first-child{opacity:.9}
.chart-status{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  flex-direction:column;gap:10px;border-radius:var(--radius-sm);font-size:13px;color:var(--dim);
  background:var(--glass);backdrop-filter:blur(3px);z-index:5;text-align:center;padding:20px;
}
.chart-status.show{display:flex}
.chart-status .spinner{
  width:34px;height:34px;border-radius:50%;border:3px solid var(--gold-20);
  border-top-color:var(--gold);animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.chart-status.error{color:var(--down)}
.overlay-chips{margin-top:10px}
.overlay-chips .chip{font-size:11.5px;padding:5px 11px}

/* ---- Smart Analysis panel ----------------------------------------------------------- */
.ana-note{font-size:11px;color:var(--dim);border:1px dashed var(--line);border-radius:8px;padding:5px 10px;display:inline-block;margin-bottom:9px}
.ana-lines{display:flex;flex-direction:column;gap:7px;margin:6px 0 12px}
.ana-line{display:flex;gap:9px;align-items:flex-start;font-size:13.5px}
.ana-line::before{content:"◆";color:var(--gold);font-size:10px;margin-top:4px}
.ana-updated{font-size:11.5px;color:var(--dim);margin-top:10px}

/* ---- Signal card ------------------------------------------------------------------------ */
.sig-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.sig-action{font-size:21px;font-weight:800;letter-spacing:1.5px;padding:7px 20px;border-radius:11px}
.sig-action.buy{color:var(--up);background:rgba(31,184,122,.12);border:1px solid rgba(31,184,122,.4)}
.sig-action.sell{color:var(--down);background:rgba(226,83,75,.12);border:1px solid rgba(226,83,75,.4)}
.sig-action.wait,.sig-action.no_trade{color:var(--warn);background:rgba(224,165,52,.1);border:1px solid rgba(224,165,52,.35)}
.sig-strength{display:flex;gap:4px;align-items:center}
.sig-strength i{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}
.sig-strength i.on{background:var(--gold)}
.sig-strength span{font-size:12px;color:var(--dim);margin-inline-start:5px}
.sig-prob{flex:1;min-width:130px}
.sig-prob .bar{height:7px;border-radius:5px;background:var(--gold-08);overflow:hidden}
.sig-prob .bar i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--gold-35),var(--gold));transition:width .5s ease}
.sig-prob small{font-size:11.5px;color:var(--dim)}
.sig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px;margin:12px 0}
.sig-cell{border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;background:var(--panel)}
.sig-cell b{display:block;font-size:11px;color:var(--dim);font-weight:600;margin-bottom:3px}
.sig-cell span{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.sig-cell.entry span{color:var(--gold)}
.sig-cell.sl span{color:var(--down)}
.sig-cell.tp span{color:var(--up)}
.sig-note{font-size:11.5px;color:var(--dim);margin-top:11px;border-top:1px dashed var(--line);padding-top:9px}

/* ---- Lists / previews / tables ------------------------------------------------------------ */
.tag-gold{font-size:10.5px;color:var(--gold);border:1px solid var(--gold-20);border-radius:5px;padding:1.5px 7px;white-space:nowrap}
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th{
  text-align:start;font-size:11.5px;color:var(--dim);font-weight:700;letter-spacing:.3px;
  padding:9px 10px;border-bottom:1px solid var(--line-strong);white-space:nowrap;
}
.table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:hover td{background:var(--gold-08)}
.empty-state{text-align:center;padding:44px 20px;color:var(--dim)}
.empty-state .ico{font-size:34px;margin-bottom:9px;opacity:.6}
.empty-state p{font-size:14px;max-width:420px;margin:0 auto 6px}

/* ---- Profile -------------------------------------------------------------------------------- */
.profile-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-top:16px}
.avatar-box{display:flex;align-items:center;gap:15px;margin-bottom:15px}
.avatar{width:74px;height:74px;border-radius:50%;object-fit:cover;border:2px solid var(--gold-35);background:var(--panel)}
.sub-rows{display:flex;flex-direction:column;gap:9px}
.sub-row{display:flex;justify-content:space-between;font-size:13.5px;border-bottom:1px dashed var(--line);padding-bottom:8px}
.sub-row:last-child{border-bottom:none}
.pill{font-size:11.5px;font-weight:700;border-radius:20px;padding:3px 11px}
.pill.ok{color:var(--up);background:rgba(31,184,122,.12)}
.pill.bad{color:var(--down);background:rgba(226,83,75,.12)}

/* ---- Admin ----------------------------------------------------------------------------------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:14px 0 18px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab-btn{
  font-family:inherit;font-size:13.5px;font-weight:700;color:var(--dim);background:none;border:none;
  padding:10px 15px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:color var(--tr);
}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold)}
.tab-pane{display:none}
.tab-pane.active{display:block;animation:fadeUp .25s ease}
.upload-widget{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:13px;display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.upload-widget img{max-height:44px;max-width:120px;border-radius:6px;background:var(--panel)}
.upload-widget .uw-name{font-size:12px;color:var(--dim);flex:1;min-width:80px}
.color-row{display:flex;gap:8px;align-items:center}
.color-row input[type="text"]{max-width:110px;font-variant-numeric:tabular-nums}
.gen-pass{
  background:var(--gold-08);border:1px solid var(--gold-20);border-radius:var(--radius-sm);
  padding:11px 15px;font-size:14px;margin:10px 0;display:none;
}
.gen-pass.show{display:block}
.gen-pass code{font-size:17px;font-weight:800;color:var(--gold);letter-spacing:1px}

/* ---- Login ---------------------------------------------------------------------------------------- */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.login-card{width:100%;max-width:400px;padding:34px 30px;position:relative}
.login-card::before{
  content:"";position:absolute;inset-inline:20%;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.login-logo{text-align:center;margin-bottom:22px}
.login-logo img{max-height:52px}
.login-title{font-size:19px;font-weight:800;letter-spacing:.5px;text-align:center;margin-bottom:4px}
.login-sub{font-size:12.5px;color:var(--dim);text-align:center;margin-bottom:22px}
.login-card .field{margin-bottom:14px}
.login-foot{margin-top:18px;font-size:11px;color:var(--dim);text-align:center;line-height:1.7}

/* ---- Responsive ------------------------------------------------------------------------------------- */
@media (max-width:1020px){
  .profile-grid{grid-template-columns:1fr}
  #chart,#tv-chart{height:360px}
}
@media (max-width:640px){
    #chart,#tv-chart{height:300px}
  .topbar{flex-wrap:wrap;row-gap:6px}
  .topbar-right{width:100%;justify-content:flex-end}
  .sig-action{font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}


/* ==========================================================================
   v3 — colored entry state · entry zone · schools · archive · backtesting
   ========================================================================== */
.pos { color: #1fb87a; }
.neg { color: #e2534b; }
.nowrap { white-space: nowrap; }

/* ---- signal state banner ------------------------------------------------ */
.sig-state {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin: 10px 0 12px; padding: 9px 12px; border-radius: 10px;
  border: 1px solid var(--line); background: rgba(255,255,255,.02); font-size: 13px;
}
.sig-state .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--dim); flex: 0 0 auto; }
.sig-state .why { color: var(--dim); font-size: 12px; }
.sig-state .count { margin-inline-start: auto; font-size: 11.5px; color: var(--dim); font-variant-numeric: tabular-nums; }
.sig-state.green  { border-color: rgba(31,184,122,.45); background: rgba(31,184,122,.08); }
.sig-state.green .dot  { background: #1fb87a; box-shadow: 0 0 8px rgba(31,184,122,.8); }
.sig-state.yellow { border-color: rgba(224,165,52,.45); background: rgba(224,165,52,.08); }
.sig-state.yellow .dot { background: #e0a534; box-shadow: 0 0 8px rgba(224,165,52,.7); }
.sig-state.red    { border-color: rgba(226,83,75,.45);  background: rgba(226,83,75,.08); }
.sig-state.red .dot    { background: #e2534b; }
.sig-state.gray .dot   { background: var(--dim); }

.sig-cell.wide { grid-column: 1 / -1; }

.sig-mini { display: flex; gap: 8px; flex-wrap: wrap; margin: 2px 0 10px; }
.mini-chip {
  font-size: 11.5px; color: var(--dim); border: 1px dashed var(--line);
  border-radius: 999px; padding: 3px 10px; cursor: default;
}

/* ---- verdict + twelve schools ------------------------------------------- */
.sig-verdict { margin: 8px 0 10px; font-size: 13.5px; }
.sig-action.sm { font-size: 12px; padding: 2px 10px; }
.sch-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.sch-top .nm { font-size: 12.5px; font-weight: 600; }
.sch-top .pts { font-size: 11px; color: var(--dim); font-variant-numeric: tabular-nums; }
.sch-txt { font-size: 12px; color: var(--dim); margin: 3px 0 5px; line-height: 1.55; }
.sch-bar { height: 3px; border-radius: 3px; background: rgba(128,128,128,.18); overflow: hidden; }
.sch-bar i { display: block; height: 100%; background: var(--gold); border-radius: 3px; transition: width .4s ease; }

/* ---- stats cards (history + backtest) ----------------------------------- */
.filter-bar { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 6px 0 14px; }
.stat-card { border: 1px solid var(--line); border-radius: 11px; padding: 11px 12px; background: rgba(255,255,255,.02); text-align: center; }
.stat-card .v { display: block; font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }
.stat-card .l { display: block; font-size: 11.5px; color: var(--dim); margin-top: 3px; }
.stat-card .s { display: block; font-size: 10.5px; color: var(--dim); margin-top: 2px; opacity: .85; }

/* ---- results table (archive + backtest compare) --------------------------- */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; min-width: 760px; }
.tbl th { text-align: start; color: var(--dim); font-weight: 600; font-size: 11.5px; padding: 8px 9px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl td { padding: 8px 9px; border-bottom: 1px solid var(--line); vertical-align: middle; font-variant-numeric: tabular-nums; }
.tbl tr:last-child td { border-bottom: 0; }

/* archive state pills reuse the shared .pill base, colored by live state */
.pill.green  { color: #1fb87a; border-color: rgba(31,184,122,.5);  background: rgba(31,184,122,.09); }
.pill.yellow { color: #e0a534; border-color: rgba(224,165,52,.5);  background: rgba(224,165,52,.09); }
.pill.red    { color: #e2534b; border-color: rgba(226,83,75,.5);   background: rgba(226,83,75,.09); }
.pill.gray   { opacity: .9; }

.badge { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 1px 8px; border-radius: 6px; }
.badge.buy  { color: #1fb87a; background: rgba(31,184,122,.12); }
.badge.sell { color: #e2534b; background: rgba(226,83,75,.12); }
.hit { display: inline-block; font-size: 10px; color: #1fb87a; border: 1px solid rgba(31,184,122,.5); border-radius: 6px; padding: 0 5px; margin-inline-start: 5px; }

/* ---- admin: school / timeframe toggles ------------------------------------ */
.check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 7px 12px; margin-top: 6px; }
.check-grid .check { display: flex; align-items: center; gap: 7px; font-size: 12.5px; cursor: pointer; }
.check-grid .check input { accent-color: var(--gold); width: 15px; height: 15px; }

/* ==========================================================================
   v4 — the luxury layer
   Live price hero · duo grid · Kurdish analysis brief · Gold News
   Intelligence card · twelve luxury school cards · archive result badges.
   ========================================================================== */
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--dim)}

/* ---- topbar user chip (links to the profile) ------------------------------- */
a.u-badge{border:1px solid transparent;border-radius:999px;padding:4px 10px 4px 6px;transition:border-color var(--tr),background var(--tr)}
a.u-badge:hover{border-color:var(--gold-20);background:var(--gold-08);opacity:1}
.avatar-fallback{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;font-size:13px;font-weight:800;color:#171204;
  background:linear-gradient(135deg,#f1d27a,var(--gold));border:1px solid var(--gold-35);
}

/* ---- 1 · live price hero ----------------------------------------------------- */
.px-card{position:relative;overflow:hidden}
.px-card::after{
  content:"";position:absolute;inset-inline:14%;top:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.8;
}
.px-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.px-label{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.6px;color:var(--dim)}
.px-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:8px 0 6px}
.px{
  font-size:clamp(38px,6vw,58px);font-weight:800;letter-spacing:.5px;line-height:1.1;
  background:linear-gradient(180deg,var(--text) 20%,var(--gold));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-variant-numeric:tabular-nums;
}
.px-cur{font-size:15px;font-weight:700;color:var(--dim);letter-spacing:1px}
.px-delta{font-size:16px}
.px-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--dim)}
.px-meta b{color:var(--gold);font-weight:700}
.dotsep{opacity:.5}
@keyframes pxflashup{0%{text-shadow:0 0 22px rgba(31,184,122,.85)}100%{text-shadow:none}}
@keyframes pxflashdown{0%{text-shadow:0 0 22px rgba(226,83,75,.85)}100%{text-shadow:none}}
.px.flash-up{animation:pxflashup 1s ease}
.px.flash-down{animation:pxflashdown 1s ease}

/* ---- layout: hero column + duo ------------------------------------------------- */
.px-card,.chart-card{margin-top:16px}
.grid-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;align-items:start}
.grid-duo>.card{min-width:0}

/* ---- chart chips polish ---------------------------------------------------------- */
.tf-chips .chip{min-width:46px;text-align:center;font-variant-numeric:tabular-nums}
.overlay-chips .chip{border-style:dashed}
.overlay-chips .chip.active{border-style:solid}

/* ---- signal state pulse (color transitions) ---------------------------------------- */
@keyframes statepulse{0%{box-shadow:0 0 0 0 var(--gold-35)}100%{box-shadow:0 0 0 14px rgba(0,0,0,0)}}
.sig-state.pulse{animation:statepulse 1s ease}

/* ---- the Kurdish analysis brief ------------------------------------------------------ */
.ax-box{
  border:1px solid var(--gold-20);border-radius:var(--radius-sm);
  background:linear-gradient(160deg,var(--gold-08),transparent 60%);
  padding:12px 14px;margin:10px 0 12px;
}
.ax-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.ax-title{font-size:13px;font-weight:800;letter-spacing:.4px;color:var(--gold)}
.ax-levels{display:flex;gap:6px;flex-wrap:wrap}
.lv-chip{
  font-size:11px;font-weight:700;border-radius:7px;padding:2.5px 9px;
  font-variant-numeric:tabular-nums;border:1px solid;
}
.lv-chip.sup{color:var(--up);border-color:rgba(31,184,122,.45);background:rgba(31,184,122,.08)}
.lv-chip.res{color:var(--down);border-color:rgba(226,83,75,.45);background:rgba(226,83,75,.08)}
.ax-row{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.7;padding:4px 0;border-bottom:1px dashed var(--line)}
.ax-row:last-child{border-bottom:none}
.ax-ico{flex:0 0 auto;width:20px;text-align:center;font-size:12px;opacity:.85;margin-top:2px}

/* ---- Gold News Intelligence (small collapsible) ---------------------------------------- */
.gn-card{
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--panel);padding:11px 13px;margin:0 0 12px;
}
.gn-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}
.gn-title{font-size:12.5px;font-weight:800;letter-spacing:.3px}
.gn-chips{display:flex;gap:6px;flex-wrap:wrap}
.gn-chip{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 8px;border:1px solid;white-space:nowrap}
.gn-chip.bull{color:var(--up);border-color:rgba(31,184,122,.5);background:rgba(31,184,122,.08)}
.gn-chip.bear{color:var(--down);border-color:rgba(226,83,75,.5);background:rgba(226,83,75,.08)}
.gn-chip.neut{color:var(--dim);border-color:var(--line-strong);background:transparent}
.gn-chip.mixed{color:var(--warn);border-color:rgba(224,165,52,.5);background:rgba(224,165,52,.08)}
.gn-chip.imp-low{color:var(--dim);border-color:var(--line)}
.gn-chip.imp-medium{color:var(--warn);border-color:rgba(224,165,52,.5)}
.gn-chip.imp-high{color:var(--down);border-color:rgba(226,83,75,.5)}
.gn-reason{font-size:12.5px;line-height:1.7;margin:7px 0 4px}
.gn-meta{font-size:11px;color:var(--dim)}
.gn-items{margin-top:7px;border-top:1px dashed var(--line);padding-top:7px}
.gn-items summary{cursor:pointer;font-size:11.5px;color:var(--gold);font-weight:700}
.gn-item{display:flex;gap:8px;align-items:baseline;font-size:12px;padding:6px 0;border-bottom:1px dashed var(--line)}
.gn-item:last-child{border-bottom:none}
.gn-item a{flex:1;min-width:0;color:var(--text)}
.gn-item a:hover{color:var(--gold)}
.gn-item .m{font-size:10.5px;color:var(--dim);white-space:nowrap}
.gn-mini{font-size:11px;opacity:.8;cursor:help}

/* ---- the twelve luxury school cards ------------------------------------------------------ */
.sch-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:480px;overflow-y:auto;padding-inline-end:4px}
.sch-card{
  border:1px solid var(--line);border-inline-start:3px solid var(--dim);
  border-radius:10px;padding:9px 11px;background:var(--panel);
  transition:border-color var(--tr),transform var(--tr);
}
.sch-card:hover{transform:translateY(-1px);border-color:var(--line-strong)}
.sch-card.bull{border-inline-start-color:var(--up)}
.sch-card.bear{border-inline-start-color:var(--down)}
.sch-card.against{border-inline-start-color:var(--warn)}
.sch-card .sch-txt{margin:5px 0 6px}
.sch-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.st-chip{font-size:10px;font-weight:800;border-radius:6px;padding:1.5px 7px;letter-spacing:.2px}
.st-chip.bull{color:var(--up);background:rgba(31,184,122,.12)}
.st-chip.bear{color:var(--down);background:rgba(226,83,75,.12)}
.st-chip.neut{color:var(--dim);background:var(--gold-08)}
.st-chip.against{color:var(--warn);background:rgba(224,165,52,.12)}
.pow-tag{font-size:10px;font-weight:700;border-radius:6px;padding:1.5px 7px;border:1px solid var(--line);color:var(--dim)}
.pow-tag.hi{color:var(--gold);border-color:var(--gold-35);background:var(--gold-08)}
.pow-tag.mid{color:var(--text);border-color:var(--line-strong)}
.pow-tag.lo{opacity:.75}

/* ---- archive result badges ------------------------------------------------------------------ */
.res-badge{display:inline-block;font-size:10.5px;font-weight:800;border-radius:7px;padding:2px 9px;border:1px solid;white-space:nowrap}
.res-badge.tp{color:var(--up);border-color:rgba(31,184,122,.5);background:rgba(31,184,122,.1)}
.res-badge.sl{color:var(--down);border-color:rgba(226,83,75,.5);background:rgba(226,83,75,.1)}
.res-badge.be{color:var(--gold);border-color:var(--gold-35);background:var(--gold-08)}
.res-badge.none{color:var(--dim);border-color:var(--line-strong);background:transparent}
.res-badge.open{color:var(--gold);border-color:var(--gold-20);background:transparent}

/* ---- v4 responsive ----------------------------------------------------------------------------- */
@media (max-width:1100px){
  .grid-duo{grid-template-columns:1fr}
}
@media (max-width:640px){
  .px{font-size:38px}
  .sch-grid{grid-template-columns:1fr;max-height:none}
  #chart,#tv-chart{height:300px}
}
