:root {
  --purple: #7B5EA7; --blue: #4FACFE; --cyan: #00F2FE;
  --green: #00E676; --red: #FF5252; --gold: #FFD54F;
  --bg: #04040a;
  --glass: rgba(255,255,255,0.055);
  --glass-border: rgba(255,255,255,0.11);
  --text: rgba(255,255,255,0.93);
  --text2: rgba(255,255,255,0.55);
  --text3: rgba(255,255,255,0.3);
  --r: cubic-bezier(.23,1,.32,1);
  --rad: 18px; --rad-sm: 10px;
}

/* ── LIGHT THEME ── */
body.light-theme {
  --bg: #eaf0f6;
  --glass: rgba(255, 255, 255, 0.45);
  --glass-border: rgba(255, 255, 255, 0.8);
  --text: #05051a; --text2: rgba(5,5,26,0.65); --text3: rgba(5,5,26,0.45);
  --blue: #0077CC; --purple: #8E24AA; --cyan: #00BCD4;
  --green: #00A650; --red: #D32F2F; --gold: #F57F17;
}

body.light-theme .glass {
  box-shadow: 0 8px 32px rgba(100, 110, 140, 0.15), inset 0 1px 0 rgba(255,255,255,0.7);
}
body.light-theme .sw-dropdown {
  background: #ffffff; border: 1px solid rgba(0,0,0,0.1); box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}
body.light-theme .sw-d-item:hover { background: rgba(0,0,0,0.05); color: #000; border-color: transparent; }
body.light-theme .search-suggestions { background: #ffffff; border: 1px solid rgba(0,0,0,0.1); }
body.light-theme .local-suggestions { background: #ffffff !important; border: 1px solid rgba(0,0,0,0.1) !important; }
body.light-theme .ls-item:hover { background: rgba(0,0,0,0.05); color: #000; }
body.light-theme .c-select option { background: #ffffff; color: #000; }
body.light-theme .btn-analyze { background: linear-gradient(135deg,var(--blue),var(--cyan)); box-shadow: 0 4px 20px rgba(0,119,204,0.3); }

/* Overrides for elements stuck in dark mode */
body.light-theme .select-wrapper { background: rgba(255,255,255,0.75); border-color: rgba(0,0,0,0.1); box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
body.light-theme .select-wrapper:hover { background: rgba(255,255,255,1); border-color: rgba(0,119,204,0.3); }
body.light-theme .draw-toolbar { background: rgba(255,255,255,0.85); border-color: rgba(0,0,0,0.1); }
body.light-theme .draw-btn:hover { background: rgba(0,0,0,0.06); color: #000; }
body.light-theme .draw-btn.active { background: rgba(0,119,204,0.15); border-color: rgba(0,119,204,0.3); color: var(--blue); }
body.light-theme .tf-btn { background: rgba(255,255,255,0.6); border-color: rgba(0,0,0,0.08); color: var(--text2); }
body.light-theme .tf-btn:hover { border-color: rgba(0,119,204,0.3); color: #000; }
body.light-theme .tf-btn.active { background: linear-gradient(135deg,var(--blue),var(--cyan)); color: #fff; border-color: transparent; }
body.light-theme .chip { background: rgba(255,255,255,0.6); border-color: rgba(0,0,0,0.08); color: var(--text2); }
body.light-theme .pair-input-row { background: rgba(255,255,255,0.6); border-color: rgba(0,0,0,0.1); }
body.light-theme .btn-retry { background: rgba(0,119,204,0.1); border-color: rgba(0,119,204,0.3); }
body.light-theme .draw-clear-btn { border-color: rgba(211,47,47,0.3); color: rgba(211,47,47,0.85); }
body.light-theme .draw-clear-btn:hover { background: rgba(211,47,47,0.1); color: var(--red); }

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;line-height:1.6}

/* ── ORBS ── */
.bg-orbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;transform:translateZ(0);will-change:transform}
#particles-canvas {position:fixed;inset:0;z-index:0;pointer-events:none;transform:translateZ(0);will-change:transform}
.orb{position:absolute;border-radius:50%;filter:blur(80px);animation:orbf 22s infinite ease-in-out;transform:translateZ(0);will-change:transform, opacity}
.orb-1{width:600px;height:600px;background:radial-gradient(circle,var(--purple) 0%,transparent 70%);top:-200px;left:-150px;opacity:.3;animation-duration:26s}
.orb-2{width:480px;height:480px;background:radial-gradient(circle,var(--blue) 0%,transparent 70%);top:30%;right:-180px;opacity:.25;animation-delay:-9s;animation-duration:31s}
.orb-3{width:380px;height:380px;background:radial-gradient(circle,var(--cyan) 0%,transparent 70%);bottom:-80px;left:32%;opacity:.18;animation-delay:-16s;animation-duration:24s}
.orb-4{width:300px;height:300px;background:radial-gradient(circle,#9B6FCE 0%,transparent 70%);bottom:20%;right:8%;opacity:.22;animation-delay:-5s;animation-duration:28s}
@keyframes orbf{0%,100%{transform:translate(0,0) scale(1)}25%{transform:translate(28px,-38px) scale(1.04)}50%{transform:translate(-18px,28px) scale(.96)}75%{transform:translate(36px,18px) scale(1.02)}}
#particles-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.45}

/* ── GLASS ── */
.glass{background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:0 8px 32px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.09);border-radius:var(--rad);position:relative;overflow:hidden}
.glass::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.07) 0%,transparent 55%,rgba(255,255,255,.02) 100%);pointer-events:none;z-index:0}

/* ── APP SHELL ── */
.app{position:relative;z-index:1;display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden}

/* ── HEADER ── */
.header{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;margin:12px 12px 0;flex-shrink:0;border-radius:var(--rad)}
.header-left{display:flex;align-items:center;gap:12px}
.logo-mark svg{filter:drop-shadow(0 4px 12px rgba(123,94,167,.45))}
.logo-name{font-family:'Space Grotesk',sans-serif;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.grad{background:linear-gradient(135deg,var(--blue),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.logo-sub{font-size:.68rem;color:var(--text3);letter-spacing:.04em;text-transform:uppercase}
.header-right{display:flex;align-items:center;gap:10px}
.theme-btn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--r);box-shadow:0 4px 12px rgba(0,0,0,.15);font-size:.9rem;flex-shrink:0}
.theme-btn:hover{background:rgba(255,255,255,.15);transform:scale(1.05)}
body.light-theme .theme-btn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1);box-shadow:0 4px 12px rgba(0,0,0,.05)}
body.light-theme .theme-btn:hover{background:rgba(0,0,0,.08)}
.live-badge{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text2);background:rgba(0,230,118,.07);border:1px solid rgba(0,230,118,.18);padding:5px 13px;border-radius:999px}
.live-dot{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 6px var(--green);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.data-sources{display:flex;gap:6px}
.ds-tag{font-size:.68rem;color:var(--text3);border:1px solid rgba(255,255,255,.08);padding:3px 9px;border-radius:999px;letter-spacing:.03em}

/* ── LAYOUT ── */
.layout{display:grid;grid-template-columns:340px 1fr;gap:10px;padding:10px 12px 12px;flex:1;min-height:0}
.sidebar{display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}
.sidebar::-webkit-scrollbar{width:4px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:999px}

/* ── CARDS ── */
.card{padding:18px;position:relative;z-index:1;flex-shrink:0}
.card-label{font-size:.68rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}

/* ── CUSTOM SEARCH ── */
.local-search-wrap{position:relative;margin-bottom:12px;z-index:150}
.ls-input-row{display:flex;align-items:center;padding:7px 12px;gap:8px;transition:all .3s}
.ls-input-row:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px rgba(79,172,254,.2)}
.ls-icon{color:var(--text3);display:flex;align-items:center;justify-content:center}
.ls-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:.9rem;font-weight:500;padding:2px 0;width:100%}
.ls-input::placeholder{color:var(--text3);font-weight:400}
.local-suggestions{position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:260px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px;border-radius:var(--rad-sm);background:#000 !important;border:1px solid rgba(255,255,255,0.3) !important;box-shadow:0 20px 60px rgba(0,0,0,1);z-index:2000;opacity:1 !important}
.ls-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;cursor:pointer;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--text2);transition:all .15s}
.ls-item:hover{background:rgba(255,255,255,.09);color:var(--text)}
.ls-type{font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.1)}
.ls-empty{font-size:.8rem;color:var(--text3);text-align:center;padding:12px;font-style:italic;display:block;}

/* ── CUSTOM SELECTS ── */
.custom-selects{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.select-wrapper{display:flex;align-items:center;background:#111;border:1px solid rgba(255,255,255,0.15);border-radius:var(--rad-sm);position:relative;transition:all .25s var(--r);cursor:pointer;overflow:visible !important;box-shadow:0 4px 12px rgba(0,0,0,0.4)}
.select-wrapper:hover{background:rgba(255,255,255,.06);border-color:rgba(79,172,254,.3)}
.select-wrapper:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px rgba(79,172,254,.15)}
.sw-icon{display:flex;align-items:center;justify-content:center;width:34px;height:100%;min-height:38px;background:rgba(255,255,255,.05);font-size:.7rem;font-weight:700;color:var(--text2);border-right:1px solid rgba(255,255,255,.05)}
.crypto-wrap .sw-icon{color:var(--gold);background:rgba(255,213,79,.08)}
.forex-wrap .sw-icon{color:#b39ddb;background:rgba(123,94,167,.12)}
.stock-wrap .sw-icon{color:var(--green);background:rgba(0,230,118,.08)}
.index-wrap .sw-icon{color:var(--blue);background:rgba(79,172,254,.08)}
.com-wrap .sw-icon{color:var(--cyan);background:rgba(0,242,254,.08)}
.c-select{appearance:none;-webkit-appearance:none;flex:1;background:transparent;border:none;outline:none;padding:10px 12px;color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:.9rem;font-weight:600;pointer-events:none}
.sw-arrow{position:absolute;right:12px;pointer-events:none;font-size:.6rem;color:var(--text3);transition:color .2s}
.select-wrapper:hover .sw-arrow{color:var(--blue)}
.sw-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow-y:auto;padding:8px;flex-direction:column;gap:4px;border-radius:var(--rad-sm);background:#000;border:1px solid rgba(255,255,255,0.3);box-shadow:0 20px 60px rgba(0,0,0,1);z-index:2000;display:none;opacity:1 !important}
.sw-dropdown.show{display:flex}
@keyframes drp{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.sw-d-item{display:flex;align-items:center;padding:10px 14px;cursor:pointer;border-radius:6px;font-size:.88rem;font-weight:600;color:var(--text);transition:all .15s;border:1px solid transparent}
.sw-d-item:hover{background:rgba(255,255,255,0.12);color:#fff;border-color:rgba(255,255,255,0.08)}
.mkt-badge{font-size:.62rem;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:999px;background:rgba(79,172,254,.12);color:var(--blue);border:1px solid rgba(79,172,254,.25);white-space:nowrap}
.mkt-badge.crypto{background:rgba(255,213,79,.1);color:var(--gold);border-color:rgba(255,213,79,.25)}
.mkt-badge.forex{background:rgba(123,94,167,.12);color:#b39ddb;border-color:rgba(123,94,167,.25)}
.mkt-badge.stock{background:rgba(0,230,118,.1);color:var(--green);border-color:rgba(0,230,118,.2)}

/* ── SEARCH WRAPPER & DROPDOWN ── */
.pair-search-wrap{position:relative;margin-bottom:14px}
.pair-input-row{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--rad-sm);padding:6px 10px;position:relative;z-index:1;transition:border-color .2s}
.pair-input-row:focus-within{border-color:rgba(79,172,254,.4);box-shadow:0 0 0 2px rgba(79,172,254,.08)}
.search-suggestions{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:200;padding:6px;display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto;border-radius:var(--rad-sm)}
.search-suggestions::-webkit-scrollbar{width:4px}
.search-suggestions::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:999px}
.sr-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;transition:background .15s var(--r)}
.sr-item:hover,.sr-item.focused{background:rgba(255,255,255,.08)}
.sr-sym{font-family:'Space Grotesk',sans-serif;font-size:.9rem;font-weight:700;letter-spacing:-.01em;color:var(--text);min-width:70px}
.sr-desc{font-size:.75rem;color:var(--text2);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.sr-exch{font-size:.65rem;color:var(--text3);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:2px 7px;border-radius:999px}
.sr-type{font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.sr-type.forex{background:rgba(123,94,167,.15);color:#b39ddb}
.sr-type.crypto{background:rgba(255,213,79,.1);color:var(--gold)}
.sr-type.stock{background:rgba(0,230,118,.1);color:var(--green)}
.sr-type.index,.sr-type.futures{background:rgba(79,172,254,.1);color:var(--blue)}
.sr-empty{font-size:.8rem;color:var(--text3);text-align:center;padding:16px;font-style:italic}
.sr-loading{font-size:.8rem;color:var(--text3);text-align:center;padding:14px 10px;display:flex;align-items:center;justify-content:center;gap:8px}
.sr-spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.12);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}

/* ── CHIPS ── */
.chips-section{position:relative;z-index:1}
.chip-group-label{font-size:.62rem;font-weight:600;color:var(--text3);letter-spacing:.07em;text-transform:uppercase;margin:8px 0 5px}
.chip-row{display:flex;flex-wrap:wrap;gap:5px}
.chip{font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--text2);cursor:pointer;transition:all .2s var(--r)}
.chip:hover,.chip.active{background:linear-gradient(135deg,rgba(123,94,167,.3),rgba(79,172,254,.2));border-color:rgba(79,172,254,.4);color:var(--text)}

/* ── TIMEFRAME ── */
.tf-row{display:flex;gap:6px;position:relative;z-index:1;margin-bottom:14px}
.tf-row-wrap{flex-wrap:wrap}
.tf-btn{flex:1;min-width:40px;padding:7px 0;font-size:.78rem;font-weight:600;border-radius:var(--rad-sm);border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.04);color:var(--text2);cursor:pointer;transition:all .22s var(--r)}
.tf-btn:hover{border-color:rgba(79,172,254,.3);color:var(--text)}
.tf-btn.active{background:linear-gradient(135deg,rgba(123,94,167,.4),rgba(79,172,254,.3));border-color:rgba(79,172,254,.5);color:#fff;box-shadow:0 4px 14px rgba(79,172,254,.2)}

/* ── ANALYZE BUTTON ── */
.btn-analyze{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border-radius:var(--rad-sm);border:none;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;font-family:'Space Grotesk',sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .28s var(--r);box-shadow:0 4px 20px rgba(79,172,254,.25);position:relative;z-index:1;letter-spacing:.01em}
.btn-analyze:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(79,172,254,.4)}
.btn-analyze:active{transform:translateY(0)}
.btn-analyze:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-arrow{opacity:.7;font-size:1.1rem;margin-left:2px;transition:transform .2s var(--r)}
.btn-analyze:hover .btn-arrow{transform:translateX(4px);opacity:1}
.btn-retry{padding:9px 22px;border-radius:999px;border:1px solid rgba(79,172,254,.3);background:rgba(79,172,254,.1);color:var(--blue);font-family:'Inter',sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s var(--r);margin-top:4px}
.btn-retry:hover{background:rgba(79,172,254,.2);border-color:rgba(79,172,254,.5)}

/* ── SIGNAL HERO ── */
.signal-hero{display:flex;flex-direction:column;gap:8px;padding:18px 14px;border-radius:var(--rad-sm);text-align:center;position:relative;z-index:1;transition:all .4s var(--r)}
.signal-hero.buy{background:rgba(0,230,118,.12);border:1.5px solid rgba(0,230,118,.4);box-shadow:0 0 28px rgba(0,230,118,.18)}
.signal-hero.sell{background:rgba(255,82,82,.13);border:1.5px solid rgba(255,82,82,.4);box-shadow:0 0 28px rgba(255,82,82,.18)}
.signal-hero.neutral{background:rgba(255,213,79,.08);border:1.5px solid rgba(255,213,79,.28)}
.signal-direction{display:flex;align-items:center;justify-content:center;gap:14px;font-family:'Space Grotesk',sans-serif;font-size:2.4rem;font-weight:900;letter-spacing:.14em}
.signal-hero.buy .signal-direction{color:var(--green);text-shadow:0 0 20px rgba(0,230,118,.5)}
.signal-hero.sell .signal-direction{color:var(--red);text-shadow:0 0 20px rgba(255,82,82,.5)}
.signal-hero.neutral .signal-direction{color:var(--gold)}
.sh-icon{font-size:2rem;line-height:1}
.sig-meta{font-size:.72rem;color:var(--text3);letter-spacing:.02em}

/* ── SIGNAL CARD ── */
.signal-card{display:flex;flex-direction:column;gap:14px}
.signal-top{display:flex;align-items:center;gap:12px;position:relative;z-index:1}
.signal-badge{display:flex;align-items:center;gap:7px;padding:8px 18px;border-radius:999px;font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:800;letter-spacing:.06em;transition:all .5s var(--r)}
.signal-badge.buy{background:rgba(0,230,118,.12);border:1px solid rgba(0,230,118,.35);color:var(--green);box-shadow:0 0 20px rgba(0,230,118,.15)}
.signal-badge.sell{background:rgba(255,82,82,.12);border:1px solid rgba(255,82,82,.35);color:var(--red);box-shadow:0 0 20px rgba(255,82,82,.15)}
.signal-badge.neutral{background:rgba(255,213,79,.09);border:1px solid rgba(255,213,79,.28);color:var(--gold)}
.sig-pair{font-family:'Space Grotesk',sans-serif;font-size:.95rem;font-weight:700;color:var(--text)}
.sig-tf{font-size:.7rem;color:var(--text3);margin-top:1px}

/* ── CONFIDENCE ── */
.conf-wrap{position:relative;z-index:1}
.conf-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:.78rem;color:var(--text2)}
.conf-pct{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:700;color:var(--text)}
.conf-bar{height:7px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;position:relative}
.conf-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--purple),var(--blue),var(--cyan));transition:width 1.4s cubic-bezier(.34,1.56,.64,1)}
.conf-tag{margin-top:7px;display:inline-block;font-size:.7rem;font-weight:600;padding:2px 10px;border-radius:999px;letter-spacing:.04em}
.conf-tag.high{background:rgba(0,230,118,.12);color:var(--green);border:1px solid rgba(0,230,118,.22)}
.conf-tag.mid{background:rgba(255,213,79,.1);color:var(--gold);border:1px solid rgba(255,213,79,.22)}
.conf-tag.low{background:rgba(255,82,82,.1);color:var(--red);border:1px solid rgba(255,82,82,.18)}

