*{box-sizing:border-box} :root{color-scheme:light dark;--bg:#edf0f3;--surface:#fff;--text:#17212b;--muted:#65717c;--line:#cbd2d9;--accent:#1464b4;--green:#087443;--red:#b42336;--yellow:#9b7200} @media(prefers-color-scheme:dark){:root{--bg:#101418;--surface:#171d22;--text:#e3e8ec;--muted:#a0abb4;--line:#343d45;--accent:#70b6ff;--green:#69d49c;--red:#ff8290;--yellow:#e3bd54}} body{margin:0;background:var(--bg);color:var(--text);font:12px/1.35 system-ui,"Segoe UI",sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{width:100%;margin:0;padding:0 8px}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.head-inner{height:34px;display:flex;align-items:center;gap:14px}.brand{font-weight:800;color:var(--text);white-space:nowrap}.head-inner nav{display:flex;gap:12px;flex-wrap:wrap}.head-inner nav a{font-size:11px;font-weight:650}.hero{display:none}h1{font-size:17px;margin:6px 0}h2{font-size:10px;letter-spacing:.07em;text-transform:uppercase;margin:0 0 6px;color:var(--muted)}h3{margin:0;font-size:12px}.panel,.card,.index-card{background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:7px;min-width:0}.dashboard{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin:4px 0}.dashboard>.panel{grid-column:span 3}.dashboard>.wide{grid-column:span 12}.dashboard>.span8{grid-column:span 8}.dashboard>.span6{grid-column:span 6}.dashboard>.span4{grid-column:span 4}.indices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.index-tile{border:1px solid var(--line);padding:5px;display:grid;grid-template-columns:1fr auto;gap:2px}.index-tile b{font-size:10px;color:var(--muted)}.index-tile strong{font:bold 14px ui-monospace,Consolas,monospace;grid-column:1}.index-tile>span{font:11px ui-monospace,Consolas,monospace}.index-tile svg{grid-column:1/-1;width:100%;height:24px}.up,.positive{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent)}.down,.negative{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.flat{color:var(--yellow)}.spark{width:100%;height:25px}.spark polyline{fill:none;stroke:var(--accent);stroke-width:2}.spark circle{fill:var(--accent)}.linechart,.scatter{display:block;width:100%;height:auto;max-height:300px}.linechart line{stroke:var(--line);stroke-width:1}.linechart text,.scatter text{fill:var(--muted);font-size:10px}.linechart polyline{fill:none;stroke-width:2}.linechart .price{stroke:var(--accent)}.linechart .ma20{stroke:#db9b32;stroke-dasharray:5 3}.linechart .ma50{stroke:#a67be0;stroke-dasharray:3 3}.legend{display:flex;gap:12px;color:var(--muted);font-size:10px}.stat-card{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:4px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:4px}.stats div{border-bottom:1px solid var(--line);padding:4px 1px;display:flex;justify-content:space-between;gap:4px}.stats b,.micro,.rank b,td,th{font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}.stack{display:flex;height:22px}.stack i{font-style:normal;text-align:center;color:#fff;background:#138654}.stack i:nth-child(2){background:#c94955}.stack i:nth-child(3){background:#777f87}.micro,.updated,.muted{font-size:10px;color:var(--muted);margin-top:5px}.hist{height:70px;display:flex;align-items:end;gap:2px;border-bottom:1px solid var(--line)}.hist i{background:var(--accent);flex:1;min-width:2px}.heat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:3px}.heat{display:flex;justify-content:space-between;padding:6px 5px;font:11px ui-monospace,Consolas,monospace}.table-scroll{overflow:auto;max-width:100%;max-height:480px}table{border-collapse:collapse;width:100%;font-size:10px;white-space:nowrap}th,td{padding:4px 5px;text-align:right;border:1px solid var(--line)}th{background:var(--surface);position:sticky;top:0;z-index:2}th:first-child,td:first-child{text-align:left}th button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer}td.positive,td.negative{background-clip:padding-box}.filterbar{display:flex;justify-content:space-between;margin-bottom:5px;color:var(--muted)}input{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--line);padding:3px}.filterbar input{width:120px}.corr td{text-align:center}.rank{list-style:none;margin:0;padding:0}.rank li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:3px}.badge{white-space:nowrap;padding:1px 4px;font-size:9px;font-weight:700;border:1px solid currentColor}.tich_cuc{color:var(--green)}.tieu_cuc{color:var(--red)}.trung_lap{color:var(--muted)}.newslist{margin:0;padding-left:15px}.newslist li{padding:3px 0;border-bottom:1px solid var(--line)}.sources{display:inline-flex;gap:5px}.clamp{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.method{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.method span{border-left:2px solid var(--line);padding-left:5px}.updated{text-align:right;margin:3px}.site-footer{border-top:1px solid var(--line);margin-top:8px;padding:7px;color:var(--muted);font-size:10px}.date-list,.stock-list{display:grid;gap:5px}.card{margin:4px 0}.row{display:flex;justify-content:space-between}.watch{margin:0}.notice{padding:8px}.stock-row{display:flex;gap:8px;padding:5px;border-bottom:1px solid var(--line)}@media(max-width:900px){.dashboard{grid-template-columns:1fr}.dashboard>.panel,.dashboard>.wide,.dashboard>.span8,.dashboard>.span6,.dashboard>.span4{grid-column:1}.indices{grid-template-columns:repeat(2,1fr)}.method{grid-template-columns:1fr 1fr}.head-inner{height:auto;min-height:34px;flex-wrap:wrap;padding:5px 0}.heat-grid{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}}
body{font-size:15px;line-height:1.5}
main.wrap{max-width:none;padding:0 16px}
.muted{color:var(--muted)}.small{font-size:13px}
.up{color:var(--green)}.down{color:var(--red)}.flat{color:var(--yellow)}
.banner{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;margin:16px 0;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.banner.up{border-left:6px solid var(--green)}.banner.down{border-left:6px solid var(--red)}.banner.flat{border-left:6px solid var(--yellow)}
.tile.mk{display:flex;align-items:center;gap:16px;width:auto;height:auto;padding:4px 8px;background:none;border:0;text-align:left}
.ic-big{font-size:44px;line-height:1}
.mk-text{display:grid;gap:2px}.mk-text small{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.mk-text b{font-size:28px;letter-spacing:.02em}
.tile.mk.up .mk-text b,.tile.mk.up .ic-big{color:var(--green)}.tile.mk.down .mk-text b,.tile.mk.down .ic-big{color:var(--red)}.tile.mk.flat .mk-text b,.tile.mk.flat .ic-big{color:var(--yellow)}
.why{font-size:13px;color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.vn{display:grid;text-align:right;padding:0 16px;border-left:1px solid var(--line)}
.vn small{font-size:12px;color:var(--muted)}.vn b{font-size:24px;font-variant-numeric:tabular-nums}
.upd{font-size:12px;color:var(--muted);text-align:right}
.sec{margin:16px 0;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.sec h2{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hint{margin-left:8px;font-weight:400;letter-spacing:0;text-transform:none}
.grp+.grp{margin-top:16px}
.grp h3{margin:0 0 8px;font-size:14px;font-weight:600}
.count{display:inline-block;min-width:22px;padding:0 6px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:12px;text-align:center}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.tw{position:relative}
.tile{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 6px;width:100%;height:64px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:left;transition:transform .12s,box-shadow .12s}
.tile:hover,.tile:focus-visible{transform:translateY(-1px);box-shadow:0 4px 14px rgb(0 0 0/.12);outline:none}
.tile:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.tile b{font-size:16px;letter-spacing:.02em}
.tile .ic{grid-row:span 2;font-size:22px}
.tile .dots{font-size:10px;letter-spacing:2px;color:var(--muted)}
.tile.up{background:color-mix(in srgb,var(--green) 10%,var(--surface));border-color:color-mix(in srgb,var(--green) 35%,var(--line))}
.tile.down{background:color-mix(in srgb,var(--red) 10%,var(--surface));border-color:color-mix(in srgb,var(--red) 35%,var(--line))}
.tile.flat{background:color-mix(in srgb,var(--yellow) 10%,var(--surface));border-color:color-mix(in srgb,var(--yellow) 35%,var(--line))}
.tile.up .ic{color:var(--green)}.tile.down .ic{color:var(--red)}.tile.flat .ic{color:var(--yellow)}
.tile.res{height:48px}.tile.res.ok{border-color:var(--green)}.tile.res.bad{border-color:var(--red)}
.tile.res.ok .ic{color:var(--green)}.tile.res.bad .ic{color:var(--red)}
.pop{display:none;position:absolute;z-index:20;top:calc(100% + 8px);left:0;width:320px;max-width:calc(100vw - 32px);padding:12px 16px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgb(0 0 0/.18);font-size:14px;text-align:left}
.pop::before{content:"";position:absolute;top:-6px;left:24px;width:10px;height:10px;background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.pop.left{left:auto;right:0}.pop.left::before{left:auto;right:24px}
.pop.up{top:auto;bottom:calc(100% + 8px)}.pop.up::before{top:auto;bottom:-6px;transform:rotate(225deg)}
.pop p{margin:8px 0}.pop-head{font-size:15px}.pop-dir{font-weight:600}.pop-links{font-size:13px}
.pop-x{display:none;float:right;border:0;background:none;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}
.tw:hover>.pop,.tw:focus-within>.pop{display:block}
.js .tw:hover>.pop,.js .tw:focus-within>.pop{display:none}
.js .tw.on>.pop{display:block}
.touch .tw.on>.pop{position:fixed;left:0;right:0;top:auto;bottom:0;width:auto;max-width:none;max-height:70vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px 24px;font-size:15px}
.touch .pop::before{display:none}.touch .pop-x{display:block}
.pop-back{display:none;position:fixed;inset:0;z-index:15;background:rgb(0 0 0/.35)}
.sheet-open .pop-back{display:block}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two .sec{margin:0}
.stats4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stat{display:grid;gap:2px;padding:12px;background:var(--bg);border-radius:10px}
.stat b{font-size:26px;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:var(--muted)}
.stat:last-child b{color:var(--muted)}
.news{margin:0;padding:0;list-style:none}
.news li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.news li:last-child{border-bottom:0}
.chip{flex:none;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid currentColor}
.nt{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.src{flex:none;text-decoration:none;padding:0 4px}
.fold summary{cursor:pointer;font-size:14px;font-weight:600}
.fold[open] summary{margin-bottom:12px}
.notice{margin:16px 0;padding:12px 16px;border:1px solid var(--red);border-radius:12px;font-size:13px}
@media(max-width:900px){.two{grid-template-columns:1fr}.two .sec+.sec{margin-top:16px}.stats4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.banner{grid-template-columns:1fr}.vn,.upd{text-align:left;border-left:0;padding:0}.mk-text b{font-size:22px}.ic-big{font-size:36px}.tiles{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.hint{display:block;margin:4px 0 0}}
