/* ==========================================================================
   观花 · 站点样式
   设计语言：纸感留白 + 朱红点缀（呼应红头文件），扁平无装饰
   ========================================================================== */

:root{
  --paper:#fbfaf7; --surface:#ffffff; --surface-2:#f4f3ef; --surface-3:#edebe5;
  --ink:#1a1a18; --ink-2:#45443f; --ink-3:#5f5e57; --muted:#83817a;
  --line:#e3e1da; --line-2:#cfccc2;
  --accent:#9c3d2e; --accent-2:#7d2f23; --accent-soft:#f6ebe7;
  --hl-money:#fdf3d7; --hl-money-b:#e8d9a8;
  --hl-time:#e6eef5;  --hl-time-b:#c3d6e6;
  --hl-date:#eeeeea;  --hl-date-b:#d8d8d0;
  --ok:#3f6b4f; --warn:#8a6a1f;
  --r:6px; --r-lg:10px;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --serif:"Songti SC","Source Han Serif SC","Noto Serif CJK SC",Georgia,serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#15151a; --surface:#1c1c22; --surface-2:#232329; --surface-3:#2a2a31;
    --ink:#eceae5; --ink-2:#cbc9c2; --ink-3:#b0aea7; --muted:#8e8d86;
    --line:#2e2e36; --line-2:#3d3d47;
    --accent:#e0836f; --accent-2:#eda48f; --accent-soft:#31211d;
    --hl-money:#3a3218; --hl-money-b:#5c4d22;
    --hl-time:#1e2c38;  --hl-time-b:#2f4658;
    --hl-date:#26262c;  --hl-date-b:#3a3a44;
    --ok:#7fb08d; --warn:#d0ad5e;
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px}

/* ---------- 顶栏 ---------- */
.topbar{
  position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:saturate(180%) blur(12px); border-bottom:1px solid var(--line);
}
.topbar-in{max-width:1180px; margin:0 auto; padding:0 24px; height:56px; display:flex; align-items:center; gap:20px}
.logo{font-family:var(--serif); font-size:20px; font-weight:600; letter-spacing:.22em; color:var(--ink); white-space:nowrap}
.logo:hover{text-decoration:none; color:var(--accent)}
.logo b{color:var(--accent)}
.tagline{font-size:12.5px; color:var(--muted); border-left:1px solid var(--line-2); padding-left:16px; white-space:nowrap}
.topnav{margin-left:auto; display:flex; gap:20px; font-size:13px}
.topnav a{color:var(--ink-3)}
.topnav a:hover{color:var(--accent)}

/* ---------- Hero ---------- */
.hero{padding:56px 0 32px; border-bottom:1px solid var(--line)}
.hero h1{font-family:var(--serif); font-size:40px; line-height:1.25; margin:0 0 14px; font-weight:600; letter-spacing:.01em}
.hero p{font-size:16px; color:var(--ink-2); max-width:44em; margin:0 0 22px}
.hero-stat{display:flex; gap:28px; flex-wrap:wrap; font-size:13px; color:var(--muted)}
.hero-stat b{color:var(--ink); font-size:19px; font-weight:600; font-variant-numeric:tabular-nums; margin-right:5px}