/* ── LEVELS GRID ── */
.levels-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:relative;z-index:1}
.level{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border-radius:var(--rad-sm);border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.04);transition:transform .25s var(--r)}
.level:hover{transform:translateY(-1px)}
.level.entry{border-color:rgba(79,172,254,.2)}
.level.tp{border-color:rgba(0,230,118,.2)}
.level.sl{border-color:rgba(255,82,82,.2)}
.level.rr{border-color:rgba(255,213,79,.18)}
.lv-label{font-size:.62rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.lv-val{font-family:'JetBrains Mono',monospace;font-size:.92rem;font-weight:500;color:var(--text)}
.level.entry .lv-val{color:var(--blue)}
.level.tp .lv-val{color:var(--green)}
.level.sl .lv-val{color:var(--red)}
.level.rr .lv-val{color:var(--gold)}

/* ── INDICATOR PILLS ── */
.ind-readings,.pattern-wrap{position:relative;z-index:1}
.ind-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.ind-pill{font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;background:rgba(123,94,167,.12);border:1px solid rgba(123,94,167,.22);color:#b39ddb}
.ind-pill.bull{background:rgba(0,230,118,.09);border-color:rgba(0,230,118,.2);color:var(--green)}
.ind-pill.bear{background:rgba(255,82,82,.09);border-color:rgba(255,82,82,.18);color:var(--red)}
.ind-pill.neu{background:rgba(255,213,79,.08);border-color:rgba(255,213,79,.18);color:var(--gold)}
.pattern-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.ptag{font-size:.68rem;padding:3px 9px;border-radius:999px;background:rgba(79,172,254,.08);border:1px solid rgba(79,172,254,.15);color:var(--text2);animation:tagin .35s var(--r) both}
@keyframes tagin{from{opacity:0;transform:translateY(4px) scale(.95)}to{opacity:1;transform:none}}

/* ── CHART PANEL ── */
.chart-panel{display:flex;flex-direction:column;min-height:0;position:relative}

/* ── CHART STATES ── */
.chart-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:60px 40px;flex:1}
.chart-state h2{font-family:'Space Grotesk',sans-serif;font-size:1.15rem;font-weight:600;color:var(--text2)}
.chart-state p{font-size:.85rem;color:var(--text3);line-height:1.8;max-width:360px}

/* Empty state rings */
.state-rings{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center;color:var(--text3)}
.sring{position:absolute;border:2px solid rgba(123,94,167,.25);border-radius:50%;animation:rpulse 3s ease-out infinite}
.sring{width:80px;height:80px}.s2{width:80px;height:80px;animation-delay:1s}.s3{width:80px;height:80px;animation-delay:2s}
@keyframes rpulse{0%{transform:scale(.7);opacity:.8}100%{transform:scale(2.2);opacity:0}}

/* Loading spinner */
.spin-wrap{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center}
.spin-ring{position:absolute;inset:0;border:2.5px solid transparent;border-top-color:var(--purple);border-radius:50%;animation:spin 1.1s linear infinite}
.spin-ring.r2{inset:10px;border-top-color:var(--blue);animation-duration:.75s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.load-steps{display:flex;flex-direction:column;gap:8px;width:100%;max-width:260px}
.lstep{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text3);transition:color .35s var(--r)}
.lstep.active{color:var(--text)}.lstep.done{color:var(--green)}
.ldot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.12);flex-shrink:0;transition:all .35s var(--r)}
.lstep.active .ldot{background:var(--blue);box-shadow:0 0 7px var(--blue);animation:dp 1s infinite}
.lstep.done .ldot{background:var(--green);box-shadow:0 0 5px var(--green)}
@keyframes dp{0%,100%{transform:scale(1)}50%{transform:scale(1.45)}}

