.hero{padding:18px 16px;margin:12px;border:1px solid var(--bd);border-radius:14px;background:linear-gradient(180deg,var(--soft2),rgba(0,0,0,0))}
.hero h1{font-size:1.4rem;margin:0 0 6px}
.hero p{color:var(--muted);margin:0}
.dash-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin:12px}
.card.stat{display:flex;flex-direction:column;gap:8px;transition:transform .12s ease,box-shadow .12s ease}
.card.stat:hover,.card.stat:focus-within{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.18)}
.card .k{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.15rem}
.card .lbl{color:var(--muted);font-size:.9rem}
.card .actions{margin-top:auto}
.row2{grid-column:span 6}
.row3{grid-column:span 4}
.row4{grid-column:span 3}
.full{grid-column:1/-1}
.chart-mini{position:relative;height:150px;border:1px solid var(--bd);border-radius:10px;background:var(--soft2);margin-top:8px}
.chart-mini canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.list{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:.95rem}
.pill-link{display:inline-block;margin-top:8px;font-size:13px;border-radius:10px;background:var(--soft);border:1px solid var(--bd)}
.pill-link:hover{background:var(--soft2)}
.pill-link:focus{outline:2px solid var(--accent);outline-offset:2px}
.grid-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.muted-sm{color:var(--muted);font-size:.85em}
.ok{color:var(--good)}.bad{color:var(--bad-bright)}
@media(max-width:1100px){.row2{grid-column:span 12}.row3{grid-column:span 6}.row4{grid-column:span 6}}
@media(max-width:700px){.row3{grid-column:span 12}.row4{grid-column:span 12}}
.market-mini{padding:14px 16px}
.mm-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}
.mm-price{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.mm-sub{color:var(--muted);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:12px}
.mm-block{border:1px solid var(--bd);background:var(--soft2);border-radius:10px;padding:10px 12px}
.mm-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.mm-list{list-style:none;padding:0;margin:6px 0 0}
.mm-list li{display:grid;grid-template-columns:80px 1fr;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px dashed rgba(255,255,255,.06)}
.mm-list li:last-child{border-bottom:0}
.mm-list b{font-variant-numeric:tabular-nums;font-weight:700}
.mm-list li>*{min-width:0}
.mm-colL{display:inline-flex;gap:6px;align-items:baseline}
.mm-colL .unit{color:var(--muted);font-weight:600}
.mm-colR{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-updated{margin-top:10px;color:var(--muted);font-size: .85em;}
.mm-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.mm-top{grid-template-columns:1fr}.mm-lists{grid-template-columns:1fr}}
.hl-grid{grid-template-columns:1fr!important;row-gap:8px}
#harvestLootCard .k{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.hl-break{display:none}
@media(max-width:1200px){.hl-break{display:inline}}
#globalStatsCard .lbl{color:var(--muted);font-size:.9rem}
#globalStatsCard .k{font-variant-numeric:tabular-nums;font-weight:700;overflow-wrap:anywhere;line-height:1.2}
.gs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 6px}
.gs-chip{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--bd);border-radius:10px;background:var(--soft2);padding:10px 12px;min-height:64px}
.gs-chip>*{min-width:0}
.gs-chip .ico{width:18px;height:18px;flex:0 0 auto}
.gs-grid--counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 8px}
@media(max-width:1300px){.gs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-grid--counts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.gs-grid--counts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ex-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:8px}
.ex-mini{border:1px solid var(--bd);border-radius:10px;background:var(--soft2);padding:8px 10px}
.ex-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px}
.ex-title{font-size:.92rem;color:var(--muted)}
.ex-right{text-align:right}
.ex-value{font-variant-numeric:tabular-nums;font-weight:700}
.ex-sub{color:var(--muted);font-size:.8rem;line-height:1.2}
.ex-spark{height:46px}
.ex-spark svg{width:100%;height:46px;display:block}
.ex-pill{display:inline-block;margin-top:4px;font-size:.75rem;padding:2px 6px;border-radius:999px;border:1px solid var(--bd);background:var(--soft2);opacity:.9}
.ex-pill.up{color:var(--good);border-color:rgba(16,185,129,.35)}
.ex-pill.down{color:var(--bad-bright);border-color:rgba(239,68,68,.35)}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--good);margin-right:6px;opacity:.25}
.live-dot.on{animation:livePulse 1.2s ease-in-out infinite;opacity:1}
@keyframes livePulse{0%{transform:scale(.9);opacity:.8}50%{transform:scale(1.15);opacity:1}100%{transform:scale(.9);opacity:.8}}
.ex-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;text-align:right}
.ex-right .ex-sub{flex-basis:100%}
.ex-pill{font-size:12px;padding:2px 6px;border-radius:999px;border:1px solid var(--bd);background:var(--soft2);font-variant-numeric:tabular-nums}
.ex-pill.up{color:var(--good);border-color:rgba(34,197,94,.35)}
.ex-pill.down{color:var(--bad-bright);border-color:rgba(239,68,68,.35)}
@keyframes flashUpdate {
  0%   { background-color: rgba(250, 204, 21, 0.95); box-shadow: 0 0 0 2px rgba(250, 204, 21, 0.55) inset; }
  10%  { background-color: rgba(250, 204, 21, 0.80); box-shadow: 0 0 0 2px rgba(250, 204, 21, 0.45) inset; }
  50%  { background-color: rgba(250, 204, 21, 0.40); box-shadow: 0 0 0 1px rgba(250, 204, 21, 0.30) inset; }
  85%  { background-color: rgba(250, 204, 21, 0.15); box-shadow: 0 0 0 1px rgba(250, 204, 21, 0.18) inset; }
  100% { background-color: transparent;              box-shadow: none; }
}
.flash-update {animation: flashUpdate 5s ease-out; border-radius: 3px; padding: 0; -webkit-box-decoration-break: clone; box-decoration-break: clone;}
.trend-ind{margin-left:6px;font-weight:700}
.trend-ind.up{color:var(--good)}
.trend-ind.down{color:var(--bad-bright)}
.uptag{margin-left:8px;color:yellow;font-size:.9rem;white-space:nowrap;display:none}
.uptag.on{display:inline}