/* 公开日报 — 刊物式版面:深色刊头 + 编号话题流。主站保持 NYT 白净,本页允许一点表情。 */

.dy-empty{color:var(--mut);padding:60px 0;font-size:var(--fs-md)}

/* 深色刊头:封面感。深蓝取 --navy 的更深一档,只在本页使用 */
.dy-mast{background:#16324e;color:#fff;position:relative}
.dy-mast-in{padding:34px 28px 26px}
.dy-kicker{font-size:var(--fs-xs);font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:#9db8d2;margin-bottom:12px}
.dy-date{font-family:var(--serif);font-size:2rem;font-weight:600;margin:0 0 18px;line-height:1.2}
.dy-week{font-size:1.1rem;color:#c9d8e8;margin-left:8px}
.dy-tz{font-size:var(--fs-xs);font-weight:400;letter-spacing:.14em;color:#8ba3bd;
  margin-left:10px;vertical-align:middle}
.dy-ed{display:inline-block;border:1px solid #4a6b8c;padding:1px 10px;margin-left:10px;
  font-size:var(--fs-sm);font-family:var(--sans);vertical-align:4px;color:#c9d8e8}
/* 数字格:bento 式统计条 */
.dy-stats{display:flex;gap:0;border-top:1px solid #38536f;max-width:640px}
.dy-stat{flex:1;padding:12px 18px 2px 0}
.dy-stat+.dy-stat{border-left:1px solid #38536f;padding-left:18px}
.dy-stat b{display:block;font-family:var(--serif);font-size:1.7rem;font-weight:600;line-height:1.2}
.dy-stat span{font-size:var(--fs-xs);color:#9db8d2}
.dy-nav-cell{display:flex;align-items:center;gap:14px}
.dy-nav-cell a{color:#c9d8e8;font-size:var(--fs-sm);text-decoration:none;border-bottom:1px solid transparent;white-space:nowrap}
.dy-nav-cell a:hover{color:#fff;border-bottom-color:#fff}
/* 阅读进度线:贴在刊头下沿 */
.dy-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.12)}
.dy-progress i{display:block;height:100%;width:0;background:#e8b04b;transition:width .1s linear}

/* 主体:左侧粘性导航(日报/周报/日历/往期)+ 刊物流;日报再加右侧市场对照条 */
.dy-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:44px;
  padding-top:30px;padding-bottom:70px}
.dy-layout:has(.dy-market){grid-template-columns:180px minmax(0,1fr) 200px}
/* 市场对照:红涨绿跌(中文读者直觉),带符号消歧;快照日期如实标注 */
.dy-market{position:sticky;top:14px;align-self:start}
.dy-mkt-note{font-size:var(--fs-xs);color:var(--mut);padding:6px 0 4px}
/* 窄栏(200px)装不下「名称+走势+点位+涨跌」一行四件:桌面右栏用两行网格,
   上行名称+点位,下行走势线+涨跌;手机整宽横条再覆盖回单行。 */
.dy-mkt-row{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:1px;
  align-items:baseline;padding:7px 0;
  border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.dy-mkt-row .n{grid-area:1/1;color:var(--ink-2);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
/* 7 日迷你走势线:中性灰,方向信息留给涨跌幅的红绿,不做双重信号 */
.dy-mkt-row .sp{grid-area:2/1;color:#a7b4c0;align-self:center}
.dy-mkt-row .v{grid-area:1/2;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.dy-mkt-row .c{grid-area:2/2;font-variant-numeric:tabular-nums;font-size:var(--fs-xs);min-width:52px;text-align:right;color:var(--mut)}
.dy-mkt-row .c.up{color:#b3352d}
.dy-mkt-row .c.down{color:#1d7a4f}
@media(max-width:1100px){
  .dy-layout:has(.dy-market){grid-template-columns:180px minmax(0,1fr)}
  .dy-market{position:static;grid-column:1/-1;order:3;max-width:420px}
}
.dy-main{max-width:760px}
.dy-side{position:sticky;top:14px;align-self:start}
.dy-side-title{font-size:var(--fs-xs);font-weight:700;letter-spacing:.16em;color:var(--ink);
  border-top:3px solid var(--line-dark);padding:8px 0 6px;margin-top:14px}
.dy-side-title:first-child{margin-top:0}
.dy-kind-nav a{display:block;padding:8px 2px;font-size:var(--fs-md);font-weight:600;
  color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--line)}
.dy-kind-nav a small{display:block;font-size:var(--fs-xs);font-weight:400;color:var(--mut)}
.dy-kind-nav a:hover{color:var(--ink-strong)}
.dy-kind-nav a.on{color:var(--ink-strong);border-left:3px solid var(--ink-strong);padding-left:9px;margin-left:-12px}
/* 侧栏日历:有刊的日子是链接,当前期黑底白字 */
.dy-cal-head{display:flex;justify-content:space-between;align-items:center;padding:4px 0 6px}
.dy-cal-head b{font-size:var(--fs-sm);font-weight:700;color:var(--ink-strong)}
.dy-cal-head a{color:var(--ink-2);text-decoration:none;font-size:1.05rem;padding:0 6px;min-height:28px;display:inline-flex;align-items:center}
.dy-cal-head a:hover{color:var(--ink-strong)}
.dy-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;text-align:center;
  font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.dy-cal-w{color:var(--mut);padding:2px 0 4px}
.dy-cal-grid a,.dy-cal-off,.dy-cal-grid>span{padding:4px 0;min-height:26px;display:flex;align-items:center;justify-content:center}
.dy-cal-grid a{color:var(--ink-strong);text-decoration:none;font-weight:600;border-radius:var(--r-sm)}
.dy-cal-grid a:hover{background:var(--soft)}
.dy-cal-grid a.on{background:var(--ink-strong);color:#fff}
.dy-cal-off{color:var(--line)}
.dy-arch-nav{display:flex;flex-direction:column;max-height:38vh;overflow-y:auto}
.dy-arch-nav a{padding:5px 2px;font-size:var(--fs-sm);color:var(--ink-2);text-decoration:none;
  font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line)}
.dy-arch-nav a:hover{color:var(--ink-strong)}
.dy-arch-nav a.on{color:var(--ink-strong);font-weight:700}
@media(max-width:860px){
  /* :has 选择器专属度高,必须一并写进来,否则行情一出现就退回两列布局 */
  .dy-layout,.dy-layout:has(.dy-market){grid-template-columns:1fr;gap:0}
  /* 手机上行情不再沉底:整宽单列行,紧贴刊头之下、正文之前。
     (站长提议日历|行情左右并排;390px 放不下 7 列日历+行情数字,
     两边都会挤坏,故行情上移、日历保持原位。) */
  .dy-market{order:-1;max-width:none;border-bottom:1px solid var(--line);
    padding-bottom:10px;margin-bottom:4px}
  /* 整宽横条空间充裕,回到单行:名称|走势|点位|涨跌 */
  .dy-mkt-row{display:flex;gap:8px;align-items:baseline}
  /* 手机上侧栏不再挤成一行 flex 大杂烩(实机上日历错位、往期粘连):
     改纵向堆叠,日历限宽后 7 列自然对齐,往期横排换行。 */
  .dy-side{position:static;border-bottom:1px solid var(--line);
    padding-bottom:14px;margin-bottom:10px}
  .dy-side-title{border-top:0;margin-top:12px;padding:2px 0}
  .dy-side-title:first-child{margin-top:0}
  .dy-kind-nav{display:flex;gap:16px}
  .dy-kind-nav a{border-bottom:0;padding:4px 0}
  .dy-kind-nav a.on{border-left:0;padding-left:0;margin-left:0;border-bottom:2px solid var(--ink-strong)}
  .dy-kind-nav a small{display:none}
  .dy-cal{max-width:300px}
  .dy-cal-grid{gap:2px}
  .dy-arch-nav{flex-direction:row;flex-wrap:wrap;gap:6px 16px;max-height:none;overflow:visible}
  .dy-arch-nav a{border-bottom:0;padding:2px 0}
}

/* 导读:衬线引言,顶 3px 黑粗线 */
.dy-intro{border-top:3px solid var(--line-dark);padding-top:16px;margin-bottom:34px}
.dy-intro h2{font-family:var(--serif);font-size:1.2rem;margin:0 0 10px;color:var(--ink-strong)}
.dy-intro p{font-family:var(--serif);font-size:1.05rem;line-height:1.9;color:var(--ink);margin:0 0 10px}

/* 话题流:悬挂大号编号 + 细线分隔;逐条淡入 */
.dy-topic{display:grid;grid-template-columns:86px minmax(0,1fr);gap:0 10px;
  padding:22px 0 18px;border-top:1px solid var(--line);
  animation:dy-rise .5s ease-out both}
.dy-topic:nth-child(2){animation-delay:.06s}
.dy-topic:nth-child(3){animation-delay:.12s}
.dy-topic:nth-child(4){animation-delay:.18s}
.dy-topic:nth-child(n+5){animation-delay:.24s}
@keyframes dy-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.dy-topic{animation:none}}
.dy-num{font-family:var(--serif);font-size:2.1rem;font-weight:600;color:var(--line);
  line-height:1;padding-top:2px;transition:color .18s}
.dy-topic:hover .dy-num{color:var(--navy)}
.dy-cat{font-size:var(--fs-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);margin-bottom:5px}
.dy-cat span{color:var(--mut);letter-spacing:.04em;margin-left:6px}
.dy-topic h3{font-family:var(--serif);font-size:1.22rem;line-height:1.5;font-weight:600;
  margin:0 0 8px;color:var(--ink-strong)}
.dy-topic p{font-size:var(--fs-md);line-height:1.85;color:var(--ink);margin:0 0 7px}
.dy-src{font-size:var(--fs-xs);color:var(--mut);margin-top:4px}

@media(max-width:640px){
  .dy-mast-in{padding:24px 18px 20px}
  .dy-date{font-size:1.45rem}
  .dy-stats{max-width:none;flex-wrap:wrap}
  /* 窄屏「上一期/下一期」不再挤成竖排两行:整格换到第二行横排 */
  .dy-nav-cell{flex-basis:100%;border-top:1px solid #38536f;padding:8px 0 0;margin-top:2px}
  .dy-topic{grid-template-columns:52px minmax(0,1fr)}
  .dy-num{font-size:1.5rem}
}