/* Error state */
.err-icon{color:var(--red);opacity:.7}

/* ── CHART WRAPPER ── */
.chart-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;padding:0}
.chart-topbar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.06);border-radius:var(--rad) var(--rad) 0 0;flex-shrink:0}
.chart-pair-name{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:800;letter-spacing:-.01em}
.chart-price{font-family:'JetBrains Mono',monospace;font-size:.95rem;font-weight:500}
.chart-change{font-size:.78rem;font-weight:600;padding:2px 8px;border-radius:999px}
.chart-change.up{background:rgba(0,230,118,.12);color:var(--green)}
.chart-change.down{background:rgba(255,82,82,.1);color:var(--red)}
.chart-meta{font-size:.72rem;color:var(--text3);margin-left:auto}
.chart-source{font-size:.68rem;color:var(--text3);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);padding:2px 9px;border-radius:999px}
.canvas-container{flex:1;min-height:0;position:relative}
#main-canvas{display:block;width:100%;height:100%}
.chart-legend{display:flex;align-items:center;gap:12px;padding:7px 16px;background:rgba(255,255,255,.02);border-top:1px solid rgba(255,255,255,.06);flex-shrink:0;border-radius:0 0 var(--rad) var(--rad);flex-wrap:wrap}
.leg-item{display:flex;align-items:center;gap:5px;font-size:.68rem;color:var(--text3)}
.leg-line{width:18px;height:2px;border-radius:2px}