/* ---------- 筛选 ---------- */
.filters{padding:20px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:12px}
.frow{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.flabel{font-size:11.5px; letter-spacing:.1em; color:var(--muted); min-width:52px; text-transform:uppercase}
.chip{
  font-size:12.5px; padding:3px 11px; border-radius:99px; border:1px solid var(--line-2);
  background:var(--surface); color:var(--ink-3); cursor:pointer; user-select:none;
  font-family:inherit; line-height:1.6;
}
.chip:hover{border-color:var(--accent); color:var(--accent)}
.chip[aria-pressed="true"]{background:var(--accent); border-color:var(--accent); color:#fff}
@media (prefers-color-scheme: dark){ .chip[aria-pressed="true"]{color:#15151a} }
.search{
  width:100%; padding:9px 14px; font-size:14px; font-family:inherit;
  border:1px solid var(--line-2); border-radius:var(--r); background:var(--surface); color:var(--ink);
}
.search:focus{outline:none; border-color:var(--accent)}

/* ---------- 政策列表 ---------- */
/* 按月分组 + 左侧日期栏：国务院文件每天仅 1–2 条，
   按天分组会变成一天一个重标题、整页都是空白 */
.monthgroup{margin:38px 0 0}
.monthhead{
  display:flex; align-items:baseline; gap:12px; padding-bottom:9px;
  border-bottom:2px solid var(--ink); margin-bottom:2px;
}
.monthhead .m{font-size:16px; font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:.02em}
.monthhead .n{margin-left:auto; font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums}

.rowcard{
  display:grid; grid-template-columns:58px minmax(0,1fr); gap:20px;
  padding:19px 0; border-bottom:1px solid var(--line); color:inherit; align-items:start;
}
.rowcard:hover{text-decoration:none}
.rowcard:hover .card-title{color:var(--accent)}
.datecol{text-align:right; padding-top:2px; font-variant-numeric:tabular-nums}
.datecol b{display:block; font-size:21px; font-weight:600; line-height:1.15; color:var(--ink-3)}
.datecol span{font-size:11.5px; color:var(--muted)}
.rowcard:hover .datecol b{color:var(--accent)}
.card-title{font-size:17px; font-weight:600; line-height:1.5; margin:0 0 7px; color:var(--ink); transition:color .12s}
.card-meta{font-size:12.5px; color:var(--muted); display:flex; gap:13px; flex-wrap:wrap; margin-bottom:11px}
.card-meta .iss{color:var(--ink-3)}
.card-meta code{font-family:var(--mono); font-size:11.5px; background:var(--surface-2); padding:1px 6px; border-radius:3px}
.kp-row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:9px}
.kp{
  font-size:12px; padding:2px 9px; border-radius:var(--r); line-height:1.7;
  border:1px solid transparent; white-space:nowrap;
}
.kp-money{background:var(--hl-money); border-color:var(--hl-money-b)}
.kp-time{background:var(--hl-time); border-color:var(--hl-time-b)}
.kp-soft{background:var(--surface-2); border-color:var(--line); color:var(--ink-3)}
.outline-preview{font-size:13.5px; color:var(--ink-2); line-height:1.7; margin:0}
.outline-preview span{color:var(--muted)}
.outline-preview i{font-style:normal; color:var(--line-2); margin:0 6px}


/* ---------- 政策详情 ---------- */
.doc{padding:34px 0 0}
.doc h1{font-family:var(--serif); font-size:31px; line-height:1.4; margin:0 0 20px; font-weight:600}
.docmeta{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-bottom:22px;
}
.docmeta div{background:var(--surface); padding:11px 15px}
.docmeta dt{font-size:11px; letter-spacing:.09em; color:var(--muted); margin:0 0 3px; text-transform:uppercase}
.docmeta dd{margin:0; font-size:13.5px; color:var(--ink); word-break:break-all}

.panel{
  border:1px solid var(--line); border-radius:var(--r); background:var(--surface);
  padding:20px 22px; margin-bottom:26px;
}
.panel-h{font-size:12px; letter-spacing:.12em; color:var(--accent); font-weight:600; margin:0 0 16px; text-transform:uppercase}
.plainlist{margin:0; padding-left:22px; font-size:15px; line-height:1.95; color:var(--ink-2)}
.plainlist li{margin-bottom:9px}
.plainwarn{margin:14px 0 0; font-size:12.5px; color:var(--warn)}
.kpgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px}
.kpblock h4{font-size:12.5px; color:var(--muted); margin:0 0 9px; font-weight:400; letter-spacing:.05em}
.kpblock ul{margin:0; padding:0; list-style:none; font-size:13.5px}
.kpblock li{padding:3px 0; color:var(--ink-2); line-height:1.6}
.kpblock li a{color:inherit; border-bottom:1px dotted var(--line-2)}
.kpblock li a:hover{color:var(--accent); border-bottom-color:var(--accent); text-decoration:none}
.bar{display:inline-block; height:6px; border-radius:3px; background:var(--accent); vertical-align:middle; margin-right:7px; opacity:.55}

.docbody-grid{display:grid; grid-template-columns:minmax(0,1fr) 268px; gap:34px; align-items:start}
.bodytext{font-size:16px; line-height:2.05; color:var(--ink-2); font-family:var(--serif)}
.bodytext p{margin:0 0 1.15em}
.bodytext .doc-title-line{font-size:19px; font-weight:600; color:var(--ink); text-align:center; line-height:1.6; margin-bottom:.3em; font-family:var(--sans)}
.bodytext .doc-num-line{text-align:center; color:var(--muted); font-size:13.5px; margin-bottom:1.6em; font-family:var(--sans)}
mark.hl{padding:1px 2px; border-radius:2px; background:var(--hl-money); box-shadow:inset 0 -1px 0 var(--hl-money-b); color:inherit; scroll-margin-top:80px}
mark.hl-time{background:var(--hl-time); box-shadow:inset 0 -1px 0 var(--hl-time-b)}
mark.hl-date{background:var(--hl-date); box-shadow:inset 0 -1px 0 var(--hl-date-b)}
mark.hl.flash{outline:2px solid var(--accent); outline-offset:2px}

.sidenav{position:sticky; top:76px; font-size:13px; max-height:calc(100vh - 100px); overflow-y:auto}
.sidenav h4{font-size:11.5px; letter-spacing:.1em; color:var(--muted); margin:0 0 12px; font-weight:400; text-transform:uppercase}
.sidenav ol{margin:0; padding:0; list-style:none}
.sidenav li{padding:5px 0; border-bottom:1px solid var(--line); line-height:1.55}
.sidenav li a{color:var(--ink-3); display:block}
.sidenav li a b{color:var(--muted); font-weight:400; margin-right:1px}
.sidenav li.l2{padding-left:15px; font-size:12.5px}
.sidenav li a:hover{color:var(--accent); text-decoration:none}
.sidenav li a:hover b{color:var(--accent)}

/* ---------- 双栏对照 ---------- */
.cmp-toolbar{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:0 0 12px; border-bottom:2px solid var(--ink); margin-bottom:0;
}
.cmp-legend{font-size:13px; color:var(--ink-2)}
.cmp-legend b{color:var(--accent); font-weight:600}
.cmp-model{font-size:11.5px; color:var(--muted); margin-left:12px}
.cmp-toggle{
  margin-left:auto; font-family:inherit; font-size:12.5px; cursor:pointer;
  padding:5px 14px; border:1px solid var(--line-2); border-radius:var(--r);
  background:var(--surface); color:var(--ink-3);
}
.cmp-toggle:hover{border-color:var(--accent); color:var(--accent)}

.compare{margin-bottom:8px}
.cmp-row{
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border-bottom:1px solid var(--line);
}
.cmp-row.cmp-single{grid-template-columns:1fr}
.cmp-src{
  padding:15px 20px 15px 0; font-family:var(--serif); font-size:15.5px;
  line-height:2; color:var(--ink-2);
}
.cmp-plain{
  padding:15px 0 15px 20px; border-left:1px solid var(--line);
  font-size:15px; line-height:1.95; color:var(--ink); background:var(--surface-2);
  margin:8px 0; border-radius:0 var(--r) var(--r) 0;
}
.cmp-skip,.cmp-same{color:var(--muted); font-size:13.5px}
.cmp-skip::before{content:"— "}
.cmp-same::before{content:"= "}
.compare.hide-plain .cmp-plain{display:none}
.compare.hide-plain .cmp-row{grid-template-columns:1fr}
.compare.hide-plain .cmp-src{padding-right:0}
mark.hl{padding:1px 2px; border-radius:2px; background:var(--hl-money); box-shadow:inset 0 -1px 0 var(--hl-money-b); color:inherit; scroll-margin-top:80px}
mark.hl-time{background:var(--hl-time); box-shadow:inset 0 -1px 0 var(--hl-time-b)}
mark.hl-date{background:var(--hl-date); box-shadow:inset 0 -1px 0 var(--hl-date-b)}
mark.hl.flash{outline:2px solid var(--accent); outline-offset:2px}

/* ---------- 申报倒计时 ---------- */
.panel-dl{border-color:var(--accent); border-left-width:3px}
.dl-item{display:flex; gap:13px; align-items:baseline; padding:9px 0; border-bottom:1px solid var(--line)}
.dl-item:last-child{border-bottom:none}
.dl-badge{
  flex:0 0 auto; font-size:12px; font-weight:600; padding:2px 10px; border-radius:99px;
  white-space:nowrap; border:1px solid transparent;
}
.dl-urgent .dl-badge{background:var(--accent); color:#fff; border-color:var(--accent)}
.dl-soon .dl-badge{background:var(--hl-money); border-color:var(--hl-money-b)}
.dl-open .dl-badge{background:var(--hl-time); border-color:var(--hl-time-b)}
.dl-closed .dl-badge{background:var(--surface-2); border-color:var(--line); color:var(--muted)}
.dl-unknown .dl-badge{background:var(--surface-2); border-color:var(--line); color:var(--muted)}
@media (prefers-color-scheme: dark){ .dl-urgent .dl-badge{color:#15151a} }
.dl-body{font-size:13.5px; color:var(--ink-2); line-height:1.7}
.dl-body b{color:var(--ink)}
.dl-body a{color:inherit; border-bottom:1px dotted var(--line-2)}
.dl-body a:hover{color:var(--accent); text-decoration:none}
.dl-est{font-size:11px; color:var(--warn); margin-left:6px}
.dl-inline{
  display:inline-block; font-size:12.5px; font-weight:600; padding:2px 11px;
  border-radius:99px; border:1px solid var(--line-2); margin-right:9px;
}
.dl-inline.dl-urgent{background:var(--accent); color:#fff; border-color:var(--accent)}
.dl-inline.dl-soon{background:var(--hl-money); border-color:var(--hl-money-b)}
.dl-inline.dl-open{background:var(--hl-time); border-color:var(--hl-time-b)}
.dl-inline.dl-closed{color:var(--muted)}
@media (prefers-color-scheme: dark){ .dl-inline.dl-urgent{color:#15151a} }
.pill-src{
  display:inline-block; font-size:11.5px; color:var(--muted);
  border:1px solid var(--line); border-radius:99px; padding:1px 9px; margin-right:7px;
}
.pill-src.ok{border-color:var(--accent); color:var(--accent)}
.kp-dl{font-weight:600}
.kp-dl-urgent{background:var(--accent); color:#fff}
.kp-dl-soon{background:var(--hl-money); border-color:var(--hl-money-b)}
.kp-dl-open{background:var(--hl-time); border-color:var(--hl-time-b)}
.kp-dl-closed{background:var(--surface-2); border-color:var(--line); color:var(--muted)}
.kp-dl-unknown{background:var(--surface-2); border-color:var(--line); color:var(--muted)}
@media (prefers-color-scheme: dark){ .kp-dl-urgent{color:#15151a} }

.dllist-page{margin-top:6px}
.dlrow{
  display:grid; grid-template-columns:118px minmax(0,1fr); gap:18px; align-items:start;
  padding:16px 0; border-bottom:1px solid var(--line); color:inherit;
}
.dlrow:hover{text-decoration:none}
.dlrow:hover .dlrow-title{color:var(--accent)}
.dlrow-badge{
  font-size:12.5px; font-weight:600; text-align:center; padding:5px 6px;
  border-radius:var(--r); border:1px solid var(--line); color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.dlrow.dl-urgent .dlrow-badge{background:var(--accent); border-color:var(--accent); color:#fff}
.dlrow.dl-soon .dlrow-badge{background:var(--hl-money); border-color:var(--hl-money-b); color:var(--ink)}
.dlrow.dl-open .dlrow-badge{background:var(--hl-time); border-color:var(--hl-time-b); color:var(--ink)}
@media (prefers-color-scheme: dark){ .dlrow.dl-urgent .dlrow-badge{color:#15151a} }
.dlrow-title{font-size:16px; font-weight:600; line-height:1.5; margin-bottom:6px; color:var(--ink)}
.dlrow-meta{font-size:12.5px; color:var(--muted); display:flex; gap:13px; flex-wrap:wrap; margin-bottom:7px}
.dl-kind{color:var(--accent); font-weight:600}
.dlrow-meta code{font-family:var(--mono); font-size:11.5px; background:var(--surface-2); padding:1px 6px; border-radius:3px}
.dlrow-src{font-size:13px; color:var(--ink-3); border-left:2px solid var(--line-2); padding-left:11px; line-height:1.7}

/* ---------- 申报窗口月度分布 ---------- */
.season{display:flex; align-items:flex-end; gap:10px; height:120px; padding:0 2px}
.season-col{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%}
.season-bar{width:100%; max-width:44px; background:var(--accent); opacity:.75; border-radius:3px 3px 0 0}
.season-n{font-size:11px; color:var(--muted); margin-top:5px; font-variant-numeric:tabular-nums; height:14px}
.season-m{font-size:11px; color:var(--muted); border-top:1px solid var(--line); width:100%; text-align:center; padding-top:4px}
.season-note{font-size:12.5px; color:var(--muted); margin:14px 0 0; line-height:1.75}

/* ---------- 提示与页脚 ---------- */
.note{
  border-left:3px solid var(--accent); background:var(--surface); padding:14px 18px;
  font-size:13px; color:var(--ink-2); border-radius:0 var(--r) var(--r) 0; margin:26px 0;
}
.note b{color:var(--ink)}
.note.gray{border-left-color:var(--line-2)}
.note.gray b{color:var(--ink-2)}
.srcbar{display:flex; gap:12px; flex-wrap:wrap; align-items:center; font-size:13px; margin:24px 0 0}
.btn{
  display:inline-block; padding:7px 16px; border:1px solid var(--line-2); border-radius:var(--r);
  background:var(--surface); color:var(--ink); font-size:13px;
}
.btn:hover{border-color:var(--accent); color:var(--accent); text-decoration:none}
.btn.primary{background:var(--accent); border-color:var(--accent); color:#fff}
.btn.primary:hover{background:var(--accent-2); color:#fff}
@media (prefers-color-scheme: dark){ .btn.primary{color:#15151a} }

footer{margin-top:72px; border-top:1px solid var(--line); padding:26px 0 60px; font-size:12.5px; color:var(--muted); line-height:1.9}
footer .fgrid{display:flex; justify-content:space-between; gap:26px; flex-wrap:wrap}
footer a{color:var(--ink-3)}
.empty{padding:60px 0; text-align:center; color:var(--muted); font-size:14px}

/* ---------- 响应式 ---------- */
@media (max-width:940px){
  .docbody-grid{grid-template-columns:1fr}
  .sidenav{position:static; max-height:none; order:-1}
  .hero h1{font-size:30px}
  .doc h1{font-size:24px}
  .tagline{display:none}
  .bodytext{font-size:15.5px; line-height:1.95}
}
@media print{
  .topbar,.sidenav,.filters,footer,.srcbar{display:none}
  .docbody-grid{grid-template-columns:1fr}
  body{background:#fff}
}

/* 涉及主体 / 支持方式：极轻的下划线，避免高亮过多造成视觉噪声 */
mark.hl-entity{background:transparent; box-shadow:inset 0 -1px 0 var(--line-2)}
mark.hl-support{background:transparent; box-shadow:inset 0 -1px 0 var(--accent); opacity:.9}

/* ---------- 附件/图片型文件提示 ---------- */
.panel-media{border-color:var(--warn); border-left-width:3px}
.panel-media .panel-h{color:var(--warn)}
.media-text{font-size:14px; color:var(--ink-2); margin:0 0 12px; line-height:1.85; max-width:46em}
.attlist{margin:0 0 4px; padding-left:0; list-style:none; font-size:13.5px}
.attlist li{padding:6px 0; border-bottom:1px solid var(--line)}
.attlist li:last-child{border-bottom:none}
.attlist a{color:var(--ink-2); border-bottom:1px dotted var(--line-2)}
.attlist a:hover{color:var(--accent); text-decoration:none}
.panel-media .srcbar{margin-top:14px}
