:root{
  --bg:#070b13; --panel:#111827; --border:#1f2937; --muted:#94a3b8;
  --green:#22c55e; --red:#ef4444; --amber:#f59e0b; --blue:#3b82f6;
  --accent:#e11d48;
}
*{box-sizing:border-box;font-family:'Vazirmatn',system-ui,sans-serif;}
html,body{margin:0;background:
  radial-gradient(1200px 600px at 80% -10%, rgba(225,29,72,.12), transparent 60%),
  radial-gradient(900px 500px at -10% 10%, rgba(34,197,94,.08), transparent 55%),
  var(--bg);
  color:#e6edf3;min-height:100vh;}
.mono,.metric-value,.price-big,.a-val .chip{font-family:'JetBrains Mono',monospace;}

.app-wrap{max-width:960px;margin:0 auto;padding:18px 16px 60px;}

.header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.brand{display:flex;align-items:center;gap:12px;}
.logo-dot{width:16px;height:16px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 4px rgba(225,29,72,.2),0 0 22px rgba(225,29,72,.8);animation:beat 1.6s infinite;}
@keyframes beat{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.title{margin:0;font-size:26px;font-weight:800;letter-spacing:-.5px;}
.subtitle{font-size:12px;color:var(--muted);}

.ws-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);
  background:rgba(255,255,255,.03);border:1px solid var(--border);padding:6px 12px;border-radius:999px;}
.ws-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.ws-ok{background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 1.4s infinite;}
.ws-poll{background:var(--amber);box-shadow:0 0 8px var(--amber);animation:pulse 1.6s infinite;}
.ws-off{background:var(--red);}
.src-tag{font-size:10px;background:rgba(255,255,255,.06);border-radius:6px;padding:1px 6px;color:#cbd5e1;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

.sym-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.sym-btn{background:var(--panel);border:1px solid var(--border);color:var(--muted);
  padding:8px 16px;border-radius:10px;cursor:pointer;font-weight:700;font-size:13px;transition:.15s;min-height:40px;}
.sym-btn:hover{color:#fff;border-color:#374151;}
.sym-active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 16px rgba(225,29,72,.35);}

.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;margin-bottom:16px;}
.grid-main{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:640px){.grid-main{grid-template-columns:1fr;}}

.metric-label{font-size:12px;color:var(--muted);}
.metric-sub{font-size:11px;color:#64748b;margin-top:2px;}
.metric-value{font-size:16px;font-weight:700;margin-top:2px;}
.price-big{font-size:40px;font-weight:800;line-height:1.1;margin-top:4px;word-break:break-all;}
@media(max-width:640px){.price-big{font-size:32px;}}
.up{color:var(--green);} .down{color:var(--red);}
.flash{animation:flashbg .55s;}
@keyframes flashbg{from{filter:brightness(1.6)}to{filter:brightness(1)}}

.bar-track{height:8px;background:#0b1220;border-radius:999px;overflow:hidden;border:1px solid var(--border);}
.bar-fill{height:100%;border-radius:999px;transition:width .5s ease;}
.pulse-row{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:700;font-size:14px;}
.pulse-dot{width:10px;height:10px;border-radius:50%;animation:pulseDot 1.3s infinite;}
@keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.25}}

.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
@media(max-width:640px){.ind-grid{grid-template-columns:repeat(2,1fr);}}
.metric{background:#0b1220;border:1px solid var(--border);border-radius:12px;padding:10px 12px;}

.ai-card{border-color:rgba(225,29,72,.35);
  background:linear-gradient(180deg,rgba(225,29,72,.06),transparent 40%),var(--panel);}
.ai-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.ai-title{font-size:18px;font-weight:800;}
.ai-actions{display:flex;gap:8px;flex-wrap:wrap;}

.btn{border:none;border-radius:10px;padding:11px 20px;font-weight:800;cursor:pointer;font-size:14px;transition:.15s;font-family:'Vazirmatn';min-height:44px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 4px 16px rgba(225,29,72,.35);}
.btn-primary:hover:not(:disabled){filter:brightness(1.1);}
.btn-retry{background:#1f2937;color:#fbbf24;border:1px solid #92400e;}
.btn-retry:hover{background:#374151;}

.legend{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid;margin:0 2px;}
.chip-fact{background:rgba(34,197,94,.15);color:#86efac;border-color:#15803d;}
.chip-analysis{background:rgba(59,130,246,.15);color:#93c5fd;border-color:#1d4ed8;}
.chip-uncertain{background:rgba(245,158,11,.15);color:#fcd34d;border-color:#b45309;}

.ai-loading{display:flex;align-items:center;gap:12px;padding:22px;color:var(--muted);font-weight:700;
  background:#0b1220;border:1px solid var(--border);border-radius:12px;animation:pulse 1.6s infinite;}
.spinner{width:20px;height:20px;border:3px solid #334155;border-top-color:var(--accent);border-radius:50%;display:inline-block;}
.spin{animation:spin 0.9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

.ai-error{padding:16px;border-radius:12px;font-weight:700;margin-top:4px;}
.err-config{background:rgba(59,130,246,.1);border:1px solid #1d4ed8;color:#93c5fd;}
.err-fail{background:rgba(239,68,68,.1);border:1px solid #b91c1c;color:#fca5a5;}

.analysis-body{margin-top:6px;}
.source-echo{font-size:12px;color:#86efac;background:rgba(34,197,94,.08);border:1px solid #15803d;
  border-radius:10px;padding:8px 12px;margin-bottom:12px;font-family:'JetBrains Mono',monospace;word-break:break-word;}
.a-row{background:#0b1220;border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px;
  opacity:0;animation:rise .4s ease forwards;}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.a-label{font-size:13px;font-weight:800;color:var(--accent);margin-bottom:4px;}
.a-val{font-size:14px;color:#e6edf3;line-height:2;}
.disclaimer{margin-top:12px;font-size:12px;color:var(--amber);background:rgba(245,158,11,.08);
  border:1px dashed #b45309;border-radius:10px;padding:10px 12px;}

.empty-state{padding:22px;text-align:center;color:var(--muted);background:#0b1220;
  border:1px dashed var(--border);border-radius:12px;}

.footer{text-align:center;color:#64748b;font-size:12px;margin-top:24px;}
.footer a{color:var(--accent);text-decoration:none;font-weight:700;}
.footer a:hover{text-decoration:underline;}