/* ── TOAST ── */
.toast{position:fixed;bottom:28px;right:28px;z-index:9999;display:flex;align-items:center;gap:9px;padding:13px 18px;border-radius:var(--rad-sm);background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(24px);box-shadow:0 8px 28px rgba(0,0,0,.4);font-size:.84rem;font-weight:500;color:var(--text);transform:translateY(16px);opacity:0;transition:all .38s var(--r);max-width:320px;pointer-events:none}
.toast.show{transform:translateY(0);opacity:1;pointer-events:auto}
.toast.ok{border-color:rgba(0,230,118,.3)}
.toast.err{border-color:rgba(255,82,82,.3)}
.toast.warn{border-color:rgba(255,213,79,.25)}

/* ── RESPONSIVE OVERHAUL ── */
@media (max-width: 850px) {
  .app { height: auto; max-height: none; overflow: auto; }
  .header { margin: 8px 8px 0; padding: 10px 16px; border-radius: 12px; }
  .logo-name { font-size: 1.05rem; }
  .logo-sub { display: none; }
  .header-right { gap: 6px; }
  .live-badge { padding: 4px 10px; font-size: 0.7rem; }

  .layout { display: flex; flex-direction: column; padding: 8px; gap: 8px; height: auto; min-width: 0; }
  .sidebar { width: 100%; height: auto; max-height: none; overflow: visible; }
  .chart-panel { min-height: 480px; width: 100%; border-radius: 12px; }
  
  .card { padding: 14px; }
  .card-label { font-size: 0.62rem; margin-bottom: 8px; }
  
  .tf-row-wrap { gap: 4px; }
  .tf-btn { padding: 6px 10px; font-size: 0.7rem; flex: 1; min-width: 45px; text-align: center; }
  
  .chart-wrapper { border-radius: 12px; }
  .chart-topbar { padding: 8px 12px; flex-wrap: wrap; gap: 8px; }
  .chart-pair-name { font-size: 0.95rem; }
  .chart-price { font-size: 1.1rem; }
  .chart-meta { font-size: 0.65rem; width: 100%; opacity: 0.6; }
  
  .signal-hero { padding: 15px; }
  #sig-text { font-size: 1.6rem; }
  .conf-pct { font-size: 1.1rem; }
  
  .levels-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .level { padding: 8px; }
  
  .sw-dropdown { max-height: 220px; z-index: 2000; }
}

