/* KK15 Trading AI — light theme (white, clean cards, violet accent) */
:root{
  --bg:#f5f6fb;--panel:#ffffff;--line:#e6e8f2;--line2:#eef0f7;--text:#1c1d2e;--muted:#6b7089;
  --up:#10a372;--down:#e5484d;--warn:#d98a00;--accent:#5b3df5;--accent2:#8b6cff;--accent-soft:#f1edff;
  --radius:16px;--mono:'JetBrains Mono',ui-monospace,monospace;--shadow:0 1px 2px rgba(20,22,50,.04),0 6px 24px rgba(20,22,50,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Space Grotesk',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;line-height:1.5}
.mono{font-family:var(--mono)}
button{font:inherit;cursor:pointer}
a{color:var(--accent)}

/* soft background */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(180deg,#f0edff 0,#f5f6fb 340px)}
.bg span{display:none}

/* top bar */
.top{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px clamp(16px,4vw,40px);flex-wrap:wrap;
  background:rgba(255,255,255,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.logo-img{width:40px;height:40px;border-radius:12px;box-shadow:0 4px 14px rgba(91,61,245,.3)}
.logo{display:none}
h1{font-size:clamp(17px,2.2vw,21px);font-weight:700;letter-spacing:-.3px;color:var(--text)}
h1 em{font-style:normal;color:var(--accent)}
.brand p{color:var(--muted);font-size:12.5px}
.topnav{display:flex;gap:4px;flex-wrap:wrap}
.topnav a{color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;padding:8px 12px;border-radius:10px;transition:.15s}
.topnav a:hover{background:var(--accent-soft);color:var(--accent)}
@media (max-width:980px){.topnav{display:none}}
.status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);background:#fff;border:1px solid var(--line);padding:7px 13px;border-radius:99px}
.dot{width:9px;height:9px;border-radius:50%;background:#c3c6d6}
.dot.live{background:var(--up);animation:pulse 1.6s infinite}
.dot.closed{background:var(--down)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(16,163,114,.5)}70%{box-shadow:0 0 0 9px rgba(16,163,114,0)}100%{box-shadow:0 0 0 0 rgba(16,163,114,0)}}
.clock{font-family:var(--mono);color:var(--text)}

/* ticker */
.ticker{overflow:hidden;border-bottom:1px solid var(--line);background:#fff;white-space:nowrap}
.ticker-track{display:inline-flex;gap:40px;padding:9px 0;animation:marquee 45s linear infinite;font-size:13px;font-family:var(--mono);color:var(--text)}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker b{color:var(--muted);font-weight:600;margin-right:8px}

.wrap{max-width:1320px;margin:0 auto;padding:22px clamp(16px,3vw,32px) 48px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;position:relative;min-width:0;box-shadow:var(--shadow)}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
h2{font-size:16px;font-weight:700;letter-spacing:-.1px;color:var(--text)}
.tag{font-size:11.5px;color:var(--muted);background:var(--bg);border:1px solid var(--line);padding:3px 10px;border-radius:99px;font-weight:500}

/* reveal animation */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* controls */
.controls{margin-bottom:18px}
#searchForm{display:flex;gap:10px;flex-wrap:wrap}
#symbol{flex:1 1 240px;background:#fff;border:1px solid var(--line);color:var(--text);padding:12px 16px;border-radius:12px;font:inherit;font-size:16px;text-transform:uppercase;outline:none;transition:border-color .2s,box-shadow .2s}
#symbol:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(91,61,245,.12)}
.tf{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:4px}
.tf button{background:none;border:0;color:var(--muted);padding:8px 12px;border-radius:9px;font-size:14px;font-weight:500;transition:.2s}
.tf button.on{background:#fff;color:var(--accent);box-shadow:0 1px 4px rgba(20,22,50,.12)}
.go{border:0;border-radius:12px;padding:12px 22px;color:#fff;font-weight:600;background:var(--accent);position:relative;overflow:hidden;transition:transform .15s,background .2s;box-shadow:0 6px 16px rgba(91,61,245,.28)}
.go:hover{background:#4a2ee0;transform:translateY(-1px)}.go:active{transform:scale(.98)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.chips button{background:#fff;border:1px solid var(--line);color:var(--text);padding:5px 12px;border-radius:99px;font-size:12.5px;font-weight:500;transition:.15s}
.chips button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}

/* grid */
.grid{display:grid;grid-template-columns:360px 1fr;gap:18px;margin-bottom:18px}
.chart-card{grid-row:span 2}
.scanner{grid-column:1/-1}
@media (max-width:980px){.grid{grid-template-columns:1fr}.chart-card{grid-row:auto}}

/* signal card */
.stock-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.stock-line b{font-size:18px}
#stPrice{font-size:20px;font-weight:600}
.chg{font-family:var(--mono);font-size:13px;padding:2px 8px;border-radius:6px}
.chg.up{color:var(--up);background:#e7f7f0}.chg.down{color:var(--down);background:#fdecec}
.gauge-wrap{position:relative;max-width:260px;margin:10px auto 0}
.gauge{width:100%;display:block}
.g-track{fill:none;stroke:#eef0f6;stroke-width:14;stroke-linecap:round}
.g-fill{fill:none;stroke:url(#gg);stroke-width:14;stroke-linecap:round;stroke-dasharray:252;stroke-dashoffset:252;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1)}
.needle{transform-origin:100px 100px;transform:rotate(-90deg);transition:transform 1.2s cubic-bezier(.3,1.4,.4,1)}
.needle line{stroke:var(--text);stroke-width:3;stroke-linecap:round}.needle circle{fill:var(--text)}
.g-score{text-align:center;margin-top:2px}
.g-score span{font-size:30px;font-weight:700}.g-score small{display:block;color:var(--muted);font-size:11px;margin-top:-4px}
.verdict{margin:20px 0 6px;text-align:center;font-weight:700;font-size:21px;letter-spacing:.5px;padding:12px;border-radius:12px;transition:.4s}
.verdict.sbuy,.verdict.buy{color:var(--up);background:#e7f7f0;border:1px solid #bfe9d6}
.verdict.sell,.verdict.ssell{color:var(--down);background:#fdecec;border:1px solid #f6c9ca}
.verdict.wait{color:var(--warn);background:#fff6e5;border:1px solid #f6dfae}
.conf{text-align:center;color:var(--muted);font-size:13px;margin-bottom:12px}
.levels{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lv{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 11px;animation:pop .5s both}
.lv small{display:block;color:var(--muted);font-size:11px}.lv b{font-family:var(--mono);font-size:15px}
.lv.e b{color:var(--accent)}.lv.s b{color:var(--down)}.lv.t b{color:var(--up)}
@keyframes pop{from{opacity:0;transform:scale(.95) translateY(6px)}}

/* chart */
.chart{height:520px;position:relative;border-radius:10px;overflow:hidden}
@media (max-width:600px){.chart{height:380px}}
.legend{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-left:6px}
.l-e20{background:#e8a317}.l-e50{background:#8b6cff}.l-vw{background:#3b82f6}
.loader{position:absolute;inset:0;display:flex;gap:8px;align-items:center;justify-content:center;z-index:5;background:rgba(255,255,255,.7);transition:opacity .3s}
.loader.hide{opacity:0;pointer-events:none}
.loader span{width:10px;height:36px;border-radius:4px;background:var(--accent);animation:bars 1s ease-in-out infinite}
.loader span:nth-child(2){animation-delay:.15s;background:var(--accent2)}.loader span:nth-child(3){animation-delay:.3s;background:var(--up)}
@keyframes bars{50%{transform:scaleY(.4)}}

/* reasons */
.reasons{list-style:none;display:flex;flex-direction:column;gap:8px}
.reasons li{display:flex;gap:10px;align-items:flex-start;font-size:14px;padding:9px 11px;border-radius:10px;background:var(--bg);animation:slide .5s both}
.reasons li i{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:700}
.reasons li.g i{background:#e7f7f0;color:var(--up)}.reasons li.b i{background:#fdecec;color:var(--down)}.reasons li.n i{background:#fff6e5;color:var(--warn)}
@keyframes slide{from{opacity:0;transform:translateX(-10px)}}

/* calc */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.calc label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:4px;font-weight:500}
.calc input,.calc select{background:#fff;border:1px solid var(--line);color:var(--text);padding:9px 11px;border-radius:9px;font-family:var(--mono);font-size:14px;outline:none;width:100%}
.calc input:focus,.calc select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,61,245,.1)}
.calc-out{display:grid;grid-template-columns:1fr 1fr;gap:8px}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.st{background:var(--bg);border:1px solid var(--line2);border-radius:12px;padding:11px 13px;animation:pop .5s both}
.st small{display:block;color:var(--muted);font-size:11.5px}.st b{font-family:var(--mono);font-size:17px}
.st b.up{color:var(--up)}.st b.down{color:var(--down)}
.eq{height:150px;margin-top:12px}
.note{color:var(--muted);font-size:13px;margin-top:12px}
.trades{margin-top:10px;font-size:13px}.trades summary{cursor:pointer;color:var(--accent);font-weight:500}
.trades table{margin-top:8px}

/* tables */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--muted);font-weight:600;padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbff}
td{padding:9px 8px;border-bottom:1px solid var(--line2);font-family:var(--mono);white-space:nowrap}
tbody tr{transition:background .2s;animation:slide .4s both}
#scanTable tbody tr{cursor:pointer}
#scanTable tbody tr:hover{background:var(--accent-soft)}
.pill{padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;font-family:'Space Grotesk',sans-serif}
.pill.sbuy,.pill.buy{background:#e7f7f0;color:var(--up)}.pill.sell,.pill.ssell{background:#fdecec;color:var(--down)}.pill.wait{background:#fff6e5;color:var(--warn)}
.bar{display:inline-block;height:6px;border-radius:3px;vertical-align:middle;margin-right:6px;transition:width .8s}
.up{color:var(--up)}.down{color:var(--down)}
.ghost{background:#fff;border:1px solid var(--accent);color:var(--accent);padding:7px 16px;border-radius:10px;font-weight:600;transition:.2s}
.ghost:hover{background:var(--accent);color:#fff}
.ghost:disabled{opacity:.5;cursor:wait}
.scan-progress{height:3px;background:var(--line2);border-radius:3px;overflow:hidden;margin-bottom:10px}
.scan-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--up));transition:width .3s}

.warn{border-color:#f6dfae;background:#fffbf2}
.warn h2{color:#a86a00;margin-bottom:8px}.warn p{color:#4a4b5e;font-size:14px;margin-bottom:8px}
footer{text-align:center;color:var(--muted);font-size:12.5px;margin-top:26px}
footer a{color:var(--accent);text-decoration:none}
.err{color:var(--down);font-size:14px;padding:10px}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.topnav a.hot{background:linear-gradient(135deg,#ff7e5f,#a46bff);color:#fff}
.topnav a.hot:hover{color:#fff;opacity:.9}
a.sim-link{text-decoration:none;background:var(--accent-soft);color:var(--accent);font-weight:600}
