@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap');
:root{--bg:#070b16;--surface:#0d1424;--surface2:#111c30;--line:rgba(148,172,210,.13);--muted:#8291ad;--text:#eef4ff;--blue:#5b8cff;--cyan:#42d7e8;--green:#35d6a1;--red:#ff6685;--gold:#f4c45d;--shadow:0 18px 55px rgba(0,0,0,.24)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 76% -10%,rgba(55,107,206,.18),transparent 34%),radial-gradient(ellipse at 5% 38%,rgba(27,160,166,.08),transparent 30%),var(--bg);color:var(--text);font:14px/1.5 'DM Sans',Segoe UI,Arial,sans-serif;min-height:100vh}.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:0 0 250px;background:rgba(10,16,30,.88);border-right:1px solid var(--line);padding:25px 17px;display:flex;flex-direction:column;backdrop-filter:blur(18px);position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 27px;border-bottom:1px solid var(--line)}.brandmark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#f8d46b,#ed9c36);color:#172033;font-size:25px;box-shadow:0 7px 25px #f2b54b35}.brand b{display:block;font:700 15px 'Space Grotesk';letter-spacing:1.1px;color:#fff}.brand small{font-size:10px;letter-spacing:2px;color:#8393af}nav{display:grid;gap:7px;padding-top:25px}nav a{color:#9eacc5;text-decoration:none;padding:12px 13px;border:1px solid transparent;border-radius:11px;transition:.2s;font-weight:600}nav a:hover,nav a.active{background:linear-gradient(100deg,rgba(74,123,232,.2),rgba(43,192,202,.07));border-color:rgba(94,143,245,.2);color:#fff}nav a.active{box-shadow:inset 3px 0 #6d9bff}.side-note{margin-top:auto;border:1px solid rgba(53,214,161,.2);border-radius:14px;padding:15px;background:linear-gradient(145deg,rgba(53,214,161,.09),rgba(53,214,161,.015));color:#d5f8eb}.side-note b{color:var(--green);font-size:12px}.side-note p,.side-meta{font-size:11px;color:#8fa2bd;margin:6px 0 0}.side-meta{padding:17px 5px 0;line-height:2}.side-meta:before{content:'●';color:var(--green);margin-right:7px;font-size:9px}main{min-width:0;flex:1}.topbar{min-height:65px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#a9bad4;background:rgba(8,14,26,.72);backdrop-filter:blur(15px);font-size:12px}.topbar i{display:inline-block;width:4px;height:4px;background:#3cd9b0;border-radius:50%;margin:0 12px;vertical-align:middle}.status{display:flex;align-items:center;gap:10px;font-size:11px}.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #35d6a1}.status b{color:var(--green)}.status span:nth-last-child(2){color:#8291ad}.status button{margin-left:8px}.content{padding:30px 32px;max-width:1800px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px;gap:18px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#78a2ff;font-weight:800;margin-bottom:7px}.heading h1{font:700 clamp(23px,2.5vw,32px)/1.2 'Space Grotesk';margin:0 0 7px;letter-spacing:-.8px}.heading p,.table-head p{color:var(--muted);margin:0;font-size:12px}.heading input{width:260px;background:#0d1729 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238291ad' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E") no-repeat 13px center;padding-left:39px}.tabs{display:flex;gap:9px;margin:0 0 17px;padding:5px;background:rgba(12,21,37,.8);border:1px solid var(--line);border-radius:13px;width:max-content}.tab{padding:11px 19px;font-weight:800;letter-spacing:.5px;font-size:11px;border:1px solid transparent;background:transparent;color:#8495b2;border-radius:9px}.tab.active{background:linear-gradient(110deg,#386de0,#267dbb);border-color:#6297ff;color:white;box-shadow:0 6px 20px #2868c84a}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.metric,.panel{background:linear-gradient(145deg,rgba(17,28,48,.96),rgba(10,18,32,.96));border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.metric{padding:18px 18px 16px;position:relative;overflow:hidden;min-height:128px}.metric:after{content:'';position:absolute;width:90px;height:90px;border-radius:50%;right:-38px;top:-42px;background:rgba(83,139,255,.08);filter:blur(2px)}.metric label{display:block;color:#9aabc5;font-size:11px;font-weight:600}.metric strong{display:block;font:700 clamp(19px,2vw,26px) 'Space Grotesk';margin:13px 0 3px;letter-spacing:-.5px}.metric small{color:var(--green);font-size:10px}.panels{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:13px;margin:15px 0}.panels .panel{padding:18px}.panel-title{font-weight:800;font-size:12px;letter-spacing:.2px;margin-bottom:17px}.bars{display:grid;gap:11px}.barrow{display:grid;grid-template-columns:76px minmax(40px,1fr) 68px;gap:9px;align-items:center;font-size:10px;color:#aebbd0}.track{height:7px;background:#1a2942;border-radius:10px;overflow:hidden}.fill{height:100%;background:linear-gradient(90deg,#4779ef,#42d7e8);border-radius:10px;box-shadow:0 0 12px #4185f866}.barrow b,.ratio-item b{font-size:10px;text-align:right;color:#dce8fb}.ratio-list{display:grid;gap:12px}.ratio-item{display:grid;grid-template-columns:67px minmax(40px,1fr) 62px;gap:8px;align-items:center;font-size:10px;color:#aebbd0}.ratio-track{height:7px;background:rgba(255,102,133,.35);border-radius:9px;overflow:hidden}.ratio-track span{display:block;height:100%;background:linear-gradient(90deg,#35d6a1,#4db7dc);border-radius:9px}.availability{display:grid;grid-template-columns:85px 1fr;gap:10px 8px;align-items:center}.availability b{color:#65c9f2;font-size:10px;letter-spacing:.7px}.availability span{font-size:10px;color:#9aabc5}.table-panel{padding:0;margin-top:15px;overflow:hidden}.table-head{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;gap:12px}.table-head h2{font:700 16px 'Space Grotesk';margin:0 0 4px}.scroll{overflow:auto;max-height:650px;border-top:1px solid var(--line)}.scroll table{border-collapse:collapse;width:100%;min-width:1160px;font-size:11px}.scroll th{position:sticky;top:0;z-index:1;background:#111e33;color:#9db0cd;text-align:right;padding:13px 12px;white-space:nowrap;font-size:10px;letter-spacing:.4px;text-transform:uppercase}.scroll td{border-top:1px solid rgba(148,172,210,.08);padding:12px;text-align:right;white-space:nowrap;color:#c7d4e8;font-variant-numeric:tabular-nums}.scroll td:nth-child(2),.scroll th:nth-child(2){text-align:left}.scroll tr:hover{background:rgba(75,123,222,.08)}.coin{font-weight:800;color:#f0f5ff!important}.positive,.green{color:var(--green)!important}.negative,.red{color:var(--red)!important}.muted{color:#8494ad;text-align:center!important}.pagination{display:flex;justify-content:center;align-items:center;gap:15px;padding:15px}.pagination span{font-size:11px;color:#9aabc5}.footnote{font-size:10px;color:#74839c;line-height:1.7;margin:16px 2px}.pill{padding:4px 8px;border-radius:6px;background:rgba(91,140,255,.12);border:1px solid rgba(91,140,255,.18);color:#9ebcff;font-size:9px;font-weight:700}button,select,input{font:inherit;color:#dce8fa;background:#101d32;border:1px solid rgba(148,172,210,.2);border-radius:9px;padding:10px 12px;outline:none}button{cursor:pointer;transition:.18s}button:hover{border-color:#5b8cff;background:#172b4a}button:disabled{opacity:.35;cursor:not-allowed}select:focus,input:focus{border-color:#5b8cff;box-shadow:0 0 0 3px #5b8cff20}.status button{padding:8px 12px;font-size:11px}.scroll::-webkit-scrollbar{height:9px;width:9px}.scroll::-webkit-scrollbar-thumb{background:#293d5c;border-radius:10px}.scroll::-webkit-scrollbar-track{background:#0b1424}@media(max-width:1250px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.panels{grid-template-columns:1fr 1fr}.panels .panel:last-child{grid-column:span 2}}@media(max-width:800px){.sidebar{width:68px;flex-basis:68px;padding:15px 7px}.brand{justify-content:center;padding:2px 0 20px}.brand>div,nav a:not(.active),.side-note,.side-meta{display:none}nav a{font-size:0;text-align:center;padding:13px 5px}nav a.active{font-size:0}.topbar{padding:0 15px;gap:8px}.topbar>div:first-child{font-size:10px}.content{padding:22px 17px}.panels{grid-template-columns:1fr}.panels .panel:last-child{grid-column:auto}}@media(max-width:560px){.topbar{align-items:flex-start;flex-direction:column;padding:12px 14px}.heading{align-items:stretch;flex-direction:column}.heading input{width:100%}.cards{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:13px;min-height:112px}.metric strong{font-size:19px}.tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}.tab{padding:11px 5px;font-size:9px}.table-head{align-items:flex-start;flex-direction:column;padding:16px}.table-head select{width:100%}.content{padding:17px 12px}.availability{grid-template-columns:75px 1fr}}@media(max-width:370px){.cards{grid-template-columns:1fr}.status{flex-wrap:wrap}}

/* SDR Terminal Plus: movers, asset profile and public large-trade monitor */
.leaders-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:13px;margin:15px 0}.leaders-card{padding:17px 18px;min-width:0}.leaders-card .panel-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;letter-spacing:.7px}.leaders-card .panel-title small,.whale-section .panel-title small{margin-left:auto;color:#8194b2;font-size:9px;letter-spacing:.7px}.leader-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.leader-dot.up{background:var(--green);box-shadow:0 0 10px #35d6a1}.leader-dot.down{background:var(--red);box-shadow:0 0 10px #ff6685}.leader-list{display:grid;gap:3px}.leader-row{display:grid;grid-template-columns:25px 1fr 90px 65px;align-items:center;gap:8px;width:100%;padding:8px 5px;background:transparent;border:0;border-bottom:1px solid var(--line);text-align:left;border-radius:5px;font-size:11px}.leader-row:last-child{border-bottom:0}.leader-row:hover{background:#172944}.leader-rank{color:#7184a3;font-size:10px}.leader-row b{color:#e6efff}.leader-row>span:nth-child(3){text-align:right;color:#a9bad4;font-variant-numeric:tabular-nums}.leader-row strong{text-align:right;font-size:11px}.whale-card p{font-size:11px;color:#91a4c1;line-height:1.65;margin:3px 0 12px}.primary-btn{background:linear-gradient(110deg,#386de0,#267dbb);border:1px solid #6297ff;color:white;font-weight:800;font-size:10px;padding:9px 14px}.market-row{cursor:pointer}.market-row:hover td{background:rgba(75,123,222,.1)}.market-row .coin:after{content:' ↗';font-size:9px;color:#6d9bff}
.modal-backdrop{display:none;position:fixed;inset:0;z-index:1000;background:rgba(1,5,13,.78);backdrop-filter:blur(9px);padding:24px;overflow:auto}.modal-backdrop.show{display:flex;align-items:flex-start;justify-content:center}.coin-modal{width:min(1040px,100%);margin:auto;background:linear-gradient(145deg,#101c30,#091321);border:1px solid rgba(133,165,214,.22);border-radius:19px;box-shadow:0 35px 100px #000a;padding:23px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.modal-head h2{font:700 25px 'Space Grotesk';margin:0 0 4px}.modal-head p{font-size:11px;color:#8ea2c1;margin:0}.close-btn{font-size:17px;padding:8px 12px}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.detail-stats>div{padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:#0b1728}.detail-stats small{display:block;color:#8296b5;font-size:9px;letter-spacing:.8px;margin-bottom:7px}.detail-stats b{font:700 17px 'Space Grotesk';font-variant-numeric:tabular-nums}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;margin:14px 0 9px}.chart-toolbar>b{font-size:11px;letter-spacing:.7px}.chart-toolbar>div{display:flex;gap:5px}.chart-toolbar button{font-size:10px;padding:6px 11px;color:#8fa4c5}.chart-toolbar button.selected{background:#2757a3;color:white;border-color:#5288ed}.candle-chart{height:360px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#0b1424;display:grid;place-items:center}.whale-section{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.whale-section .panel-title{display:flex;align-items:center;gap:8px;font-size:12px}.whale-trades{display:grid;gap:4px}.whale-row{display:grid;grid-template-columns:115px 1fr 1fr 100px;gap:12px;align-items:center;padding:9px 11px;border-radius:8px;background:rgba(20,37,60,.62);font-size:10px;font-variant-numeric:tabular-nums}.whale-row b{text-align:right;color:#e8f0ff}.whale-row>span:nth-child(3),.whale-row time{text-align:right;color:#9aabc5}.whale-row time{font-size:9px}.disclaimer{font-size:9px;line-height:1.6;color:#7488a7;margin:12px 2px 0}.chart-error{padding:25px;color:#ff9aad;font-size:11px;text-align:center}.whale-empty{padding:20px}.modal-open{overflow:hidden}
@media(max-width:1050px){.leaders-grid{grid-template-columns:1fr 1fr}.whale-card{grid-column:span 2}}@media(max-width:650px){.leaders-grid{grid-template-columns:1fr}.whale-card{grid-column:auto}.modal-backdrop{padding:8px}.coin-modal{padding:15px;border-radius:13px}.detail-stats{grid-template-columns:1fr 1fr;gap:7px}.detail-stats>div{padding:10px}.detail-stats b{font-size:14px}.candle-chart{height:290px}.whale-row{grid-template-columns:90px 1fr 1fr;gap:7px}.whale-row time{display:none}.leader-row{grid-template-columns:22px 1fr 75px 58px}.chart-toolbar{align-items:flex-start;gap:8px;flex-direction:column}}
.title-plus{font-size:.42em;vertical-align:middle;letter-spacing:1.5px;color:#54d9df;border:1px solid #54d9df55;border-radius:6px;padding:4px 7px;margin-left:5px}

/* Technical analysis workspace */
.indicator-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;background:#101d32;border:1px solid var(--line);border-bottom:0;border-radius:11px 11px 0 0;color:#9db0cd;font-size:9px;font-weight:800;letter-spacing:.8px}.indicator-legend{display:flex;gap:12px;align-items:center;color:#b8c8df;font-size:9px;letter-spacing:0}.indicator-legend i{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:-8px}.ema20-dot{background:#f5c451}.ema50-dot{background:#4db6ff}.ema200-dot{background:#bb91ff}.candle-chart{border-radius:0 0 11px 11px}.analysis-grid{display:grid;grid-template-columns:1.1fr 1fr 1.15fr;gap:10px;margin-top:12px}.analysis-card{min-width:0;padding:15px;background:linear-gradient(145deg,#101d32,#0c1728);border:1px solid var(--line);border-radius:12px}.analysis-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#d9e6fa;font-size:10px;font-weight:800;letter-spacing:.65px;margin-bottom:13px}.analysis-heading small{font-size:8px;color:#778ba9;font-weight:600;letter-spacing:.4px}.signal-buy,.signal-sell,.signal-neutral{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-radius:9px;border:1px solid transparent}.signal-buy{background:#12372f;border-color:#25c99a55;color:#35d6a1}.signal-sell{background:#3b202b;border-color:#ff718c55;color:#ff8299}.signal-neutral{background:#252d3c;border-color:#8393aa44;color:#b8c8df}.signal-buy b,.signal-sell b,.signal-neutral b{font-size:13px;letter-spacing:.8px}.signal-buy span,.signal-sell span,.signal-neutral span{font-size:10px;font-weight:800}.signal-card p{font-size:9px;line-height:1.7;color:#9aabc5;margin:10px 2px 0}.level-row{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:10px;color:#8fa3c2}.level-row:last-child{border:0}.level-row b{color:#e5efff;font-variant-numeric:tabular-nums}.level-row:first-of-type b{color:#35d6a1}.level-row:nth-of-type(2) b{color:#ff8299}.indicator-values{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.indicator-values>div{padding:9px 7px;border-radius:8px;background:#0a1525;min-width:0}.indicator-values span,.indicator-values small{display:block;font-size:8px;color:#8296b5}.indicator-values b{display:block;font-size:12px;color:#e8f1ff;margin:7px 0;overflow:hidden;text-overflow:ellipsis}.subchart-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.sub-chart{height:155px;width:100%;overflow:hidden}.analysis-grid+.subchart-grid{margin-bottom:8px}
@media(max-width:950px){.analysis-grid{grid-template-columns:1fr 1fr}.signal-card{grid-column:span 2}}@media(max-width:620px){.indicator-toolbar{align-items:flex-start;flex-direction:column}.analysis-grid,.subchart-grid{grid-template-columns:1fr}.signal-card{grid-column:auto}.analysis-heading{font-size:9px}.indicator-values b{font-size:11px}}

/* Modal layout hardening: keep asset details readable at all desktop widths */
#coinModal{align-items:flex-start;justify-content:center}
#coinModal .coin-modal{display:block;width:min(1040px,calc(100vw - 48px));max-width:100%;min-width:0;margin:0 auto;padding:24px;overflow:hidden}
#coinModal .detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%}
#coinModal .detail-stats>div{min-width:0;overflow:hidden}
#coinModal .detail-stats small{white-space:nowrap}
#coinModal .chart-toolbar,#coinModal .indicator-toolbar{width:100%;min-width:0}
#coinModal .candle-chart,#coinModal .sub-chart{width:100%;min-width:0}
@media(max-width:650px){#coinModal .coin-modal{width:calc(100vw - 16px);padding:14px}#coinModal .detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v2.4 modal and chart layout safety overrides */
#coinModal.modal-backdrop.show{display:flex!important;align-items:flex-start!important;justify-content:center!important;padding:22px!important;overflow-y:auto!important}
#coinModal .coin-modal{display:block!important;flex:0 1 1040px!important;width:min(1040px,calc(100vw - 44px))!important;max-width:1040px!important;min-width:0!important;margin:0 auto!important;padding:24px!important;background:linear-gradient(145deg,#101c30,#091321)!important;color:var(--text)!important;border:1px solid rgba(133,165,214,.22)!important;border-radius:19px!important;box-shadow:0 35px 100px #000a!important;overflow:hidden!important}
#coinModal .modal-head{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:15px!important;margin-bottom:8px!important}
#coinModal .detail-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;margin:20px 0!important}
#coinModal .chart-toolbar{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:12px!important;margin:14px 0 9px!important}
#coinModal .indicator-toolbar{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;padding:10px 13px!important}
#coinModal .candle-chart{display:grid!important;place-items:center!important;width:100%!important;height:360px!important;min-width:0!important;overflow:hidden!important}
#coinModal .analysis-grid{display:grid!important;grid-template-columns:1.1fr 1fr 1.15fr!important;gap:10px!important;margin-top:12px!important}
#coinModal .subchart-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin-top:10px!important}
@media(max-width:760px){#coinModal.modal-backdrop.show{padding:8px!important}#coinModal .coin-modal{width:calc(100vw - 16px)!important;padding:14px!important}#coinModal .detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}#coinModal .analysis-grid,#coinModal .subchart-grid{grid-template-columns:1fr!important}#coinModal .candle-chart{height:290px!important}#coinModal .chart-toolbar,#coinModal .indicator-toolbar{align-items:flex-start!important;flex-direction:column!important}}
/* Multi-exchange selector */
#exchangeSelect{background:#101d31;color:#dce8fa;border:1px solid #294567;border-radius:9px;padding:9px 12px;font:600 11px inherit;letter-spacing:.04em;outline:none;max-width:150px}
#exchangeSelect:focus{border-color:#36a6ef;box-shadow:0 0 0 2px rgba(54,166,239,.15)}
@media(max-width:760px){.status{flex-wrap:wrap}#exchangeSelect{order:-1;max-width:100%;width:100%}}