@media (max-width: 420px) {
  .chart-panel { min-height: 420px; }
  #sig-text { font-size: 1.4rem; }
  .logo-name { font-size: 0.95rem; }
}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:999px}

/* ══════════════════════════════════════════════════════
   NEW FEATURE STYLES
   ══════════════════════════════════════════════════════ */

/* ── MULTI-TIMEFRAME CONFLUENCE ── */
.mtf-card{position:relative;z-index:1}
.mtf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:4px}
.mtf-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:var(--rad-sm);border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.03);transition:all .3s var(--r);cursor:default}
.mtf-cell.buy{border-color:rgba(0,230,118,.3);background:rgba(0,230,118,.06);box-shadow:0 0 12px rgba(0,230,118,.08)}
.mtf-cell.sell{border-color:rgba(255,82,82,.3);background:rgba(255,82,82,.06);box-shadow:0 0 12px rgba(255,82,82,.08)}
.mtf-cell.neutral{border-color:rgba(255,213,79,.2);background:rgba(255,213,79,.04)}
.mtf-cell.loading{opacity:.45}
.mtf-tf{font-size:.65rem;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.mtf-sig{font-size:.78rem;font-weight:800;font-family:'Space Grotesk',sans-serif;letter-spacing:.04em}
.mtf-cell.buy .mtf-sig{color:var(--green)}
.mtf-cell.sell .mtf-sig{color:var(--red)}
.mtf-cell.neutral .mtf-sig{color:var(--gold)}
.mtf-cell.loading .mtf-sig{color:var(--text3)}
.mtf-conf{font-size:.62rem;color:var(--text3)}
.mtf-bar-wrap{width:100%;height:3px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden;margin-top:2px}
.mtf-bar{height:100%;border-radius:999px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}
.mtf-cell.buy .mtf-bar{background:var(--green)}
.mtf-cell.sell .mtf-bar{background:var(--red)}
.mtf-cell.neutral .mtf-bar{background:var(--gold)}
.confluence-row{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;border-radius:var(--rad-sm);background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.conf-label-small{font-size:.67rem;color:var(--text3);white-space:nowrap}
.conf-bar-multi{flex:1;height:5px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden}
.conf-bar-multi-fill{height:100%;border-radius:999px;transition:width 1s cubic-bezier(.34,1.56,.64,1)}
.conf-score-text{font-size:.72rem;font-weight:700;color:var(--text);font-family:'Space Grotesk',sans-serif;white-space:nowrap}

/* ── HISTORY / TRADE LOG ── */
.history-card{position:relative;z-index:1}
.history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.hist-clear-btn{font-size:.65rem;padding:3px 10px;border-radius:999px;border:1px solid rgba(255,82,82,.25);background:rgba(255,82,82,.07);color:var(--red);cursor:pointer;transition:all .2s;font-family:'Inter',sans-serif}
.hist-clear-btn:hover{background:rgba(255,82,82,.15)}
.history-list{display:flex;flex-direction:column;gap:5px;max-height:200px;overflow-y:auto}
.history-list::-webkit-scrollbar{width:3px}
.history-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08)}
.hist-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px;align-items:center;padding:7px 10px;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);font-size:.72rem;transition:background .15s;animation:tagin .3s var(--r) both}
.hist-row:hover{background:rgba(255,255,255,.06)}
.hist-pair{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.78rem;color:var(--text)}
.hist-tf{font-size:.62rem;color:var(--text3);background:rgba(255,255,255,.05);padding:1px 6px;border-radius:999px}
.hist-sig{font-weight:800;font-size:.75rem;padding:2px 8px;border-radius:999px;letter-spacing:.04em}
.hist-sig.buy{background:rgba(0,230,118,.1);color:var(--green);border:1px solid rgba(0,230,118,.2)}
.hist-sig.sell{background:rgba(255,82,82,.1);color:var(--red);border:1px solid rgba(255,82,82,.2)}
.hist-conf{font-size:.68rem;color:var(--text2);font-family:'JetBrains Mono',monospace}
.hist-date{font-size:.6rem;color:var(--text3)}
.hist-empty{font-size:.78rem;color:var(--text3);text-align:center;padding:16px;font-style:italic}

