/* Public data modules use the same LifeOS tokens in pages, widgets and the shell. */
.data-widgets{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-bottom:20px}.data-widgets>section{min-width:0}.stream-page{max-width:1180px;margin:auto;padding:36px 28px}.stream-page .module-card{padding:24px;margin-bottom:24px}.stream-page .section-heading,.data-widgets .section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.stream-page h2,.data-widgets h2{font-size:20px;margin:8px 0}.stream-page .hint,.data-widgets .hint{font-size:11px;color:var(--muted)}.stream-track{display:flex;align-items:flex-start;gap:18px;padding:18px 0;min-width:0;border-top:1px solid var(--border)}.stream-track>div{min-width:0;flex:1}.stream-track h3{margin:0 0 10px;font-size:16px;overflow-wrap:anywhere}.stream-track p{font:10px/1.9 var(--font-mono);color:var(--muted);margin:0 0 10px;overflow-wrap:anywhere}.stream-track>img,.track-placeholder{width:100px;height:100px;object-fit:cover;flex-shrink:0;border:1px solid var(--primary);border-radius:12px;box-shadow:0 0 20px var(--primary-glow)}.track-placeholder{display:grid;place-items:center;color:var(--primary);font-size:40px;background:var(--bg-main)}.stream-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:15px}.stream-actions a{font-size:11px}.stream-search{display:flex;align-items:end;gap:12px;margin-top:20px}.stream-search label{flex:1;min-width:0;font:10px var(--font-mono);color:var(--muted)}.stream-search input{margin-top:8px}.stream-search button{flex-shrink:0}.stream-page code{color:var(--primary);font-family:var(--font-mono);overflow-wrap:anywhere}.stream-source{font:10px var(--font-mono);color:var(--muted)}.stream-source a{color:var(--primary)}
.cyberdex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin:18px 0;max-height:350px;overflow-y:auto;padding:3px}.stream-page .cyberdex-grid{max-height:none}.dex-tile{min-width:0;padding:12px 8px;background:var(--bg-main);border:1px solid var(--border-glow);border-radius:12px;color:var(--text);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}.dex-tile:hover{border-color:var(--primary);box-shadow:0 0 18px var(--primary-glow);transform:translateY(-2px)}.dex-tile img{object-fit:contain;image-rendering:pixelated}.dex-tile small{font:9px var(--font-mono);color:var(--muted)}.dex-tile strong{font-size:12px;overflow-wrap:anywhere;max-width:100%}.dex-tile>span:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.dex-type{display:inline-block;padding:3px 6px;border:1px solid currentColor;border-radius:6px;color:#b0bec5;font:8px var(--font-mono);text-transform:uppercase}.type-fire{color:#ff5722}.type-water{color:#2196f3}.type-electric{color:#ffeb3b}.type-grass{color:#66dd88}.type-poison{color:#c878ee}.type-psychic{color:#ff80ab}.type-ice{color:#80deea}.type-dragon{color:#a68cff}.type-dark{color:#b0a9c7}.type-fighting{color:#ef8e78}.type-rock{color:#c9b36d}.type-ground{color:#dcaa76}.type-flying{color:#9cbcf5}.type-bug{color:#b2d14b}.type-ghost{color:#b39ddb}.type-steel{color:#90a4ae}.type-fairy{color:#f48fb1}.dex-success{font:10px var(--font-mono);color:var(--primary)}
#cyberdex-modal,#cyberdex-details{width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow-y:auto;padding:28px;border:1px solid var(--primary);border-radius:12px;background:var(--bg-glass);color:var(--text);backdrop-filter:blur(12px);box-shadow:0 0 60px var(--primary-glow)}#cyberdex-modal{text-align:center}#cyberdex-modal h2{font:600 18px/1.5 var(--font-mono);letter-spacing:1px}#cyberdex-modal .stream-actions{justify-content:center}#cyberdex-modal #encounter-status{font:11px/1.8 var(--font-mono);overflow-wrap:anywhere}#encounter-creature img,.dex-detail-sprite{object-fit:contain;image-rendering:pixelated}#cyberdex-modal::backdrop,#cyberdex-details::backdrop{background:#02060ccc;backdrop-filter:blur(12px)}.encounter-signal{font-size:40px;color:var(--primary);animation:data-pulse 1.4s ease-in-out infinite}#cyberdex-modal[open]{animation:encounter-in .3s ease both}#cyberdex-details h2{font-size:20px}.dex-stats{display:grid;gap:12px;font:11px var(--font-mono)}.dex-stats>div{display:flex;gap:14px;align-items:center}.dex-stats dt{width:36px}.dex-stats dd{margin:0;display:flex;align-items:center;gap:12px;flex:1}.dex-stats meter{width:100%;height:14px;accent-color:var(--primary)}.dex-stats meter::-webkit-meter-optimum-value{background:var(--primary)}.dex-stats span{min-width:28px;color:var(--primary)}
@keyframes data-pulse{50%{opacity:.45;text-shadow:0 0 22px var(--primary)}}@keyframes encounter-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:900px){.data-widgets{grid-template-columns:1fr}}@media(max-width:480px){.stream-page{padding:26px 16px}.stream-page .module-card{padding:18px}.stream-track{gap:12px}.stream-track>img,.track-placeholder{width:64px;height:64px}.stream-track h3{font-size:14px}.stream-search{flex-wrap:wrap}.stream-search label{flex-basis:100%}.stream-search button{width:100%}#cyberdex-modal,#cyberdex-details{padding:20px}.cyberdex-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}}
@media(prefers-reduced-motion:reduce){.encounter-signal,#cyberdex-modal[open]{animation:none}.dex-tile:hover{transform:none}}
