/* tablet-only data-viz cards (scoped to html[data-device=tablet]; phone unaffected). 8pt grid; Luna brown/gold; light + dark via theme vars. */
html:not([data-device=tablet]) .tv{display:none!important}
html[data-device=tablet] .card.tv{padding:24px;margin-bottom:24px}
html[data-device=tablet] .card.tv.span{grid-column:1/-1}
html[data-device=tablet] .tv h3{margin:0 0 8px}
html[data-device=tablet] .tv .tv-sub{margin:0 0 16px}
html[data-device=tablet] .tv-cv{position:relative;width:100%;min-height:160px}
html[data-device=tablet] .tv-cv.tv-h200{height:240px}
html[data-device=tablet] .tv-donut{display:grid;grid-template-columns:minmax(144px,1fr) minmax(0,1.1fr);gap:24px;align-items:center}
html[data-device=tablet] .tv-donut .tv-cv{height:200px;min-height:0}
html[data-device=tablet] .tv-leg{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13px}
html[data-device=tablet] .tv-leg li{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:8px;align-items:center}
html[data-device=tablet] .tv-leg i{width:8px;height:8px;border-radius:50%}
html[data-device=tablet] .tv-leg span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html[data-device=tablet] .tv-leg b{font-variant-numeric:tabular-nums;color:var(--mut);font-weight:700}
html[data-device=tablet] .tv-tree{position:relative;width:100%;aspect-ratio:100/62;border-radius:16px;overflow:hidden;background:var(--bg2)}
html[data-device=tablet] .tv-tm{position:absolute;box-sizing:border-box;padding:8px;background:var(--c);border:1.5px solid var(--bg);color:#fff;overflow:hidden;display:flex;transition:filter .2s}
html[data-device=tablet] .tv-tm:hover{filter:brightness(1.08)}
html[data-device=tablet] .tv-tm span{display:flex;flex-direction:column;gap:2px;min-width:0;text-shadow:0 1px 2px rgba(60,35,20,.45)}
html[data-device=tablet] .tv-tm b{font-size:12.5px;line-height:1.25;overflow-wrap:anywhere}
html[data-device=tablet] .tv-tm em{font-style:normal;font-size:11px;font-weight:700;opacity:.92;font-variant-numeric:tabular-nums}
html[data-device=tablet] .tv-heat{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
html[data-device=tablet] .tv-heat small{text-align:center;color:var(--mut);font-size:11px}
html[data-device=tablet] .tv-hc{aspect-ratio:1;border-radius:8px;display:grid;place-items:center;font-size:12px;font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--solid) calc(var(--a)*100%),var(--bg2));color:var(--ink)}
html[data-device=tablet] .tv-hc[style*="--a:0.6"],html[data-device=tablet] .tv-hc[style*="--a:0.7"],html[data-device=tablet] .tv-hc[style*="--a:0.8"],html[data-device=tablet] .tv-hc[style*="--a:0.9"],html[data-device=tablet] .tv-hc[style*="--a:1"]{color:var(--solid-t)}
html[data-device=tablet] .tv-hc.z{background:var(--bg2);color:var(--mut);opacity:.7}
html[data-device=tablet] .tv-gscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
html[data-device=tablet] .tv-gantt{display:block;width:100%;min-width:560px;height:auto;font-family:inherit}
html[data-device=tablet] .tv-empty{display:grid;place-items:center;min-height:120px;border:1px dashed var(--line);border-radius:16px;color:var(--mut);font-size:14px;padding:16px;text-align:center}
html[data-device=tablet] .tv-skel{display:grid;gap:8px}
html[data-device=tablet] .tv-skel i{display:block;height:16px;border-radius:8px;background:linear-gradient(90deg,var(--bg2),color-mix(in srgb,var(--bg2) 50%,var(--card)),var(--bg2));background-size:200% 100%;animation:higShim 1.4s linear infinite}
@media (prefers-reduced-motion:reduce){html[data-device=tablet] .tv-skel i{animation:none}}
@media (max-width:899.98px){html[data-device=tablet] .tv-donut{grid-template-columns:1fr}}
