:root{--bg:#0b0e14;--card:#151922;--sub:#1e2430;--bd:#283040;--blue:#007acc;--cyan:#00b4d8;--green:#0ecb81;--red:#f6465d;--gold:#f0b90b;--purple:#9d4edd;--orange:#f77f00;--tx:#eaecef;--mu:#848e9c}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font:14px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}
body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
[hidden]{display:none!important}
.muted{color:var(--mu)}.small{font-size:12px}.err{color:var(--red)}
.top{position:sticky;top:0;background:var(--bg);padding:8px 12px 0;z-index:5;border-bottom:1px solid var(--bd)}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.btc{padding:2px 0 6px;font-weight:600}
.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;background:#12161f;color:var(--mu);border:0;border-radius:6px 6px 0 0;padding:10px 12px;font-weight:700;font-size:13px;white-space:nowrap}
.tab.on{background:#222a38;color:var(--gold)}
main{padding:8px 12px 84px;max-width:720px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--bd);border-radius:8px;padding:8px 10px;margin:8px 0}
.item{cursor:pointer}.item.sel{border-color:var(--gold)}
.r{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:2px 0}
.sym{font-size:16px;font-weight:800}.tag{font-size:12px;font-weight:700;margin-left:6px}
.badge{padding:1px 8px;border-radius:4px;font-size:12px;font-weight:700;color:#fff}
.b-normal{background:var(--cyan)}.b-high{background:var(--green)}.b-fomo{background:var(--gold);color:#000}
.gold{color:var(--gold)}.cyan{color:var(--cyan)}.purple{color:var(--purple)}.orange{color:var(--orange)}.green{color:var(--green)}
.desc{background:var(--sub);border-radius:4px;padding:4px 6px;margin-top:4px;font-size:12px;color:var(--mu)}
.btn{border:0;border-radius:6px;color:#fff;font-weight:700;padding:11px 14px;font-size:13px}
.btn.blue{background:var(--blue)}.btn:disabled{background:#222a38;color:var(--mu)}
.bar{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--bd);padding:8px 12px calc(8px + env(safe-area-inset-bottom));display:flex;gap:10px;align-items:center}
.bar .small{flex:1}
.link{background:none;border:0;color:var(--cyan);padding:6px}
input{background:var(--sub);color:#fff;border:1px solid var(--bd);border-radius:6px;padding:10px;font-size:16px;width:100%}
.search{display:flex;align-items:center;gap:8px}.search label{color:var(--gold);font-weight:700;font-size:12px;white-space:nowrap}.search input{flex:1;min-width:0}
.login{max-width:360px;margin:12vh auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.login h1{font-size:20px;margin:0 0 8px}
.langs{display:flex;gap:6px;justify-content:flex-end;margin-bottom:4px}
.lang{background:#222a38;color:var(--mu);border:1px solid #2f3a4d;border-radius:6px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.lang.on{background:var(--blue);color:#fff;border-color:var(--blue)}
table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}td{padding:3px 4px;border-bottom:1px solid var(--bd);vertical-align:top;overflow-wrap:anywhere}
details{margin:4px 0}summary{color:var(--cyan);cursor:pointer}td:first-child{color:var(--mu);width:46%}
h3{font-size:13px;margin:10px 0 4px;color:var(--gold)}
pre{white-space:pre-wrap;word-break:break-word;font:13px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:4px 0}
.ln{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;margin:3px 0}.ttl{font-weight:800;font-size:13px;margin-bottom:4px;overflow-wrap:anywhere}

.bull{color:var(--green)}.bear{color:var(--red)}.muted-t{color:var(--mu)}.accent{color:var(--cyan)}
.btn.green{background:#0a8f5c}.btn.red{background:#b1283c}.btn.gray{background:#2a3242}.btn.sm{padding:6px 10px;font-size:12px}.btn.xs{padding:3px 8px;font-size:11px}
.btns{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.btns .btn{flex:1 1 auto}
.field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0}.field label{font-size:12px;color:var(--mu);flex:1}.field input,.field select{width:46%;max-width:200px;text-align:right}
select{background:var(--sub);color:#fff;border:1px solid var(--bd);border-radius:6px;padding:8px;font-size:15px}
input.sm{padding:5px 6px;font-size:14px}
.msg{font-size:12px;padding:4px 2px;min-height:18px;overflow-wrap:anywhere}
.pill{display:inline-block;border-radius:10px;padding:0 8px;font-size:11px;font-weight:700;background:var(--sub)}
.lv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:var(--sub);border-radius:4px;padding:4px;margin:4px 0;font-size:12px}
.lv .lvc{display:flex;flex-direction:column;gap:3px;min-width:0;background:var(--card);border:1px solid var(--bd);border-radius:4px;padding:4px 3px}
.lv .ctl{display:flex;align-items:center;gap:3px}
.lv .ctl input{flex:1 1 0;min-width:0;width:auto;padding:3px 4px;font-size:13px;text-align:right}
.lv .tg{min-width:22px;font-size:10px;font-weight:700;text-align:left}
.lv .done{color:var(--mu)}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.grid{table-layout:auto;width:max-content;min-width:100%}table.grid td,table.grid th{padding:3px 6px;border-bottom:1px solid var(--bd);white-space:nowrap;font-size:11px;text-align:right}
table.grid th{color:var(--gold);font-weight:700;position:static}table.grid td:first-child,table.grid th:first-child{width:auto;color:inherit}
table.grid .l{text-align:left}
table.grid td.dt{padding-left:10px;padding-right:10px;min-width:78px}
.grp>summary{font-weight:800;color:var(--gold);padding:8px 2px}
.dlg{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}
.dlg .box{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:14px;max-width:420px;width:100%;max-height:85vh;overflow:auto}
.dlg .box pre{margin:8px 0}
.who{display:flex;align-items:center;gap:14px;min-width:0}.who strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who .link{padding:6px 2px}
.conn{font-weight:800;font-size:12px;white-space:nowrap}.conn.live{color:var(--green)}.conn.down{color:var(--red)}
input.dayin{width:128px;padding:5px 28px 5px 8px;font-size:14px;font-variant-numeric:tabular-nums}
input.dayin.bad{border-color:var(--red)}
.dwrap{position:relative;display:inline-block;flex:0 0 auto}
.dwrap .dico{position:absolute;right:6px;top:50%;width:16px;height:16px;margin-top:-8px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23848e9c' stroke-width='1.5'%3E%3Crect x='2' y='3' width='12' height='11' rx='1.5'/%3E%3Cpath d='M2 7h12M5 1.5v3M11 1.5v3'/%3E%3C/svg%3E") no-repeat center/16px 16px}
.dwrap .dpick{position:absolute;right:0;top:0;width:28px;height:100%;opacity:0;padding:0;margin:0;border:0;cursor:pointer}
.filt{display:flex;align-items:flex-end;gap:8px}.fcol{display:flex;flex-direction:column;gap:2px}.fcol label{font-size:12px;color:var(--mu)}.fcol input.dayin{width:128px}
.inl{display:flex;align-items:center;gap:8px;margin:6px 0}.inl input{flex:1;min-width:0;width:auto}.inl select{width:auto}
.card.warn{border-color:var(--gold)}
.legal-links{display:flex;flex-wrap:wrap;gap:4px 8px;justify-content:center;font-size:12px}
.legal-links.pin{position:sticky;top:var(--hdr-h,0px);z-index:4;background:var(--bg);justify-content:flex-start;margin:0 -12px;padding:6px 12px;border-bottom:1px solid var(--bd)}
.legal-links a{color:var(--cyan)}.legal-links .sep{color:var(--mu)}
.guide summary{cursor:pointer;font-weight:700;color:var(--gold);padding:4px 0}
.guide ul{margin:6px 0 10px;padding-left:18px}.guide li{margin:4px 0;overflow-wrap:anywhere}
.card .ttl{font-weight:800}

.tick{display:inline-block;width:5px;height:10px;border:solid var(--green);border-width:0 2.5px 2.5px 0;transform:rotate(45deg);margin:0 8px 3px 3px}

.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.chip{background:#222a38;color:var(--mu);border:1px solid #2f3a4d;border-radius:6px;padding:7px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.chip.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.chcv{display:block;width:100%;max-width:100%;border-radius:6px;background:#0b0e14;user-select:none;-webkit-user-select:none}
.tip{background:var(--sub);border-radius:6px;padding:4px 8px;margin:6px 0;min-height:20px}
.c-ema20{color:#f0b90b}.c-zlema20{color:#9d4edd}.c-ema50{color:#00b4d8}.c-ema100{color:#f77f00}.c-bb{color:#5b8def}.c-sr{color:#c9a227}
.ind summary{font-weight:800;color:var(--gold);cursor:pointer}
.ckgrp{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0;align-items:center}.ckgrp>.small{width:100%}
.ck{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:5px 0;cursor:pointer}
.ck input{width:20px;height:20px;padding:0;margin:0}
.mini{padding:4px 10px;font-size:11px;background:#222a38;border:1px solid #2f3a4d;color:var(--cyan)}

/* iOS Safari tu phong to khi chu trong o nhap < 16px: chi ap dung cho iOS, Android giu nguyen */
@supports (-webkit-touch-callout:none){input,select,textarea,input.sm,input.dayin,.lv .ctl input{font-size:16px}}

/* ---- cong tac Day Trading / Swing (buoc7j) ---- */
.appsw{display:flex;margin:2px 0 6px;border:1px solid var(--bd);border-radius:8px;overflow:hidden}
.appsw .sw{flex:1 1 0;text-align:center;padding:8px 6px;font-weight:700;font-size:13px;color:var(--mu);background:#12161f;text-decoration:none}
.appsw .sw.on{background:#222a38;color:var(--gold)}
.pvrow{border-top:1px solid var(--bd);padding:4px 0;margin-top:4px}
.pvtrend{border-left:3px solid var(--mu);padding:2px 0 2px 8px;margin:6px 0}.pvtrh{font-weight:800}.pvtr-up{border-left-color:var(--green)}.pvtr-up .pvtrh{color:var(--green)}.pvtr-down{border-left-color:var(--red)}.pvtr-down .pvtrh{color:var(--red)}.pvagainst{color:var(--gold)}
