.fresh{align-items:center;gap:var(--s1);font-size:var(--text-xs);color:var(--muted);display:inline-flex}.fresh__dot{border-radius:50%;flex:none;width:8px;height:8px}.fresh--live .fresh__dot{background:var(--info);animation:2s ease-in-out infinite fresh-pulse}.fresh--delayed .fresh__dot{background:var(--warn)}.fresh--offline .fresh__dot{border:1.5px solid var(--muted);background:0 0}@keyframes fresh-pulse{0%,to{opacity:1}50%{opacity:.35}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.card__head{align-items:center;gap:var(--s2);min-height:44px;padding:var(--s2) var(--s2) var(--s2) var(--s4);border-bottom:1px solid var(--line);display:flex}.card__title{font-size:var(--text-md);white-space:nowrap;margin:0;font-weight:600}.card__source{min-width:0;font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.card__menu{border-radius:var(--r-btn);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.card__menu:hover{background:var(--elevated);color:var(--text)}.card__body{min-height:0;padding:var(--s3) var(--s4) var(--s4);font-size:var(--text-sm);flex:1;overflow:auto}.card__msg{padding:var(--s4) 0;color:var(--muted);margin:0}.card__msg p{margin:0 0 var(--s1)}.card__msg--error p:first-child{color:var(--text)}.card__fix{color:var(--muted)}.card__retry{margin-top:var(--s3);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-btn);background:var(--elevated);cursor:pointer}.card__stale{margin:0 0 var(--s3);padding:var(--s1) var(--s2);border-left:2px solid var(--warn);font-size:var(--text-xs);color:var(--warn)}.card__dim{opacity:.55}.card__skeleton{gap:var(--s3);padding:var(--s1) 0;display:grid}.card__skeleton span{border-radius:var(--r-chip);background:linear-gradient(90deg, var(--elevated) 0%, var(--line) 50%, var(--elevated) 100%);background-size:200% 100%;height:14px;animation:1.4s linear infinite skeleton}.card__skeleton span:nth-child(2){width:80%}.card__skeleton span:nth-child(4){width:60%}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.card[data-state=loading]{min-height:240px}.app--mobile .market,.shell-skeleton .market{min-height:740px}.app--mobile .bubbles{min-height:560px}
