/* market.css — market-intelligence specific components (loaded after app.css) */

/* market regime / risk light */
.regime{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:22px;font-weight:700;font-size:13px;border:1px solid var(--line)}
.regime .lamp{width:9px;height:9px;border-radius:50%}
.regime.risk-on{background:var(--pos-dim);color:var(--pos)} .regime.risk-on .lamp{background:var(--pos);box-shadow:0 0 9px var(--pos)}
.regime.risk-off{background:var(--neg-dim);color:var(--neg)} .regime.risk-off .lamp{background:var(--neg);box-shadow:0 0 9px var(--neg)}
.regime.neutral{background:var(--bg-3);color:var(--tx-1)} .regime.neutral .lamp{background:var(--tx-2)}
.regime.stress{background:var(--warn-dim);color:var(--warn)} .regime.stress .lamp{background:var(--warn);box-shadow:0 0 9px var(--warn)}
.regime.rotation{background:var(--info-dim);color:var(--info)} .regime.rotation .lamp{background:var(--info);box-shadow:0 0 9px var(--info)}
.regime.crowded{background:var(--purple-dim);color:var(--purple)} .regime.crowded .lamp{background:var(--purple)}

/* big risk gauge light */
.risklight{display:flex;align-items:center;gap:14px}
.risklight .orb{width:54px;height:54px;border-radius:50%;flex:none;position:relative}
.risklight .orb.green{background:radial-gradient(circle at 35% 30%,#5ee9b5,#10b981);box-shadow:0 0 22px rgba(16,185,129,.6)}
.risklight .orb.amber{background:radial-gradient(circle at 35% 30%,#fcd34d,#f59e0b);box-shadow:0 0 22px rgba(245,158,11,.6)}
.risklight .orb.red{background:radial-gradient(circle at 35% 30%,#fca5a5,#ef4444);box-shadow:0 0 22px rgba(239,68,68,.6)}

/* fact vs inference tags */
.ftag{font-size:10px;font-weight:800;padding:1px 7px;border-radius:4px;letter-spacing:.4px;text-transform:uppercase}
.ftag.fact{background:var(--info-dim);color:var(--info)}
.ftag.infer{background:var(--purple-dim);color:var(--purple)}
.ftag.delayed{background:var(--warn-dim);color:var(--warn)}

/* macro data card */
.macro-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:13px;cursor:pointer;transition:border-color .15s}
.macro-card:hover{border-color:var(--acc)}
.macro-card .mh{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.macro-card .mname{font-size:12px;color:var(--tx-1);font-weight:600;line-height:1.3}
.macro-card .men{font-size:10px;color:var(--tx-3)}
.macro-card .mval{font-size:21px;font-weight:700;font-family:var(--mono);margin:7px 0 2px}
.macro-card .mspark{height:34px;margin-top:6px}
.macro-card .mtr{display:flex;gap:9px;font-size:10.5px;color:var(--tx-3);font-family:var(--mono);margin-top:7px}
.macro-card .mtr b{color:var(--tx-1);font-weight:600}

/* flow map */
#flowmap{width:100%;height:560px;background:radial-gradient(circle at 50% 40%,rgba(34,211,238,.05),transparent 60%),var(--bg-2);
  border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}
.flow-legend{position:absolute;bottom:12px;left:12px;background:rgba(8,13,21,.85);border:1px solid var(--line);
  border-radius:9px;padding:9px 12px;font-size:11px;display:flex;gap:14px;backdrop-filter:blur(4px);z-index:5}
.flow-legend .li{display:flex;align-items:center;gap:6px;color:var(--tx-1)}
.flow-legend .sw{width:14px;height:3px;border-radius:2px}
.flow-hint{position:absolute;top:12px;right:12px;background:rgba(8,13,21,.85);border:1px solid var(--line);
  border-radius:8px;padding:6px 11px;font-size:11px;color:var(--tx-2);z-index:5}

/* ticker watch row */
.tk{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.tk:hover{background:var(--bg-3)}
.tk:last-child{border-bottom:0}
.tk .sym{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--tx-0);width:74px}
.tk .nm{flex:1;font-size:12px;color:var(--tx-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk .px{font-family:var(--mono);font-size:13px;text-align:right;width:84px}

/* anomaly card */
.anom{background:var(--bg-2);border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius);padding:13px}
.anom.sev-high{border-left-color:var(--neg)} .anom.sev-mid{border-left-color:var(--warn)} .anom.sev-low{border-left-color:var(--info)}
.anom .ah{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.anom .ah .ic{font-size:17px}
.anom .ah .at{font-weight:700;font-size:13.5px;flex:1}

/* severity meter */
.sevbar{display:inline-flex;gap:2px}
.sevbar i{width:5px;height:12px;border-radius:1px;background:var(--bg-4)}
.sevbar i.on.high{background:var(--neg)} .sevbar i.on.mid{background:var(--warn)} .sevbar i.on.low{background:var(--info)}

/* disabled trading panel */
.locked-panel{border:1px dashed var(--line-2);border-radius:var(--radius);padding:16px;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.012) 10px,rgba(255,255,255,.012) 20px)}
.locked-panel .lh{display:flex;align-items:center;gap:9px;font-weight:700;color:var(--tx-1)}

/* heat tile */
.heat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.heat-tile{border-radius:7px;padding:9px;text-align:center;color:#fff;font-family:var(--mono)}
.heat-tile .ht{font-size:12px;font-weight:700} .heat-tile .hv{font-size:11px;opacity:.9;margin-top:2px}

/* news item */
.news{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.news:last-child{border-bottom:0}
.news .src{font-size:10px;font-weight:700;color:var(--acc);width:64px;flex:none;padding-top:2px}
.news .nbody{flex:1}
.news .ntitle{font-size:13.5px;color:var(--tx-0);font-weight:600;line-height:1.4;cursor:pointer}
.news .ntitle:hover{color:var(--acc)}
.news .nsum{font-size:12px;color:var(--tx-2);margin-top:4px;line-height:1.5}
.news .ntags{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}

/* big brief layout */
.brief-hero{background:linear-gradient(135deg,rgba(34,211,238,.08),rgba(245,165,36,.05));border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:20px 22px}
.brief-hero .oneliner{font-size:18px;font-weight:700;line-height:1.5}

/* source grade badge */
.src-grade{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:4px;font-size:10px;font-weight:800;margin-right:3px}
.src-grade.g-pos{background:var(--pos-dim);color:var(--pos)} .src-grade.g-info{background:var(--info-dim);color:var(--info)}
.src-grade.g-warn{background:var(--warn-dim);color:var(--warn)} .src-grade.g-neg{background:var(--neg-dim);color:var(--neg)}
.src-grade.g-purple{background:var(--purple-dim);color:var(--purple)}
.src-link{cursor:pointer}

/* matrix grid */
.mtx{border-collapse:collapse;font-family:var(--mono);font-size:11px;width:100%}
.mtx th,.mtx td{border:1px solid var(--bg-1);padding:6px 4px;text-align:center}
.mtx th{color:var(--tx-2);font-size:10px;font-weight:600}
.mtx td.lbl{color:var(--tx-1);text-align:right;padding-right:8px;white-space:nowrap}

/* causal flow chain */
.cflow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.cflow .step{background:var(--bg-3);border:1px solid var(--line);border-radius:9px;padding:9px 12px;min-width:120px;position:relative}
.cflow .step .ct{font-size:12px;font-weight:700;color:var(--tx-0)}
.cflow .step .cf{font-size:10px;margin-top:3px}
.cflow .arrow{display:grid;place-items:center;color:var(--tx-3);padding:0 6px;font-size:18px}
.cflow .step.break{border-color:var(--warn);border-style:dashed}

/* workflow step */
.wstep{display:flex;gap:13px;padding:14px 0;border-bottom:1px solid var(--line)}
.wstep:last-child{border-bottom:0}
.wstep .wn{width:30px;height:30px;border-radius:50%;background:var(--bg-4);display:grid;place-items:center;font-weight:700;flex:none;font-family:var(--mono)}
.wstep.done .wn{background:var(--pos);color:#04221a}
.wstep .wbody{flex:1}

/* profile understanding rows */
.und{border-left:3px solid var(--acc);padding:10px 14px;background:var(--bg-2);border-radius:0 9px 9px 0;margin-bottom:10px}
.und.unsure{border-left-color:var(--warn)}

/* mini stat inline */
.minis{display:flex;gap:18px;flex-wrap:wrap}
.minis .m{display:flex;flex-direction:column}
.minis .m .l{font-size:10.5px;color:var(--tx-3)}
.minis .m .v{font-family:var(--mono);font-size:14px;font-weight:700}
