:root{--bg:#07111f;--panel:#0d1a2b;--panel2:#101f33;--line:#20324b;--text:#eaf2ff;--muted:#8fa5c0;--green:#2fd19a;--red:#ff6b7a;--amber:#ffc857;--blue:#58a6ff}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#102844 0,#07111f 36%);color:var(--text);font:14px/1.4 Inter,Segoe UI,Arial,sans-serif;min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:rgba(7,17,31,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{font-size:20px;font-weight:800}.sub,.muted,.card-head p{color:var(--muted);margin:3px 0 0}.status-wrap{display:flex;gap:9px;align-items:center}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.on{background:var(--green);box-shadow:0 0 12px var(--green)}.dot.off{background:var(--red)}button{font:inherit}.ghost,.primary{border:1px solid var(--line);border-radius:9px;padding:8px 12px;color:var(--text);background:#11233a;cursor:pointer}.primary{background:#1565c0;border-color:#2b79d0;width:100%;font-weight:700}main{padding:18px 24px 40px;max-width:1800px;margin:auto}.kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:14px}.kpi,.card{background:linear-gradient(180deg,rgba(17,34,56,.96),rgba(10,24,40,.96));border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.14)}.kpi{padding:14px 16px}.kpi span,.metric span,.wall span{color:var(--muted);display:block}.kpi strong{font-size:25px;display:block;margin:5px 0}.kpi small{color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(310px,1fr);gap:14px}.card{overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}h2,h3{margin:0}h2{font-size:16px}h3{font-size:12px;color:var(--muted);letter-spacing:.1em}.search{background:#07111f;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:8px 10px;width:180px}.table-wrap{overflow:auto;max-height:540px}table{border-collapse:collapse;width:100%;min-width:1480px}th{position:sticky;top:0;background:#0d1a2b;z-index:2;text-align:right;color:var(--muted);font-size:11px;letter-spacing:.04em;padding:10px;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}td{text-align:right;padding:10px;border-bottom:1px solid rgba(32,50,75,.65);white-space:nowrap}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.active{background:#132844}.pair{font-weight:800}.up{color:var(--green)}.down{color:var(--red)}.neutral{color:var(--muted)}.pill{display:inline-flex;padding:4px 7px;border-radius:999px;font-weight:700;font-size:11px}.pill.buy{background:rgba(47,209,154,.13);color:var(--green)}.pill.sell{background:rgba(255,107,122,.13);color:var(--red)}.pill.mid{background:rgba(255,200,87,.12);color:var(--amber)}.alerts-card{min-height:420px}.alerts{max-height:540px;overflow:auto}.alert{padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}.alert:hover{background:#132844}.alert-top{display:flex;justify-content:space-between;gap:8px}.alert-type{font-weight:800}.alert-meta{color:var(--muted);font-size:12px;margin-top:4px}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.detail-main{grid-column:1/-1;padding-bottom:10px}.detail-title{display:flex;justify-content:space-between;align-items:center;padding:16px}.big-price{font-size:28px;font-weight:900;margin-top:3px}.pressure-box{text-align:center}.pressure-ring{--p:50;--ring:var(--amber);width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin:auto;background:conic-gradient(var(--ring) calc(var(--p)*1%),#20324b 0);position:relative}.pressure-ring:after{content:"";position:absolute;inset:8px;border-radius:50%;background:#0d1a2b}.pressure-ring span{z-index:1;font-size:20px;font-weight:900}.pressure-box strong{font-size:11px;display:block;margin-top:5px}canvas{display:block;width:calc(100% - 32px);height:220px;margin:0 16px 12px;background:#081422;border:1px solid var(--line);border-radius:10px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 16px}.metric{padding:12px;background:#0a1727;border:1px solid var(--line);border-radius:10px}.metric strong{display:block;font-size:17px;margin:5px 0}.metric small{color:var(--muted)}.ma-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px}.ma-card{padding:12px;background:#091625;border:1px solid var(--line);border-radius:10px}.ma-card h3{font-size:14px;color:var(--text);margin-bottom:8px}.ma-row{display:flex;justify-content:space-between;margin:5px 0}.depth-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px}.depth-row{position:relative;display:flex;justify-content:space-between;padding:5px 6px;margin:2px 0;font-variant-numeric:tabular-nums;overflow:hidden;border-radius:4px}.depth-row .bar{position:absolute;top:0;bottom:0;opacity:.12;z-index:0}.depth-row.bid .bar{right:0;background:var(--green)}.depth-row.ask .bar{left:0;background:var(--red)}.depth-row span{z-index:1}.wall-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px}.wall{padding:16px;border-radius:10px;border:1px solid var(--line)}.wall.bid{background:rgba(47,209,154,.07)}.wall.ask{background:rgba(255,107,122,.07)}.wall strong{font-size:20px;display:block;margin:5px 0}.wall small,.threshold{color:var(--muted)}.threshold{padding:0 14px 14px}.hidden{display:none!important}.modal,.drawer{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.68);display:grid;place-items:center;padding:20px}.modal-card,.drawer-card{position:relative;width:min(760px,96vw);max-height:90vh;overflow:auto;background:#0d1a2b;border:1px solid var(--line);border-radius:16px;padding:20px}.drawer{place-items:stretch end}.drawer-card{height:100%;width:min(480px,96vw);border-radius:16px 0 0 16px}.close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:var(--muted);font-size:26px;cursor:pointer}.form-row{margin:12px 0}.form-row label{display:block;color:var(--muted);margin-bottom:5px}.form-row input,.form-row textarea{width:100%;background:#07111f;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:9px}.futures-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.future-item{background:#091625;border:1px solid var(--line);padding:10px;border-radius:9px}.future-item span{display:block;color:var(--muted);font-size:11px}.future-item strong{display:block;margin-top:4px}.explain{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:9px;color:var(--muted)}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.layout,.detail-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.alerts-card{max-height:380px}.detail-main{grid-column:auto}}@media(max-width:650px){main{padding:12px}.topbar{padding:12px;align-items:flex-start}.sub{display:none}.kpis{grid-template-columns:1fr 1fr}.metric-grid,.ma-cards,.wall-grid,.depth-cols,.futures-grid{grid-template-columns:1fr}.kpi strong{font-size:20px}}
.learning-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 14px 14px}.learning-item{padding:12px;background:#091625;border:1px solid var(--line);border-radius:10px}.learning-item span{display:block;color:var(--muted);font-size:11px}.learning-item strong{display:block;font-size:18px;margin:4px 0}.learning-item small{color:var(--muted)}.universe-preview{margin:10px 0 14px;border:1px solid var(--line);border-radius:10px;max-height:220px;overflow:auto;background:#07111f}.universe-preview table{min-width:620px}.form-section{margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--line)}.form-section h3{font-size:13px;color:var(--text);letter-spacing:0;margin-bottom:4px}.inline-actions{display:flex;gap:8px;margin:10px 0}.inline-actions .ghost{flex:1}.toggle-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0}.toggle-row input{width:auto!important}.select-control{width:100%;background:#07111f;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:9px}
@media(max-width:650px){.learning-grid{grid-template-columns:1fr}}

/* v1.3 Top 5 combined signals */
.leaders-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.leader-card{overflow:hidden}.leader-badge{font-size:10px;font-weight:900;letter-spacing:.08em;padding:5px 8px;border-radius:999px}.leader-badge.buy{color:var(--green);background:rgba(47,209,154,.12)}.leader-badge.sell{color:var(--red);background:rgba(255,107,122,.12)}.leader-list{padding:4px 10px 10px}.leader-row{display:grid;grid-template-columns:28px 1fr 62px;gap:10px;align-items:center;padding:10px 6px;border-bottom:1px solid rgba(32,50,75,.65);cursor:pointer}.leader-row:last-child{border-bottom:0}.leader-row:hover{background:#132844;border-radius:9px}.leader-rank{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#132844;color:var(--muted);font-weight:800}.leader-title{display:flex;gap:8px;align-items:center}.leader-title strong{font-size:14px}.leader-title span{font-size:10px;color:var(--muted)}.leader-reason{font-size:10px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px;font-size:10px;color:var(--muted)}.leader-mini b{font-weight:800}.leader-score{border:1px solid var(--line);border-radius:10px;text-align:center;padding:7px 5px;background:#091625}.leader-score strong{display:block;font-size:20px;line-height:1}.leader-score small{display:block;margin-top:4px;font-size:9px;letter-spacing:.08em}.leader-score.buy{color:var(--green)}.leader-score.sell{color:var(--red)}.leader-score.strong{box-shadow:inset 0 0 0 1px currentColor}.leader-score.soft{opacity:.72}.leader-empty{padding:18px;color:var(--muted);font-size:12px;text-align:center}@media(max-width:980px){.leaders-grid{grid-template-columns:1fr}}


/* v1.3.2 monitor Run / Stop controls */
.dot.paused{background:var(--amber);box-shadow:0 0 10px rgba(255,200,87,.35)}
.engine-actions{display:flex;gap:6px;margin-left:4px}.control-btn{border:1px solid var(--line);border-radius:9px;padding:8px 12px;color:var(--text);background:#0b1929;cursor:pointer;font-weight:800;min-width:76px}.control-btn.run{color:var(--green);border-color:rgba(47,209,154,.35)}.control-btn.stop{color:var(--red);border-color:rgba(255,107,122,.35)}.control-btn.run.active{background:rgba(47,209,154,.14);box-shadow:inset 0 0 0 1px rgba(47,209,154,.25)}.control-btn.stop.active{background:rgba(255,107,122,.14);box-shadow:inset 0 0 0 1px rgba(255,107,122,.25)}.control-btn:disabled{opacity:.48;cursor:not-allowed}.control-btn:not(:disabled):hover{background:#16304d}
@media(max-width:760px){.status-wrap{flex-wrap:wrap;justify-content:flex-end}.engine-actions{order:3;width:100%;justify-content:flex-end}.control-btn{padding:7px 10px;min-width:68px}}

/* v1.3.3 Debug Center */
.debug-btn{border-color:rgba(255,200,87,.45);color:var(--amber)}
.debug-card{width:min(1180px,96vw);max-height:92vh}.debug-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.debug-head p{margin:6px 0 0}.debug-actions{display:flex;gap:8px;min-width:290px}.debug-actions button{flex:1}.debug-copy{width:auto}.debug-summary{background:#07111f;border:1px solid var(--line);border-radius:10px;padding:12px;margin:10px 0}.debug-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.debug-summary-grid>div{background:#0d1a2b;border:1px solid var(--line);border-radius:8px;padding:8px}.debug-summary-grid span{display:block;color:var(--muted);font-size:10px}.debug-summary-grid strong{display:block;margin-top:4px;font-size:15px}.debug-probes{margin-top:9px;color:var(--muted);font-size:11px}.debug-json{margin:10px 0;max-height:55vh;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#050d17;border:1px solid var(--line);border-radius:10px;padding:14px;color:#d7e5f5;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}
@media(max-width:760px){.debug-head{display:block}.debug-actions{min-width:0;margin-top:10px}.debug-summary-grid{grid-template-columns:repeat(2,1fr)}}

/* v1.4 Top 5 History + Technical Analysis */
.page-tabs{display:flex;gap:8px;margin:0 0 14px}.page-tab{border:1px solid var(--line);background:#0b1929;color:var(--muted);padding:10px 16px;border-radius:10px;font-weight:800;cursor:pointer}.page-tab.active{color:var(--text);background:#15304e;border-color:#33577e}.tab-badge{font-size:10px;padding:2px 6px;border-radius:999px;background:#20324b;margin-left:4px}.tab-page{display:block}.history-head-card,.frequency-card,.history-table-card{margin-bottom:14px}.history-head{align-items:flex-start}.history-filters{display:grid;grid-template-columns:180px minmax(220px,1fr) 180px 180px;gap:10px;padding:0 14px 14px}.history-filters label{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.history-stat{background:#091625;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.history-stat span{display:block;color:var(--muted);font-size:10px}.history-stat strong{font-size:20px;display:block;margin-top:3px}.frequency-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 14px 14px}.freq-title{font-size:12px;font-weight:900;padding:0 0 7px}.freq-list{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#081422}.freq-row{display:grid;grid-template-columns:28px 1fr 58px;gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--line);cursor:pointer}.freq-row:last-child{border-bottom:0}.freq-row:hover{background:#132844}.freq-rank{width:24px;height:24px;display:grid;place-items:center;background:#132844;border-radius:7px;color:var(--muted);font-weight:800}.freq-row strong{display:block}.freq-row small{display:block;color:var(--muted);margin-top:3px}.freq-score{font-size:18px;font-weight:900;text-align:right}.history-table-wrap{max-height:60vh}.history-table-card th[data-sort]{cursor:pointer;user-select:none}.history-table-card th[data-sort]:hover{color:var(--text)}
.analysis-card{width:min(1180px,97vw);max-height:94vh}.analysis-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}.final-bias{min-width:160px;text-align:center;border:1px solid currentColor;border-radius:12px;padding:10px 14px;background:#091625}.final-bias span{display:block;font-size:11px;font-weight:900;letter-spacing:.06em}.final-bias strong{display:block;font-size:28px;margin:3px 0}.final-bias small{display:block;color:var(--muted)}.analysis-score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.analysis-score-grid>div{background:#091625;border:1px solid var(--line);border-radius:10px;padding:12px}.analysis-score-grid span,.analysis-score-grid small{display:block;color:var(--muted);font-size:10px}.analysis-score-grid strong{display:block;font-size:22px;margin:4px 0}.history-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.hist-side{border:1px solid var(--line);border-radius:10px;padding:14px}.hist-side.buy{background:rgba(47,209,154,.06)}.hist-side.sell{background:rgba(255,107,122,.06)}.hist-side h3{font-size:12px;margin-bottom:5px}.hist-side strong{display:block;font-size:24px}.hist-side span{display:block;color:var(--muted);margin-top:4px}.technical-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tech-panel{background:#07111f;border:1px solid var(--line);border-radius:12px;padding:14px}.tech-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.tech-head h3{font-size:18px;margin-bottom:4px}.tech-score{font-size:28px;font-weight:900}.tech-score small{font-size:10px;color:var(--muted)}.tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tech-grid>div{background:#0d1a2b;border:1px solid var(--line);border-radius:9px;padding:9px}.tech-grid span,.tech-grid small{display:block;color:var(--muted);font-size:10px}.tech-grid strong{display:block;margin:4px 0;font-size:13px}.analysis-note{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:#091625}.analysis-loading{padding:28px 8px}
@media(max-width:900px){.history-filters{grid-template-columns:1fr 1fr}.frequency-grid,.technical-grid{grid-template-columns:1fr}.analysis-score-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.history-filters,.analysis-score-grid,.history-analysis-grid,.tech-grid{grid-template-columns:1fr}.analysis-title{display:block}.final-bias{margin-top:10px}.page-tabs{overflow:auto}}

/* v1.4.2 history JSON fix + combined LONG/SELL frequency */
.frequency-alert-card{margin-bottom:14px}.frequency-alert-list{padding:0 14px 14px}.frequency-alert-row{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#081422;margin-top:8px;cursor:pointer}.frequency-alert-row:hover{background:#132844}.frequency-alert-row strong,.frequency-alert-row small,.frequency-alert-row b{display:block}.frequency-alert-row small{color:var(--muted);margin-top:4px}.frequency-alert-row>div:last-child{text-align:right}.freq-tech-summary{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#091625}.freq-tech-summary span{color:var(--muted)}.tech-source{margin-top:9px;color:var(--muted);font-size:10px;border-top:1px solid var(--line);padding-top:8px}.guidance-card{margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:#091625;padding:14px}.guidance-card.up{border-color:rgba(47,209,154,.5);background:rgba(47,209,154,.06)}.guidance-card.down{border-color:rgba(255,107,122,.5);background:rgba(255,107,122,.06)}.guidance-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.guidance-title span{color:var(--muted);font-size:11px}.guidance-title strong{font-size:20px}.guidance-card p{margin:8px 0 10px}.guidance-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.guidance-cols>div{background:rgba(7,17,31,.6);border:1px solid var(--line);border-radius:9px;padding:10px}.guidance-cols b{font-size:11px}.guidance-cols ul{margin:7px 0 0 18px;padding:0}.guidance-cols li{margin:4px 0;color:var(--muted)}
@media(max-width:760px){.frequency-alert-row,.guidance-cols{grid-template-columns:1fr}.frequency-alert-row>div:last-child{text-align:left}}
.combined-frequency-wrap{max-height:430px}.combined-frequency-wrap table{min-width:980px}.combined-frequency-wrap tbody tr{cursor:pointer}.combined-frequency-wrap tbody tr:hover{background:#132844}.freq-eval{display:block;font-weight:900;font-size:12px}.combined-frequency-wrap td small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.frequency-comparison{margin:-4px 0 14px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#091625}.frequency-comparison.up{border-color:rgba(47,209,154,.45);background:rgba(47,209,154,.06)}.frequency-comparison.down{border-color:rgba(255,107,122,.45);background:rgba(255,107,122,.06)}

/* v1.5.0 48h history filters + Vietnamese indicator guide */
.history-filters-advanced{grid-template-columns:repeat(5,minmax(150px,1fr));align-items:end}.history-filter-actions{display:flex;gap:8px;align-items:end}.history-filter-actions button{flex:1}.history-pager{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:0 14px 10px}.indicator-guide-card{margin-top:14px;padding:0}.indicator-guide-card summary,.indicator-help summary{cursor:pointer;font-weight:900;padding:14px 16px;list-style:none}.indicator-guide-card summary::-webkit-details-marker,.indicator-help summary::-webkit-details-marker{display:none}.indicator-guide-card summary::before,.indicator-help summary::before{content:'▸';display:inline-block;margin-right:8px;color:var(--amber)}.indicator-guide-card[open] summary::before,.indicator-help[open] summary::before{content:'▾'}.indicator-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 14px}.indicator-guide-grid.compact{grid-template-columns:repeat(2,1fr);padding:12px 0 0}.indicator-guide-grid>div{background:#091625;border:1px solid var(--line);border-radius:10px;padding:11px}.indicator-guide-grid b{display:block;margin-bottom:5px;color:var(--text)}.indicator-guide-grid span{display:block;color:var(--muted);font-size:11px;line-height:1.45}.indicator-help{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:#07111f;padding:0 12px 12px}.indicator-help summary{padding-left:0;padding-right:0}
@media(max-width:1200px){.history-filters-advanced{grid-template-columns:repeat(3,minmax(150px,1fr))}.indicator-guide-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.history-filters-advanced{grid-template-columns:1fr 1fr}.indicator-guide-grid,.indicator-guide-grid.compact{grid-template-columns:1fr}.history-pager{justify-content:center;flex-wrap:wrap}}
@media(max-width:520px){.history-filters-advanced{grid-template-columns:1fr}}


/* v1.5.1 multi-window Top-5 frequency */
.multi-frequency-card{margin-bottom:14px}.persistent-frequency-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 14px 12px}.persistent-panel{background:#081422;border:1px solid var(--line);border-radius:12px;padding:10px}.persistent-row{display:grid;grid-template-columns:28px 1fr 82px;gap:8px;align-items:center;border-top:1px solid var(--line);padding:8px 4px;cursor:pointer}.persistent-row:hover,.multi-freq-row:hover{background:#132844}.persistent-row strong,.persistent-row small,.persistent-metric b,.persistent-metric small{display:block}.persistent-row small,.persistent-metric small{color:var(--muted);font-size:10px;margin-top:2px}.persistent-metric{text-align:right}.multi-frequency-grid{display:grid;grid-template-columns:repeat(6,minmax(220px,1fr));gap:10px;padding:0 14px 14px;overflow-x:auto}.multi-window-card{background:#081422;border:1px solid var(--line);border-radius:12px;min-width:220px;overflow:hidden}.multi-window-head{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 11px;background:#0f2238;border-bottom:1px solid var(--line)}.multi-window-head strong{font-size:17px}.multi-window-head span{color:var(--muted);font-size:10px}.multi-window-sides{display:grid;grid-template-columns:1fr;gap:0}.multi-side{padding:8px}.multi-side+.multi-side{border-top:1px solid var(--line)}.multi-side-title{font-size:11px;font-weight:900;letter-spacing:.04em;margin-bottom:4px}.multi-freq-row{display:grid;grid-template-columns:25px 1fr 48px;gap:6px;align-items:center;padding:6px 2px;border-top:1px solid rgba(32,50,75,.65);cursor:pointer}.multi-freq-row:first-of-type{border-top:0}.multi-freq-row strong,.multi-freq-row small{display:block}.multi-freq-row strong{font-size:11px}.multi-freq-row small{color:var(--muted);font-size:9px;margin-top:1px}.multi-freq-row b{text-align:right;font-size:12px}.multi-side-title.up{color:var(--green)}.multi-side-title.down{color:var(--red)}
@media(max-width:1400px){.multi-frequency-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}}@media(max-width:900px){.multi-frequency-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.persistent-frequency-grid{grid-template-columns:1fr}}@media(max-width:600px){.multi-frequency-grid{grid-template-columns:1fr}.persistent-row{grid-template-columns:28px 1fr 70px}}

/* v1.5.3 symbol actions / Binance links */
.pair-action-line,.detail-symbol-actions{display:inline-flex;align-items:center;gap:6px}.symbol-analysis-link{border:0;background:transparent;color:inherit;font:inherit;font-weight:800;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.symbol-analysis-link:hover{color:#75baff;text-decoration-color:#75baff}.binance-link{display:inline-flex;align-items:center;justify-content:center;color:#f3ba2f!important;text-decoration:none;font-size:10px;font-weight:800;border:1px solid rgba(243,186,47,.35);background:rgba(243,186,47,.08);border-radius:6px;padding:2px 5px;white-space:nowrap}.binance-link:hover{background:rgba(243,186,47,.16);border-color:#f3ba2f}.form-help{display:block;color:var(--muted);font-size:11px;margin-top:5px}.forced-tag{display:inline-flex;color:#75baff;background:rgba(117,186,255,.12);border:1px solid rgba(117,186,255,.3);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:800}.detail-title h2 small{font-size:11px;color:var(--muted);font-weight:500}.analysis-title h2 .binance-link{vertical-align:middle;margin-left:5px}.leader-title .symbol-analysis-link{font-size:14px}.leader-title .binance-link{padding:1px 4px}.pair .symbol-analysis-link{font-size:inherit}.frequency-table .binance-link{font-size:9px}

/* v1.5.4 Copy for AI */
.ai-copy-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ai-copy-btn{background:linear-gradient(135deg,#6d5dfc,#3aa0ff);border:1px solid rgba(126,140,255,.55);color:#fff;font-weight:700;padding:9px 14px;border-radius:9px;cursor:pointer;box-shadow:0 5px 20px rgba(72,93,255,.18)}
.ai-copy-btn:hover{filter:brightness(1.08)}
.ai-copy-btn:disabled{opacity:.6;cursor:wait}
.ai-copy-ok{color:#45dfb1!important}
.ai-copy-error{color:#ff6b7a!important}
@media(max-width:900px){.ai-copy-actions{justify-content:flex-start;width:100%}}

/* v1.5.5 sortable combined frequency table */
#combinedFrequencyTable th[data-freq-sort]{cursor:pointer;user-select:none;white-space:nowrap;transition:color .15s,background .15s}
#combinedFrequencyTable th[data-freq-sort]:hover{color:var(--text);background:rgba(117,186,255,.06)}
#combinedFrequencyTable th[data-freq-sort].active-sort{color:#75baff;background:rgba(117,186,255,.08)}

/* v1.5.7 Telegram interval presets + frequency counts */
.telegram-settings-section{border-top-color:rgba(88,166,255,.45)}
.telegram-config-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:10px 0}
.telegram-config-actions .primary,.telegram-config-actions .ghost{width:100%}
.danger-soft{color:#ff8b98;border-color:rgba(255,107,122,.35);background:rgba(255,107,122,.06)}
.telegram-status-box{margin:10px 0 4px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#07111f;color:var(--muted);font-size:11px;line-height:1.5}
@media(max-width:650px){.telegram-config-actions{grid-template-columns:1fr}}

/* v1.5.9 Telegram interactive command bot */
.command-help-box{margin:8px 0 12px;padding:10px 12px;border:1px solid rgba(88,166,255,.3);border-radius:9px;background:rgba(88,166,255,.06);color:var(--muted);font-size:11px;line-height:1.65}
.command-help-box code{display:inline-block;margin:2px 2px 2px 0;padding:2px 5px;border-radius:5px;background:#07111f;color:#75baff;border:1px solid var(--line)}

/* v1.6.0 responsive mobile + authentication */
.account-box{display:flex;align-items:center;gap:6px}.account-btn{display:flex;align-items:center;gap:6px}.role-pill{font-size:9px;letter-spacing:.06em;padding:2px 5px;border-radius:999px;background:rgba(88,166,255,.12);color:#75baff;border:1px solid rgba(88,166,255,.25)}
.account-modal-card{width:min(460px,96vw)}.engine-upgrade-note{margin:10px 0;padding:10px 12px;border:1px solid rgba(47,209,154,.3);border-radius:9px;background:rgba(47,209,154,.05);color:var(--muted);font-size:11px;line-height:1.55}
.user-create-grid{display:grid;grid-template-columns:1fr 1fr 110px 140px;gap:8px;align-items:center}.users-table{margin-top:10px}.users-table table{min-width:560px}.user-warn{color:var(--amber)}
.login-page{display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 0,#15375d 0,#07111f 45%)}.login-shell{width:100%;max-width:440px}.login-card{background:linear-gradient(180deg,#10233a,#0a1727);border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 25px 80px rgba(0,0,0,.35)}.login-logo{width:54px;height:54px;border-radius:15px;background:linear-gradient(135deg,#f3ba2f,#d68c00);display:grid;place-items:center;color:#07111f;font-size:28px;font-weight:900;margin-bottom:14px}.login-card h1{margin:0 0 5px;font-size:24px}.login-card p{color:var(--muted);margin:0 0 18px}.login-card label{display:block;color:var(--muted);margin:12px 0 5px}.login-card input{width:100%;background:#07111f;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:12px;font-size:16px}.login-submit{margin-top:16px;padding:12px}.login-msg{min-height:20px;margin-top:10px;color:var(--red)}.login-note{display:block;color:var(--muted);margin-top:14px;line-height:1.5}

@media(max-width:900px){
  .topbar{position:sticky;display:grid;grid-template-columns:1fr;gap:10px;padding:11px 12px}.status-wrap{width:100%;display:flex;flex-wrap:wrap;gap:7px}.status-wrap #connText{margin-right:auto}.engine-actions{display:flex;gap:6px}.account-box{margin-left:auto}.brand{font-size:18px}.sub{display:block;font-size:10px;white-space:normal}
  main{padding:10px 10px 28px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:10px 11px}.kpi strong{font-size:19px}.leaders-grid{grid-template-columns:1fr;gap:10px}.layout{grid-template-columns:1fr}.alerts-card{min-height:0}.alerts{max-height:300px}
  .card-head{padding:11px 12px;align-items:flex-start;gap:8px;flex-wrap:wrap}.card-head .search{width:100%}.page-tabs{overflow-x:auto;white-space:nowrap}.page-tab{flex:0 0 auto}
  .table-wrap{max-height:62vh;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:1280px}.table-wrap th:first-child,.table-wrap td:first-child{position:sticky;left:0;z-index:3;background:#0d1a2b;box-shadow:1px 0 0 var(--line)}.table-wrap tbody tr:hover td:first-child,.table-wrap tbody tr.active td:first-child{background:#132844}
  .detail-grid{grid-template-columns:1fr;gap:10px}.detail-title{padding:12px;align-items:flex-start}.big-price{font-size:23px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px;gap:7px}.metric{padding:9px}.metric strong{font-size:14px;word-break:break-word}.ma-cards{grid-template-columns:1fr;padding:10px}.depth-cols{grid-template-columns:1fr 1fr;padding:10px;gap:8px}.wall-grid,.learning-grid{padding:10px;gap:8px}.learning-grid{grid-template-columns:1fr 1fr}
  canvas{width:calc(100% - 20px);margin:0 10px 10px;height:180px}.modal,.drawer{padding:0}.modal-card,.drawer-card{width:100vw;max-width:none;max-height:100dvh;height:auto;border-radius:16px 16px 0 0;padding:16px;margin-top:auto}.modal{place-items:end center}.drawer{place-items:stretch}.drawer-card{height:100dvh;border-radius:0}.analysis-card{height:96dvh}.debug-card{height:96dvh}
  .history-filters-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-frequency-grid{grid-template-columns:repeat(2,minmax(210px,1fr))}.persistent-frequency-grid{grid-template-columns:1fr}.indicator-guide-grid{grid-template-columns:1fr}.user-create-grid{grid-template-columns:1fr 1fr}.telegram-config-actions{grid-template-columns:1fr}
}
@media(max-width:560px){
  .topbar{padding-top:max(10px,env(safe-area-inset-top))}.status-wrap{font-size:12px}.status-wrap .ghost,.status-wrap .control-btn{padding:7px 9px}.account-box{width:100%;margin-left:0;justify-content:flex-end}.sub{display:none}
  .kpis{grid-template-columns:1fr 1fr}.kpi span{font-size:10px}.kpi strong{font-size:17px}.kpi small{font-size:9px}.leaders-grid{margin-bottom:9px}.leader-row{grid-template-columns:24px 1fr 54px;padding:8px 4px}.leader-reason{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.leader-mini{gap:5px}
  .metric-grid{grid-template-columns:1fr 1fr}.depth-cols{grid-template-columns:1fr}.learning-grid,.wall-grid{grid-template-columns:1fr}.futures-grid{grid-template-columns:1fr 1fr}.history-filters-advanced{grid-template-columns:1fr}.multi-frequency-grid{grid-template-columns:1fr;padding:0 10px 10px}.persistent-frequency-grid{padding:0 10px 10px}.history-head-card .card-head{align-items:flex-start}.ai-copy-actions{width:100%;justify-content:stretch}.ai-copy-btn{width:100%}
  .technical-grid,.analysis-score-grid,.history-analysis-grid,.guidance-cols{grid-template-columns:1fr!important}.analysis-title{grid-template-columns:1fr!important}.final-bias{text-align:left!important}.indicator-guide-grid.compact{grid-template-columns:1fr}.user-create-grid{grid-template-columns:1fr}.users-table table{min-width:520px}.login-page{padding:12px}.login-card{padding:20px;border-radius:14px}
}

/* v1.7.0 signal performance research */
.performance-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:0 14px 14px}.performance-filters label{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.performance-kpis{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:8px;padding:0 14px 14px}.performance-kpis>div{border:1px solid var(--line);border-radius:10px;background:#0a1727;padding:10px 12px}.performance-kpis span,.performance-kpis small{display:block;color:var(--muted);font-size:10px}.performance-kpis strong{display:block;font-size:20px;margin:4px 0}.performance-insights{padding:0 14px 14px;display:grid;gap:8px}.performance-insight{padding:10px 12px;border:1px solid rgba(88,166,255,.25);border-radius:9px;background:rgba(88,166,255,.05);font-size:12px;line-height:1.5}.performance-table{min-width:1050px}.performance-table.wide{min-width:1300px}.performance-table td,.performance-table th{white-space:nowrap}
@media(max-width:900px){.performance-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 10px}.performance-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 10px}.performance-kpis>div:last-child{grid-column:1/-1}.performance-table{min-width:1080px}}
@media(max-width:560px){.performance-filters{grid-template-columns:1fr 1fr}.performance-kpis{grid-template-columns:1fr 1fr}.performance-insights{padding:0 10px 10px}}
/* v1.8.0 AI bias research */
.bias-research-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;padding:0 14px 14px}.bias-research-filters label{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.bias-log-table{min-width:1700px}.bias-log-table td small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
@media(max-width:900px){.bias-research-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 10px}.bias-log-table{min-width:1650px}}
@media(max-width:560px){.bias-research-filters{grid-template-columns:1fr 1fr}}

.analysis-admin-actions{margin-top:14px;padding:14px;border:1px solid rgba(255,107,122,.28);background:rgba(255,107,122,.055);border-radius:12px;display:flex;gap:16px;align-items:center;justify-content:space-between}.analysis-admin-actions p{margin:5px 0 0;max-width:760px}.analysis-admin-actions .control-btn{flex:0 0 auto}@media(max-width:760px){.analysis-admin-actions{align-items:stretch;flex-direction:column}.analysis-admin-actions .control-btn{width:100%}}

/* Domain / SSL admin */
.domain-status-box{margin:10px 0 14px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025);line-height:1.55;overflow-wrap:anywhere}
.domain-settings-section{margin-top:22px}

/* v1.11.0 - Vietnamese signal performance research */
.performance-filters-v111{grid-template-columns:repeat(5,minmax(145px,1fr))}.performance-kpis-v111{grid-template-columns:repeat(6,minmax(135px,1fr))}.sortable-performance{min-width:1420px}.sortable-performance th[data-perf-sort]{cursor:pointer;user-select:none;transition:background .15s,color .15s}.sortable-performance th[data-perf-sort]:hover,.sortable-performance th.active-sort{background:#15304e;color:var(--text)}.sortable-performance thead th{position:sticky;top:0;z-index:2;background:#0b1b2d}.perf-grade{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap;border:1px solid var(--line)}.perf-grade.good{color:var(--green);background:rgba(47,209,154,.10);border-color:rgba(47,209,154,.28)}.perf-grade.okay{color:#73c5ff;background:rgba(88,166,255,.10);border-color:rgba(88,166,255,.28)}.perf-grade.neutral{color:#f0c36a;background:rgba(240,195,106,.09);border-color:rgba(240,195,106,.25)}.perf-grade.weak{color:var(--red);background:rgba(255,107,122,.10);border-color:rgba(255,107,122,.28)}.perf-grade.sample{color:var(--muted);background:rgba(148,163,184,.08)}.perf-confidence{display:block;color:var(--muted);font-size:9px;margin-top:4px}.perf-frame-badge{display:inline-block;padding:4px 7px;border-radius:8px;background:#17283c;border:1px solid var(--line);font-weight:800}.perf-frame-badge.strong{color:var(--green);border-color:rgba(47,209,154,.35);background:rgba(47,209,154,.08)}#performanceEventsBody td small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.perf-empty{text-align:center;padding:24px!important}.multiframe-performance-card{border-color:rgba(88,166,255,.26)}.multiframe-explain{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 14px}.multiframe-explain>div{background:#091625;border:1px solid var(--line);border-radius:10px;padding:11px 12px}.multiframe-explain b,.multiframe-explain span{display:block}.multiframe-explain b{margin-bottom:5px}.multiframe-explain span{font-size:11px;color:var(--muted);line-height:1.45}
@media(max-width:1150px){.performance-filters-v111{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-kpis-v111{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.performance-filters-v111{grid-template-columns:repeat(2,minmax(0,1fr))}.performance-kpis-v111{grid-template-columns:repeat(2,minmax(0,1fr))}.multiframe-explain{grid-template-columns:1fr}.sortable-performance{min-width:1250px}}
@media(max-width:520px){.performance-filters-v111{grid-template-columns:1fr 1fr}.performance-kpis-v111{grid-template-columns:1fr 1fr}}
