/* 合并瀑布流页样式：复用 style.css 的变量名，但在本页作用域内覆盖为与导航页、电影页统一的苹果风 token。
   本文件只加合流页自己的样式，不改首页样式。 */
.stream-page{max-width:1120px}
.stream-page{--bg:#f5f5f7;--card:#ffffff;--ink:#1d1d1f;--ink-2:#6e6e73;--ink-3:#86868b;--line:#d2d2d7;--fill:#e8e8ed;--accent:#0071e3;--shadow:0 1px 2px rgba(20,23,28,.06),0 8px 24px rgba(20,23,28,.06)}
@media (prefers-color-scheme:dark){.stream-page{--bg:#000000;--card:#1c1c1e;--ink:#f5f5f7;--ink-2:#aeaeb2;--ink-3:#98989d;--line:#38383a;--fill:#2c2c2e;--accent:#0a84ff;--shadow:none}}
.stream-page .masthead{margin-bottom:16px}
.stream-nav-link{width:auto;height:36px;padding:0 14px;border-radius:18px;font-size:13px;font-weight:500;text-decoration:none}
.stream-nav-link:hover{background:var(--line)}
.stream-note{font-size:13px;line-height:1.6;color:var(--ink-2);margin:0 2px 16px}
.stream-note code{font-size:12px;background:var(--fill);padding:1px 5px;border-radius:5px}

/* 筛选条 */
.stream-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 2px 20px;position:sticky;top:0;z-index:10;padding:10px 0;background:var(--bg)}
.stream-filter{appearance:none;border:0;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:500;color:var(--ink-2);background:var(--fill);cursor:pointer}
.stream-filter.active{background:var(--ink);color:var(--bg)}
.stream-filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.stream-count{font-size:12px;opacity:.75;margin-left:2px}

/* 瀑布流：CSS 多列；DOM 顺序仍为时间倒序，视觉按列排布 */
.masonry{column-gap:16px;column-count:1}
@media (min-width:640px){.masonry{column-count:2}}
@media (min-width:1024px){.masonry{column-count:3}}
.stream-card{break-inside:avoid;margin:0 0 16px;background:var(--card);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.stream-card.is-expired{background:var(--fill);box-shadow:none}
.stream-card.is-expired .stream-title a{color:var(--ink-2)}
.stream-card.is-expired .stream-desc{color:var(--ink-3)}
.stream-card.is-expired .stream-action{color:var(--ink-3)}
.stream-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--ink-3);margin-bottom:8px}
.stream-badge{flex:none;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px}
.stream-badge.news{background:rgba(0,102,204,.12);color:var(--accent)}
.stream-badge.deals{background:rgba(166,90,30,.13);color:#a65a1e}
@media (prefers-color-scheme:dark){.stream-badge.deals{color:#e08a45}}
.stream-badge.invite{background:rgba(0,102,204,.12);color:var(--accent)}
.stream-vendor{font-weight:600;color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stream-date{margin-left:auto;white-space:nowrap}
.stream-title{margin:0 0 8px;font-size:16px;line-height:1.45;font-weight:650}
.stream-title a{color:var(--ink);text-decoration:none}
.stream-title a:hover{text-decoration:underline}
.stream-desc{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}

/* 优惠卡：价格/折扣与到期时间是卡片主体，不是折叠详情 */
.stream-price{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--fill);font-size:14px;line-height:1.5;font-weight:650;color:var(--ink)}
.stream-expiry{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--ink-2)}
.stream-expiry strong{color:var(--ink)}
.stream-expiry .expired{color:var(--danger);font-weight:650}
.stream-coupon{margin-top:8px}
.coupon-btn{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}

.stream-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.stream-action{font-size:14px;font-weight:500;color:var(--accent);white-space:nowrap}
.stream-block-btn{appearance:none;border:0;background:transparent;color:var(--ink-3);font-size:13px;padding:6px 0;cursor:pointer}
.stream-block-btn:hover{color:var(--ink-2)}
.stream-blocked-note{font-size:13px;color:var(--ink-2);margin:0 2px 16px}
.stream-blocked-note button{appearance:none;border:0;background:transparent;color:var(--accent);font-size:13px;padding:0 4px;cursor:pointer}
.stream-more-wrap{text-align:center;margin:8px 0 24px}
.stream-shown{display:block;margin-top:8px;font-size:12px;color:var(--ink-3)}
.stream-empty{text-align:center;padding:40px 16px;color:var(--ink-2);background:var(--card);border-radius:16px}
.stream-error{color:var(--danger)}
@media (max-width:480px){
  .stream-page{padding-left:14px;padding-right:14px}
  .stream-card{padding:14px}
  .stream-title{font-size:15px}
}

/* 不再推荐理由弹窗（与新闻站行为一致：空理由禁用确认，取消不屏蔽） */
.stream-reason-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:20px}
.stream-reason-box{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:20px;width:min(420px,100%)}
.stream-reason-box h3{margin:0 0 8px;font-size:17px}
.stream-reason-title{font-size:14px;color:var(--ink-2);margin:0 0 12px;line-height:1.5}
.stream-reason-box textarea{width:100%;box-sizing:border-box;border:0;border-radius:12px;background:var(--fill);color:var(--ink);font:inherit;font-size:14px;line-height:1.5;padding:10px 12px;resize:vertical}
.stream-reason-box textarea:focus{outline:2px solid var(--accent);outline-offset:0}
.stream-reason-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.stream-reason-cancel{appearance:none;border:0;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:500;color:var(--ink-2);background:var(--fill);cursor:pointer}
.stream-reason-confirm{appearance:none;border:0;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:500;color:#fff;background:var(--accent);cursor:pointer}
.stream-reason-confirm:disabled{opacity:.4;cursor:default}

/* Preserve compact cards without shrinking interaction targets. */
.stream-filter,.stream-nav-link,.coupon-btn,.stream-block-btn,.stream-action,.stream-reason-cancel,.stream-reason-confirm{min-height:44px}
.stream-action{display:inline-flex;align-items:center}.stream-title,.coupon-btn{overflow-wrap:anywhere}
.stream-foot{flex-wrap:wrap}.stream-note button{margin:6px 0}.masonry:empty{min-height:160px}
@media(max-width:480px){.stream-card{margin-bottom:12px}.stream-filters{gap:6px}.stream-filter{padding:9px 13px}}
