/* ── Radar section — premium glass design ─────────────────── */
.radar-section{background:linear-gradient(145deg,#060e1a 0%,#0b1929 40%,#0d1e35 100%);border:1px solid rgba(26,51,85,.6);border-radius:20px;padding:0;margin-bottom:30px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.03);}

/* Hero — ring gauge left + info right */
.radar-hero{display:flex;align-items:center;gap:22px;padding:20px 28px;background:linear-gradient(135deg,rgba(10,22,40,.95),rgba(13,30,53,.7));border-bottom:1px solid rgba(26,51,85,.4);position:relative;overflow:hidden;flex-wrap:wrap;}

/* Mini ring gauge */
.radar-ring-wrap{position:relative;width:68px;height:68px;flex-shrink:0;}
.radar-ring-wrap svg{width:68px;height:68px;transform:rotate(-90deg);}
.radar-ring-wrap svg circle{fill:none;stroke-linecap:round;}
.radar-ring-bg{stroke:rgba(255,255,255,.06);stroke-width:5;}
.radar-ring-track{stroke:url(#rg2);stroke-width:5;opacity:.15;}
.radar-ring-fill{stroke-width:5;transition:stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1),stroke .4s;}
.radar-ring-glow{position:absolute;inset:4px;border-radius:50%;filter:blur(10px);opacity:.15;transition:background .4s;}
.radar-ring-glow.bullish{background:#27ae60;} .radar-ring-glow.bearish{background:#e74c3c;} .radar-ring-glow.neutral{background:#f1c40f;}
.radar-ring-score{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;font-family:'Courier New',monospace;transition:color .4s;}
.radar-ring-score.bullish{color:#27ae60;} .radar-ring-score.bearish{color:#e74c3c;} .radar-ring-score.neutral{color:#f1c40f;}

/* Info column */
.radar-hero-info{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px;}
.radar-hero-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.radar-hero-verdict{font-size:18px;font-weight:900;letter-spacing:1px;transition:color .4s;}
.radar-hero-verdict.bullish{color:#27ae60;} .radar-hero-verdict.bearish{color:#e74c3c;} .radar-hero-verdict.neutral{color:#f1c40f;}
.radar-hero-sub{font-size:11px;color:#718096;line-height:1.5;display:flex;align-items:center;flex-wrap:wrap;gap:4px;}
.radar-hero-sub strong{color:#cbd5e0;}

/* Thin gradient bar under info */
.radar-bar-mini{position:relative;height:6px;border-radius:3px;background:rgba(255,255,255,.04);overflow:visible;margin-top:2px;}
.radar-bar-mini-track{position:absolute;inset:0;border-radius:3px;background:linear-gradient(90deg,#e74c3c,#e67e22 30%,#f1c40f 50%,#2ecc71 70%,#27ae60);opacity:.12;}
.radar-bar-mini-fill{position:absolute;top:0;left:0;height:100%;border-radius:3px;background:linear-gradient(90deg,#e74c3c,#e67e22 30%,#f1c40f 50%,#2ecc71 70%,#27ae60);transition:width 1.2s cubic-bezier(.4,0,.2,1);}
.radar-bar-mini-dot{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid;transform:translate(-50%,-50%);transition:left 1.2s cubic-bezier(.4,0,.2,1),border-color .4s;box-shadow:0 0 8px rgba(255,255,255,.25);}
.radar-bar-mini-labels{display:flex;justify-content:space-between;font-size:7px;color:#3a4a60;margin-top:3px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;}

/* Signals grid area */
.radar-signals{padding:24px 32px 28px;display:grid;grid-template-columns:1fr;gap:0;}

/* Synthesis box */
.radar-synth{border-radius:14px;padding:22px 26px;margin-bottom:16px;line-height:1.7;position:relative;overflow:hidden;}
.radar-synth::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:14px 14px 0 0;}
.radar-synth.bullish{background:rgba(39,174,96,.04);border:1px solid rgba(39,174,96,.15);}
.radar-synth.bullish::before{background:linear-gradient(90deg,#27ae60,#2ecc71);}
.radar-synth.bearish{background:rgba(231,76,60,.04);border:1px solid rgba(231,76,60,.15);}
.radar-synth.bearish::before{background:linear-gradient(90deg,#e74c3c,#e67e22);}
.radar-synth.neutral{background:rgba(241,196,15,.04);border:1px solid rgba(241,196,15,.15);}
.radar-synth.neutral::before{background:linear-gradient(90deg,#f1c40f,#f5a623);}
.radar-synth-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.radar-synth-title i{font-size:14px;}
.radar-synth-date{font-size:9px;font-weight:600;color:#718096;margin-left:auto;}
.radar-synth-body{font-size:12.5px;color:#a0aec0;}
.radar-synth-body p{margin:0 0 8px;}
.radar-synth-body strong{color:#e2e8f0;}

/* Confluence boxes */
.confluence-box{border-radius:10px;padding:14px 18px;margin:10px 0;}
.confluence-box.bull{background:rgba(39,174,96,.06);border:1px solid rgba(39,174,96,.2);}
.confluence-box.bear{background:rgba(231,76,60,.06);border:1px solid rgba(231,76,60,.2);}
.confluence-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.confluence-label.bull{color:#27ae60;}
.confluence-label.bear{color:#e74c3c;}
.confluence-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;}
.confluence-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:10px;font-weight:700;}
.confluence-tag.bull{background:rgba(39,174,96,.12);color:#27ae60;border:1px solid rgba(39,174,96,.2);}
.confluence-tag.bear{background:rgba(231,76,60,.12);color:#e74c3c;border:1px solid rgba(231,76,60,.2);}
.confluence-desc{font-size:11px;color:#718096;line-height:1.5;}

/* Horizon strip — 3-col cards */
.horizon-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0;}
.horizon-card{border-radius:12px;padding:14px 16px;position:relative;overflow:hidden;transition:transform .2s;}
.horizon-card:hover{transform:translateY(-2px);}
.horizon-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.horizon-card.ct{background:rgba(116,185,255,.04);border:1px solid rgba(116,185,255,.12);}
.horizon-card.ct::before{background:#74b9ff;}
.horizon-card.mt{background:rgba(168,85,247,.04);border:1px solid rgba(168,85,247,.12);}
.horizon-card.mt::before{background:#a855f7;}
.horizon-card.lt{background:rgba(245,166,35,.04);border:1px solid rgba(245,166,35,.12);}
.horizon-card.lt::before{background:#f5a623;}
.horizon-card-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.horizon-card-icon{font-size:11px;}
.horizon-card-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;}
.horizon-card-bias{margin-left:auto;font-size:14px;font-weight:900;}
.horizon-card-keys{font-size:9px;color:#718096;margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;}
.horizon-card-action{font-size:10px;color:#a0aec0;line-height:1.4;}
.horizon-card-action strong{color:#e2e8f0;}

/* Price bar — elevated */
.price-bar{background:rgba(10,22,40,.7);border:1px solid rgba(26,51,85,.4);border-radius:12px;padding:16px 20px;margin:10px 0;backdrop-filter:blur(8px);}
.price-metrics{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.price-current{font-size:22px;font-weight:900;color:#e2e8f0;font-family:'Courier New',monospace;}
.price-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:10px;font-weight:700;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);}
.price-tag .label{color:#718096;} .price-tag .val{font-family:'Courier New',monospace;}
.price-range{position:relative;height:28px;margin:0 6px;}
.price-range-bg{position:absolute;top:10px;left:0;right:0;height:8px;background:rgba(255,255,255,.04);border-radius:4px;}
.price-range-fill{position:absolute;top:10px;left:0;height:8px;border-radius:4px;background:linear-gradient(90deg,#e74c3c,#f1c40f 40%,#27ae60);opacity:.7;}
.price-range-marker{position:absolute;top:0;width:3px;height:22px;border-radius:2px;transform:translateX(-50%);}
.price-range-marker .marker-label{position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-size:7px;font-weight:700;white-space:nowrap;}
.price-range-current{position:absolute;top:3px;transform:translateX(-50%);font-size:12px;color:#e2e8f0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));}
.price-range-ends{display:flex;justify-content:space-between;margin-top:4px;font-size:8px;color:#4a6580;font-weight:600;}

/* Allocation + Strategy — 2-col */
.reco-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.reco-card{border-radius:12px;padding:14px 18px;position:relative;overflow:hidden;}
.reco-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;border-radius:3px 0 0 3px;}
.reco-card.alloc::before{background:#27ae60;}
.reco-card.strat::before{background:#74b9ff;}
.reco-card.alloc{background:rgba(39,174,96,.04);border:1px solid rgba(39,174,96,.12);}
.reco-card.strat{background:rgba(116,185,255,.04);border:1px solid rgba(116,185,255,.12);}
.reco-card-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.reco-card-title i{font-size:11px;}
.reco-card-body{font-size:11.5px;color:#e2e8f0;line-height:1.6;}
.reco-card-body strong{color:#fff;}
.reco-risk{font-size:10px;color:#718096;margin-top:6px;display:flex;align-items:center;gap:4px;}
.reco-risk i{color:#e67e22;font-size:9px;}

/* ─── Signal cards — elevated glass ──────────────── */
.rsig-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:6px;}
.rsig{display:flex;flex-direction:column;padding:0;border-radius:12px;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.015);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden;opacity:0;animation:sig-fadein .4s ease forwards;}
.rsig-row{display:flex;align-items:center;gap:12px;padding:10px 14px;}
.rsig::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;opacity:0;transition:opacity .3s;}
.rsig.opp-border::before{background:#27ae60;opacity:1;}
.rsig.risk-border::before{background:#e74c3c;opacity:1;}
.rsig:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);transform:translateX(3px);}
.rsig.open{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.1);}
@keyframes sig-fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* Stagger animation delay per card */
.rsig:nth-child(1){animation-delay:.03s;} .rsig:nth-child(2){animation-delay:.06s;}
.rsig:nth-child(3){animation-delay:.09s;} .rsig:nth-child(4){animation-delay:.12s;}
.rsig-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.rsig-icon.opp{background:rgba(39,174,96,.12);color:#27ae60;}
.rsig-icon.risk{background:rgba(231,76,60,.12);color:#e74c3c;}
.rsig-icon.neutral{background:rgba(241,196,15,.08);color:#f1c40f;}
.rsig-icon.info{background:rgba(116,185,255,.08);color:#74b9ff;}
.rsig-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.rsig-head{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;line-height:1;}
.rsig-head.opp{color:#27ae60;} .rsig-head.risk{color:#e74c3c;} .rsig-head.neutral{color:#f1c40f;} .rsig-head.info{color:#74b9ff;}
.rsig-title{font-size:11.5px;font-weight:500;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rsig-val{font-size:16px;font-weight:900;font-family:'Courier New',monospace;padding:4px 12px;border-radius:8px;white-space:nowrap;flex-shrink:0;text-align:right;min-width:60px;}
.rsig-val.val-opp{background:rgba(39,174,96,.1);color:#27ae60;border:1px solid rgba(39,174,96,.2);}
.rsig-val.val-risk{background:rgba(231,76,60,.1);color:#e74c3c;border:1px solid rgba(231,76,60,.2);}
.rsig-val.val-neutral{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);}
.rsig-expand{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0;color:#4a6580;transition:all .2s;font-size:9px;}
.rsig:hover .rsig-expand{background:rgba(255,255,255,.05);color:#93c5fd;}
.rsig-expand i{transition:transform .3s cubic-bezier(.4,0,.2,1);}
.rsig.open .rsig-expand i{transform:rotate(180deg);}
.rsig.open .rsig-expand{color:#74b9ff;background:rgba(116,185,255,.08);}
.rsig-desc{font-size:11px;color:#8a9bb4;line-height:1.6;max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .25s;opacity:0;padding:0 14px 0 60px;}
.rsig.open .rsig-desc{max-height:200px;opacity:1;padding:10px 14px 12px 60px;border-top:1px solid rgba(255,255,255,.04);}

/* ─── Animations ──────────────────────────────────── */
@keyframes pulse-live{0%,100%{opacity:1;}50%{opacity:.3;}}
@keyframes pulse-glow-opp{0%,100%{border-color:rgba(39,174,96,.12);}50%{border-color:rgba(39,174,96,.35);}}
@keyframes pulse-glow-risk{0%,100%{border-color:rgba(231,76,60,.12);}50%{border-color:rgba(231,76,60,.35);}}
.rsig.high-weight.opp-border{animation:sig-fadein .4s ease forwards,pulse-glow-opp 2.5s 1s ease-in-out infinite;}
.rsig.high-weight.risk-border{animation:sig-fadein .4s ease forwards,pulse-glow-risk 2.5s 1s ease-in-out infinite;}

/* Weight bar */
.rsig-weight{display:flex;gap:3px;align-items:center;}
.rsig-weight-dot{width:5px;height:5px;border-radius:50%;transition:transform .2s;}
.rsig-weight-dot.filled{background:currentColor;opacity:.9;}
.rsig-weight-dot.empty{background:rgba(255,255,255,.08);}

/* ─── Horizon section headers ─────────────────────── */
.horizon-header{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-top:16px;border-radius:10px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;}
.horizon-header:first-of-type{margin-top:8px;}
.horizon-header i{font-size:13px;opacity:.8;}
.horizon-count{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;font-size:10px;font-weight:900;background:rgba(255,255,255,.06);color:#cbd5e0;}
.horizon-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 14px;border-radius:20px;font-size:9px;font-weight:900;letter-spacing:.5px;margin-left:auto;}

/* Responsive */
@media(max-width:800px){
  .radar-hero{padding:18px 16px 14px;flex-direction:column;align-items:center;text-align:center;}
  .radar-hero-info{align-items:center;}
  .radar-hero-sub{justify-content:center;}
  .rsig-grid{gap:6px;}
  .rsig-val{font-size:13px;padding:3px 8px;min-width:auto;}
  .horizon-strip{grid-template-columns:1fr;}
  .reco-grid{grid-template-columns:1fr;}
  .radar-signals{padding:16px 14px 20px;}
}

/* History */
.radar-hist{margin-top:18px;border-top:1px solid rgba(26,51,85,.4);padding-top:14px;}
.radar-hist-title{font-size:10px;font-weight:700;color:#7ecff4;text-transform:uppercase;letter-spacing:.6px;margin-bottom:8px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:color .2s;}
.radar-hist-title:hover{color:#93c5fd;}
.radar-hist-grid{display:flex;flex-direction:column;gap:6px;max-height:0;overflow:hidden;transition:max-height .4s ease;}
.radar-hist-grid.open{max-height:600px;overflow-y:auto;}
.rhist-day{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);border-radius:10px;padding:12px 14px;transition:background .2s;}
.rhist-day:hover{background:rgba(255,255,255,.04);}
.rhist-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.rhist-day-date{font-size:12px;font-weight:700;color:#93c5fd;font-family:'Courier New',monospace;}
.rhist-day-btc{font-size:11px;color:#718096;font-family:'Courier New',monospace;}
.rhist-day-result{font-size:12px;font-weight:800;font-family:'Courier New',monospace;}
.rhist-day-result.win{color:#27ae60;} .rhist-day-result.loss{color:#e74c3c;} .rhist-day-result.pending{color:#4a6580;}
.rhist-signals{display:flex;flex-wrap:wrap;gap:6px;}
.rhist-tag{padding:4px 10px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.3px;border:1px solid rgba(255,255,255,.08);}
.rhist-tag.risk{background:rgba(231,76,60,.1);color:#e74c3c;border-color:rgba(231,76,60,.2);}
.rhist-tag.opp{background:rgba(39,174,96,.1);color:#27ae60;border-color:rgba(39,174,96,.2);}
.rhist-tag.neutral{background:rgba(241,196,15,.08);color:#f1c40f;border-color:rgba(241,196,15,.15);}

/* ─── FEAR & GREED ───────────────────────────────────── */
.fng-wrap{display:flex;gap:24px;align-items:stretch;flex-wrap:wrap;}
.fng-gauge{text-align:center;flex-shrink:0;min-width:200px;background:#0d1a2e;border-radius:14px;padding:20px 16px;border:1px solid #1a3355;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.fng-hist-wrap{flex:1;min-width:280px;height:320px;background:#0d1a2e;border-radius:14px;padding:16px;border:1px solid #1a3355;position:relative;resize:both;overflow:hidden;min-height:200px;max-height:800px;}
.fng-hist-wrap::after{content:'\f065';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;bottom:4px;right:8px;font-size:10px;color:rgba(116,185,255,0.25);pointer-events:none;}
.fng-zone-labels{position:absolute;right:12px;top:16px;font-size:9px;font-weight:600;line-height:1;z-index:2;pointer-events:none;}
.fng-zone-labels span{display:block;padding:2px 6px;border-radius:3px;margin-bottom:2px;}

/* ─── BUBBLE MAP ─────────────────────────────────────── */
#bubble-canvas-wrap{position:relative;border-radius:10px;overflow:hidden;background:#07111d;border:1px solid #1a3355;}
#bubble-canvas{width:100%;display:block;cursor:crosshair;}
#bubble-tooltip{position:absolute;pointer-events:none;background:rgba(7,17,29,.96);border:1px solid #1a3355;border-radius:8px;padding:8px 12px;font-size:12px;color:#e2e8f0;display:none;z-index:10;white-space:nowrap;line-height:1.7;}
.bubble-tab-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.bubble-tab{padding:5px 16px;border-radius:8px;border:1px solid #1e3a5f;background:#0d2137;color:#a0aec0;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.2,.8,.25,1);font-family:'Montserrat',sans-serif;}
.bubble-tab.active,.bubble-tab:hover{border-color:#74b9ff;background:#0f2a47;color:#74b9ff;box-shadow:0 2px 10px rgba(116,185,255,0.15);}
.bubble-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:#a0aec0;}
.bl-item{display:flex;align-items:center;gap:5px;}
.bl-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}

/* ─── NEWS SYNTHESIS ─────────────────────────────────── */
#idx-news-synthesis a{color:#8ab4d4;text-decoration:none;}
#idx-news-synthesis a:hover{text-decoration:underline;color:#74b9ff;}

/* ─── REFRESH BUTTONS ────────────────────────────────── */
.rfb-d{background:#0d2137;border:1px solid #1e3a5f;color:#74b9ff;padding:5px 14px;border-radius:8px;font-size:11px;cursor:pointer;transition:all .3s cubic-bezier(.2,.8,.25,1);font-weight:600;font-family:'Montserrat',sans-serif;}
.rfb-d:hover{border-color:#74b9ff;background:#0f2a47;transform:translateY(-1px);box-shadow:0 4px 12px rgba(116,185,255,0.15);}
.rfb-d:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;}
.fng-tf{padding:4px 10px;font-size:10px;min-width:32px;text-align:center;}
