*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:#f4f9ff;color:#17263d}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 0%,#dffbff,transparent 30%),radial-gradient(circle at 90% 20%,#fff1c9,transparent 30%)}.topbar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 5vw;background:#fff;box-shadow:0 8px 35px #24577b10}.eyebrow{font-size:11px;letter-spacing:2px;color:#00a89d;font-weight:900}.topbar h1{margin:4px 0;font-size:28px}.topbar h1 span,.logo-mark{color:#ff9000}.topbar p{color:#77869d}.header-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.market-status{padding:9px 13px;border-radius:20px;background:#e9fff7;font-size:12px;font-weight:900}.market-status i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#12c785;margin-right:7px;animation:p 1.4s infinite}.btn{border:0;border-radius:12px;padding:11px 15px;font-weight:900;cursor:pointer}.primary{background:linear-gradient(135deg,#ff9700,#ffd54d);color:#4a2b00}.ghost{background:#eaf5ff;color:#23638f}.danger{background:#ffe8ee;color:#bd2748}.full{width:100%}.hero-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:25px 5vw}.hero-card,.box,.stock-card,.signal-card{background:#fff;border:1px solid #e4edf6;border-radius:20px;padding:20px;box-shadow:0 14px 40px #2858790d;animation:r .5s ease}.hero-card strong{display:block;font-size:30px;margin:8px 0}.tabs{position:relative;display:flex;gap:8px;padding:0 5vw 18px;overflow:auto}.tab{border:0;background:#e9f2f9;padding:11px 18px;border-radius:12px;font-weight:900;cursor:pointer}.tab.active{background:#123452;color:#fff}.panel{display:none;position:relative;padding:5px 5vw 50px}.panel.active{display:block}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stock-card strong{display:block;font-size:25px;margin:12px 0}.stock-card>div,.signal-top,.watch-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.watch-row{padding:10px;background:#f6fbff;border-radius:10px;margin:7px 0}.badge{padding:5px 8px;border-radius:8px;font-size:10px;font-weight:1000}.buy{background:#d8fff0;color:#00865e}.sell{background:#ffe0e7;color:#bd2847}.acc{background:#fff0c9;color:#9a6100}.reduce{background:#e9e1ff;color:#6545b6}.hold{background:#e8eef5;color:#62748b}.up{color:#008f67}.down{color:#d33858}.table-wrap{position:relative;overflow:auto;background:#fff;border-radius:18px;border:1px solid #e5edf6}table{width:100%;border-collapse:collapse;min-width:1050px}th,td{padding:13px;border-bottom:1px solid #edf2f7;text-align:left;font-size:12px;white-space:nowrap}th{background:#f7fbff;color:#687a92;font-size:10px}.signal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:15px 0}.metrics span{font-size:10px;color:#7a8aa0;background:#f6f9fc;padding:9px;border-radius:10px}.metrics strong{display:block;color:#1c2e49;margin-top:4px}.login-body{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,92vw);background:#fff;padding:32px;border-radius:25px;box-shadow:0 25px 80px #234b7020;position:relative}.login-card h1{margin:8px 0}.login-card label,.settings label{display:block;font-size:12px;font-weight:900;margin:15px 0}.login-card input,.settings input{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #dce6ef;border-radius:12px}.logo-mark{font-size:28px;font-weight:1000}.error{background:#ffe8ed;color:#bd2748;padding:10px;border-radius:10px;margin:10px 0;font-size:12px}.success{background:#ddfff1;color:#00885f;padding:10px;border-radius:10px;margin:10px 0;font-size:12px}.settings{width:min(800px,92vw);margin:50px auto;position:relative}.settings .box{margin-bottom:18px}.back{color:#216b9d;text-decoration:none;font-weight:900}.note,.disclaimer{color:#73839a;font-size:12px}@keyframes p{50%{opacity:.3;transform:scale(.7)}}@keyframes r{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:900px){.hero-grid,.cards,.grid-2,.signal-grid{grid-template-columns:1fr}.topbar,.section-head{flex-direction:column;align-items:flex-start}.panel{padding-left:3vw;padding-right:3vw}.tabs{padding-left:3vw}.hero-grid{padding-left:3vw;padding-right:3vw}.topbar{padding-left:3vw;padding-right:3vw}.metrics{grid-template-columns:repeat(2,1fr)}}
.fx-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:18px 0}
.fx-card{background:linear-gradient(135deg,#fff,#f0fbff);border:1px solid #dcecf4;border-radius:20px;padding:20px;box-shadow:0 14px 40px #2858790d;animation:r .5s ease}
.fx-label{font-size:12px;font-weight:900;color:#64768e;text-transform:uppercase;letter-spacing:.7px}
.fx-card strong{display:block;font-size:28px;margin:10px 0 5px}
.fx-card span{font-weight:900}
.fx-card small{display:block;color:#7a899d;margin-top:8px;font-size:10px}
@media(max-width:900px){.fx-grid{grid-template-columns:1fr}}

.fx-table{min-width:1050px}.fx-table .rate{font-size:15px;font-weight:950}.fx-info{margin-top:15px;font-size:12px}.live-dot{display:inline-block;padding:5px 8px;border-radius:9px;background:#ddfff1;color:#008a60;font-weight:950;animation:blink 1.5s infinite}
@keyframes blink{50%{opacity:.45}}

.fx-status-bar{display:flex;align-items:center;gap:9px;margin:0 0 14px;padding:12px 15px;background:#ecfff7;border:1px solid #d3f4e6;border-radius:12px;color:#087b5a;font-size:12px;font-weight:900}
.fx-live-dot{width:9px;height:9px;background:#0bc784;border-radius:50%;animation:p 1.2s infinite}
#fxUpdated{margin-left:auto;color:#71839a;font-weight:700}

.dashboard-bottom{margin-top:28px;background:#fff;border:1px solid #e4edf6;border-radius:20px;padding:20px;box-shadow:0 14px 40px #2858790d}.dashboard-bottom .section-head{margin-bottom:14px}.dashboard-bottom .fx-table{min-width:1050px}.dashboard-bottom h2{margin:0}.dashboard-bottom p{color:#77879d;font-size:12px}.fx-table .rate{font-size:14px;font-weight:950}.live-dot{display:inline-block;padding:5px 8px;border-radius:9px;background:#ddfff1;color:#008a60;font-weight:950;animation:blink 1.5s infinite}@keyframes blink{50%{opacity:.45}}