/* ── PRICE ALERT ── */
.alert-row{display:flex;align-items:center;gap:8px;margin-left:auto}
.alert-input-wrap{display:flex;align-items:center;gap:0;border-radius:var(--rad-sm);overflow:hidden;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);transition:border-color .2s}
.alert-input-wrap:focus-within{border-color:rgba(249,168,37,.4)}
.alert-icon{padding:0 8px;color:var(--gold);font-size:.85rem;cursor:default}
.alert-input{background:transparent;border:none;outline:none;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:.82rem;padding:6px 4px;width:100px}
.alert-input::placeholder{color:var(--text3)}
.alert-set-btn{padding:6px 12px;background:rgba(249,168,37,.15);border:none;color:var(--gold);font-family:'Space Grotesk',sans-serif;font-size:.75rem;font-weight:700;cursor:pointer;border-left:1px solid rgba(255,255,255,.08);transition:all .2s}
.alert-set-btn:hover{background:rgba(249,168,37,.3)}
.alert-active-badge{display:flex;align-items:center;gap:5px;font-size:.7rem;padding:4px 10px;border-radius:999px;background:rgba(249,168,37,.1);border:1px solid rgba(249,168,37,.25);color:var(--gold);cursor:pointer;transition:all .2s}
.alert-active-badge:hover{background:rgba(249,168,37,.2)}
.alert-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;animation:blink 1.5s infinite}

/* ── DRAWING TOOLBAR ── */
.draw-toolbar{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:100;display:flex;align-items:center;gap:4px;padding:5px 8px;background:rgba(5,5,15,.85);border:1px solid rgba(255,255,255,.1);border-radius:999px;backdrop-filter:blur(16px);box-shadow:0 4px 20px rgba(0,0,0,.5);transition:opacity .2s}
.draw-toolbar.hidden{opacity:0;pointer-events:none}
.draw-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--text2);cursor:pointer;font-size:.9rem;transition:all .2s;position:relative}
.draw-btn:hover{background:rgba(255,255,255,.1);color:var(--text)}
.draw-btn.active{background:rgba(79,172,254,.2);border-color:rgba(79,172,254,.4);color:var(--blue)}
.draw-sep{width:1px;height:18px;background:rgba(255,255,255,.1);margin:0 2px}
.draw-clear-btn{font-size:.65rem;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,82,82,.2);background:transparent;color:rgba(255,82,82,.7);cursor:pointer;transition:all .2s;font-family:'Inter',sans-serif;white-space:nowrap}
.draw-clear-btn:hover{background:rgba(255,82,82,.12);color:var(--red)}

/* ── AI NARRATIVE ── */
.narrative-block{position:relative;z-index:1;padding:12px 14px;border-radius:var(--rad-sm);background:linear-gradient(135deg,rgba(123,94,167,.1),rgba(79,172,254,.07));border:1px solid rgba(123,94,167,.22);transition:all .4s var(--r)}
.narrative-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.narrative-icon{font-size:1rem}
.narrative-title{font-size:.68rem;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
.narrative-text{font-size:.82rem;line-height:1.75;color:var(--text2)}
.narrative-text em{color:var(--text);font-style:normal;font-weight:600}
.narrative-skeleton{display:flex;flex-direction:column;gap:6px}
.skel-line{height:10px;border-radius:999px;background:rgba(255,255,255,.06);animation:skelp 1.4s ease-in-out infinite alternate}
.skel-line:nth-child(2){width:85%;animation-delay:.2s}
.skel-line:nth-child(3){width:70%;animation-delay:.4s}
@keyframes skelp{from{opacity:.4}to{opacity:.8}}

/* ── MARKET STRUCTURE BADGE (in signal card) ── */
.ms-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;position:relative;z-index:1}
.ms-badge{font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.04em;border:1px solid transparent;animation:tagin .35s var(--r) both}
.ms-badge.uptrend{background:rgba(0,230,118,.1);color:var(--green);border-color:rgba(0,230,118,.2)}
.ms-badge.downtrend{background:rgba(255,82,82,.1);color:var(--red);border-color:rgba(255,82,82,.2)}
.ms-badge.ranging{background:rgba(255,213,79,.08);color:var(--gold);border-color:rgba(255,213,79,.18)}
.ms-badge.bos{background:rgba(79,172,254,.12);color:var(--blue);border-color:rgba(79,172,254,.25)}
.ms-badge.choch{background:rgba(206,147,216,.12);color:#CE93D8;border-color:rgba(206,147,216,.25)}
.ms-badge.div-bull{background:rgba(0,230,118,.1);color:var(--green);border-color:rgba(0,230,118,.2)}
.ms-badge.div-bear{background:rgba(255,82,82,.1);color:var(--red);border-color:rgba(255,82,82,.2)}

/* ── COLLAPSIBLE SECTIONS ── */
.collapsible-toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
.collapsible-toggle .toggle-arrow{font-size:.65rem;color:var(--text3);transition:transform .25s var(--r)}
.collapsible-toggle.open .toggle-arrow{transform:rotate(180deg)}
.collapsible-body{overflow:hidden;transition:max-height .35s var(--r),opacity .25s;max-height:0;opacity:0}
.collapsible-body.open{max-height:1000px;opacity:1}

/* ── TOPBAR ALERT SECTION ── */
.chart-topbar{flex-wrap:wrap;row-gap:6px}

/* ── RESPONSIVE & MOBILE ── */
@media(max-width:1100px){
  .layout{grid-template-columns:290px 1fr}
}
@media(max-width:850px){
  html, body { height: auto; min-height: 100vh; overflow-y: auto; overflow-x: hidden; }
  .app { height: auto; min-height: 100vh; overflow: visible; display: block; }
  .header { padding: 10px 14px; margin: 8px 8px 0; }
  .logo-name { font-size: 1rem; }
  .logo-sub { font-size: 0.6rem; }
  .logo-mark svg { width: 28px; height: 28px; }
  .layout { display: flex; flex-direction: column; overflow: visible; padding: 6px; gap: 8px; min-height: auto; }
  .sidebar { display: contents; }
  
  .pair-card { order: 1; margin-bottom: 0px; }
  .chart-panel { order: 2; min-height: 480px; height: 550px; padding: 6px 0; margin: 4px 0; flex-shrink: 0; }
  .card { order: 3; margin-bottom: 6px; }
  
  .canvas-container { min-height: 100%; height: 100%; }
  
  .mtf-grid { grid-template-columns: repeat(2, 1fr); }
  .draw-toolbar { top: 4px; padding: 4px 6px; gap: 2px; }
  .draw-btn { width: 26px; height: 26px; font-size: .8rem; }
  .alert-row { width: 100%; }
  .narrative-text { font-size: .78rem; }
  
  .tf-row-wrap { margin-bottom: 20px; }
  .chart-topbar { padding: 8px; flex-direction: column; align-items: flex-start; gap: 10px; }
  .chart-price-wrap { width: 100%; justify-content: flex-start; }
  .chart-meta { display: none; } /* Hide meta text on mobile to save space */
  .chart-legend { position: relative; bottom: auto; left: auto; padding: 6px; margin-top: 4px; border-top: 1px solid rgba(255,255,255,.05); border-radius: 0; background: transparent; backdrop-filter: none; }
}
@media(max-width:420px){
  .mtf-grid { grid-template-columns: repeat(2, 1fr); }
  .alert-input { width: 100%; }
  .btn-analyze { padding: 15px 20px; font-size: 1.05rem; }
  .card { padding: 14px; }
  .live-badge { padding: 4px 8px; font-size: 0; gap: 0; }
  .live-badge .live-dot { margin: 0; }
}
